summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-11-17 15:19:12 -0800
committerIvan Kohler <ivan@freeside.biz>2017-11-17 15:19:12 -0800
commit437281a2ec3c3cc209e8774019be883d3e7f21c4 (patch)
tree1b7b2bd513c77ea818a31b7683f16d98576055f0
parent367f0149596bd63a05e6a5bfbdfe81d5c229a1fe (diff)
compliance solutions integration: always send a zip, whatever zip we have, RT#78660, RT#75262
-rw-r--r--FS/FS/TaxEngine/compliance_solutions.pm34
1 files changed, 25 insertions, 9 deletions
diff --git a/FS/FS/TaxEngine/compliance_solutions.pm b/FS/FS/TaxEngine/compliance_solutions.pm
index 33b6a3ef1..2cb9cb551 100644
--- a/FS/FS/TaxEngine/compliance_solutions.pm
+++ b/FS/FS/TaxEngine/compliance_solutions.pm
@@ -140,18 +140,26 @@ sub build_input_item {
" recurring charge\n"
if !$taxproduct;
- # when billing on cancellation there are no units
- my $units = $self->{cancel} ? 0 : $cust_bill_pkg->units;
- unshift @items, {
+ my %item = (
$self->generic_item($cust_bill, $cust_main),
record_type => 'S',
unique_id => 'cust_bill_pkg '. $cust_bill_pkg->billpkgnum. ' recur',
charge_amount => $recur_without_usage,
- location_a => $cust_bill_pkg->tax_location->zip,
productcode => substr($taxproduct,0,4),
servicecode => substr($taxproduct,4,3),
- units => $units,
- };
+ );
+
+ # when billing on cancellation there are no units
+ $item{units} = $self->{cancel} ? 0 : $cust_bill_pkg->units;
+
+ my $location = $cust_bill_pkg->tax_location
+ || ( $conf->exists('tax-ship_address')
+ ? $cust_main->ship_location
+ : $cust_main->bill_location
+ );
+ $item{location_a} = $location->zip;
+
+ unshift @items, \%item;
}
###
@@ -167,16 +175,24 @@ sub build_input_item {
" setup charge\n"
if !$taxproduct;
- unshift @items, {
+ my %item = (
$self->generic_item($cust_bill, $cust_main),
record_type => 'S',
unique_id => 'cust_bill_pkg '. $cust_bill_pkg->billpkgnum. ' setup',
charge_amount => $cust_bill_pkg->setup,
- location_a => $cust_bill_pkg->tax_location->zip,
productcode => substr($taxproduct,0,4),
servicecode => substr($taxproduct,4,3),
units => $cust_bill_pkg->units,
- };
+ );
+
+ my $location = $cust_bill_pkg->tax_location
+ || ( $conf->exists('tax-ship_address')
+ ? $cust_main->ship_location
+ : $cust_main->bill_location
+ );
+ $item{location_a} = $location->zip;
+
+ unshift @items, \%item;
}
return @items;