diff options
author | Ivan Kohler <ivan@freeside.biz> | 2014-01-07 22:55:58 -0800 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2014-01-07 22:55:58 -0800 |
commit | 4427ad71b12bf27eac2a05d88141a82f9372d03f (patch) | |
tree | 77c01abea411f601df63bc2bae722504e03ff5e1 /httemplate/edit | |
parent | 76275769ed7ea66b154aef4d2dd00120a53196df (diff) |
time/data/etc. unit pricing add-ons, RT#24392
Diffstat (limited to 'httemplate/edit')
-rwxr-xr-x | httemplate/edit/part_pkg.cgi | 8 | ||||
-rwxr-xr-x | httemplate/edit/process/part_pkg.cgi | 16 |
2 files changed, 21 insertions, 3 deletions
diff --git a/httemplate/edit/part_pkg.cgi b/httemplate/edit/part_pkg.cgi index 23de7c146..3fee36b36 100755 --- a/httemplate/edit/part_pkg.cgi +++ b/httemplate/edit/part_pkg.cgi @@ -806,13 +806,15 @@ my $javascript = <<'END'; var plan = what.options[what.selectedIndex].value; - var term_table = document.getElementById('TableNumber7') // XXX NOT ROBUST + var term_table = document.getElementById('TableNumber8') // XXX NOT ROBUST if ( plan == 'flat' || plan == 'prorate' || plan == 'subscription' ) { //term_table.disabled = false; - term_table.style.visibility = ''; + //term_table.style.visibility = ''; + term_table.style.display = ''; } else { //term_table.disabled = true; - term_table.style.visibility = 'hidden'; + //term_table.style.visibility = 'hidden'; + term_table.style.display = 'none'; } var currency_regex = /^(setup|recur)_fee_[A-Z]{3}$/; diff --git a/httemplate/edit/process/part_pkg.cgi b/httemplate/edit/process/part_pkg.cgi index 82c4e1e15..69138bc65 100755 --- a/httemplate/edit/process/part_pkg.cgi +++ b/httemplate/edit/process/part_pkg.cgi @@ -264,6 +264,21 @@ if ( $cgi->param('pkgpart') || ! $conf->exists('agent_defaultpkg') ) { }; } +my $targets = FS::part_pkg_usageprice->targets; +foreach my $amount_param ( grep /^usagepricepart(\d+)_amount$/, $cgi->param ) { + $amount_param =~ /^usagepricepart(\d+)_amount$/ or die 'unpossible'; + my $num = $1; + my $amount = $cgi->param($amount_param); + if ( ! $amount && ! $cgi->param("usagepricepart${num}_price") ) { + #don't add empty rows just because the dropdowns have a value + $cgi->param("usagepricepart${num}_$_", '') for qw( currency action target ); + next; + } + my $target = $cgi->param("usagepricepart${num}_target"); + $amount *= $targets->{$target}{multiplier} if $targets->{$target}{multiplier}; + $cgi->param($amount_param, $amount); +} + my @process_o2m = ( { 'table' => 'part_pkg_msgcat', @@ -272,6 +287,7 @@ my @process_o2m = ( { 'table' => 'part_pkg_usageprice', 'fields' => [qw( price currency action target amount )], + } ); |