X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fedit%2Fprocess%2Fchange-cust_pkg.html;h=c8c623641ebc16f61b96535b8f545740e5128274;hp=54cafbf18425a0516faff2ccaad6be31935f8c26;hb=HEAD;hpb=cf54023e010df76e0c39ac70902877d7c4c94c6e diff --git a/httemplate/edit/process/change-cust_pkg.html b/httemplate/edit/process/change-cust_pkg.html index 54cafbf18..c8c623641 100644 --- a/httemplate/edit/process/change-cust_pkg.html +++ b/httemplate/edit/process/change-cust_pkg.html @@ -3,7 +3,7 @@ % $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,54 @@ 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"); + $change{"${type}_months"} = $cgi->param("${type}_months"); + } 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 +151,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 );