diff options
author | ivan <ivan> | 2009-06-30 19:38:57 +0000 |
---|---|---|
committer | ivan <ivan> | 2009-06-30 19:38:57 +0000 |
commit | 443150b6184876c967adffa199c20f53d5b76075 (patch) | |
tree | 69cb79e2d3e8dc593916f81c24c60f55e9eba937 /httemplate | |
parent | a70239efdaeddf0b20fea7f5126a2e3f0a962eb6 (diff) |
disabling a taxclass, RT#5472
Diffstat (limited to 'httemplate')
-rw-r--r-- | httemplate/browse/part_pkg_taxclass.html | 27 | ||||
-rw-r--r-- | httemplate/edit/part_pkg_taxclass.html | 43 | ||||
-rw-r--r-- | httemplate/edit/process/part_pkg_taxclass.html | 58 | ||||
-rw-r--r-- | httemplate/elements/menu.html | 2 | ||||
-rw-r--r-- | httemplate/elements/select-taxclass.html | 4 | ||||
-rw-r--r-- | httemplate/elements/tr-select-taxclass.html | 4 |
6 files changed, 61 insertions, 77 deletions
diff --git a/httemplate/browse/part_pkg_taxclass.html b/httemplate/browse/part_pkg_taxclass.html new file mode 100644 index 000000000..04e0e23d6 --- /dev/null +++ b/httemplate/browse/part_pkg_taxclass.html @@ -0,0 +1,27 @@ +<% include( 'elements/browse.html', + 'title' => 'Tax Classes', + 'name_singular' => 'tax class', + 'menubar' => [ 'Add a new tax class' => + $p.'edit/part_pkg_taxclass.html', + ], + 'query' => { 'table' => 'part_pkg_taxclass', }, + 'count_query' => 'SELECT COUNT(*) FROM part_pkg_taxclass', + 'header' => [ '#', 'Device type' ], + 'fields' => [ 'taxclassnum', + 'taxclass', + ], + 'links' => [ $link, + $link, + ], + 'disableable' => 1, + 'disabled_statuspos' => 1, + ) +%> +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); + +my $link = [ "${p}edit/part_pkg_taxclass.html?", 'taxclassnum' ]; + +</%init> diff --git a/httemplate/edit/part_pkg_taxclass.html b/httemplate/edit/part_pkg_taxclass.html index e76705722..ad030449f 100644 --- a/httemplate/edit/part_pkg_taxclass.html +++ b/httemplate/edit/part_pkg_taxclass.html @@ -1,32 +1,23 @@ -<% include('/elements/header.html', "$action taxclass") %> - -<% include('/elements/error.html') %> - -<FORM ACTION="<% $p1 %>process/part_pkg_taxclass.html" METHOD=POST> - -<INPUT TYPE="hidden" NAME="taxclassnum" VALUE=""> - -Tax class <INPUT TYPE="text" NAME="taxclass" VALUE="<% $taxclass |h %>"> - -<BR><BR> -<INPUT TYPE="submit" VALUE="<% $action %> taxclass"> - -</FORM> - -<% include('/elements/footer.html') %> - +<% include('elements/edit.html', + 'name_singular' => 'tax class', + 'table' => 'part_pkg_taxclass', + 'labels' => { + 'taxclassnum' => 'Tax class', + 'taxclass' => 'Tax class', + 'disabled' => 'Disabled', + }, + 'fields' => [ 'taxclass', + { 'field' => 'disabled', + 'type' => 'checkbox', + 'value' => 'Y', + }, + ], + 'viewall_dir' => 'browse', + ) +%> <%init> die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); -my $taxclass = ''; -if ( $cgi->param('error') ) { - $taxclass = $cgi->param('taxclass'); -} - -my $action = 'Add'; - -my $p1 = popurl(1); - </%init> diff --git a/httemplate/edit/process/part_pkg_taxclass.html b/httemplate/edit/process/part_pkg_taxclass.html index 8f149bb94..b37279fb3 100644 --- a/httemplate/edit/process/part_pkg_taxclass.html +++ b/httemplate/edit/process/part_pkg_taxclass.html @@ -1,53 +1,17 @@ -% if ( $error ) { -% $cgi->param('error', $error); -<% $cgi->redirect(popurl(2). "part_pkg_taxclass.html?". $cgi->query_string ) %> -%} else { -<% $cgi->redirect(popurl(3). "browse/cust_main_county.cgi?taxclass=". uri_escape($part_pkg_taxclass->taxclass) ) %> -%} +<% include( 'elements/process.html', + 'table' => 'part_pkg_taxclass', + 'redirect' => sub { + my( $cgi, $part_pkg_taxclass ) = @_; + + popurl(3). 'browse/cust_main_county.cgi?'. + 'taxclass='. uri_escape($part_pkg_taxclass->taxclass). + ';dummy='; + }, + ) +%> <%init> die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); -my $part_pkg_taxclass = new FS::part_pkg_taxclass { - 'taxclass' => $cgi->param('taxclass'), -}; - -#maybe this whole thing should be in a transaction. at some point, no biggie -#none of the follow-up stuff will fail unless there's a more serious problem -#than a hanging record in part_pkg_taxclass... - -my $error = $part_pkg_taxclass->insert; - -unless ( $error ) { - #auto-add the new taxclass to any regions that have taxclasses already - - my $sth = dbh->prepare(" - SELECT country, state, county FROM cust_main_county - WHERE taxclass IS NOT NULL AND taxclass != '' - GROUP BY country, state, county - ") or die dbh->errstr; - $sth->execute or die $sth->errstr; - - while ( my $row = $sth->fetchrow_hashref ) { - warn "inserting for $row"; - my $cust_main_county = new FS::cust_main_county { - 'country' => $row->{country}, - 'state' => $row->{state}, - 'county' => $row->{county}, - 'tax' => 0, - 'taxclass' => $part_pkg_taxclass->taxclass, - #exempt_amount - #taxname - #setuptax - #recurtax - }; - $error = $cust_main_county->insert; - #last if $error; - die $error if $error; - } - - -} - </%init> diff --git a/httemplate/elements/menu.html b/httemplate/elements/menu.html index b855f790c..c9adb169e 100644 --- a/httemplate/elements/menu.html +++ b/httemplate/elements/menu.html @@ -319,6 +319,8 @@ if ( $curuser->access_right('Configuration') ) { $config_billing{'View/Edit call rates and regions'} = [ \%config_billing_rates, 'Manage rate plans, regions and prefixes for VoIP and call billing' ]; $config_billing{'View/Edit locales and tax rates (old tax class system)'} = [ $fsurl.'browse/cust_main_county.cgi', 'Change tax rates, or break down a country into states, or a state into counties and assign different tax rates to each' ]; $config_billing{'View/Edit tax rates (new tax products system)'} = [ $fsurl.'browse/tax_rate.cgi', 'Edit tax rates for the new tax products system' ]; + $config_billing{'View/Edit tax classes'} = [ $fsurl.'browse/part_pkg_taxclass.html', 'Edit tax classes' ] + if $conf->exists('enable_taxclasses'); $config_billing{'View/Edit credit reason types'} = [ $fsurl.'browse/reason_type.html?class=R', 'Credit reason types define groups of reasons, for reporting and convenience purposes.' ]; $config_billing{'View/Edit credit reasons'} = [ $fsurl.'browse/reason.html?class=R', 'Credit reasons explain why a credit was issued.' ]; } diff --git a/httemplate/elements/select-taxclass.html b/httemplate/elements/select-taxclass.html index 2504a5b1d..fb09cfdb9 100644 --- a/httemplate/elements/select-taxclass.html +++ b/httemplate/elements/select-taxclass.html @@ -30,9 +30,9 @@ my $conf = new FS::Conf; unless ( $opt{'taxclasses'} ) { #my $sth = dbh->prepare('SELECT DISTINCT taxclass FROM cust_main_county') - my $sth = dbh->prepare('SELECT taxclass FROM part_pkg_taxclass') + my $sth = dbh->prepare("SELECT taxclass FROM part_pkg_taxclass WHERE disabled IS NULL OR disabled = '' OR taxclass = ?") or die dbh->errstr; - $sth->execute or die $sth->errstr; + $sth->execute($selected_taxclass) or die $sth->errstr; my %taxclasses = map { $_->[0] => 1 } @{$sth->fetchall_arrayref}; @{ $opt{'taxclasses'} } = grep $_, keys %taxclasses; diff --git a/httemplate/elements/tr-select-taxclass.html b/httemplate/elements/tr-select-taxclass.html index 981c1a5f2..95cabf7f7 100644 --- a/httemplate/elements/tr-select-taxclass.html +++ b/httemplate/elements/tr-select-taxclass.html @@ -23,9 +23,9 @@ my $selected_taxclass = $opt{'curr_value'}; # || $opt{'value'} necessary? unless ( $opt{'taxclasses'} ) { #my $sth = dbh->prepare('SELECT DISTINCT taxclass FROM cust_main_county') - my $sth = dbh->prepare('SELECT taxclass FROM part_pkg_taxclass') + my $sth = dbh->prepare("SELECT taxclass FROM part_pkg_taxclass WHERE disabled IS NULL OR disabled = '' OR taxclass = ?") or die dbh->errstr; - $sth->execute or die $sth->errstr; + $sth->execute($selected_taxclass) or die $sth->errstr; my %taxclasses = map { $_->[0] => 1 } @{$sth->fetchall_arrayref}; @{ $opt{'taxclasses'} } = grep $_, keys %taxclasses; |