1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
%# by default, only show default
<TR>
<TH ALIGN="right"><% emt('Tax product') %></TH>
<TD><& select-taxproduct.html,
%opt,
'field' => $field.'_', # expected in edit/process/part_pkg
'curr_value' => $curr_values{''},
&>
</TD>
</TR>
% if ( !$separate ) {
<TR STYLE="font-size: small">
<TD></TD>
<TD>
<BUTTON TYPE="button" ID="show_taxproduct_class">By usage class
<IMG SRC="<%$fsurl%>images/arrow.down.black.png">
</BUTTON>
</TD>
</TR>
<SCRIPT TYPE="text/javascript">
$().ready(function() {
$('#show_taxproduct_class').on('click', function() {
this.disabled = true;
$('tr.taxproduct_class').show();
});
});
</SCRIPT>
% }
% foreach my $usage_class (@classes) {
% my $classnum = $usage_class->classnum;
<TR CLASS="taxproduct_class" STYLE="<% $separate ? '' : 'display:none' %>">
<TH ALIGN="right"><% $usage_class->classname %></TH>
<TD><& select-taxproduct.html,
%opt,
'field' => $field.'_'.$classnum,
'curr_value' => $curr_values{$classnum},
&>
</TD>
</TR>
% }
<%init>
my %opt = @_;
my $field = delete($opt{field}) || 'taxproductnum';
my @classes = qsearch('usage_class', { 'disabled' => '' });
unshift @classes,
FS::usage_class->new({ 'classnum' => 'setup', 'classname' => 'Setup', }),
FS::usage_class->new({ 'classnum' => 'recur', 'classname' => 'Recur', }),
;
my $separate = 0; # will change to 1 if any non-default classes have values
my $pkgpart = delete($opt{pkgpart});
my %curr_values;
my %pkg_options;
if ($pkgpart) {
my $part_pkg = FS::part_pkg->by_key($pkgpart);
%pkg_options = $part_pkg->options;
$curr_values{''} = $cgi->param('taxproductnum')
|| $part_pkg->taxproductnum;
}
foreach my $usage_class (@classes) {
my $classnum = $usage_class->classnum;
my $curr_value =
$cgi->param("usage_taxproductnum_$classnum")
|| $pkg_options{"usage_taxproductnum_$classnum"}
|| '';
$curr_values{$classnum} = $curr_value;
$separate = 1 if ( length($classnum) and length($curr_value) );
}
</%init>
|