diff options
author | Christopher Burger <burgerc@freeside.biz> | 2017-02-22 13:36:15 -0500 |
---|---|---|
committer | Christopher Burger <burgerc@freeside.biz> | 2018-05-01 00:01:08 -0400 |
commit | 0105dfdb1844646e11e8aa8714293944e694a79b (patch) | |
tree | 869d0cee239b9d8eb7ad249e0a80fd1ce86cc782 | |
parent | 7ff83efc2e72c8f3d8e6a9e4def7d14d0835974f (diff) |
RT# 24643, added waive setup fee option to change package screen.
-rw-r--r-- | FS/FS/cust_pkg.pm | 4 | ||||
-rw-r--r-- | httemplate/edit/process/change-cust_pkg.html | 11 | ||||
-rwxr-xr-x | httemplate/misc/change_pkg.cgi | 10 |
3 files changed, 24 insertions, 1 deletions
diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm index b68c4dcae..4f6910eac 100644 --- a/FS/FS/cust_pkg.pm +++ b/FS/FS/cust_pkg.pm @@ -2379,13 +2379,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 06a66ef98..121df40cb 100755 --- a/httemplate/misc/change_pkg.cgi +++ b/httemplate/misc/change_pkg.cgi @@ -84,6 +84,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> <TABLE CLASS="fsinnerbox"> |