[freeside-commits] branch master updated. 40bf4749215869a2208db8cb6b25fdfb2f7239e8

Mark Wells mark at 420.am
Mon Jun 16 14:09:29 PDT 2014


The branch, master has been updated
       via  40bf4749215869a2208db8cb6b25fdfb2f7239e8 (commit)
      from  9686d044b747a9365de4b2c043d6c1e33b5c76a1 (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 40bf4749215869a2208db8cb6b25fdfb2f7239e8
Author: Mark Wells <mark at freeside.biz>
Date:   Mon Jun 16 14:09:10 2014 -0700

    when billing a package on cancellation, ignore non-usage taxes, #29443, fallout from #25899

diff --git a/FS/FS/cust_main/Billing.pm b/FS/FS/cust_main/Billing.pm
index 545243c..4f91080 100644
--- a/FS/FS/cust_main/Billing.pm
+++ b/FS/FS/cust_main/Billing.pm
@@ -630,6 +630,7 @@ sub bill {
         $taxlisthash{$pass},
         $fee_item,
         location => $fee_location
+        # probably not right to pass cancel => 1 for fees
       );
       return $error if $error;
 
@@ -1353,7 +1354,8 @@ sub _make_lines {
       # handle taxes
       ###
 
-      my $error = $self->_handle_taxes( $taxlisthash, $cust_bill_pkg );
+      my $error = $self->_handle_taxes( $taxlisthash, $cust_bill_pkg,
+        cancel => $options{cancel} );
       return $error if $error;
 
       $cust_bill_pkg->set_display(
@@ -1473,6 +1475,8 @@ OPTIONS may include:
 - part_item: a part_pkg or part_fee object to be used as the package/fee 
   definition.
 - location: a cust_location to be used as the billing location.
+- cancel: true if this package is being billed on cancellation.  This 
+  allows tax to be calculated on usage charges only.
 
 If not supplied, part_item will be inferred from the pkgnum or feepart of the
 cust_bill_pkg, and location from the pkgnum (or, for fees, the invnum and 
@@ -1507,10 +1511,9 @@ sub _handle_taxes {
     my %taxes = ();
 
     my @classes;
-    #push @classes, $cust_bill_pkg->usage_classes if $cust_bill_pkg->type eq 'U';
     push @classes, $cust_bill_pkg->usage_classes if $cust_bill_pkg->usage;
-    push @classes, 'setup' if $cust_bill_pkg->setup;
-    push @classes, 'recur' if $cust_bill_pkg->recur;
+    push @classes, 'setup' if $cust_bill_pkg->setup and !$options{cancel};
+    push @classes, 'recur' if $cust_bill_pkg->recur and !$options{cancel};
 
     my $exempt = $conf->exists('cust_class-tax_exempt')
                    ? ( $self->cust_class ? $self->cust_class->tax : '' )

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

Summary of changes:
 FS/FS/cust_main/Billing.pm |   11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)




More information about the freeside-commits mailing list