summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2016-10-17 15:16:40 -0700
committerMark Wells <mark@freeside.biz>2016-10-17 16:08:33 -0700
commitb25a5e64054fed0ba59842442a5921ba5a3d1071 (patch)
treef509be61d55040a09ad86117ec73f8777c185f6a /FS
parent508f9f825f2d0a4b41b9e3c83f4e4a616f8eb5bf (diff)
if asked to credit a zero-amount line item, skip it rather than throwing an error, #72873, from #26925
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/cust_credit.pm8
1 files changed, 5 insertions, 3 deletions
diff --git a/FS/FS/cust_credit.pm b/FS/FS/cust_credit.pm
index aebf25922..624971388 100644
--- a/FS/FS/cust_credit.pm
+++ b/FS/FS/cust_credit.pm
@@ -728,10 +728,12 @@ sub calculate_tax_adjustment {
if ($recur) {
$recur -= $cust_bill_pkg->credited('', '', setuprecur => 'recur') || 0;
}
+ # Skip line items that have been completely credited.
+ next if ($setup + $recur) == 0;
my $setup_ratio = $setup / ($setup + $recur);
- # Calculate the fraction of tax to credit: it's the fraction of this charge
- # (either setup or recur) that's being credited.
+ # Calculate the fraction of tax to credit: it's the fraction of this
+ # charge (either setup or recur) that's being credited.
my $charged = ($setuprecur eq 'setup') ? $setup : $recur;
next if $charged == 0; # shouldn't happen, but still...
@@ -900,7 +902,7 @@ sub credit_lineitems {
my $invnum = $cust_bill_pkg->invnum;
$need_to_unapply -= $cust_bill_pkg->owed($setuprecur);
- next if $need_to_unapply < 0.005;
+ return if $need_to_unapply < 0.005;
my $error;
# then unapply payments one at a time (partially if need be) until the