2 <% $cgi->redirect(popurl(2).'enable_or_disable_tax.html?'.$cgi->query_string) %>
4 <% include('/elements/header-popup.html', $title) %>
6 <SCRIPT TYPE="text/javascript">
7 window.top.location.reload();
16 unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
19 if ( $cgi->param('action') =~ /^(\w+)$/ ) {
24 if ( $cgi->param('data_vendor') =~ /^(\w+)$/ ) {
29 if ( $cgi->param('geocode') =~ /^(\w+)$/ ) {
34 if ( $cgi->param('taxclassnum') =~ /^(\d+)$/ ) {
36 my $tax_class = qsearchs('tax_class', {'taxclassnum' => $taxclassnum});
42 if ( $cgi->param('tax_type') =~ /^(\d+)$/ );
44 if ( $cgi->param('tax_cat') =~ /^(\d+)$/ );
47 if ($tax_type || $tax_cat ) {
48 my $compare = "LIKE '". ( $tax_type || "%" ). ":". ( $tax_cat || "%" ). "'";
49 $compare = "= '$tax_type:$tax_cat'" if ($tax_type && $tax_cat);
51 qsearch({ 'table' => 'tax_class',
53 'extra_sql' => "WHERE taxclass $compare",
56 @taxclassnum = map { $_->taxclassnum } @tax_class;
57 $tax_class[0]->description =~ /^(.*):(.*)/;
66 $extra_sql .= ' WHERE data_vendor = '. dbh->quote($data_vendor);
70 $extra_sql .= ( $extra_sql =~ /WHERE/i ? ' AND ' : ' WHERE ' ).
71 ' geocode LIKE '. dbh->quote($geocode.'%');
75 $extra_sql .= ( $extra_sql =~ /WHERE/i ? ' AND ' : ' WHERE ' ).
76 ' taxclassnum = '. dbh->quote($taxclassnum);
80 $extra_sql .= ( $extra_sql =~ /WHERE/i ? ' AND ' : ' WHERE ' ).
81 join(' OR ', map { " taxclassnum = $_ " } @taxclassnum );
84 my @tax_rate = qsearch({ 'table' => 'tax_rate',
86 'extra_sql' => $extra_sql,
91 $error = "Invalid action" unless ($action =~ /enable|disable/);
93 foreach my $tax_rate (@tax_rate) {
94 $action eq 'enable' ? $tax_rate->setuptax('') : $tax_rate->setuptax('Y');
95 $action eq 'enable' ? $tax_rate->recurtax('') : $tax_rate->recurtax('Y');
96 # $tax_rate->manual('Y');
97 $error ||= $tax_rate->replace;
100 $cgi->param('error', $error) if $error;
102 my $title = scalar(@tax_rate) == 1 ? 'Tax rate ' : 'Tax rates ';
103 $title .= lc($action). 'd';