X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_main%2FBilling.pm;h=b588dc5cb5842fa7c67fc00d35f828b0eecf9a12;hb=eec4949e2c8f09a0b89331437186b77c4db6ff38;hp=0cd304b9d4f45607132a5768ebc0a6ad9c6ac3fc;hpb=b978a889dbdc5116775169cb2b19cb34eb8c6fcd;p=freeside.git diff --git a/FS/FS/cust_main/Billing.pm b/FS/FS/cust_main/Billing.pm index 0cd304b9d..b588dc5cb 100644 --- a/FS/FS/cust_main/Billing.pm +++ b/FS/FS/cust_main/Billing.pm @@ -1048,18 +1048,14 @@ sub _handle_taxes { ) { - if ( $conf->exists('tax-pkg_address') && $cust_pkg->locationnum ) { - return "fatal: Can't (yet) use tax-pkg_address with taxproducts"; - } - foreach my $class (@classes) { - my $err_or_ref = $self->_gather_taxes( $part_pkg, $class ); + my $err_or_ref = $self->_gather_taxes( $part_pkg, $class, $cust_pkg ); return $err_or_ref unless ref($err_or_ref); $taxes{$class} = $err_or_ref; } unless (exists $taxes{''}) { - my $err_or_ref = $self->_gather_taxes( $part_pkg, '' ); + my $err_or_ref = $self->_gather_taxes( $part_pkg, '', $cust_pkg ); return $err_or_ref unless ref($err_or_ref); $taxes{''} = $err_or_ref; } @@ -1226,11 +1222,14 @@ sub _gather_taxes { my $self = shift; my $part_pkg = shift; my $class = shift; + my $cust_pkg = shift; local($DEBUG) = $FS::cust_main::DEBUG if $FS::cust_main::DEBUG > $DEBUG; - my @taxes = (); my $geocode = $self->geocode('cch'); + $geocode = $cust_pkg->geocode('cch') + if ( $conf->exists('tax-pkg_address') && $cust_pkg->locationnum ); + my @taxes = (); my @taxclassnums = map { $_->taxclassnum } $part_pkg->part_pkg_taxoverride($class);