ugh DCLN :/
[freeside.git] / FS / FS / cust_bill.pm
index 62d67c1..e1281e3 100644 (file)
@@ -28,7 +28,7 @@ use FS::part_pkg;
 use FS::cust_bill_pay;
 use FS::cust_bill_pay_batch;
 use FS::part_bill_event;
-use FS::payby qw( payby2bop );
+use FS::payby;
 
 @ISA = qw( FS::cust_main_Mixin FS::Record );
 
@@ -1318,7 +1318,7 @@ sub batch_card {
   return '' unless $amount > 0;
   
   if ($options{'realtime'}) {
-    return $cust_main->realtime_bop ( $FS::payby::payby2bop->{$cust_main->payby}, $amount,
+    return $cust_main->realtime_bop ( $FS::payby::payby2bop{$cust_main->payby}, $amount,
       %options,
     );
   }
@@ -1327,6 +1327,9 @@ sub batch_card {
   local $FS::UID::AutoCommit = 0;
   my $dbh = dbh;
 
+  $dbh->do("LOCK TABLE pay_batch IN SHARE ROW EXCLUSIVE MODE")
+    or return "Cannot lock pay_batch: " . $dbh->errstr;
+
   my $pay_batch = qsearchs('pay_batch', {'status' => 'O'});
 
   unless ( $pay_batch ) {