From b25a5e64054fed0ba59842442a5921ba5a3d1071 Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Mon, 17 Oct 2016 15:16:40 -0700 Subject: [PATCH] if asked to credit a zero-amount line item, skip it rather than throwing an error, #72873, from #26925 --- FS/FS/cust_credit.pm | 8 +++++--- 1 file 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 -- 2.11.0