diff options
| author | Mark Wells <mark@freeside.biz> | 2016-10-17 15:16:40 -0700 | 
|---|---|---|
| committer | Mark Wells <mark@freeside.biz> | 2016-10-17 16:02:07 -0700 | 
| commit | d9a6a1d8912bd059941bddc7875eb920a47cd8c5 (patch) | |
| tree | 87d57e36c6ccf764929cc55c606bcfa1126a30d5 | |
| parent | e3414e8ef2f07df0412b5cd645213b34393078ec (diff) | |
if asked to credit a zero-amount line item, skip it rather than throwing an error, #72873, from #26925
| -rw-r--r-- | FS/FS/cust_credit.pm | 8 | 
1 files changed, 5 insertions, 3 deletions
diff --git a/FS/FS/cust_credit.pm b/FS/FS/cust_credit.pm index 18f4a3246..ca410757b 100644 --- a/FS/FS/cust_credit.pm +++ b/FS/FS/cust_credit.pm @@ -743,10 +743,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... @@ -911,7 +913,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  | 
