X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2FTaxEngine%2Finternal.pm;h=5f5d2295a417ca7a9c56e7513d8e280a9fad20f5;hp=df2d6095678a8e3ece065d31e64aa333488d8463;hb=b21864778ad131008d94a3672820a6acbd413b60;hpb=94c7f944bc5836e071ff3484cbba7e5b94e075a3 diff --git a/FS/FS/TaxEngine/internal.pm b/FS/FS/TaxEngine/internal.pm index df2d60956..5f5d2295a 100644 --- a/FS/FS/TaxEngine/internal.pm +++ b/FS/FS/TaxEngine/internal.pm @@ -23,7 +23,8 @@ sub add_sale { my ($self, $cust_bill_pkg) = @_; my $part_item = $cust_bill_pkg->part_X; - my $location = $cust_bill_pkg->tax_location; + my $location = $cust_bill_pkg->tax_location + or return; my $custnum = $self->{cust_main}->custnum; push @{ $self->{items} }, $cust_bill_pkg; @@ -295,12 +296,21 @@ sub taxline { $this_tax_cents = int($this_tax_cents); } + my $locationnum; + if ( my $cust_pkg = $cust_bill_pkg->cust_pkg ) { + $locationnum = $cust_pkg->tax_locationnum; + } elsif ( $conf->exists('tax-ship_address') ) { + $locationnum = $cust_main->ship_locationnum; + } else { + $locationnum = $cust_main->bill_locationnum; + } + my $location = FS::cust_bill_pkg_tax_location->new({ - 'taxnum' => $tax_object->taxnum, - 'taxtype' => ref($tax_object), - 'cents' => $this_tax_cents, - 'pkgnum' => $cust_bill_pkg->pkgnum, - 'locationnum' => $cust_bill_pkg->cust_pkg->tax_locationnum, + 'taxnum' => $tax_object->taxnum, + 'taxtype' => ref($tax_object), + 'cents' => $this_tax_cents, + 'pkgnum' => $cust_bill_pkg->pkgnum, + 'locationnum' => $locationnum, 'taxable_cust_bill_pkg' => $cust_bill_pkg, }); push @tax_links, $location;