From: ivan Date: Sat, 27 Nov 2010 23:53:54 +0000 (+0000) Subject: with cch taxation, consider "account" taxes per- (distinct) location instead of per... X-Git-Tag: TORRUS_1_0_9~60 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=9ecfa8b0f9e53e0da37bfcd78a8b22133312613b;hp=756adba649caf934f50389ef89e6b2328a8d228b with cch taxation, consider "account" taxes per- (distinct) location instead of per -customer, RT#10248 --- 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 ); } + } #