show credit balance on invoices, #11564
[freeside.git] / FS / FS / otaker_Mixin.pm
index 4aa47c3..af61a85 100644 (file)
@@ -4,6 +4,7 @@ use strict;
 use Carp qw( croak ); #confess );
 use FS::Record qw( qsearch qsearchs );
 use FS::access_user;
+use FS::UID qw( dbh );
 
 sub otaker {
   my $self = shift;
@@ -13,6 +14,7 @@ sub otaker {
     if ( !$access_user && $otaker =~ /^(.+), (.+)$/ ) { #same as below..
       my($lastname, $firstname) = ($1, $2);
       $otaker = lc($firstname.$lastname);
+      $otaker =~ s/ //g;
       $access_user =  qsearchs('access_user', { 'first' => $firstname, 
                                                 'last'  => $lastname  } )
                    || qsearchs('access_user', { 'username' => $otaker } );
@@ -40,11 +42,13 @@ sub _upgrade_otaker {
   my $class = shift;
   my $table = $class->table;
 
+  my $limit = ( $table eq 'cust_attachment' ? 10 : 1000 );
+
   while ( 1 ) {
     my @records = qsearch({
                     'table'     => $table,
                     'hashref'   => {},
-                    'extra_sql' => 'WHERE otaker IS NOT NULL LIMIT 1000',
+                    'extra_sql' => "WHERE otaker IS NOT NULL LIMIT $limit",
                   });
     last unless @records;
 
@@ -56,6 +60,7 @@ sub _upgrade_otaker {
         if ( $username =~ /^(.+), (.+)$/ ) {
           ($lastname, $firstname) = ($1, $2);
           $username = lc($firstname.$lastname);
+          $username =~ s/ //g;
         }
         my $access_user = new FS::access_user {
           'username'  => $username,
@@ -72,6 +77,11 @@ sub _upgrade_otaker {
       my $error = $record->replace;
       die $error if $error;
     }
+        
+    if ( $table eq 'cust_attachment' ) {
+       warn "  committing (cust_attachment) \n";
+       dbh->commit or die dbh->errstr;
+    }
 
   }