From 73689cc60458a87931d2d3d304d650d69bcf690c Mon Sep 17 00:00:00 2001 From: Mitch Jackson Date: Sat, 10 Feb 2018 00:05:16 -0600 Subject: RT# 79284 Option to set/carry recur discount at Change Package --- httemplate/edit/process/change-cust_pkg.html | 47 ++++++++++++++++++++++++---- httemplate/misc/change_pkg.cgi | 18 ++++++++++- 2 files changed, 58 insertions(+), 7 deletions(-) (limited to 'httemplate') diff --git a/httemplate/edit/process/change-cust_pkg.html b/httemplate/edit/process/change-cust_pkg.html index 7fcc1da07..02b01f8de 100644 --- a/httemplate/edit/process/change-cust_pkg.html +++ b/httemplate/edit/process/change-cust_pkg.html @@ -40,19 +40,54 @@ if ( $cgi->param('locationnum') == -1 ) { $change{'cust_location'} = $cust_location; } +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 ( $cgi->param('setup_discountnum') =~ /^(-?\d+)$/ ) { - if ( $1 == -2 ) { + 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 { - $change{setup_discountnum} = $1; - $change{setup_discountnum_amount} = $cgi->param('setup_discountnum_amount'); - $change{setup_discountnum_percent} = $cgi->param('setup_discountnum_percent'); + $error = "Bad value ${type}_discountnum ($dnum)"; } } -my $error; my $now = time; if (defined($cgi->param('contract_end'))) { $change{'contract_end'} = parse_datetime($cgi->param('contract_end')); diff --git a/httemplate/misc/change_pkg.cgi b/httemplate/misc/change_pkg.cgi index 243da9308..2470ee135 100755 --- a/httemplate/misc/change_pkg.cgi +++ b/httemplate/misc/change_pkg.cgi @@ -90,7 +90,13 @@ % if ( $discount_cust_pkg || $waive_setup_fee ) { <% mt('Discounting') |h %> - <& /elements/tr-select-pkg-discount.html, disable_recur => 1, &> + <& /elements/tr-select-pkg-discount.html, + curr_value_setup => $discount{setup}, + curr_value_recur => $discount{recur}, + disable_setup => 0, + disable_recur => 0, + disable_waive_setup => 0 + &>

% } @@ -168,4 +174,14 @@ if ( $cust_pkg->change_to_pkgnum ) { } $title = "Edit Scheduled Package Change"; } + +# Get current values of discounts for selectboxes +my %discount = (setup => undef, recur => undef); +$discount{$_->setuprecur} = $_->discountnum + for qsearch('cust_pkg_discount', { + pkgnum => $cust_pkg->pkgnum, + disabled => '', + }); +$discount{setup} = '-2' if $cust_pkg->waive_setup; + -- cgit v1.2.1