From 5f2c3a88d92952d13a5231a230e332e1a8e94016 Mon Sep 17 00:00:00 2001 From: Christopher Burger Date: Wed, 22 Feb 2017 13:36:15 -0500 Subject: [PATCH] RT# 24643, added waive setup fee option to change package screen. --- FS/FS/cust_pkg.pm | 4 +++- httemplate/edit/process/change-cust_pkg.html | 11 +++++++++++ httemplate/misc/change_pkg.cgi | 10 ++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm index fdb62619d..1d0cc4fbc 100644 --- a/FS/FS/cust_pkg.pm +++ b/FS/FS/cust_pkg.pm @@ -2346,13 +2346,15 @@ sub change { $same_pkgpart = 0; } + $self->set('waive_setup', $opt->{'waive_setup'}) if $opt->{'waive_setup'}; + # Before going any further here: if the package is still in the pre-setup # state, it's safe to modify it in place. No need to charge/credit for # partial period, transfer usage pools, copy invoice details, or change any # dates. We DO need to "transfer" services (from the package to itself) to # check their validity on the new pkgpart. if ( ! $self->setup and ! $opt->{cust_pkg} and ! $opt->{cust_main} ) { - foreach ( qw( locationnum pkgpart quantity refnum salesnum ) ) { + foreach ( qw( locationnum pkgpart quantity refnum salesnum waive_setup ) ) { if ( length($opt->{$_}) ) { $self->set($_, $opt->{$_}); } diff --git a/httemplate/edit/process/change-cust_pkg.html b/httemplate/edit/process/change-cust_pkg.html index 5ca0c3c0f..a90693cae 100644 --- a/httemplate/edit/process/change-cust_pkg.html +++ b/httemplate/edit/process/change-cust_pkg.html @@ -40,6 +40,16 @@ if ( $cgi->param('locationnum') == -1 ) { $change{'cust_location'} = $cust_location; } +if ( $cgi->param('setup_discountnum') =~ /^(-?\d+)$/ ) { + if ( $1 == -2 ) { + $change{waive_setup} = 'Y'; + } else { + $change{setup_discountnum} = $1; + $change{setup_discountnum_amount} = $cgi->param('setup_discountnum_amount'); + $change{setup_discountnum_percent} = $cgi->param('setup_discountnum_percent'); + } +} + my $error; my $now = time; if (defined($cgi->param('contract_end'))) { @@ -103,6 +113,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 ); diff --git a/httemplate/misc/change_pkg.cgi b/httemplate/misc/change_pkg.cgi index e3ef4b7a8..323784554 100755 --- a/httemplate/misc/change_pkg.cgi +++ b/httemplate/misc/change_pkg.cgi @@ -84,6 +84,16 @@
+% my $discount_cust_pkg = $curuser->access_right('Discount customer package'); +% my $waive_setup_fee = $curuser->access_right('Waive setup fee'); +% +% if ( $discount_cust_pkg || $waive_setup_fee ) { + <% mt('Discounting') |h %> + <% ntable("#cccccc") %> + <& /elements/tr-select-pkg-discount.html, disable_recur => 1, &> +
+ +% } <% mt('Location') |h %> <% ntable('#cccccc') %> -- 2.11.0