% % %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); % %print header('Refund '. ucfirst(lc($payby)). ' payment', ''); %print qq!Error: !, $cgi->param('error'), % "" % if $cgi->param('error'); %print <config('countrydefault')); %
% % % % % % % % %
%END % %if ( $cust_pay ) { % % #false laziness w/FS/FS/cust_pay.pm % my $payby = $cust_pay->payby; % my $payinfo = $cust_pay->payinfo; % $payby =~ s/^BILL$/Check/ if $payinfo; % $payby =~ s/^CHEK$/Electronic check/; % $payinfo = $cust_pay->payinfo_masked if $payby eq 'CARD'; % % print '
Payment'. ntable("#cccccc", 2). % 'Amount$'. % $cust_pay->paid. ''. % 'Date'. % time2str("%D",$cust_pay->_date). ''. % 'Method'. % ucfirst(lc($payby)). ' # '. $payinfo. ''; % #false laziness w/FS/FS/cust_main::realtime_refund_bop % if ( $cust_pay->paybatch =~ /^(\w+):(\w+)(:(\w+))?$/ ) { % my ( $processor, $auth, $order_number ) = ( $1, $2, $4 ); % print 'Processor'. % $processor. ''; % print 'Authorization'. % $auth. '' % if length($auth); % print 'Order number'. % $order_number. '' % if length($order_number); % } % print ''; %} % %print '
Refund'. ntable("#cccccc", 2). % 'Date'. % time2str("%D",$_date). ''; % %print qq!Amount\$!; % %print qq!Reason!; % %print < %
% % % % %END % %