X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fview%2Fcust_main%2Fpayment_history.html;h=582fc8d7eb68ad668a0ae4f0b5cea382b7dd3d5a;hb=1a6ead72554554a4271e23d6b02b601051e307c8;hp=57d11b9e8f7eb9d7346e7d3e948bb4b19404dd48;hpb=dcdf657e77ec7b46dc69e19a849a9c133123db7c;p=freeside.git
diff --git a/httemplate/view/cust_main/payment_history.html b/httemplate/view/cust_main/payment_history.html
index 57d11b9e8..9c18fbc15 100644
--- a/httemplate/view/cust_main/payment_history.html
+++ b/httemplate/view/cust_main/payment_history.html
@@ -1,459 +1,61 @@
-
Payment History
-
-% my $s = 0;
-% if ( $payby{'BILL'} && $curuser->access_right('Post payment') ) {
- <% $s++ ? ' | ' : '' %>
- Enter check payment
-% }
-
-% 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')
-% && ! $cust_main->is_encrypted($cust_main->payinfo)
-% ) {
- <% $s++ ? ' | ' : '' %>
- Process credit card payment
-% }
-
-% if ( ( $payby{'CHEK'} || $payby{'DCHK'} )
-% && $curuser->access_right('Process payment')
-% && ! $cust_main->is_encrypted($cust_main->payinfo)
-% ) {
- <% $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
-
-% }
-
-% if ( $curuser->access_right('View customer tax exemptions') ) {
- View tax exemptions
-
+
+
+%# 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' ? '|' : '' %>
+% }
+ % } -%#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->paymask; -% } 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",$date) %> - | - -- Starting balance on <% time2str("%D",$date) %> - (show prior history) - | - -- | - | - | - | <% $balance_forward %> | +%#display payment history -|||||||||
+ | % unless ( !$target || $target{$target}++ ) { % } - <% time2str("%D",$item->{'date'}) %> + <% time2str($date_format, $item->{'date'}) %> % if ( $target && $target{$target} == 1 ) { @@ -514,60 +117,394 @@ | <% $item->{'desc'} %> | -+ | <% $charge %> | -+ | <% $payment %> | -+ | <% $credit %> | -+ | <% $refund %> | -+ | <% $showbalance %> |