X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fedit%2Fcust_refund.cgi;h=009ce7321c5565eaa0b4b5d45f280e19c0f3e15e;hp=6fcb01113ab295f249b1dbe1b6425d2f6747263c;hb=4a88f08ffbf1c9d2f3da8a6d6d6a7d46e99dbc19;hpb=25130cc2e205c1d2c31fc9a14135148b5b2aa835 diff --git a/httemplate/edit/cust_refund.cgi b/httemplate/edit/cust_refund.cgi index 6fcb01113..009ce7321 100755 --- a/httemplate/edit/cust_refund.cgi +++ b/httemplate/edit/cust_refund.cgi @@ -10,7 +10,7 @@ <% small_custview($custnum, $conf->config('countrydefault')) %> % } -
+ @@ -34,7 +34,7 @@ % }
Payment - <% ntable("#cccccc", 2) %> + @@ -44,9 +44,14 @@ +% if ( $cust_payby ) { - + +% } % unless ( $paydate || $cust_pay->payby ne 'CARD' ) { # possibly other reasons: i.e. card has since expired @@ -59,37 +64,34 @@ % } - -% -% #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 ); -% - - +% if ( $cust_pay->processor ) { - + + -% if ( length($auth) ) { +% if ( length($cust_pay->auth) ) { - + + % } -% if ( length($order_number) ) { +% if ( length($cust_pay->order_number) ) { - + + % } -% } +% } # if ($cust_pay->processor)
Amount$<% $cust_pay->paid %>Date<% time2str($date_format, $cust_pay->_date) %>
Method<% $payby %> # <% $paymask %>Method + <% $payby %> # <% $paymask %> + +
Processor<% $processor %>Processor<% $cust_pay->processor %>
Authorization<% $auth %>Authorization<% $cust_pay->auth %>
Order number<% $order_number %>Order number<% $cust_pay->order_number %>
-% } +% } #if $cust_pay
Refund -<% ntable("#cccccc", 2) %> + + @@ -98,7 +100,7 @@ - + % if ( $payby eq 'BILL' ) { @@ -106,18 +108,98 @@ +
Date
Amount$ by <% FS::payby->payname($payby) %>$ 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 { + % } - - Reason - - +

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

- +

@@ -139,33 +221,36 @@ my $payby = $cgi->param('payby'); my $payinfo = $cgi->param('payinfo'); my $reason = $cgi->param('reason'); my $link = $cgi->param('popup') ? 'popup' : ''; - -my @rights = (); -push @rights, 'Post refund' if $payby =~ /^(BILL|CASH)$/; -push @rights, 'Post check refund' if $payby eq 'BILL'; -push @rights, 'Post cash refund ' if $payby eq 'CASH'; -push @rights, 'Refund payment' if $payby =~ /^(CARD|CHEK)$/; -push @rights, 'Refund credit card payment' if $payby eq 'CARD'; -push @rights, 'Refund Echeck payment' if $payby eq 'CHEK'; +my $batch = $cgi->param('batch'); die "access denied" - unless $FS::CurrentUser::CurrentUser->access_right(\@rights); + unless $FS::CurrentUser::CurrentUser->refund_access_right($payby); -my( $paynum, $cust_pay ) = ( '', '' ); +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);