-tr-select-cust_location.html and elements/location.html: optionally support alternat...
[freeside.git] / httemplate / view / cust_main / payment_history.html
index 8adc954..046899e 100644 (file)
@@ -1,7 +1,7 @@
 %# 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++ ? ' | ' : '' %>
   <% include('/elements/popup_link-cust_main.html',
                'label'       => 'Enter check payment',
@@ -14,7 +14,7 @@
   %>
 % } 
 
-% if ( $payby{'CASH'} && $curuser->access_right('Post payment') ) { 
+% if ( $payby{'CASH'} && $curuser->access_right(['Post payment', 'Post cash payment']) ) { 
   <% $s++ ? ' | ' : '' %>
   <% include('/elements/popup_link-cust_main.html',
                'label'       => 'Enter cash payment',
@@ -33,7 +33,7 @@
 % } 
 
 % 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++ ? ' | ' : '' %>
@@ -41,7 +41,7 @@
 % } 
 
 % 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++ ? ' | ' : '' %>
@@ -63,7 +63,7 @@
                'action'      => "${p}edit/cust_credit.cgi",
                'cust_main'   => $cust_main,
                'actionlabel' => 'Enter credit',
-               'width'       => 392,
+               'width'       => 616, #make room for reasons #540 default
                #default# 'height' => 336,
             )
   %>
@@ -73,7 +73,7 @@
 %# refund links
 
 % $s = 0;
-% if ( $payby{'BILL'} && $curuser->access_right('Post refund') ) { 
+% if ( $payby{'BILL'} && $curuser->access_right(['Post refund', 'Post check refund']) ) { 
   <% $s++ ? ' | ' : '' %>
   <% include('/elements/popup_link-cust_main.html',
                'label'       => 'Enter check refund',
@@ -86,7 +86,7 @@
   %>
 % } 
 
-% if ( $payby{'CASH'} && $curuser->access_right('Post refund') ) { 
+% if ( $payby{'CASH'} && $curuser->access_right(['Post refund', 'Post cash refund']) ) { 
   <% $s++ ? ' | ' : '' %>
   <% include('/elements/popup_link-cust_main.html',
                'label'       => 'Enter cash refund',
 
    <TR ID="balance_forward_row">
      <TD CLASS="grid" BGCOLOR="#dddddd">
-       <% time2str("%D",$date) %>
+       <% time2str($date_format, $date) %>
      </TD>
 
      <TD CLASS="grid" BGCOLOR="#dddddd">
-       <I>Starting balance on <% time2str("%D",$date) %></I>
+       <I>Starting balance on <% time2str($date_format, $date) %></I>
        (<A HREF="javascript:void(0);" onClick="show_history();">show prior history</A>)
      </TD>
 
 %my %target = ();
 %
 %my $years =  $conf->config('payment_history-years') || 2;
-%my $older_than = time - $years * 31556736; #60*60*24*365.24
+%my $older_than = time - $years * 31556926; #60*60*24*365.2422
 %my $hidden = 0;
 %my $seen = 0;
 %my $old_history = 0;
 
 
   <TR <% $display ? $display.' ID="old_history'.$old_history++.'"'  : ''%>>
-    <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
+    <TD VALIGN="top" CLASS="grid" BGCOLOR="<% $bgcolor %>">
 % unless ( !$target || $target{$target}++ ) { 
 
         <A NAME="<% $target %>">
 % } 
 
-      <% time2str("%D",$item->{'date'}) %>
+      <% time2str($date_format, $item->{'date'}) %>
 % if ( $target && $target{$target} == 1 ) { 
 
         </A>
     <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
       <% $item->{'desc'} %>
     </TD>
-    <TD ALIGN="right" CLASS="grid" BGCOLOR="<% $bgcolor %>">
+    <TD VALIGN="top" ALIGN="right" CLASS="grid" BGCOLOR="<% $bgcolor %>">
       <% $charge  %>
     </TD>
-    <TD ALIGN="right" CLASS="grid" BGCOLOR="<% $bgcolor %>">
+    <TD VALIGN="top" ALIGN="right" CLASS="grid" BGCOLOR="<% $bgcolor %>">
       <% $payment %>
     </TD>
-    <TD ALIGN="right" CLASS="grid" BGCOLOR="<% $bgcolor %>">
+    <TD VALIGN="top" ALIGN="right" CLASS="grid" BGCOLOR="<% $bgcolor %>">
       <% $credit  %>
     </TD>
-    <TD ALIGN="right" CLASS="grid" BGCOLOR="<% $bgcolor %>">
+    <TD VALIGN="top" ALIGN="right" CLASS="grid" BGCOLOR="<% $bgcolor %>">
       <% $refund  %>
     </TD>
-    <TD ALIGN="right" CLASS="grid" BGCOLOR="<% $bgcolor %>">
+    <TD VALIGN="top" ALIGN="right" CLASS="grid" BGCOLOR="<% $bgcolor %>">
       <% $showbalance %>
     </TD>
   </TR>
@@ -355,6 +355,7 @@ my( $cust_main ) = @_;
 my $custnum = $cust_main->custnum;
 
 my $conf = new FS::Conf;
+my $date_format = $conf->config('date_format') || '%m/%d/%Y';
 
 my $curuser = $FS::CurrentUser::CurrentUser;
 
@@ -376,15 +377,13 @@ my @history = ();
 
 my %opt = (
   ( map { $_ => scalar($conf->config($_)) }
-        qw( card_refund-days )
+        qw( card_refund-days date_format )
   ),
   ( map { $_ => $conf->exists($_) } 
-        qw( deletepayments deleterefunds pkg-balances )
+        qw( deleteinvoices deletepayments deleterefunds pkg-balances )
   )
 );
 
-warn Dumper(\%opt);
-
 #invoices
 foreach my $cust_bill ($cust_main->cust_bill) {
   push @history, {
@@ -394,6 +393,15 @@ foreach my $cust_bill ($cust_main->cust_bill) {
   };
 }
 
+#statements
+foreach my $cust_statement ($cust_main->cust_statement) {
+  push @history, {
+    'date'   => $cust_statement->_date,
+    'desc'   => include('payment_history/statement.html', $cust_statement, %opt ),
+    #'charge' => $cust_bill->charged,
+  };
+}
+
 #payments (some false laziness w/credits)
 foreach my $cust_pay ($cust_main->cust_pay) {
   push @history, {
@@ -404,6 +412,16 @@ foreach my $cust_pay ($cust_main->cust_pay) {
   };
 }
 
+#pending payments 
+foreach my $cust_pay_pending ($cust_main->cust_pay_pending) {
+  push @history, {
+    'date'    => $cust_pay_pending->_date,
+    'desc'    => include('payment_history/pending_payment.html', $cust_pay_pending, %opt ),
+    'void_payment' => $cust_pay_pending->paid, 
+  };
+}
+
+
 #voided payments
 foreach my $cust_pay_void ($cust_main->cust_pay_void) {
   push @history, {
@@ -414,6 +432,16 @@ foreach my $cust_pay_void ($cust_main->cust_pay_void) {
 
 }
 
+#declined payments
+foreach my $cust_pay_pending ($cust_main->cust_pay_pending_attempt) {
+  push @history, {
+    'date'    => $cust_pay_pending->_date,
+    'desc'    => include('payment_history/attempted_payment.html', $cust_pay_pending, %opt ),
+    'void_payment' => $cust_pay_pending->paid, #??
+    #'target'  => $target, #XXX
+  };
+}
+
 #credits (some false laziness w/payments)
 foreach my $cust_credit ($cust_main->cust_credit) {
   push @history, {