From 9ecfa8b0f9e53e0da37bfcd78a8b22133312613b Mon Sep 17 00:00:00 2001 From: ivan Date: Sat, 27 Nov 2010 23:53:54 +0000 Subject: [PATCH] with cch taxation, consider "account" taxes per- (distinct) location instead of per -customer, RT#10248 --- FS/FS/tax_rate.pm | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/FS/FS/tax_rate.pm b/FS/FS/tax_rate.pm index b518a3771..ef4333ba9 100644 --- a/FS/FS/tax_rate.pm +++ b/FS/FS/tax_rate.pm @@ -443,20 +443,30 @@ sub taxline { my $taxable_units = 0; unless ($self->recurtax =~ /^Y$/i) { - if (( $self->unittype || 0 ) == 0) { + + if (( $self->unittype || 0 ) == 0) { #access line my %seen = (); foreach (@cust_bill_pkg) { $taxable_units += $_->units - unless $seen{$_->pkgnum}; - $seen{$_->pkgnum}++; + unless $seen{$_->pkgnum}++; } - }elsif ($self->unittype == 1) { + + } elsif ($self->unittype == 1) { #minute return $self->_fatal_or_null( 'fee with minute unit type' ); - }elsif ($self->unittype == 2) { - $taxable_units = 1; - }else { + + } elsif ($self->unittype == 2) { #account + #$taxable_units = 1; + #number of distinct locations + my %seen = (); + foreach (@cust_bill_pkg) { + $taxable_units++ + unless $seen{$_->cust_pkg->locationnum}++; + } + + } else { return $self->_fatal_or_null( 'unknown unit type in tax'. $self->taxnum ); } + } # -- 2.11.0