-foreach my $t (qsearch({ table => 'cust_bill_pkg',
- select => 'DISTINCT itemdesc',
- hashref => { pkgpart => 0 },
- addl_from => $join_cust,
- extra_sql => $where,
- })
- )
-{
+ my $x = scalar_sql($t, [], $sql );
+ $tax += $x;
+ $taxes{$label}->{'tax'} += $x;
+
+ my $creditfrom = " JOIN cust_credit_bill_pkg USING (billpkgnum,billpkgtaxratelocationnum) ";
+ my $creditwhere = "FROM cust_bill_pkg $addl_from $creditfrom $where ".
+ "AND payby != 'COMP' ".
+ "AND ". FS::tax_rate_location->location_sql( map { $_ => $t->$_ }
+ @taxparams
+ );
+
+ $sql = "SELECT SUM(cust_credit_bill_pkg.amount) ".
+ " $creditwhere AND cust_bill_pkg.pkgnum = 0";
+
+ my $y = scalar_sql($t, [], $sql );
+ $credit += $y;
+ $taxes{$label}->{'credit'} += $y;
+
+ unless ( exists( $taxes{$baselabel} ) ) {