update the tax class editor to enable taxclass adding, RT#2929
[freeside.git] / httemplate / edit / cust_refund.cgi
index aa825af..3333f5d 100755 (executable)
@@ -1,40 +1,6 @@
-%
-%
-%my $conf = new FS::Conf;
-%my $custnum = $cgi->param('custnum');
-%my $refund  = $cgi->param('refund');
-%my $payby   = $cgi->param('payby');
-%my $reason  = $cgi->param('reason');
-%
-%my( $paynum, $cust_pay ) = ( '', '' );
-%if ( $cgi->param('paynum') =~ /^(\d+)$/ ) {
-%  $paynum = $1;
-%  $cust_pay = qsearchs('cust_pay', { paynum=>$paynum } )
-%    or die "unknown payment # $paynum";
-%  $refund ||= $cust_pay->unrefunded;
-%  if ( $custnum ) {
-%    die "payment # $paynum is not for specified customer # $custnum"
-%      unless $custnum == $cust_pay->custnum;
-%  } else {
-%    $custnum = $cust_pay->custnum;
-%  }
-%}
-%die "no custnum or paynum specified!" unless $custnum;
-%
-%my $_date = time;
-%
-%my $p1 = popurl(1);
-%
-%
-
-
 <% include('/elements/header.html', 'Refund '. ucfirst(lc($payby)). ' payment', '') %>
-% if ( $cgi->param('error') ) { 
-
-  <FONT SIZE="+1" COLOR="#ff0000">Error: <% $cgi->param('error') %></FONT>
-  <BR><BR>
-% } 
 
+<% include('/elements/error.html') %>
 
 <% small_custview($custnum, $conf->config('countrydefault')) %>
 
 %  #false laziness w/FS/FS/cust_pay.pm
 %  my $payby = $cust_pay->payby;
 %  my $paymask = $cust_pay->paymask;
+%  my $paydate = $cust_pay->paydate;
+%  if ( $cgi->param('error') ) { 
+%    $paydate = $cgi->param('exp_year'). '-'. $cgi->param('exp_month'). '-01';
+%    $paydate = '' unless ($paydate =~ /^\d{2,4}-\d{1,2}-01$'/);
+%  }
 %  $payby =~ s/^BILL$/Check/ if $paymask;
 %  $payby =~ s/^CHEK$/Electronic check/;
 %
   <TR>
     <TD ALIGN="right">Method</TD><TD BGCOLOR="#ffffff"><% ucfirst(lc($payby)) %> # <% $paymask %></TD>
   </TR>
+
+% unless ( $paydate ) {  # possibly other reasons: i.e. card has since expired
+  <TR>
+    <TD ALIGN="right">Expiration</TD><TD BGCOLOR="#ffffff">
+      <% include( '/elements/select-month_year.html',
+                  'prefix' => 'exp',
+                  'selected_date' => $paydate,
+                  'empty_option' => !$paydate,
+                ) %>
+    </TD>
+  </TR>
+% } 
+
 %
 %  #false laziness w/FS/FS/cust_main::realtime_refund_bop
 %  if ( $cust_pay->paybatch =~ /^(\w+):(\w+)(:(\w+))?$/ ) {
 
 <% include('/elements/footer.html') %>
 
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Refund payment');
+
+my $conf = new FS::Conf;
+my $custnum = $cgi->param('custnum');
+my $refund  = $cgi->param('refund');
+my $payby   = $cgi->param('payby');
+my $reason  = $cgi->param('reason');
+
+my( $paynum, $cust_pay ) = ( '', '' );
+if ( $cgi->param('paynum') =~ /^(\d+)$/ ) {
+  $paynum = $1;
+  $cust_pay = qsearchs('cust_pay', { paynum=>$paynum } )
+    or die "unknown payment # $paynum";
+  $refund ||= $cust_pay->unrefunded;
+  if ( $custnum ) {
+    die "payment # $paynum is not for specified customer # $custnum"
+      unless $custnum == $cust_pay->custnum;
+  } else {
+    $custnum = $cust_pay->custnum;
+  }
+}
+die "no custnum or paynum specified!" unless $custnum;
+
+my $_date = time;
+
+my $p1 = popurl(1);
+
+</%init>