minor fix for custnum-less cust_pay_pending, #71513
authorMark Wells <mark@freeside.biz>
Mon, 5 Dec 2016 05:35:52 +0000 (21:35 -0800)
committerMark Wells <mark@freeside.biz>
Mon, 5 Dec 2016 07:11:30 +0000 (23:11 -0800)
FS/FS/cust_main/Billing_Realtime.pm

index 3a3947b..35293f0 100644 (file)
@@ -2553,7 +2553,11 @@ CUSTLOOP:
         # might happen for cust_pay_pending from failed verify records,
         #   in which case we attempt tokenization without cust_main
         # everything else should absolutely have a cust_main
-        unless ($table eq 'cust_pay_pending' && $record->{'custnum_pending'}) {
+        if ($table eq 'cust_pay_pending' and !$record->custnum ) {
+          # override the usual safety check and allow the record to be
+          # updated even without a custnum.
+          $record->set('custnum_pending', 1);
+        } else {
           my $error = "Could not load cust_main for $table ".$record->get($record->primary_key);
           if ($opt{'queue'}) {
             $log->critical($error);
@@ -2635,7 +2639,7 @@ CUSTLOOP:
       warn "ATTEMPTING GATEWAY-ONLY TOKENIZE" if $debug && !$cust_main;
 
       # if we got this far, time to mutex
-      $record = $record->select_for_update;
+      $record->select_for_update;
 
       # no clear record of name/address/etc used for transaction,
       # but will load name/phone/id from customer if run as an object method,