projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
tower tracking, RT#15538
[freeside.git]
/
FS
/
FS
/
tax_rate.pm
diff --git
a/FS/FS/tax_rate.pm
b/FS/FS/tax_rate.pm
index
12cdc4f
..
48c0196
100644
(file)
--- a/
FS/FS/tax_rate.pm
+++ b/
FS/FS/tax_rate.pm
@@
-1196,9
+1196,14
@@
sub _cch_extract_csv_from_dbf {
$date;
};
while (my $row = $cursor->fetch_hashref) {
$date;
};
while (my $row = $cursor->fetch_hashref) {
- $csv->combine( map { ($table->field_type($_) eq 'D')
- ? &{$format_date}($row->{$_})
- : $row->{$_}
+ $csv->combine( map { my $type = $table->field_type($_);
+ if ($type eq 'D') {
+ &{$format_date}($row->{$_}) ;
+ } elsif ($type eq 'N' && $row->{$_} =~ /e-/i ) {
+ sprintf('%.8f', $row->{$_}); #db row is numeric(14,8)
+ } else {
+ $row->{$_};
+ }
}
@fields
);
}
@fields
);
@@
-1892,28
+1897,31
@@
sub generate_liability_report {
$taxes{$label}->{'url_param'} =
join(';', map { "$_=". uri_escape($t->$_) } @params);
$taxes{$label}->{'url_param'} =
join(';', map { "$_=". uri_escape($t->$_) } @params);
- my $taxwhere = "FROM cust_bill_pkg $addl_from $where AND payby != 'COMP' ".
- "AND ". FS::tax_rate_location->location_sql( map { $_ => $t->$_ }
- @taxparams
- );
+ my $payby_itemdesc_loc =
+ " payby != 'COMP' ".
+ "AND ( itemdesc = ? OR ? = '' AND itemdesc IS NULL ) ".
+ "AND ". FS::tax_rate_location->location_sql( map { $_ => $t->$_ }
+ @taxparams
+ );
+
+ my $taxwhere =
+ "FROM cust_bill_pkg $addl_from $where AND $payby_itemdesc_loc";
my $sql = "SELECT SUM(amount) $taxwhere AND cust_bill_pkg.pkgnum = 0";
my $sql = "SELECT SUM(amount) $taxwhere AND cust_bill_pkg.pkgnum = 0";
- my $x = &{$scalar_sql}($t, [], $sql );
+ my $x = &{$scalar_sql}($t, [
'itemdesc', 'itemdesc'
], $sql );
$tax += $x;
$taxes{$label}->{'tax'} += $x;
$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
- );
+ my $creditfrom =
+ "JOIN cust_credit_bill_pkg USING (billpkgnum,billpkgtaxratelocationnum)";
+ my $creditwhere =
+ "FROM cust_bill_pkg $addl_from $creditfrom $where AND $payby_itemdesc_loc";
$sql = "SELECT SUM(cust_credit_bill_pkg.amount) ".
" $creditwhere AND cust_bill_pkg.pkgnum = 0";
$sql = "SELECT SUM(cust_credit_bill_pkg.amount) ".
" $creditwhere AND cust_bill_pkg.pkgnum = 0";
- my $y = &{$scalar_sql}($t, [], $sql );
+ my $y = &{$scalar_sql}($t, [
'itemdesc', 'itemdesc'
], $sql );
$credit += $y;
$taxes{$label}->{'credit'} += $y;
$credit += $y;
$taxes{$label}->{'credit'} += $y;