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 44181eb7c..5efeb8268 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;      }    }  | 
