2 % errorpage_popup($error); #XXX redirect back for correction...
4 <& /elements/header-popup.html, 'Credit successful' &>
5 <SCRIPT TYPE="text/javascript">
13 unless $FS::CurrentUser::CurrentUser->access_right('Credit line items');
15 my @billpkgnum_setuprecurs =
16 map { $_ =~ /^billpkgnum(\d+\-\w*)$/ or die 'gm#23'; $1; }
17 grep { $_ =~ /^billpkgnum\d+\-\w*$/ && $cgi->param($_) } $cgi->param;
22 foreach my $billpkgnum_setuprecur (@billpkgnum_setuprecurs) {
23 my $amount = $cgi->param("billpkgnum$billpkgnum_setuprecur-amount");
24 my( $billpkgnum, $setuprecur ) = split('-', $billpkgnum_setuprecur);
25 push @billpkgnums, $billpkgnum;
26 push @setuprecurs, $setuprecur;
27 push @amounts, $amount;
30 my $reasonnum = $cgi->param('reasonnum');
31 $reasonnum =~ /^(-?\d+)$/ or die "Illegal reasonnum";
35 if ($reasonnum == -1) {
36 my $new_reason = FS::reason->new({
37 map { $_ => scalar( $cgi->param("select_reason_new_$_") ) }
38 qw( reason_type reason )
40 $error = $new_reason->insert;
41 $reasonnum = $new_reason->reasonnum;
45 $error ||= 'Reason required'
48 $error ||= FS::cust_credit->credit_lineitems(
49 #the lineitems to credit
50 'billpkgnums' => \@billpkgnums,
51 'setuprecurs' => \@setuprecurs,
52 'amounts' => \@amounts,
53 'apply' => ( $cgi->param('apply') eq 'yes' ),
54 'reasonnum' => $reasonnum,
56 map { $_ => scalar($cgi->param($_)) }
57 #fields('cust_credit')
58 qw( custnum _date amount addlinfo ), #pkgnum eventnum