% if ( $link eq 'popup' ) { <% include('/elements/header-popup.html', $title ) %> % } else { <% include("/elements/header.html", $title, '') %> % } <% include('/elements/error.html') %> % unless ( $link eq 'popup' ) { <% small_custview($custnum, $conf->config('countrydefault')) %> % }

% if ( $cust_pay ) { % % #false laziness w/FS/FS/cust_pay.pm % my $payby = FS::payby->payname($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$'/); % }
Payment % if ( $cust_payby ) { % } % unless ( $paydate || $cust_pay->payby ne 'CARD' ) { # possibly other reasons: i.e. card has since expired % } % if ( $cust_pay->processor ) { % if ( length($cust_pay->auth) ) { % } % if ( length($cust_pay->order_number) ) { % } % } # if ($cust_pay->processor)
Amount$<% $cust_pay->paid %>
Date<% time2str($date_format, $cust_pay->_date) %>
Method <% $payby %> # <% $paymask %>
Expiration <% include( '/elements/select-month_year.html', 'prefix' => 'exp', 'selected_date' => $paydate, 'empty_option' => !$paydate, ) %>
Processor <% $cust_pay->processor %>
Authorization <% $cust_pay->auth %>
Order number <% $cust_pay->order_number %>
% } #if $cust_pay
Refund % if ( $payby eq 'BILL' ) {
Date <% time2str($date_format, $_date) %>
Amount $ by <% FS::payby->payname($payby) %>
Check #
% } % elsif ($payby eq 'CHEK' || $payby eq 'CARD') { % % my @cust_payby = (); % if ( $payby eq 'CARD' ) { % @cust_payby = $cust_main->cust_payby('CARD','DCRD'); % } elsif ( $payby eq 'CHEK' ) { % @cust_payby = $cust_main->cust_payby('CHEK','DCHK'); % } else { % die "unknown payby $payby"; % } % % my $custpaybynum = length(scalar($cgi->param('custpaybynum'))) % ? scalar($cgi->param('custpaybynum')) % : scalar(@cust_payby) && $cust_payby[0]->custpaybynum; % if ( !$cust_payby ) { <& /elements/tr-select-cust_payby.html, 'cust_payby' => \@cust_payby, 'curr_value' => $custpaybynum, 'onchange' => 'cust_payby_changed(this)', &> % } % if ($payby eq "CARD" || $payby eq "DCRD") { % } % elsif ( $conf->exists("batch-enable") % || grep $payby eq $_, $conf->config('batch-enable_payby') % ) { % if ( grep $payby eq $_, $conf->config('realtime-disable_payby') ) { % } else { >    <% mt('Add to current batch') |h %> % } % }

% if ( !$cust_payby ) {

> <& /elements/cust_payby_new.html, 'cust_payby' => \@cust_payby, 'curr_value' => $custpaybynum, &>
% } # end if cust_payby % } else { % }

<& /elements/tr-select-reason.html, 'field' => 'reasonnum', 'reason_class' => 'F', 'control_button' => "confirm_refund_button", 'cgi' => $cgi, &>

% if ( $link eq 'popup' ) { % } else { <% include('/elements/footer.html') %> % } <%init> my $conf = new FS::Conf; my $date_format = $conf->config('date_format') || '%m/%d/%Y'; my $custnum = $cgi->param('custnum'); my $refund = $cgi->param('refund'); my $payby = $cgi->param('payby'); my $payinfo = $cgi->param('payinfo'); my $reason = $cgi->param('reason'); my $link = $cgi->param('popup') ? 'popup' : ''; my $batch = $cgi->param('batch'); die "access denied" unless $FS::CurrentUser::CurrentUser->refund_access_right($payby); my( $paynum, $cust_pay, $batchnum, $cust_payby ) = ( '', '', '', '' ); if ( $cgi->param('paynum') =~ /^(\d+)$/ ) { $paynum = $1; $cust_pay = qsearchs('cust_pay', { paynum=>$paynum } ) or die "unknown payment # $paynum"; $refund ||= $cust_pay->unrefunded; $batchnum = $cust_pay->batchnum; if ( $custnum ) { die "payment # $paynum is not for specified customer # $custnum" unless $custnum == $cust_pay->custnum; } else { $custnum = $cust_pay->custnum; $cgi->param(-name=>"custnum", -value=>$custnum) unless $cgi->param("custnum"); } # get custpayby $cust_payby = qsearchs( 'cust_payby', { paymask => $cust_pay->paymask, custnum => $custnum } ); } die "no custnum or paynum specified!" unless $custnum; my $cust_main = qsearchs( 'cust_main', { 'custnum'=>$custnum } ); die "unknown custnum $custnum" unless $cust_main; my $_date = time; my $p1 = popurl(1); my $title = 'Refund '. FS::payby->payname($payby). ' payment';