diff options
| author | ivan <ivan> | 2010-11-27 23:53:54 +0000 | 
|---|---|---|
| committer | ivan <ivan> | 2010-11-27 23:53:54 +0000 | 
| commit | 9ecfa8b0f9e53e0da37bfcd78a8b22133312613b (patch) | |
| tree | 18e6f32ef300aeb7a9e62caad1070758bd679aa9 /FS | |
| parent | 756adba649caf934f50389ef89e6b2328a8d228b (diff) | |
with cch taxation, consider "account" taxes per- (distinct) location instead of per -customer, RT#10248
Diffstat (limited to 'FS')
| -rw-r--r-- | FS/FS/tax_rate.pm | 24 | 
1 files 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 );      } +    }    # | 
