X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fbrowse%2Fpart_pkg.cgi;h=f25c00ef29a9b5b0919b157fe2b23981e8d1c30f;hb=d5988a9f7a3617de33da3058f2e9f1151b24420e;hp=1e8b510306dd8f6e034803a731da8b8dc7e819f9;hpb=80c2d997c5c983344c530ecbb46f94f1c299b35f;p=freeside.git diff --git a/httemplate/browse/part_pkg.cgi b/httemplate/browse/part_pkg.cgi index 1e8b51030..f25c00ef2 100755 --- a/httemplate/browse/part_pkg.cgi +++ b/httemplate/browse/part_pkg.cgi @@ -27,6 +27,19 @@ 'html_foot' => $html_foot, ) %> +<%def .style> + + + <%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!

!; +$html_init .= include('.style'); $cgi->param('dummy', 1); @@ -547,7 +562,7 @@ if ( $acl_edit_global ) { 'action' => "${p}edit/bulk-cust_pkg.html?". 'pkgpart='.$part_pkg->pkgpart, 'actionlabel' => 'Change Packages', - 'width' => 569, + 'width' => 960, 'height' => 210, ).' ]', 'align' => 'left', @@ -562,6 +577,49 @@ 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; + '' . encode_entities($ppt->taxproduct) . '' + }; + 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' }, + ]; + } + if ( my $units_ppt = $part_pkg->units_taxproduct ) { + push @$out, [ + { 'data' => emt('Lines'), 'align' => 'left' }, + { 'data' => &$taxproduct_sub($units_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 +660,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 ) { @@ -736,8 +796,22 @@ if ( $acl_edit_bulk ) { $align .= 'c'; $html_form = qq!
!; $html_foot = include('/search/elements/checkbox-foot.html', - submit => 'edit report classes', # for now it's only report classes - ) . '
'; + actions => [ + { submit => 'edit report classes', }, + { label => 'change customer packages', + onclick=> include('/elements/popup_link_onclick.html', + 'label' => 'change', + 'js_action' => qq{ + '${p}edit/bulk-cust_pkg.html?' + \$('input[name=pkgpart]').serialize() + }, + 'actionlabel' => 'Change customer packages', + 'width' => 960, + 'height' => 420, + ) + }, + ], + ). + ''; } my @menubar;