diff options
author | Mark Wells <mark@freeside.biz> | 2016-09-06 12:42:34 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2016-09-06 13:30:56 -0700 |
commit | 91a6e5e58df70ffad1234cb80ab76eaeaf8359b9 (patch) | |
tree | ea607cc6d9e876a56f37d021676585880bc8fa7f /httemplate/browse | |
parent | 5a7d43dfb77b2dd9ddae36f4e188e80e8a6b5ec6 (diff) |
UI improvements for selecting taxproducts, #71555 and #71556
Diffstat (limited to 'httemplate/browse')
-rwxr-xr-x | httemplate/browse/part_pkg.cgi | 56 | ||||
-rwxr-xr-x | httemplate/browse/part_pkg_taxproduct/suretax.html | 3 |
2 files changed, 56 insertions, 3 deletions
diff --git a/httemplate/browse/part_pkg.cgi b/httemplate/browse/part_pkg.cgi index 1e8b51030..acc32113f 100755 --- a/httemplate/browse/part_pkg.cgi +++ b/httemplate/browse/part_pkg.cgi @@ -27,6 +27,19 @@ 'html_foot' => $html_foot, ) %> +<%def .style> +<STYLE TYPE="text/css"> + .taxproduct_desc { + color: blue; + text-decoration: underline dotted; + } +</STYLE> +<SCRIPT TYPE="text/javascript"> +$().ready(function() { + $('.taxproduct_desc').tooltip({}); +}); +</SCRIPT> +</%def> <%init> my $curuser = $FS::CurrentUser::CurrentUser; @@ -45,6 +58,7 @@ die "access denied" my $conf = new FS::Conf; my $taxclasses = $conf->exists('enable_taxclasses'); +my $taxvendor = $conf->config('tax_data_vendor'); my $money_char = $conf->config('money_char') || '$'; my $select = '*'; @@ -180,6 +194,7 @@ my $html_init = qq! </FORM> <BR><BR> !; +$html_init .= include('.style'); $cgi->param('dummy', 1); @@ -562,6 +577,43 @@ if ( $taxclasses ) { push @header, 'Taxclass'; push @fields, sub { shift->taxclass() || ' '; }; $align .= 'l'; +} elsif ( $taxvendor ) { + push @header, 'Tax product'; + my @classnums = ( 'setup', 'recur' ); + my @classnames = ( 'Setup', 'Recur' ); + foreach ( qsearch('usage_class', { disabled => '' }) ) { + push @classnums, $_->classnum; + push @classnames, $_->classname; + } + my $taxproduct_sub = sub { + my $ppt = shift; + '<SPAN CLASS="taxproduct_desc" TITLE="' . + encode_entities($ppt->description) . + '">' . encode_entities($ppt->taxproduct) . '</SPAN>' + }; + my $taxproduct_list_sub = sub { + my $part_pkg = shift; + my $base_ppt = $part_pkg->taxproduct; + my $out = []; + if ( $base_ppt ) { + push @$out, [ + { 'data' => '', 'align' => 'left' }, + { 'data' => &$taxproduct_sub($base_ppt), 'align' => 'right' }, + ]; + } + for (my $i = 0; $i < scalar @classnums; $i++) { + my $num = $part_pkg->option('usage_taxproductnum_' . $classnums[$i]); + next if !$num; + my $ppt = FS::part_pkg_taxproduct->by_key($num); + push @$out, [ + { 'data' => $classnames[$i] . ': ', 'align' => 'left', }, + { 'data' => &$taxproduct_sub($ppt), 'align' => 'right' }, + ]; + } + $out; + }; + push @fields, $taxproduct_list_sub; + $align .= 'l'; } # make a table of report class optionnames => the actual @@ -602,7 +654,9 @@ push @fields, sort grep { $options{$_} =~ /\S/ } grep { $_ !~ /^(setup|recur)_fee$/ - and $_ !~ /^report_option_\d+$/ } + and $_ !~ /^report_option_\d+$/ + and $_ !~ /^usage_taxproductnum_/ + } keys %options ); if ( @report_options ) { diff --git a/httemplate/browse/part_pkg_taxproduct/suretax.html b/httemplate/browse/part_pkg_taxproduct/suretax.html index 9c00c5c69..8f237f360 100755 --- a/httemplate/browse/part_pkg_taxproduct/suretax.html +++ b/httemplate/browse/part_pkg_taxproduct/suretax.html @@ -138,8 +138,7 @@ my $id = $cgi->param('id'); my $select_onclick = sub { my $row = shift; my $taxnum = $row->taxproductnum; - my $code = $row->taxproduct; - my $desc = $row->description; + my $desc = $row->taxproduct . ' ' . $row->description; "select_taxproduct('$taxnum', '$desc')"; }; |