[freeside-commits] branch master updated. 194c16bf0af62048d118ad28e55f5e1eb5d92ffa

Mark Wells mark at 420.am
Sat Jan 30 20:12:23 PST 2016


The branch, master has been updated
       via  194c16bf0af62048d118ad28e55f5e1eb5d92ffa (commit)
      from  a7a1836a29ad86b033e8d858fe999d03af2c54e4 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 194c16bf0af62048d118ad28e55f5e1eb5d92ffa
Author: Mark Wells <mark at freeside.biz>
Date:   Fri Jan 29 17:12:07 2016 -0800

    fix internal handling of monthly tax exemptions, from #34223

diff --git a/FS/FS/TaxEngine/internal.pm b/FS/FS/TaxEngine/internal.pm
index 4ca1ea8..91b547c 100644
--- a/FS/FS/TaxEngine/internal.pm
+++ b/FS/FS/TaxEngine/internal.pm
@@ -243,7 +243,9 @@ sub taxline {
               exempt_monthly  => 'Y',
               year            => $year,
               month           => $mon,
+              taxnum          => $tax_object->taxnum,
             });
+
           $taxable_charged -= $addl;
         }
         # if they're using multiple months of exemption for a multi-month
@@ -257,10 +259,23 @@ sub taxline {
       }
     } # if exempt_amount
 
-    $_->taxnum($tax_object->taxnum) foreach @new_exemptions;
-
     # attach them to the line item
-    push @{ $cust_bill_pkg->cust_tax_exempt_pkg }, @new_exemptions;
+    foreach my $ex (@new_exemptions) {
+
+      if ( $cust_bill_pkg->billpkgnum ) {
+        # the exempted item is already inserted (it should be, these days) so
+        # insert the exemption record now:
+        $ex->set('billpkgnum', $cust_bill_pkg->billpkgnum);
+        my $error = $ex->insert;
+        return "inserting tax exemption record: $error" if $error;
+
+      } else {
+        # defer it until the item is inserted
+        push @{ $cust_bill_pkg->cust_tax_exempt_pkg }, $ex;
+      }
+    }
+
+    # and remember we've used the exemption
     push @existing_exemptions, @new_exemptions;
 
     $taxable_charged = sprintf( "%.2f", $taxable_charged);

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/TaxEngine/internal.pm |   21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)




More information about the freeside-commits mailing list