-<%
-#
-# $Id: cust_main_county.cgi,v 1.1 2001-07-30 07:36:03 ivan Exp $
-#
-# ivan@sisd.com 97-dec-13
-#
-# Changes to allow page to work at a relative position in server
-# bmccane@maxbaud.net 98-apr-3
-#
-# lose background, FS::CGI ivan@sisd.com 98-sep-2
-#
-# $Log: cust_main_county.cgi,v $
-# Revision 1.1 2001-07-30 07:36:03 ivan
-# templates!!!
-#
-# Revision 1.7 1999/04/09 04:22:34 ivan
-# also table()
-#
-# Revision 1.6 1999/04/09 03:52:55 ivan
-# explicit & for table/itable/ntable
-#
-# Revision 1.5 1999/01/19 05:13:26 ivan
-# for mod_perl: no more top-level my() variables; use vars instead
-# also the last s/create/new/;
-#
-# Revision 1.4 1999/01/18 09:41:16 ivan
-# all $cgi->header calls now include ( '-expires' => 'now' ) for mod_perl
-# (good idea anyway)
-#
-# Revision 1.3 1998/12/17 05:25:18 ivan
-# fix visual and other bugs
-#
-# Revision 1.2 1998/11/18 09:01:34 ivan
-# i18n! i18n!
-#
-
-use strict;
-use vars qw( $cgi $p $cust_main_county );
-use CGI;
-use CGI::Carp qw(fatalsToBrowser);
-use FS::UID qw(cgisuidsetup swapuid);
-use FS::Record qw(qsearch qsearchs);
-use FS::CGI qw(header menubar popurl table);
-use FS::cust_main_county;
-
-$cgi = new CGI;
-
-&cgisuidsetup($cgi);
-
-$p = popurl(2);
-
-print $cgi->header( '-expires' => 'now' ), header("Tax Rate Listing", menubar(
- 'Main Menu' => $p,
+<%= include('/elements/header.html', "Tax Rate Listing", menubar(
'Edit tax rates' => $p. "edit/cust_main_county.cgi",
-)),<<END;
+)) %>
+
Click on <u>expand country</u> to specify a country's tax rates by state.
<BR>Click on <u>expand state</u> to specify a state's tax rates by county.
- <BR><BR>
-END
-print &table(), <<END;
- <TR>
- <TH><FONT SIZE=-1>Country</FONT></TH>
- <TH><FONT SIZE=-1>State</FONT></TH>
- <TH>County</TH>
- <TH><FONT SIZE=-1>Tax</FONT></TH>
- </TR>
-END
-
-foreach $cust_main_county ( qsearch('cust_main_county',{}) ) {
- my($hashref)=$cust_main_county->hashref;
- print <<END;
+
+<%
+my $conf = new FS::Conf;
+my $enable_taxclasses = $conf->exists('enable_taxclasses');
+
+if ( $enable_taxclasses ) { %>
+
+ <BR>Click on <u>expand taxclasses</u> to specify tax classes
+
+<% } %>
+
+<BR><BR>
+<%= table() %>
+
+ <TR>
+ <TH><FONT SIZE=-1>Country</FONT></TH>
+ <TH><FONT SIZE=-1>State</FONT></TH>
+ <TH>County</TH>
+ <TH>Taxclass<BR><FONT SIZE=-1>(per-package classification)</FONT></TH>
+ <TH>Tax name<BR><FONT SIZE=-1>(printed on invoices)</FONT></TH>
+ <TH><FONT SIZE=-1>Tax</FONT></TH>
+ <TH><FONT SIZE=-1>Exemption</TH>
+ </TR>
+
+<%
+my @regions = sort { $a->country cmp $b->country
+ or $a->state cmp $b->state
+ or $a->county cmp $b->county
+ or $a->taxclass cmp $b->taxclass
+ } qsearch('cust_main_county',{});
+
+my $sup=0;
+#foreach $cust_main_county ( @regions ) {
+for ( my $i=0; $i<@regions; $i++ ) {
+ my $cust_main_county = $regions[$i];
+ my $hashref = $cust_main_county->hashref;
+
+ %>
<TR>
- <TD>$hashref->{country}</TD>
-END
- print "<TD>", $hashref->{state}
- ? $hashref->{state}
- : qq!(ALL) <FONT SIZE=-1>!.
- qq!<A HREF="${p}edit/cust_main_county-expand.cgi?!. $hashref->{taxnum}.
- qq!">expand country</A></FONT>!
- , "</TD>";
- print "<TD>";
- if ( $hashref->{county} ) {
- print $hashref->{county};
+ <TD BGCOLOR="#ffffff"><%= $hashref->{country} %></TD>
+
+ <%
+
+ my $j;
+ if ( $sup ) {
+ $sup--;
} else {
- print "(ALL)";
- if ( $hashref->{state} ) {
- print qq!<FONT SIZE=-1>!.
- qq!<A HREF="${p}edit/cust_main_county-expand.cgi?!. $hashref->{taxnum}.
- qq!">expand state</A></FONT>!;
+
+ #lookahead
+ for ( $j=1; $i+$j<@regions; $j++ ) {
+ last if $hashref->{country} ne $regions[$i+$j]->country
+ || $hashref->{state} ne $regions[$i+$j]->state
+ || $hashref->{tax} != $regions[$i+$j]->tax
+ || $hashref->{exempt_amount} != $regions[$i+$j]->exempt_amount
+ || $hashref->{setuptax} ne $regions[$i+$j]->setuptax
+ || $hashref->{recurtax} ne $regions[$i+$j]->recurtax;
+ }
+
+ my $newsup=0;
+ if ( $j>1 && $i+$j+1 < @regions
+ && ( $hashref->{state} ne $regions[$i+$j+1]->state
+ || $hashref->{country} ne $regions[$i+$j+1]->country
+ )
+ && ( ! $i
+ || $hashref->{state} ne $regions[$i-1]->state
+ || $hashref->{country} ne $regions[$i-1]->country
+ )
+ ) {
+ $sup = $j-1;
+ } else {
+ $j = 1;
}
- }
- print "</TD>";
- print <<END;
- <TD>$hashref->{tax}%</TD>
- </TR>
-END
+ %>
+
+ <TD ROWSPAN=<%= $j %><%=
+ $hashref->{state}
+ ? ' BGCOLOR="#ffffff">'. $hashref->{state}
+ : qq! BGCOLOR="#cccccc">(ALL) <FONT SIZE=-1>!.
+ qq!<A HREF="${p}edit/cust_main_county-expand.cgi?!. $hashref->{taxnum}.
+ qq!">expand country</A></FONT>!
+ %>
+ <% if ( $j>1 ) { %>
+ <FONT SIZE=-1><A HREF="<%= $p %>edit/process/cust_main_county-collapse.cgi?<%= $hashref->{taxnum} %>">collapse state</A></FONT>
+ <% } %>
+
+ </TD>
+ <% } %>
+
+<% # $sup=$newsup; %>
+
+ <TD<% if ( $hashref->{county} ) {
+ %> BGCOLOR="#ffffff"><%= $hashref->{county} %>
+ <% } else {
+ %> BGCOLOR="#cccccc">(ALL)
+ <% if ( $hashref->{state} ) { %>
+ <FONT SIZE=-1><A HREF="<%= $p %>edit/cust_main_county-expand.cgi?<%= $hashref->{taxnum} %>">expand state</A></FONT>
+ <% } %>
+ <% } %>
+ </TD>
+
+ <TD<% if ( $hashref->{taxclass} ) {
+ %> BGCOLOR="#ffffff"><%= $hashref->{taxclass} %>
+ <% } else {
+ %> BGCOLOR="#cccccc">(ALL)
+ <% if ( $enable_taxclasses ) { %>
+ <FONT SIZE=-1><A HREF="<%= $p %>edit/cust_main_county-expand.cgi?taxclass<%= $hashref->{taxnum} %>">expand taxclasses</A></FONT>
+ <% } %>
+ <% } %>
+ </TD>
+
+ <TD<% if ( $hashref->{taxname} ) {
+ %> BGCOLOR="#ffffff"><%= $hashref->{taxname} %>
+ <% } else {
+ %> BGCOLOR="#cccccc">Tax
+ <% } %>
+ </TD>
+
+ <TD BGCOLOR="#ffffff"><%= $hashref->{tax} %>%</TD>
+
+ <TD BGCOLOR="#ffffff">
+
+ <% if ( $hashref->{exempt_amount} > 0 ) { %>
+ $<%= sprintf("%.2f", $hashref->{exempt_amount} ) %> per month<BR>
+ <% } %>
+
+ <% if ( $hashref->{setuptax} =~ /^Y$/i ) { %>
+ Setup fee<BR>
+ <% } %>
+
+ <% if ( $hashref->{recurtax} =~ /^Y$/i ) { %>
+ Recurring fee<BR>
+ <% } %>
+
+ </TD>
+
+ </TR>
-}
+<% } %>
-print <<END;
- </TABLE>
- </CENTER>
- </BODY>
-</HTML>
-END
+</TABLE>
-%>
+<%= include('/elements/footer.html') %>