X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fview%2Fcust_main%2Fpayment_history.html;h=244635c9a03f63bd3967ac2f4c0d437f323362cc;hp=aef5fb8f87d6bfbdd07206a20e81a73f996ea6df;hb=3ce7691203a7737406bf2d4442f7fd84b81f847e;hpb=15e561850b61b10a92a46d8f3e316d53d4970087
diff --git a/httemplate/view/cust_main/payment_history.html b/httemplate/view/cust_main/payment_history.html
index aef5fb8f8..244635c9a 100644
--- a/httemplate/view/cust_main/payment_history.html
+++ b/httemplate/view/cust_main/payment_history.html
@@ -1,421 +1,416 @@
-<%
- my( $cust_main ) = @_;
- my $custnum = $cust_main->custnum;
+%
+% my( $cust_main ) = @_;
+% my $custnum = $cust_main->custnum;
+%
+% my $conf = new FS::Conf;
+%
+% my $curuser = $FS::CurrentUser::CurrentUser;
+%
+% my @payby = grep /\w/, $conf->config('payby');
+% #@payby = (qw( CARD DCRD CHEK DCHK LECB BILL CASH WEST COMP ))
+% @payby = (qw( CARD DCRD CHEK DCHK LECB BILL CASH COMP ))
+% unless @payby;
+% my %payby = map { $_=>1 } @payby;
+%
+% my $s = 0;
+%
+%
- my $conf = new FS::Conf;
-
- my $curuser = $FS::CurrentUser::CurrentUser;
-
- my @payby = grep /\w/, $conf->config('payby');
- #@payby = (qw( CARD DCRD CHEK DCHK LECB BILL CASH WEST COMP ))
- @payby = (qw( CARD DCRD CHEK DCHK LECB BILL CASH COMP ))
- unless @payby;
- my %payby = map { $_=>1 } @payby;
-
- my $s = 0;
-
-%>
Payment History
+% if ( $payby{'BILL'} && $curuser->access_right('Post payment') ) {
-<% if ( $payby{'BILL'} && $curuser->access_right('Post payment') ) { %>
-
- <%= $s++ ? ' | ' : '' %>
- Enter check payment
-
-<% } %>
-
-<% if ( $payby{'CASH'} && $curuser->access_right('Post payment') ) { %>
-
- <%= $s++ ? ' | ' : '' %>
- Enter cash payment
-<% } %>
+ <% $s++ ? ' | ' : '' %>
+ Enter check payment
+% }
+% if ( $payby{'CASH'} && $curuser->access_right('Post payment') ) {
-<% if ( $payby{'WEST'} && $curuser->access_right('Post payment') ) { %>
- <%= $s++ ? ' | ' : '' %>
- Enter Western Union payment
+ <% $s++ ? ' | ' : '' %>
+ Enter cash payment
+% }
+% if ( $payby{'WEST'} && $curuser->access_right('Post payment') ) {
-<% } %>
-<% if ( ( $payby{'CARD'} || $payby{'DCRD'} )
- && $curuser->access_right('Process payment')
- ) {
-%>
+ <% $s++ ? ' | ' : '' %>
+ Enter Western Union payment
+% }
+% if ( ( $payby{'CARD'} || $payby{'DCRD'} )
+% && $curuser->access_right('Process payment')
+% ) {
+%
- <%= $s++ ? ' | ' : '' %>
- Process credit card payment
-<% } %>
+ <% $s++ ? ' | ' : '' %>
+ Process credit card payment
+% }
+% if ( ( $payby{'CHEK'} || $payby{'DCHK'} )
+% && $curuser->access_right('Process payment')
+% ) {
+%
-<% if ( ( $payby{'CHEK'} || $payby{'DCHK'} )
- && $curuser->access_right('Process payment')
- ) {
-%>
- <%= $s++ ? ' | ' : '' %>
- Process electronic check (ACH) payment
+ <% $s++ ? ' | ' : '' %>
+ Process electronic check (ACH) payment
+% }
+% if ( $payby{'MCRD'} && $curuser->access_right('Post payment') ) {
-<% } %>
-<% if ( $payby{'MCRD'} && $curuser->access_right('Post payment') ) { %>
+ <% $s++ ? ' | ' : '' %>
+ Post manual (offline) credit card payment
+% }
- <%= $s++ ? ' | ' : '' %>
- Post manual (offline) credit card payment
-
-<% } %>
+% if ( $curuser->access_right('Post credit') ) {
-<% if ( $curuser->access_right('Post credit') ) { %>
- Enter credit
+ Enter credit
+% }
+%
+%#get payment history
+%my @history = ();
+%
+%#invoices
+%foreach my $cust_bill ($cust_main->cust_bill) {
+% my $pre = ( $cust_bill->owed > 0 )
+% ? 'Open '
+% : '';
+% my $post = ( $cust_bill->owed > 0 ) ? '' : '';
+% my $invnum = $cust_bill->invnum;
+% my $link = $curuser->access_right('View invoices')
+% ? qq!!
+% : '';
+% push @history, {
+% 'date' => $cust_bill->_date,
+% 'desc' => $link. $pre.
+% "Invoice #$invnum (Balance \$". $cust_bill->owed. ')'.
+% $post. ( $link ? '' : '' ),
+% 'charge' => $cust_bill->charged,
+% };
+%}
+%
+%#payments (some false laziness w/credits)
+%foreach my $cust_pay ($cust_main->cust_pay) {
+%
+% my $payby = $cust_pay->payby;
+%
+% my $payinfo;
+% if ( $payby eq 'CARD' ) {
+% $payinfo = $cust_pay->payinfo_masked;
+% } elsif ( $payby eq 'CHEK' && $cust_pay->payinfo =~ /^(\d+)\@(\d+)$/ ) {
+% $payinfo = "ABA $2, Acct# $1";
+% } else {
+% $payinfo = $cust_pay->payinfo;
+% }
+% my @cust_bill_pay = $cust_pay->cust_bill_pay;
+% my @cust_pay_refund = $cust_pay->cust_pay_refund;
+%
+% my $target = "$payby$payinfo";
+% $payby =~ s/^BILL$/Check #/ if $payinfo;
+% $payby =~ s/^CHEK$/Electronic check /;
+% $payby =~ s/^PREP$/Prepaid card /;
+% $payby =~ s/^CARD$/Credit card #/;
+% $payby =~ s/^COMP$/Complimentary by /;
+% $payby =~ s/^CASH$/Cash/;
+% $payby =~ s/^WEST$/Western Union/;
+% $payby =~ s/^MCRD$/Manual credit card/;
+% $payby =~ s/^BILL$//;
+% my $info = $payby ? " ($payby$payinfo)" : '';
+%
+% my( $pre, $post, $desc, $apply, $ext ) = ( '', '', '', '', '' );
+% if ( scalar(@cust_bill_pay) == 0
+% && scalar(@cust_pay_refund) == 0 ) {
+% #completely unapplied
+% $pre = 'Unapplied ';
+% $post = '';
+% $apply = qq! (apply)!;
+%
+% } elsif ( scalar(@cust_bill_pay) == 1
+% && scalar(@cust_pay_refund) == 0
+% && $cust_pay->unapplied == 0 ) {
+% #applied to one invoice, the usual situation
+% $desc = ' applied to Invoice #'. $cust_bill_pay[0]->invnum;
+% } elsif ( scalar(@cust_bill_pay) == 0
+% && scalar(@cust_pay_refund) == 1
+% && $cust_pay->unapplied == 0 ) {
+% #applied to one refund
+% $desc = ' refunded on '. time2str("%D", $cust_pay_refund[0]->_date);
+% } else {
+% #complicated
+% $desc = '
';
+% foreach my $app ( sort { $a->_date <=> $b->_date }
+% ( @cust_bill_pay, @cust_pay_refund ) ) {
+% if ( $app->isa('FS::cust_bill_pay') ) {
+% $desc .= ' '.
+% '$'. $app->amount.
+% ' applied to Invoice #'. $app->invnum.
+% '
';
+% #' on '. time2str("%D", $cust_bill_pay->_date).
+% } elsif ( $app->isa('FS::cust_pay_refund') ) {
+% $desc .= ' '.
+% '$'. $app->amount.
+% ' refunded on '. time2str("%D", $app->_date).
+% '
';
+% } else {
+% die "$app is not a FS::cust_bill_pay or FS::cust_pay_refund";
+% }
+% }
+% if ( $cust_pay->unapplied > 0 ) {
+% $desc .= ' '.
+% '$'.
+% $cust_pay->unapplied. ' unapplied'.
+% qq! (apply)!.
+% '
';
+% }
+% }
+%
+% my $refund = '';
+% my $refund_days = $conf->config('card_refund-days') || 120;
+% if ( $cust_pay->closed !~ /^Y/i
+% && $cust_pay->payby =~ /^(CARD|CHEK)$/
+% && time-$cust_pay->_date < $refund_days*86400
+% && $cust_pay->unrefunded > 0
+% && $curuser->access_right('Refund payment')
+% ) {
+% $refund = qq! (refund)!;
+% }
+%
+% my $void = '';
+% if ( $cust_pay->closed !~ /^Y/i
+% && ( ( $cust_pay->payby eq 'CARD'
+% && $curuser->access_right('Credit card void')
+% )
+% || ( $cust_pay->payby eq 'CHEK'
+% && $curuser->access_right('Echeck void')
+% )
+% || ( $cust_pay->payby !~ /^(CARD|CHEK)$/
+% && $curuser->access_right('Regular void')
+% )
+% )
+% )
+% {
+% $void = qq! (void)!;
+% }
+%
+% my $delete = '';
+% if ( $cust_pay->closed !~ /^Y/i
+% && $conf->exists('deletepayments')
+% && $curuser->access_right('Delete payment')
+% )
+% {
+% $delete = qq! (delete)!;
+% }
+%
+% my $unapply = '';
+% if ( $cust_pay->closed !~ /^Y/i
+% && scalar(@cust_bill_pay)
+% && $curuser->access_right('Unapply payment')
+% )
+% {
+% $unapply = qq! (unapply)!;
+% }
+%
+% push @history, {
+% 'date' => $cust_pay->_date,
+% 'desc' => $pre. "Payment$post$info$desc".
+% "$apply$refund$void$delete$unapply",
+% 'payment' => $cust_pay->paid,
+% 'target' => $target,
+% };
+%}
+%
+%#voided payments
+%foreach my $cust_pay_void ($cust_main->cust_pay_void) {
+%
+% my $payby = $cust_pay_void->payby;
+% my $payinfo = $payby eq 'CARD'
+% ? $cust_pay_void->payinfo_masked
+% : $cust_pay_void->payinfo;
+%
+% $payby =~ s/^BILL$/Check #/ if $payinfo;
+% $payby =~ s/^CHEK$/Electronic check /;
+% $payby =~ s/^BILL$//;
+% $payby =~ s/^(CARD|COMP)$/$1 /;
+% my $info = $payby ? " ($payby$payinfo)" : '';
+%
+% my $unvoid = '';
+% if ( $cust_pay_void->closed !~ /^Y/i
+% && $curuser->access_right('Unvoid')
+% )
+% {
+% $unvoid = qq! (unvoid)!;
+% }
+%
+% push @history, {
+% 'date' => $cust_pay_void->_date,
+% 'desc' => "Payment $info voided ".
+% time2str("%D", $cust_pay_void->void_date).
+% " by ". $cust_pay_void->otaker. ''. $unvoid,
+% 'void_payment' => $cust_pay_void->paid,
+% };
+%
+%}
+%
+%#credits (some false laziness w/payments)
+%foreach my $cust_credit ($cust_main->cust_credit) {
+%
+% my @cust_credit_bill = $cust_credit->cust_credit_bill;
+% my @cust_credit_refund = $cust_credit->cust_credit_refund;
+%
+% my( $pre, $post, $desc, $apply, $ext ) = ( '', '', '', '', '' );
+% if ( scalar(@cust_credit_bill) == 0
+% && scalar(@cust_credit_refund) == 0 ) {
+% #completely unapplied
+% $pre = 'Unapplied ';
+% $post = '';
+% $apply = qq! (apply)!;
+% } elsif ( scalar(@cust_credit_bill) == 1
+% && scalar(@cust_credit_refund) == 0
+% && $cust_credit->credited == 0 ) {
+% #applied to one invoice, the usual situation
+% $desc = ' applied to Invoice #'. $cust_credit_bill[0]->invnum;
+% } elsif ( scalar(@cust_credit_bill) == 0
+% && scalar(@cust_credit_refund) == 1
+% && $cust_credit->credited == 0 ) {
+% #applied to one refund
+% $desc = ' refunded on '. time2str("%D", $cust_credit_refund[0]->_date);
+% } else {
+% #complicated
+% $desc = '
';
+% foreach my $app ( sort { $a->_date <=> $b->_date }
+% ( @cust_credit_bill, @cust_credit_refund ) ) {
+% if ( $app->isa('FS::cust_credit_bill') ) {
+% $desc .= ' '.
+% '$'. $app->amount.
+% ' applied to Invoice #'. $app->invnum.
+% '
';
+% #' on '. time2str("%D", $app->_date).
+% } elsif ( $app->isa('FS::cust_credit_refund') ) {
+% $desc .= ' '.
+% '$'. $app->amount.
+% ' refunded on '. time2str("%D", $app->_date).
+% '
';
+% } else {
+% die "$app is not a FS::cust_credit_bill or a FS::cust_credit_refund";
+% }
+% }
+% if ( $cust_credit->credited > 0 ) {
+% $desc .= ' $'.
+% $cust_credit->credited. ' unapplied'.
+% qq! (apply)!.
+% '
';
+% }
+% }
+%#
+% my $delete = '';
+% if ( $cust_credit->closed !~ /^Y/i
+%
+% #s'pose deleting a credit isn't bad like deleting a payment
+% # and this needs to be generally available until we have credit voiding..
+% #&& $conf->exists('deletecredits')
+%
+% && $curuser->access_right('Delete credit')
+% )
+% {
+% $delete = qq! (!.
+% qq!delete)!;
+% }
+%
+% my $unapply = '';
+% if ( $cust_credit->closed !~ /^Y/i
+% && scalar(@cust_credit_bill)
+% && $curuser->access_right('Unapply credit')
+% )
+% {
+% $unapply = qq! (!.
+% qq!unapply)!;
+% }
+%
+% push @history, {
+% 'date' => $cust_credit->_date,
+% 'desc' => $pre. "Credit$post by ". $cust_credit->otaker.
+% ( $cust_credit->reason
+% ? ' ('. $cust_credit->reason. ')'
+% : ''
+% ).
+% "$desc$apply$delete$unapply",
+% 'credit' => $cust_credit->amount,
+% };
+%
+%}
+%
+%#refunds
+%foreach my $cust_refund ($cust_main->cust_refund) {
+%
+% my $payby = $cust_refund->payby;
+% my $payinfo = $payby eq 'CARD'
+% ? $cust_refund->payinfo_masked
+% : $cust_refund->payinfo;
+%
+% $payby =~ s/^BILL$/Check #/ if $payinfo;
+% $payby =~ s/^CHEK$/Electronic check /;
+% $payby =~ s/^(CARD|COMP)$/$1 /;
+%
+% push @history, {
+% 'date' => $cust_refund->_date,
+% 'desc' => "Refund ($payby$payinfo) by ". $cust_refund->otaker,
+% 'refund' => $cust_refund->refund,
+% };
+%
+%}
+%
+%
+
+
+<% include("/elements/table-grid.html") %>
+% my $bgcolor1 = '#eeeeee';
+% my $bgcolor2 = '#ffffff';
+% my $bgcolor = '';
+%
-<% } %>
-
-<%
-#get payment history
-my @history = ();
-
-#invoices
-foreach my $cust_bill ($cust_main->cust_bill) {
- my $pre = ( $cust_bill->owed > 0 )
- ? 'Open '
- : '';
- my $post = ( $cust_bill->owed > 0 ) ? '' : '';
- my $invnum = $cust_bill->invnum;
- my $link = $curuser->access_right('View invoices')
- ? qq!!
- : '';
- push @history, {
- 'date' => $cust_bill->_date,
- 'desc' => $link. $pre.
- "Invoice #$invnum (Balance \$". $cust_bill->owed. ')'.
- $post. ( $link ? '' : '' ),
- 'charge' => $cust_bill->charged,
- };
-}
-
-#payments (some false laziness w/credits)
-foreach my $cust_pay ($cust_main->cust_pay) {
-
- my $payby = $cust_pay->payby;
-
- my $payinfo;
- if ( $payby eq 'CARD' ) {
- $payinfo = $cust_pay->payinfo_masked;
- } elsif ( $payby eq 'CHEK' && $cust_pay->payinfo =~ /^(\d+)\@(\d+)$/ ) {
- $payinfo = "ABA $2, Acct# $1";
- } else {
- $payinfo = $cust_pay->payinfo;
- }
- my @cust_bill_pay = $cust_pay->cust_bill_pay;
- my @cust_pay_refund = $cust_pay->cust_pay_refund;
-
- my $target = "$payby$payinfo";
- $payby =~ s/^BILL$/Check #/ if $payinfo;
- $payby =~ s/^CHEK$/Electronic check /;
- $payby =~ s/^PREP$/Prepaid card /;
- $payby =~ s/^CARD$/Credit card #/;
- $payby =~ s/^COMP$/Complimentary by /;
- $payby =~ s/^CASH$/Cash/;
- $payby =~ s/^WEST$/Western Union/;
- $payby =~ s/^MCRD$/Manual credit card/;
- $payby =~ s/^BILL$//;
- my $info = $payby ? " ($payby$payinfo)" : '';
-
- my( $pre, $post, $desc, $apply, $ext ) = ( '', '', '', '', '' );
- if ( scalar(@cust_bill_pay) == 0
- && scalar(@cust_pay_refund) == 0 ) {
- #completely unapplied
- $pre = 'Unapplied ';
- $post = '';
- $apply = qq! (apply)!;
-
- } elsif ( scalar(@cust_bill_pay) == 1
- && scalar(@cust_pay_refund) == 0
- && $cust_pay->unapplied == 0 ) {
- #applied to one invoice, the usual situation
- $desc = ' applied to Invoice #'. $cust_bill_pay[0]->invnum;
- } elsif ( scalar(@cust_bill_pay) == 0
- && scalar(@cust_pay_refund) == 1
- && $cust_pay->unapplied == 0 ) {
- #applied to one refund
- $desc = ' refunded on '. time2str("%D", $cust_pay_refund[0]->_date);
- } else {
- #complicated
- $desc = '
';
- foreach my $app ( sort { $a->_date <=> $b->_date }
- ( @cust_bill_pay, @cust_pay_refund ) ) {
- if ( $app->isa('FS::cust_bill_pay') ) {
- $desc .= ' '.
- '$'. $app->amount.
- ' applied to Invoice #'. $app->invnum.
- '
';
- #' on '. time2str("%D", $cust_bill_pay->_date).
- } elsif ( $app->isa('FS::cust_pay_refund') ) {
- $desc .= ' '.
- '$'. $app->amount.
- ' refunded on '. time2str("%D", $app->_date).
- '
';
- } else {
- die "$app is not a FS::cust_bill_pay or FS::cust_pay_refund";
- }
- }
- if ( $cust_pay->unapplied > 0 ) {
- $desc .= ' '.
- '$'.
- $cust_pay->unapplied. ' unapplied'.
- qq! (apply)!.
- '
';
- }
- }
-
- my $refund = '';
- my $refund_days = $conf->config('card_refund-days') || 120;
- if ( $cust_pay->closed !~ /^Y/i
- && $cust_pay->payby =~ /^(CARD|CHEK)$/
- && time-$cust_pay->_date < $refund_days*86400
- && $cust_pay->unrefunded > 0
- && $curuser->access_right('Refund payment')
- ) {
- $refund = qq! (refund)!;
- }
-
- my $void = '';
- if ( $cust_pay->closed !~ /^Y/i
- && ( ( $cust_pay->payby eq 'CARD'
- && $curuser->access_right('Credit card void')
- )
- || ( $cust_pay->payby eq 'CHEK'
- && $curuser->access_right('Echeck void')
- )
- || ( $cust_pay->payby !~ /^(CARD|CHEK)$/
- && $curuser->access_right('Regular void')
- )
- )
- )
- {
- $void = qq! (void)!;
- }
-
- my $delete = '';
- if ( $cust_pay->closed !~ /^Y/i
- && $conf->exists('deletepayments')
- && $curuser->access_right('Delete payment')
- )
- {
- $delete = qq! (delete)!;
- }
-
- my $unapply = '';
- if ( $cust_pay->closed !~ /^Y/i
- && scalar(@cust_bill_pay)
- && $curuser->access_right('Unapply payment')
- )
- {
- $unapply = qq! (unapply)!;
- }
-
- push @history, {
- 'date' => $cust_pay->_date,
- 'desc' => $pre. "Payment$post$info$desc".
- "$apply$refund$void$delete$unapply",
- 'payment' => $cust_pay->paid,
- 'target' => $target,
- };
-}
-
-#voided payments
-foreach my $cust_pay_void ($cust_main->cust_pay_void) {
-
- my $payby = $cust_pay_void->payby;
- my $payinfo = $payby eq 'CARD'
- ? $cust_pay_void->payinfo_masked
- : $cust_pay_void->payinfo;
-
- $payby =~ s/^BILL$/Check #/ if $payinfo;
- $payby =~ s/^CHEK$/Electronic check /;
- $payby =~ s/^BILL$//;
- $payby =~ s/^(CARD|COMP)$/$1 /;
- my $info = $payby ? " ($payby$payinfo)" : '';
-
- my $unvoid = '';
- if ( $cust_pay_void->closed !~ /^Y/i
- && $curuser->access_right('Unvoid')
- )
- {
- $unvoid = qq! (unvoid)!;
- }
-
- push @history, {
- 'date' => $cust_pay_void->_date,
- 'desc' => "Payment $info voided ".
- time2str("%D", $cust_pay_void->void_date).
- " by ". $cust_pay_void->otaker. ''. $unvoid,
- 'void_payment' => $cust_pay_void->paid,
- };
-
-}
-
-#credits (some false laziness w/payments)
-foreach my $cust_credit ($cust_main->cust_credit) {
-
- my @cust_credit_bill = $cust_credit->cust_credit_bill;
- my @cust_credit_refund = $cust_credit->cust_credit_refund;
-
- my( $pre, $post, $desc, $apply, $ext ) = ( '', '', '', '', '' );
- if ( scalar(@cust_credit_bill) == 0
- && scalar(@cust_credit_refund) == 0 ) {
- #completely unapplied
- $pre = 'Unapplied ';
- $post = '';
- $apply = qq! (apply)!;
- } elsif ( scalar(@cust_credit_bill) == 1
- && scalar(@cust_credit_refund) == 0
- && $cust_credit->credited == 0 ) {
- #applied to one invoice, the usual situation
- $desc = ' applied to Invoice #'. $cust_credit_bill[0]->invnum;
- } elsif ( scalar(@cust_credit_bill) == 0
- && scalar(@cust_credit_refund) == 1
- && $cust_credit->credited == 0 ) {
- #applied to one refund
- $desc = ' refunded on '. time2str("%D", $cust_credit_refund[0]->_date);
- } else {
- #complicated
- $desc = '
';
- foreach my $app ( sort { $a->_date <=> $b->_date }
- ( @cust_credit_bill, @cust_credit_refund ) ) {
- if ( $app->isa('FS::cust_credit_bill') ) {
- $desc .= ' '.
- '$'. $app->amount.
- ' applied to Invoice #'. $app->invnum.
- '
';
- #' on '. time2str("%D", $app->_date).
- } elsif ( $app->isa('FS::cust_credit_refund') ) {
- $desc .= ' '.
- '$'. $app->amount.
- ' refunded on '. time2str("%D", $app->_date).
- '
';
- } else {
- die "$app is not a FS::cust_credit_bill or a FS::cust_credit_refund";
- }
- }
- if ( $cust_credit->credited > 0 ) {
- $desc .= ' $'.
- $cust_credit->credited. ' unapplied'.
- qq! (apply)!.
- '
';
- }
- }
-#
- my $delete = '';
- if ( $cust_credit->closed !~ /^Y/i
-
- #s'pose deleting a credit isn't bad like deleting a payment
- # and this needs to be generally available until we have credit voiding..
- #&& $conf->exists('deletecredits')
-
- && $curuser->access_right('Delete credit')
- )
- {
- $delete = qq! (!.
- qq!delete)!;
- }
-
- my $unapply = '';
- if ( $cust_credit->closed !~ /^Y/i
- && scalar(@cust_credit_bill)
- && $curuser->access_right('Unapply credit')
- )
- {
- $unapply = qq! (!.
- qq!unapply)!;
- }
-
- push @history, {
- 'date' => $cust_credit->_date,
- 'desc' => $pre. "Credit$post by ". $cust_credit->otaker.
- ( $cust_credit->reason
- ? ' ('. $cust_credit->reason. ')'
- : ''
- ).
- "$desc$apply$delete$unapply",
- 'credit' => $cust_credit->amount,
- };
-
-}
-
-#refunds
-foreach my $cust_refund ($cust_main->cust_refund) {
-
- my $payby = $cust_refund->payby;
- my $payinfo = $payby eq 'CARD'
- ? $cust_refund->payinfo_masked
- : $cust_refund->payinfo;
-
- $payby =~ s/^BILL$/Check #/ if $payinfo;
- $payby =~ s/^CHEK$/Electronic check /;
- $payby =~ s/^(CARD|COMP)$/$1 /;
-
- push @history, {
- 'date' => $cust_refund->_date,
- 'desc' => "Refund ($payby$payinfo) by ". $cust_refund->otaker,
- 'refund' => $cust_refund->refund,
- };
-
-}
-
-%>
-
-<%= include("/elements/table-grid.html") %>
-
-<% my $bgcolor1 = '#eeeeee';
- my $bgcolor2 = '#ffffff';
- my $bgcolor = '';
-%>