Modifications to let self-service work if you really insist on installing it
[freeside.git] / FS / FS / Upgrade.pm
index 57c94ac..452c5a3 100644 (file)
@@ -84,6 +84,9 @@ sub upgrade_data {
 
   tie my %hash, 'Tie::IxHash', 
 
+    #msgcat
+    'msgcat' => [],
+
     #reason type and reasons
     'reason_type'     => [],
     'reason'          => [],
@@ -195,17 +198,25 @@ sub upgrade_sqlradius {
       my ($username, $realm, $start, $stop) = @$row;
   
       $username = lc($username) unless $conf->exists('username-uppercase');
-      my $extra_sql = '';
+
+      my $exportnum = $part_export->exportnum;
+      my $extra_sql = " AND exportnum = $exportnum ".
+                      " AND exportsvcnum IS NOT NULL ";
+
       if ( ref($part_export) =~ /withdomain/ ) {
-        $extra_sql = " And '$realm' = ( SELECT domain FROM svc_domain
+        $extra_sql = " AND '$realm' = ( SELECT domain FROM svc_domain
                          WHERE svc_domain.svcnum = svc_acct.domsvc ) ";
       }
   
-      my $svc_acct = qsearchs( 'svc_acct',
-                               { 'username' => $username },
-                               '',
-                               $extra_sql,
-                             );
+      my $svc_acct = qsearchs({
+        'select'    => 'svc_acct.*',
+        'table'     => 'svc_acct',
+        'addl_from' => 'LEFT JOIN cust_svc   USING ( svcnum )'.
+                       'LEFT JOIN export_svc USING ( svcpart )',
+        'hashref'   => { 'username' => $username },
+        'extra_sql' => $extra_sql,
+      });
+
       if ($svc_acct) {
         $svc_acct->last_login($start)
           if $start && (!$svc_acct->last_login || $start > $svc_acct->last_login);