X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fview%2Fcust_main%2Fpayment_history.html;h=49d6ff4cd1c9d8b64ac04bf124707ffd98ed7399;hb=e141dcae4712d6fc9d5207ad42f864605788309f;hp=5af34c09c7d836309c7527ede930e5e0d1a62cd5;hpb=9ed8adbf1ab5aba8181903e9c262f2b69dba6cbc;p=freeside.git
diff --git a/httemplate/view/cust_main/payment_history.html b/httemplate/view/cust_main/payment_history.html
index 5af34c09c..49d6ff4cd 100644
--- a/httemplate/view/cust_main/payment_history.html
+++ b/httemplate/view/cust_main/payment_history.html
@@ -1,477 +1,220 @@
-
Payment History
+%# payment links
% my $s = 0;
-% if ( $payby{'BILL'} && $curuser->access_right('Post payment') ) {
+% if ( $payby{'BILL'} && $curuser->access_right(['Post payment', 'Post check payment' ]) ) {
<% $s++ ? ' | ' : '' %>
- Enter check payment
+ <& /elements/popup_link-cust_main.html,
+ 'label' => mt('Enter check payment'),
+ 'action' => "${p}edit/cust_pay.cgi?popup=1;payby=BILL",
+ 'cust_main' => $cust_main,
+ 'actionlabel' => mt('Enter check payment'),
+ 'width' => 392,
+ &>
% }
-% if ( $payby{'CASH'} && $curuser->access_right('Post payment') ) {
+% if ( $payby{'CASH'} && $curuser->access_right(['Post payment', 'Post cash payment']) ) {
<% $s++ ? ' | ' : '' %>
- Enter cash payment
+ <& /elements/popup_link-cust_main.html,
+ 'label' => mt('Enter cash payment'),
+ 'action' => "${p}edit/cust_pay.cgi?popup=1;payby=CASH",
+ 'cust_main' => $cust_main,
+ 'actionlabel' => mt('Enter cash payment'),
+ 'width' => 392,
+ &>
% }
% if ( $payby{'WEST'} && $curuser->access_right('Post payment') ) {
<% $s++ ? ' | ' : '' %>
- Enter Western Union payment
+ <% mt('Enter Western Union payment') |h %>
% }
% if ( ( $payby{'CARD'} || $payby{'DCRD'} )
-% && $curuser->access_right('Process payment')
+% && $curuser->access_right(['Process payment', 'Process credit card payment'])
% && ! $cust_main->is_encrypted($cust_main->payinfo)
% ) {
<% $s++ ? ' | ' : '' %>
- Process credit card payment
+ <% mt('Process credit card payment') |h %>
% }
% if ( ( $payby{'CHEK'} || $payby{'DCHK'} )
-% && $curuser->access_right('Process payment')
+% && $curuser->access_right(['Process payment', 'Process Echeck payment'])
% && ! $cust_main->is_encrypted($cust_main->payinfo)
% ) {
<% $s++ ? ' | ' : '' %>
- Process electronic check (ACH) payment
+ <% mt('Process electronic check (ACH) payment') |h %>
% }
% if ( $payby{'MCRD'} && $curuser->access_right('Post payment') ) {
<% $s++ ? ' | ' : '' %>
- Post manual (offline) credit card payment
+ <% mt('Post manual (offline/POS) credit card payment') |h %>
% }
+%# credit link
+
% if ( $curuser->access_right('Post credit') ) {
- Enter credit
+ <& /elements/popup_link-cust_main.html,
+ 'label' => mt('Enter credit'),
+ 'action' => "${p}edit/cust_credit.cgi",
+ 'cust_main' => $cust_main,
+ 'actionlabel' => mt('Enter credit'),
+ 'width' => 616, #make room for reasons #540 default
+ &>
% }
-% if ( $curuser->access_right('View customer tax exemptions') ) {
- View tax exemptions
-
+%# refund links
+
+% $s = 0;
+% if ( $payby{'BILL'} && $curuser->access_right(['Post refund', 'Post check refund']) ) {
+ <% $s++ ? ' | ' : '' %>
+ <& /elements/popup_link-cust_main.html,
+ 'label' => mt('Enter check refund'),
+ 'action' => "${p}edit/cust_refund.cgi?popup=1;payby=BILL",
+ 'cust_main' => $cust_main,
+ 'actionlabel' => mt('Enter check refund'),
+ 'width' => 392,
+ &>
+% }
+
+% if ( $payby{'CASH'} && $curuser->access_right(['Post refund', 'Post cash refund']) ) {
+ <% $s++ ? ' | ' : '' %>
+ <& /elements/popup_link-cust_main.html,
+ 'label' => mt('Enter cash refund'),
+ 'action' => "${p}edit/cust_refund.cgi?popup=1;payby=CASH",
+ 'cust_main' => $cust_main,
+ 'actionlabel' => mt('Enter cash refund'),
+ 'width' => 392,
+ &>
% }
-% if ( $conf->exists('batch-enable')
-% #&& $curuser->access_right('View customer tax exemptions')
-% ) {
- View batched payments:
+%# someday, perhaps. very few gateways let you do unlinked refunds at all.
+%# Authorize.net makes you sign a special form
+%#
+%# % if ( ( $payby{'CARD'} || $payby{'DCRD'} )
+%# % && $curuser->access_right('Process refund')
+%# % && ! $cust_main->is_encrypted($cust_main->payinfo)
+%# % ) {
+%# <% $s++ ? ' | ' : '' %>
+%# Process credit card refund
+%# % }
+%#
+%# % if ( ( $payby{'CHEK'} || $payby{'DCHK'} )
+%# % && $curuser->access_right('Process refund')
+%# % && ! $cust_main->is_encrypted($cust_main->payinfo)
+%# % ) {
+%# <% $s++ ? ' | ' : '' %>
+%# Process electronic check (ACH) refund
+%# % }
+
+% if ( $payby{'MCRD'} && $curuser->access_right('Post refund') ) {
+ <% $s++ ? ' | ' : '' %>
+ <% mt('Post manual (offline/POS) credit card refund') |h %>
+% }
+
+
+
+%# tax exemption link
+
+% my $view_exemptions = $curuser->access_right('View customer tax exemptions');
+% my $add_adjustment = ( $conf->exists('enable_tax_adjustments')
+% && $curuser->access_right('Add customer tax adjustment')
+% );
+% if ( $view_exemptions || $add_adjustment ) {
+
+% if ( $view_exemptions ) {
+ <% mt('View tax exemptions') |h %>
+ <% $add_adjustment ? '|' : '' %>
+% }
+
+% if ( $add_adjustment ) {
+ <& /elements/popup_link.html, {
+ 'action' => $p.'edit/cust_tax_adjustment.html?custnum='. $cust_main->custnum,
+ 'label' => mt('Add tax adjustment'),
+ 'actionlabel' => mt('Add tax adjustment'),
+ 'height' => 200,
+ }
+ &>
+ |
+ <% mt('View tax adjustments') |h %>
+% }
+
+
+% }
+
+%# 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 )) {
- <% $status %>
+ <% 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!!
-% : '';
-% my $events = '';
-% if ( $cust_bill->num_cust_event
-% && ( $curuser->access_right('Billing event reports')
-% || $curuser->access_right('View customer billing events')
-% )
-% ) {
-% $events =
-% qq!
( View invoice events )';
-% }
-% push @history, {
-% 'date' => $cust_bill->_date,
-% 'desc' => $link. $pre.
-% "Invoice #$invnum (Balance \$". $cust_bill->owed. ')'.
-% $post. ( $link ? '' : '' ). $events,
-% '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 $view = qq! (view receipt)!;
-%
-% 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".
-% "$view$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->paymask
-% : $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->paymask
-% : $cust_refund->payinfo;
-%
-% $payby =~ s/^BILL$/Check #/ if $payinfo;
-% $payby =~ s/^CHEK$/Electronic check /;
-% $payby =~ s/^(CARD|COMP)$/$1 /;
-%
-% my $delete = '';
-% if ( $cust_refund->closed !~ /^Y/i
-% && $conf->exists('deleterefunds')
-% && $curuser->access_right('Delete refund')
-% )
-% {
-% $delete = qq! (delete)!;
-% }
-%
-% push @history, {
-% 'date' => $cust_refund->_date,
-% 'desc' => "Refund ($payby$payinfo) by ". $cust_refund->otaker. "
".
-% $delete,
-% 'refund' => $cust_refund->refund,
-% };
-%
-%}
-%
-%
+%# pending payment links
+% if ( $curuser->access_right('View customer pending payments')
+% && scalar($cust_main->cust_pay_pending)
+% )
+% {
+ <% mt('View pending payments') |h %>
+% }
-<% include("/elements/table-grid.html") %>
+%# and now the table
+
+<& /elements/table-grid.html &>
% my $bgcolor1 = '#eeeeee';
% my $bgcolor2 = '#ffffff';
% my $bgcolor = '';
-%
-