blob: 12b68c0f5f59949178e7b8a922d52deaa5a3a543 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
%if ($error) {
% errorpage_popup($error); #XXX redirect back for correction...
%} else {
<& /elements/header-popup.html, 'Credit successful' &>
<SCRIPT TYPE="text/javascript">
topreload();
</SCRIPT>
</BODY></HTML>
% }
<%init>
die "access denied"
unless $FS::CurrentUser::CurrentUser->access_right('Credit line items');
my @billpkgnum_setuprecurs =
map { $_ =~ /^billpkgnum(\d+\-\w*)$/ or die 'gm#23'; $1; }
grep { $_ =~ /^billpkgnum\d+\-\w*$/ && $cgi->param($_) } $cgi->param;
my @billpkgnums = ();
my @setuprecurs = ();
my @amounts = ();
foreach my $billpkgnum_setuprecur (@billpkgnum_setuprecurs) {
my $amount = $cgi->param("billpkgnum$billpkgnum_setuprecur-amount");
my( $billpkgnum, $setuprecur ) = split('-', $billpkgnum_setuprecur);
push @billpkgnums, $billpkgnum;
push @setuprecurs, $setuprecur;
push @amounts, $amount;
}
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,
map { $_ => scalar($cgi->param($_)) }
#fields('cust_credit')
qw( custnum _date amount addlinfo ), #pkgnum eventnum
);
</%init>
|