summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2014-06-05 13:24:10 -0700
committerMark Wells <mark@freeside.biz>2014-06-05 13:24:10 -0700
commitc0660bdfce760cc982a145fc3aebaaec911fc32a (patch)
tree6e184f839495e3469cde7c133d627ad44586c43c
parent16453ebdacf7dc86d045a40eab8427414d6488e4 (diff)
external taxes: avoid failing when the package has taxproductnums but no default taxproductnum, fallout from #25899
-rw-r--r--FS/FS/part_pkg.pm7
1 files changed, 7 insertions, 0 deletions
diff --git a/FS/FS/part_pkg.pm b/FS/FS/part_pkg.pm
index e85da9da2..036daf705 100644
--- a/FS/FS/part_pkg.pm
+++ b/FS/FS/part_pkg.pm
@@ -1390,12 +1390,19 @@ sub tax_rates {
$self->part_pkg_taxoverride($class);
if (!@taxclassnums) {
my $part_pkg_taxproduct = $self->taxproduct($class);
+ # If this isn't defined, then the class has no taxproduct designation,
+ # so return no tax rates.
+ return () if !$part_pkg_taxproduct;
+
+ # convert the taxproduct to the tax classes that might apply to it in
+ # $geocode
@taxclassnums = map { $_->taxclassnum }
grep { $_->taxable eq 'Y' } # why do we need this?
$part_pkg_taxproduct->part_pkg_taxrate($geocode);
}
return unless @taxclassnums;
+ # then look up the actual tax_rate entries
warn "Found taxclassnum values of ". join(',', @taxclassnums) ."\n"
if $DEBUG;
my $extra_sql = "AND taxclassnum IN (". join(',', @taxclassnums) . ")";