X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fedit%2Fprocess%2Fchange-cust_pkg.html;h=0b36e9053c2f8ed00d5238681524838ff46874aa;hp=0e87ad85940cfbdcc6131181e5af2037155e2997;hb=71231d6bd803d2a3977c3ce2fa1f3c0ed4746b2d;hpb=020e2df25391da9028dfbd9962b554ac20f54f38 diff --git a/httemplate/edit/process/change-cust_pkg.html b/httemplate/edit/process/change-cust_pkg.html index 0e87ad859..0b36e9053 100644 --- a/httemplate/edit/process/change-cust_pkg.html +++ b/httemplate/edit/process/change-cust_pkg.html @@ -27,7 +27,7 @@ my $cust_pkg = qsearchs({ die 'unknown pkgnum' unless $cust_pkg; my %change = map { $_ => scalar($cgi->param($_)) } - qw( locationnum pkgpart quantity ); + qw( locationnum pkgpart quantity waive_setup); $change{'keep_dates'} = 1; @@ -40,16 +40,10 @@ if ( $cgi->param('locationnum') == -1 ) { $change{'cust_location'} = $cust_location; } -$change{waive_setup} = ''; - -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 %discount = (discountnum => $cgi->param('discountnum')); +if (%discount) { + $discount{$_} = $cgi->param("discountnum_$_") + for qw(_type amount months percent setup); } my $error; @@ -68,6 +62,7 @@ unless ($error) { } else { # schedule the change $change{'start_date'} = $date; + $change{discount} = \%discount if %discount; $error = $cust_pkg->change_later(\%change); } } else { @@ -81,15 +76,16 @@ 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_to->waive_setup == $change{'waive_setup'} ) { %change = ( 'cust_pkg' => $change_to ); } } - + # do a package change right now my $pkg_or_error = $cust_pkg->change( \%change ); + $pkg_or_error->change_discount(\%discount) + if ref $pkg_or_error && $discount{discountnum} =~ /$-?\d+$/; $error = ref($pkg_or_error) ? '' : $pkg_or_error; } }