summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Burger <burgerc@freeside.biz>2017-02-22 13:36:15 -0500
committerChristopher Burger <burgerc@freeside.biz>2017-02-22 13:36:15 -0500
commit5f2c3a88d92952d13a5231a230e332e1a8e94016 (patch)
tree7f641d03f9288e311de0bcf352626342e2a8d8bf
parent7eb4daaa7d76c7195d0bf357a99ccf4ee1962b8a (diff)
RT# 24643, added waive setup fee option to change package screen.
-rw-r--r--FS/FS/cust_pkg.pm4
-rw-r--r--httemplate/edit/process/change-cust_pkg.html11
-rwxr-xr-xhttemplate/misc/change_pkg.cgi10
3 files changed, 24 insertions, 1 deletions
diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm
index fdb6261..1d0cc4f 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 5ca0c3c..a90693c 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 e3ef4b7..3237845 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>
<% ntable('#cccccc') %>