ACLs
[freeside.git] / httemplate / edit / cust_refund.cgi
1 <% include('/elements/header.html', 'Refund '. ucfirst(lc($payby)). ' payment', '') %>
2
3 <% include('/elements/error.html') %>
4
5 <% small_custview($custnum, $conf->config('countrydefault')) %>
6
7 <FORM NAME="RefundForm" ACTION="<% $p1 %>process/cust_refund.cgi" METHOD=POST onSubmit="document.RefundForm.submit.disabled=true">
8 <INPUT TYPE="hidden" NAME="refundnum" VALUE="">
9 <INPUT TYPE="hidden" NAME="custnum" VALUE="<% $custnum %>">
10 <INPUT TYPE="hidden" NAME="paynum" VALUE="<% $paynum %>">
11 <INPUT TYPE="hidden" NAME="_date" VALUE="<% $_date %>">
12 <INPUT TYPE="hidden" NAME="payby" VALUE="<% $payby %>">
13 <INPUT TYPE="hidden" NAME="payinfo" VALUE="">
14 <INPUT TYPE="hidden" NAME="paybatch" VALUE="">
15 <INPUT TYPE="hidden" NAME="credited" VALUE="">
16 <BR>
17 % if ( $cust_pay ) {
18 %
19 %  #false laziness w/FS/FS/cust_pay.pm
20 %  my $payby = $cust_pay->payby;
21 %  my $paymask = $cust_pay->paymask;
22 %  my $paydate = $cust_pay->paydate;
23 %  if ( $cgi->param('error') ) { 
24 %    $paydate = $cgi->param('exp_year'). '-'. $cgi->param('exp_month'). '-01';
25 %    $paydate = '' unless ($paydate =~ /^\d{2,4}-\d{1,2}-01$'/);
26 %  }
27 %  $payby =~ s/^BILL$/Check/ if $paymask;
28 %  $payby =~ s/^CHEK$/Electronic check/;
29 %
30 %
31
32
33   <BR>Payment
34   <% ntable("#cccccc", 2) %>
35
36     <TR>
37       <TD ALIGN="right">Amount</TD><TD BGCOLOR="#ffffff">$<% $cust_pay->paid %></TD>
38     </TR>
39
40   <TR>
41     <TD ALIGN="right">Date</TD><TD BGCOLOR="#ffffff"><% time2str("%D",$cust_pay->_date) %></TD>
42   </TR>
43
44   <TR>
45     <TD ALIGN="right">Method</TD><TD BGCOLOR="#ffffff"><% ucfirst(lc($payby)) %> # <% $paymask %></TD>
46   </TR>
47
48 % unless ( $paydate ) {  # possibly other reasons: i.e. card has since expired
49   <TR>
50     <TD ALIGN="right">Expiration</TD><TD BGCOLOR="#ffffff">
51       <% include( '/elements/select-month_year.html',
52                   'prefix' => 'exp',
53                   'selected_date' => $paydate,
54                   'empty_option' => !$paydate,
55                 ) %>
56     </TD>
57   </TR>
58 % } 
59
60 %
61 %  #false laziness w/FS/FS/cust_main::realtime_refund_bop
62 %  if ( $cust_pay->paybatch =~ /^(\w+):(\w+)(:(\w+))?$/ ) {
63 %    my ( $processor, $auth, $order_number ) = ( $1, $2, $4 );
64 %  
65
66
67     <TR>
68       <TD ALIGN="right">Processor</TD><TD BGCOLOR="#ffffff"><% $processor %></TD>
69     </TR>
70 % if ( length($auth) ) { 
71
72       <TR>
73         <TD ALIGN="right">Authorization</TD><TD BGCOLOR="#ffffff"><% $auth %></TD>
74       </TR>
75 % } 
76 % if ( length($order_number) ) { 
77
78       <TR>
79         <TD ALIGN="right">Order number</TD><TD BGCOLOR="#ffffff"><% $order_number %></TD>
80       </TR>
81 % } 
82 % } 
83
84   </TABLE>
85 % } 
86
87
88 <BR>Refund
89 <% ntable("#cccccc", 2) %>
90
91   <TR>
92     <TD ALIGN="right">Date</TD><TD BGCOLOR="#ffffff"><% time2str("%D",$_date) %></TD>
93   </TR>
94
95   <TR>
96     <TD ALIGN="right">Amount</TD><TD BGCOLOR="#ffffff">$<INPUT TYPE="text" NAME="refund" VALUE="<% $refund %>" SIZE=8 MAXLENGTH=8></TD>
97   </TR>
98
99   <TR>
100     <TD ALIGN="right">Reason</TD><TD BGCOLOR="#ffffff"><INPUT TYPE="text" NAME="reason" VALUE="<% $reason %>"></TD>
101   </TR>
102 </TABLE>
103
104 <BR>
105 <INPUT TYPE="submit" NAME="submit" VALUE="Post refund">
106
107 </FORM>
108
109 <% include('/elements/footer.html') %>
110
111 <%init>
112
113 die "access denied"
114   unless $FS::CurrentUser::CurrentUser->access_right('Refund payment');
115
116 my $conf = new FS::Conf;
117 my $custnum = $cgi->param('custnum');
118 my $refund  = $cgi->param('refund');
119 my $payby   = $cgi->param('payby');
120 my $reason  = $cgi->param('reason');
121
122 my( $paynum, $cust_pay ) = ( '', '' );
123 if ( $cgi->param('paynum') =~ /^(\d+)$/ ) {
124   $paynum = $1;
125   $cust_pay = qsearchs('cust_pay', { paynum=>$paynum } )
126     or die "unknown payment # $paynum";
127   $refund ||= $cust_pay->unrefunded;
128   if ( $custnum ) {
129     die "payment # $paynum is not for specified customer # $custnum"
130       unless $custnum == $cust_pay->custnum;
131   } else {
132     $custnum = $cust_pay->custnum;
133   }
134 }
135 die "no custnum or paynum specified!" unless $custnum;
136
137 my $_date = time;
138
139 my $p1 = popurl(1);
140
141 </%init>