X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fview%2Fcust_main%2Fpayment_history.html;h=9c18fbc15d90db83ea43d7bf83e289c44b7a563c;hb=11bbf29de447fe39e9d7155fe280a0df70fa8c3c;hp=244635c9a03f63bd3967ac2f4c0d437f323362cc;hpb=3ce7691203a7737406bf2d4442f7fd84b81f847e;p=freeside.git
diff --git a/httemplate/view/cust_main/payment_history.html b/httemplate/view/cust_main/payment_history.html
index 244635c9a..9c18fbc15 100644
--- a/httemplate/view/cust_main/payment_history.html
+++ b/httemplate/view/cust_main/payment_history.html
@@ -1,474 +1,61 @@
-%
-% 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;
-%
-%
-
-
-
Payment History
-% if ( $payby{'BILL'} && $curuser->access_right('Post payment') ) {
-
-
- <% $s++ ? ' | ' : '' %>
- Enter check payment
+
+
+%# batched payment links
+
+% if ( ( $conf->exists('batch-enable') || $conf->config('batch-enable_payby') )
+% && $curuser->access_right('View customer batched payments')
+% )
+% {
+ <% mt('View batched payments:') |h %>
+% foreach my $status (qw( Queued In-transit Complete All )) {
+ <% mt($status) |h %>
+ <% $status ne 'All' ? '|' : '' %>
+% }
+ % } -% if ( $payby{'CASH'} && $curuser->access_right('Post payment') ) { - - - <% $s++ ? ' | ' : '' %> - Enter cash payment -% } -% if ( $payby{'WEST'} && $curuser->access_right('Post payment') ) { - - - <% $s++ ? ' | ' : '' %> - Enter Western Union payment -% } -% if ( ( $payby{'CARD'} || $payby{'DCRD'} ) -% && $curuser->access_right('Process payment') -% ) { -% - - <% $s++ ? ' | ' : '' %> - Process credit card payment -% } -% if ( ( $payby{'CHEK'} || $payby{'DCHK'} ) -% && $curuser->access_right('Process payment') -% ) { -% - - - <% $s++ ? ' | ' : '' %> - Process electronic check (ACH) payment -% } -% if ( $payby{'MCRD'} && $curuser->access_right('Post payment') ) { - - - <% $s++ ? ' | ' : '' %> - Post manual (offline) credit card payment -% } - - - -% if ( $curuser->access_right('Post 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' => " '; -% 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, -% }; -% -%} -% -% + |
+ |||||||||||||||
+%# and now the table
-<% include("/elements/table-grid.html") %>
+<& /elements/table-grid.html &>
% my $bgcolor1 = '#eeeeee';
% my $bgcolor2 = '#ffffff';
% my $bgcolor = '';
-%
-
+
Date |
- Description |
- Charge |
- Payment |
- In-house |
- Credit Refund |
- Balance |
+ <% mt('Date') |h %> |
+ <% mt('Description') |h %> |
+ <% mt('Invoice') |h %> |
+ <% mt('Payment') |h %> |
+ <% mt('In-house Credit') |h %> |
+ <% mt('Refund') |h %> |
+ <% mt('Balance') |h %> |
| |
- <% time2str("%D",$item->{'date'}) %> - | - -- Starting balance on <% time2str("%D",$item->{'date'}) %> - (show prior history) - | - -- | - | - | - | <% $balance_forward %> | - -|||||||||
+ | % unless ( !$target || $target{$target}++ ) { % } - <% time2str("%D",$item->{'date'}) %> + <% time2str($date_format, $item->{'date'}) %> % if ( $target && $target{$target} == 1 ) { @@ -529,41 +117,394 @@ | <% $item->{'desc'} %> | -+ | <% $charge %> | -+ | <% $payment %> | -+ | <% $credit %> | -+ | <% $refund %> | -+ | <% $showbalance %> |