X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fsearch%2Freport_tax.cgi;h=9062f06266d410ca1b1a079c78849ae1def4d639;hb=8f5c91d6c7a8dc85a8b6768a149b4c7b3e144c38;hp=bf3fc74ff06ebacf9421eed9480d864095879faa;hpb=e7438cef2fa745d473d7770bb0f6c37ff2dfd1e8;p=freeside.git diff --git a/httemplate/search/report_tax.cgi b/httemplate/search/report_tax.cgi index bf3fc74ff..9062f0626 100755 --- a/httemplate/search/report_tax.cgi +++ b/httemplate/search/report_tax.cgi @@ -1,5 +1,8 @@ <% +my $conf = new FS::Conf; +my $money_char = $conf->config('money_char') || '$'; + my $user = getotaker; my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi); @@ -44,7 +47,8 @@ my $gotcust = " "; my $monthly_exempt_warning = 0; -my($total, $taxable, $owed, $tax) = ( 0, 0, 0, 0, 0 ); +my $taxclass_flag = 0; +my($total, $tot_taxable, $owed, $tax) = ( 0, 0, 0, 0, 0 ); my( $exempt_cust, $exempt_pkg, $exempt_monthly ) = ( 0, 0 ); my $out = 'Out of taxable region(s)'; my %regions = (); @@ -53,7 +57,6 @@ foreach my $r (qsearch('cust_main_county', {}, '', $gotcust) ) { my $label = getlabel($r); $regions{$label}->{'label'} = $label; - $regions{$label}->{'url_param'} = join(';', map "$_=".$r->$_(), qw( county state country ) ); my $fromwhere = $from_join_cust. $join_pkg. $where; @@ -62,7 +65,9 @@ foreach my $r (qsearch('cust_main_county', {}, '', $gotcust) ) { if ( $r->taxclass ) { $fromwhere .= " AND taxclass = ? "; push @param, 'taxclass'; - $regions{$label}->{'url_param'} .= ';taxclass='. $r->taxclass; + $regions{$label}->{'url_param'} .= ';taxclass='. $r->taxclass + if $cgi->param('show_taxclasses'); + $taxclass_flag = 1; } # my $label = getlabel($r); @@ -146,7 +151,7 @@ foreach my $r (qsearch('cust_main_county', {}, '', $gotcust) ) { my $taxwhere = "$from_join_cust $where"; my @taxparam = @base_param; - +my %base_regions = (); #foreach my $label ( keys %regions ) { foreach my $r ( qsearch( 'cust_main_county', @@ -175,12 +180,26 @@ foreach my $r ( $tax += $x; $regions{$label}->{'tax'} += $x; + if ( $cgi->param('show_taxclasses') ) { + my $base_label = getlabel($r, 'no_taxclass'=>1 ); + $base_regions{$base_label}->{'label'} = $base_label; + $base_regions{$base_label}->{'url_param'} = + join(';', map "$_=".$r->$_(), qw( county state country ) ); + $base_regions{$base_label}->{'tax'} += $x; + } + } #ordering -my @regions = map $regions{$_}, - sort { ( ($a eq $out) cmp ($b eq $out) ) || ($b cmp $a) } - keys %regions; +my @regions = + map $regions{$_}, + sort { ( ($a eq $out) cmp ($b eq $out) ) || ($b cmp $a) } + keys %regions; + +my @base_regions = + map $base_regions{$_}, + sort { ( ($a eq $out) cmp ($b eq $out) ) || ($b cmp $a) } + keys %base_regions; push @regions, { 'label' => 'Total', @@ -199,6 +218,7 @@ push @regions, { sub getlabel { my $r = shift; + my %opt = @_; my $label; if ( @@ -223,7 +243,10 @@ sub getlabel { $label = $r->country; $label = $r->state.", $label" if $r->state; $label = $r->county." county, $label" if $r->county; - $label = "$label (". $r->taxclass. ")" if $r->taxclass; + $label = "$label (". $r->taxclass. ")" + if $r->taxclass + && $cgi->param('show_taxclasses') + && ! $opt{'no_taxclasses'}; #$label = $r->taxname. " ($label)" if $r->taxname; } return $label; @@ -251,7 +274,7 @@ my $baselink = $p. "search/cust_bill_pkg.cgi?begin=$beginning;end=$ending"; <%= header( "$agentname Sales Tax Report - ". time2str('%h %o %Y through ', $beginning ). - ( $cgi->param('ending') == 4294967295 + ( $ending == 4294967295 ? 'now' : time2str('%h %o %Y', $ending ) ), @@ -262,17 +285,25 @@ my $baselink = $p. "search/cust_bill_pkg.cgi?begin=$beginning;end=$ending"; <%= include('/elements/table-grid.html') %> - - Sales - Rate - Tax owed - Tax invoiced + + Sales + + Rate + + Tax owed + <% unless ( $cgi->param('show_taxclasses') ) { %> + Tax invoiced + <% } %> Total + Non-taxable
(tax-exempt customer) + Non-taxable
(tax-exempt package) + Non-taxable
(monthly exemption) + Taxable @@ -298,34 +329,94 @@ my $baselink = $p. "search/cust_bill_pkg.cgi?begin=$beginning;end=$ending"; } } %> + <%= $region->{'label'} %> - $<%= sprintf('%.2f', $region->{'total'} ) %> + <%= $money_char %><%= sprintf('%.2f', $region->{'total'} ) %> + - - $<%= sprintf('%.2f', $region->{'exempt_cust'} ) %> + <%= $money_char %><%= sprintf('%.2f', $region->{'exempt_cust'} ) %> + - - $<%= sprintf('%.2f', $region->{'exempt_pkg'} ) %> + <%= $money_char %><%= sprintf('%.2f', $region->{'exempt_pkg'} ) %> + - - $<%= sprintf('%.2f', $region->{'exempt_monthly'} ) %> + <%= $money_char %><%= sprintf('%.2f', $region->{'exempt_monthly'} ) %> + = - $<%= sprintf('%.2f', $region->{'taxable'} ) %> + <%= $money_char %><%= sprintf('%.2f', $region->{'taxable'} ) %> + <%= $region->{'label'} eq 'Total' ? '' : ' X ' %> <%= $region->{'rate'} %> + <%= $region->{'label'} eq 'Total' ? '' : ' = ' %> - $<%= sprintf('%.2f', $region->{'owed'} ) %> + <%= $money_char %><%= sprintf('%.2f', $region->{'owed'} ) %> + <% unless ( $cgi->param('show_taxclasses') ) { %> + + <%= $money_char %><%= sprintf('%.2f', $region->{'tax'} ) %> + + <% } %> + + + <% } %> + + + + +<% if ( $cgi->param('show_taxclasses') ) { %> + +
+ <%= include('/elements/table-grid.html') %> + + + Tax invoiced + + + <% #some false laziness w/above + foreach my $region ( @base_regions ) { + + if ( $bgcolor eq $bgcolor1 ) { + $bgcolor = $bgcolor2; + } else { + $bgcolor = $bgcolor1; + } + + my $link = $baselink; + #if ( $region->{'label'} ne 'Total' ) { + if ( $region->{'label'} eq $out ) { + $link .= ';out=1'; + } else { + $link .= ';'. $region->{'url_param'}; + } + #} + %> + + + <%= $region->{'label'} %> - $<%= sprintf('%.2f', $region->{'tax'} ) %> + <%= $money_char %><%= sprintf('%.2f', $region->{'tax'} ) %> + <% } %> - + + Total + + <%= $money_char %><%= sprintf('%.2f', $tax ) %> + + + + + +<% } %> + <% if ( $monthly_exempt_warning ) { %>