X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FTaxEngine%2Fcompliance_solutions.pm;h=2cb9cb55147376074242d042bc189b5c85adb888;hb=b0888dc8399fc4e8d75c874c00d01366eacf5596;hp=1f0c166057c49c2b235cd84a7976f2bfe6380a69;hpb=929783d1045757abbe5c84ff2439547b0f8eca23;p=freeside.git diff --git a/FS/FS/TaxEngine/compliance_solutions.pm b/FS/FS/TaxEngine/compliance_solutions.pm index 1f0c16605..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; @@ -226,6 +242,7 @@ sub make_taxlines { } ); warn $request_json if $DEBUG > 1; + $cust_bill->taxengine_request($request_json); my $soap = SOAP::Lite->service("http://tcms1.csilongwood.com/cgi-bin/taxcalc.wsdl");