summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
authorivan <ivan>2009-06-30 19:38:57 +0000
committerivan <ivan>2009-06-30 19:38:57 +0000
commit443150b6184876c967adffa199c20f53d5b76075 (patch)
tree69cb79e2d3e8dc593916f81c24c60f55e9eba937 /httemplate
parenta70239efdaeddf0b20fea7f5126a2e3f0a962eb6 (diff)
disabling a taxclass, RT#5472
Diffstat (limited to 'httemplate')
-rw-r--r--httemplate/browse/part_pkg_taxclass.html27
-rw-r--r--httemplate/edit/part_pkg_taxclass.html43
-rw-r--r--httemplate/edit/process/part_pkg_taxclass.html58
-rw-r--r--httemplate/elements/menu.html2
-rw-r--r--httemplate/elements/select-taxclass.html4
-rw-r--r--httemplate/elements/tr-select-taxclass.html4
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;