X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fsearch%2Freport_tax-xls.cgi;h=30b32e8d861936fc398eef9e2e794e98f69b173a;hp=9b02457b01456d776418165a8bcd4ea7f22ec5a5;hb=3f2a7b01b59902faed5767d81e2959e131bdbdfd;hpb=83a9d7e9afedfa270dcdf942df04fb50989afc4f diff --git a/httemplate/search/report_tax-xls.cgi b/httemplate/search/report_tax-xls.cgi index 9b02457b0..30b32e8d8 100755 --- a/httemplate/search/report_tax-xls.cgi +++ b/httemplate/search/report_tax-xls.cgi @@ -13,9 +13,7 @@ my %params = ( beginning => $beginning, ending => $ending, ); -$params{country} = $cgi->param('country'); $params{debug} = $DEBUG; -$params{breakdown} = { map { $_ => 1 } $cgi->param('breakdown') }; my $agentname; if ( $cgi->param('agentnum') =~ /^(\d+)$/ ) { @@ -24,14 +22,38 @@ if ( $cgi->param('agentnum') =~ /^(\d+)$/ ) { $agentname = $agent->agentname; } -if ( $cgi->param('taxname') =~ /^([\w ]+)$/ ) { - $params{taxname} = $1; +# credit date behavior: limit by the date of the credit application, or +# the invoice? +if ( $cgi->param('credit_date') eq 'cust_credit_bill' ) { + $params{credit_date} = 'cust_credit_bill'; } else { - die "taxname required"; + $params{credit_date} = 'cust_bill'; +} + +my $all = $cgi->param('all'); +my $report_class; + +if ( $all ) { + $report_class = 'FS::Report::Tax::All'; +} else { + $report_class = 'FS::Report::Tax::ByName'; + $params{country} = $cgi->param('country'); + $params{breakdown} = { map { $_ => 1 } $cgi->param('breakdown') }; + + # allow anything in here; FS::Report::Tax will treat it as unsafe + if ( length($cgi->param('taxname')) ) { + $params{taxname} = $cgi->param('taxname'); + } else { + die "taxname required"; + } +} + +if ($DEBUG) { + warn "REPORT: $report_class\nPARAMS:\n".Dumper(\%params)."\n\n"; } # generate the report -my $report = FS::Report::Tax->report_internal(%params); +my $report = $report_class->report(%params); my @rows = $report->table; # array of hashrefs my %pkgclass_name = map { $_->classnum, $_->classname } qsearch('pkg_class'); @@ -207,11 +229,11 @@ foreach my $row (@rows) { $x++; $ws->write_string($y, $x, " \N{U+2212} ", $f->{bigmath}); # MINUS SIGN $x++; - $ws->write($y, $x, $row->{credit} || 0, $f->{currency}); + $ws->write($y, $x, $row->{tax_credited} || 0, $f->{currency}); $x++; $ws->write_string($y, $x, " = ", $f->{bigmath}); $x++; - $ws->write($y, $x, $row->{tax} - $row->{credit}, $f->{currency}); + $ws->write($y, $x, $row->{tax} - $row->{tax_credited}, $f->{currency}); $x++; $ws->write($y, $x, $row->{tax_paid} || 0, $f->{currency});