summaryrefslogtreecommitdiff
path: root/httemplate/misc
diff options
context:
space:
mode:
authorivan <ivan>2007-07-13 23:52:23 +0000
committerivan <ivan>2007-07-13 23:52:23 +0000
commit9035034a53d60cb7a7687dfee899c1d0c775ea74 (patch)
tree80a6dc3d257fa24b2097746e4b8f074a420dfdd9 /httemplate/misc
parentae5b57a84d549166bae637c0c01db0b9e09b138f (diff)
fix race condition where ->apply_payments_and_credits could double-apply in rare cases
Diffstat (limited to 'httemplate/misc')
-rwxr-xr-xhttemplate/misc/bill.cgi30
-rwxr-xr-xhttemplate/misc/process/recharge_svc.html2
2 files changed, 19 insertions, 13 deletions
diff --git a/httemplate/misc/bill.cgi b/httemplate/misc/bill.cgi
index 8d4b4ac65..1bf1eb11e 100755
--- a/httemplate/misc/bill.cgi
+++ b/httemplate/misc/bill.cgi
@@ -14,17 +14,24 @@
%#&eidiot($error) if $error;
%
%unless ( $error ) {
-% $cust_main->apply_payments_and_credits;
-%
-% $error = $cust_main->collect(
-% # 'invoice-time'=>$time,
-% #'batch_card'=> 'yes',
-% #'batch_card'=> 'no',
-% #'report_badcard'=> 'yes',
-% #'retry_card' => 'yes',
-% 'retry' => 'yes',
-% 'realtime' => $conf->exists('realtime-backend'),
-% );
+% $error = $cust_main->apply_payments_and_credits
+% || $cust_main->collect(
+% #'invoice-time'=>$time,
+% #'batch_card'=> 'yes',
+% #'batch_card'=> 'no',
+% #'report_badcard'=> 'yes',
+% #'retry_card' => 'yes',
+%
+% 'retry' => 'yes',
+%
+% #this is used only by cust_main::batch_card
+% #need to pick & create an actual config
+% #value if we're going to turn this on
+% #("realtime-backend" doesn't exist,
+% # "backend-realtime" is for something
+% # entirely different)
+% #'realtime' => $conf->exists('realtime-backend'),
+% );
%}
%#&eidiot($error) if $error;
%
@@ -38,4 +45,3 @@
% print $cgi->redirect(popurl(2). "view/cust_main.cgi?$custnum");
%}
%
-
diff --git a/httemplate/misc/process/recharge_svc.html b/httemplate/misc/process/recharge_svc.html
index dc9d5ea2d..bc916e5da 100755
--- a/httemplate/misc/process/recharge_svc.html
+++ b/httemplate/misc/process/recharge_svc.html
@@ -57,7 +57,7 @@
%
% my $old_balance = $cust_main->balance;
% $error ||= $cust_main->bill;
-% $cust_main->apply_payments_and_credits unless $error;
+% $error ||= $cust_main->apply_payments_and_credits;
% my $bill_error = $cust_main->collect('realtime' => 1) unless $error;
% $error ||= "Failed to collect - $bill_error"
% if $cust_main->balance > $old_balance && $cust_main->balance > 0