1 %# by default, only show default
3 <TH ALIGN="right"><% emt('Tax product') %></TH>
4 <TD><& select-taxproduct.html,
6 'field' => $field.'_', # expected in edit/process/part_pkg
7 'curr_value' => $curr_values{''},
12 <TR STYLE="font-size: small">
15 <BUTTON TYPE="button" ID="show_taxproduct_class">By usage class
16 <IMG SRC="<%$fsurl%>images/arrow.down.black.png">
20 <SCRIPT TYPE="text/javascript">
21 $().ready(function() {
22 $('#show_taxproduct_class').on('click', function() {
24 $('tr.taxproduct_class').show();
29 % foreach my $usage_class (@classes) {
30 % my $classnum = $usage_class->classnum;
31 <TR CLASS="taxproduct_class" STYLE="<% $separate ? '' : 'display:none' %>">
32 <TH ALIGN="right"><% $usage_class->classname %></TH>
33 <TD><& select-taxproduct.html,
35 'field' => $field.'_'.$classnum,
36 'curr_value' => $curr_values{$classnum},
43 my $field = delete($opt{field}) || 'taxproductnum';
44 my @classes = qsearch('usage_class', { 'disabled' => '' });
46 FS::usage_class->new({ 'classnum' => 'setup', 'classname' => 'Setup', }),
47 FS::usage_class->new({ 'classnum' => 'recur', 'classname' => 'Recur', }),
49 my $separate = 0; # will change to 1 if any non-default classes have values
51 my $pkgpart = delete($opt{pkgpart});
55 my $part_pkg = FS::part_pkg->by_key($pkgpart);
56 %pkg_options = $part_pkg->options;
57 $curr_values{''} = $cgi->param('taxproductnum')
58 || $part_pkg->taxproductnum;
61 foreach my $usage_class (@classes) {
62 my $classnum = $usage_class->classnum;
64 $cgi->param("usage_taxproductnum_$classnum")
65 || $pkg_options{"usage_taxproductnum_$classnum"}
67 $curr_values{$classnum} = $curr_value;
68 $separate = 1 if ( length($classnum) and length($curr_value) );