diff options
author | Christopher Burger <burgerc@freeside.biz> | 2017-02-22 13:36:15 -0500 |
---|---|---|
committer | Christopher Burger <burgerc@freeside.biz> | 2017-12-12 11:19:34 -0500 |
commit | e122171357abcfb53719a23ffeb8345e1c88381d (patch) | |
tree | b79e8bb5b72b0bbb9138608d77fe003843b5c14c | |
parent | 6e3c50c1c924a2aacc724a55b281265d3406d955 (diff) |
RT# 24643, added waive setup fee option to change package screen.
Conflicts:
httemplate/edit/process/change-cust_pkg.html
-rw-r--r-- | FS/FS/cust_pkg.pm | 4 | ||||
-rw-r--r-- | httemplate/edit/process/change-cust_pkg.html | 14 | ||||
-rwxr-xr-x | httemplate/misc/change_pkg.cgi | 10 |
3 files changed, 26 insertions, 2 deletions
diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm index 91c5bd3eb..c95d31b4d 100644 --- a/FS/FS/cust_pkg.pm +++ b/FS/FS/cust_pkg.pm @@ -2363,13 +2363,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 046a9795c..3d50a134e 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'))) { @@ -68,7 +78,9 @@ unless ($error) { $change_to->pkgpart == $change{'pkgpart'} and $change_to->locationnum == $change{'locationnum'} and $change_to->quantity == $change{'quantity'} and - $change_to->contract_end == $change{'contract_end'} + $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 e74747e82..13fc05016 100755 --- a/httemplate/misc/change_pkg.cgi +++ b/httemplate/misc/change_pkg.cgi @@ -72,6 +72,16 @@ </TABLE> </BR> +% 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 ) { + <FONT CLASS="fsinnerbox-title"><% mt('Discounting') |h %></FONT> + <% ntable("#cccccc") %> + <& /elements/tr-select-pkg-discount.html, disable_recur => 1, &> + </TABLE><BR> + +% } <FONT CLASS="fsinnerbox-title"><% mt('Location') |h %></FONT> <% ntable('#cccccc') %> |