diff options
-rw-r--r-- | FS/FS/cust_main/Billing.pm | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/FS/FS/cust_main/Billing.pm b/FS/FS/cust_main/Billing.pm index 0dfaa49df..49ffbfe84 100644 --- a/FS/FS/cust_main/Billing.pm +++ b/FS/FS/cust_main/Billing.pm @@ -726,8 +726,16 @@ sub calculate_taxes { foreach my $tax ( keys %$taxlisthash ) { foreach ( @{ $taxlisthash->{$tax} }[1 ... scalar(@{ $taxlisthash->{$tax} })] ) { next unless ref($_) eq 'FS::cust_bill_pkg'; - push @{ $packagemap{$_->pkgnum}->_cust_tax_exempt_pkg }, - splice( @{ $_->_cust_tax_exempt_pkg } ); + + my @cust_tax_exempt_pkg = splice( @{ $_->_cust_tax_exempt_pkg } ); + + next unless @cust_tax_exempt_pkg; #just avoiding the prob when irrelevant? + die "can't distribute tax exemptions: no line item for ". Dumper($_). + " in packagemap ". join(',', sort {$a<=>$b} keys %packagemap). "\n" + unless $packagemap{$_->pkgnum}; + + push @{ $packagemap{$_->pkgnum}->_cust_tax_exempt_pkg }, + @cust_tax_exempt_pkg; } } |