X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fedit%2Fprocess%2Fcredit-cust_bill_pkg.html;h=12b68c0f5f59949178e7b8a922d52deaa5a3a543;hp=8b2f3f3eaead0f2ed9a40f5eb138d5f7698197b8;hb=76b22e66bf8e615def0a24cd8cda23c3949eae70;hpb=a69f8a2b55163b5f0eac908918e46a3eb3bd2290 diff --git a/httemplate/edit/process/credit-cust_bill_pkg.html b/httemplate/edit/process/credit-cust_bill_pkg.html index 8b2f3f3ea..12b68c0f5 100644 --- a/httemplate/edit/process/credit-cust_bill_pkg.html +++ b/httemplate/edit/process/credit-cust_bill_pkg.html @@ -3,14 +3,14 @@ %} else { <& /elements/header-popup.html, 'Credit successful' &> % } <%init> die "access denied" - unless $FS::CurrentUser::CurrentUser->access_right('Post credit'); + unless $FS::CurrentUser::CurrentUser->access_right('Credit line items'); my @billpkgnum_setuprecurs = map { $_ =~ /^billpkgnum(\d+\-\w*)$/ or die 'gm#23'; $1; } @@ -20,25 +20,42 @@ my @billpkgnums = (); my @setuprecurs = (); my @amounts = (); foreach my $billpkgnum_setuprecur (@billpkgnum_setuprecurs) { - my $amount = $cgi->param("billpkgnum$billpkgnum_setuprecur"); + my $amount = $cgi->param("billpkgnum$billpkgnum_setuprecur-amount"); my( $billpkgnum, $setuprecur ) = split('-', $billpkgnum_setuprecur); push @billpkgnums, $billpkgnum; push @setuprecurs, $setuprecur; push @amounts, $amount; } -my $error = FS::cust_credit->credit_lineitems( +my $reasonnum = $cgi->param('reasonnum'); +$reasonnum =~ /^(-?\d+)$/ or die "Illegal reasonnum"; +$reasonnum = $1; + +my $error; +if ($reasonnum == -1) { + my $new_reason = FS::reason->new({ + map { $_ => scalar( $cgi->param("select_reason_new_$_") ) } + qw( reason_type reason ) + }); + $error = $new_reason->insert; + $reasonnum = $new_reason->reasonnum; +} + +if ( !$reasonnum ) { + $error ||= 'Reason required' +} + +$error ||= FS::cust_credit->credit_lineitems( #the lineitems to credit 'billpkgnums' => \@billpkgnums, 'setuprecurs' => \@setuprecurs, 'amounts' => \@amounts, + 'apply' => ( $cgi->param('apply') eq 'yes' ), + 'reasonnum' => $reasonnum, - #the credit - 'newreasonnum' => scalar($cgi->param('newreasonnum')), - 'newreasonnum_type' => scalar($cgi->param('newreasonnumT')), map { $_ => scalar($cgi->param($_)) } #fields('cust_credit') - qw( custnum _date amount reason reasonnum addlinfo ), #pkgnum eventnum + qw( custnum _date amount addlinfo ), #pkgnum eventnum );