X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fedit%2Fprocess%2Fchange-cust_pkg.html;h=02b01f8de5445e57d3f25faec22756a3d042d893;hp=308ea8ffd845b1543f3b405832bc0876b91e2b6a;hb=908b5627cc5899b00d3b9e83602403eb956dd038;hpb=2b2dd969f3c18751afc583ad1e836ab8e6f73b5d diff --git a/httemplate/edit/process/change-cust_pkg.html b/httemplate/edit/process/change-cust_pkg.html index 308ea8ffd..02b01f8de 100644 --- a/httemplate/edit/process/change-cust_pkg.html +++ b/httemplate/edit/process/change-cust_pkg.html @@ -3,9 +3,9 @@ % $cgi->redirect(popurl(3). 'misc/change_pkg.cgi?'. $cgi->query_string ); % } else { - <% header(emt("Package changed")) %> + <& /elements/header-popup.html, emt("Package changed") &> @@ -41,6 +41,53 @@ if ( $cgi->param('locationnum') == -1 ) { } my $error; + +# Discounts: +# setup_discountnum and change_discountnum may contain one of the following: +# - "-1" Represents the 'other' option. Results in a new entry to the +# discount table. +# - "-2" Represents the "waive setup fee" option. Sets cust_pkg.waive_setup = Y +# - int Represents the id for a discount row: discount.discountnum +# my %discount; +# $change{waive_setup} = ''; +# for my $type (qw|setup recur|) { +# my $dnum = $cgi->param("${type}_discountnum"); + +# if ($dnum eq '-2' && $type eq 'setup') { +# $change{waive_setup} = 'Y'; +# } elsif ($val =~ /^-?\d+$/) { +# $discount{$type} = {discountnum => $dnum}; +# if ($dnum eq '-1') { +# $discount{$type}->{amount} = $cgi->param("${type}_discountnum_amount"); +# $discount{$type}->{percent} = $cgi->param("${type}_discountnum_percent"); +# } +# } else { +# # Shouldn't happen without funny business +# $error = "Bad value ${type}_discountnum ($val)"; +# } +# } + + +$change{waive_setup} = ''; +for my $type (qw|setup_discountnum recur_discountnum|) { + my $dnum = $cgi->param($type); + + if ($dnum eq '-2' && $type eq 'setup_discountnum') { + # Waive Discount + $change{waive_setup} = 'Y'; + } elsif ($dnum =~ /^-?\d+$/) { + # Set discountnum + $change{$type} = $dnum; + $change{"${type}_amount"} = $cgi->param("${type}_amount"); + $change{"${type}_percent"} = $cgi->param("${type}_percent"); + } elsif ($dnum eq '') { + # Set discount as no discount + $change{"${type}"} = 0; + } else { + $error = "Bad value ${type}_discountnum ($dnum)"; + } +} + my $now = time; if (defined($cgi->param('contract_end'))) { $change{'contract_end'} = parse_datetime($cgi->param('contract_end')); @@ -103,6 +150,7 @@ unless ($error) { $change_to->locationnum == $change{'locationnum'} and $change_to->quantity == $change{'quantity'} and $change_to->contract_end == $change{'contract_end'} and + $change_to->waive_setup == $change{'waive_setup'} and !$usagechanged ) { %change = ( 'cust_pkg' => $change_to );