promised payment date for invoices, #13554
[freeside.git] / httemplate / view / cust_main / payment_history.html
index e561c70..63708e6 100644 (file)
@@ -1,13 +1,17 @@
+<TABLE>
+  <TR>
+    <TD ALIGN="left">
+
 %# payment links
 
 % my $s = 0;
 % if ( $payby{'BILL'} && $curuser->access_right(['Post payment', 'Post check payment' ]) ) { 
   <% $s++ ? ' | ' : '' %>
   <& /elements/popup_link-cust_main.html,
-               'label'       => mt('Enter check payment'),
+               'label'       => emt('Enter check payment'),
                'action'      => "${p}edit/cust_pay.cgi?popup=1;payby=BILL",
                'cust_main'   => $cust_main,
-               'actionlabel' => mt('Enter check payment'),
+               'actionlabel' => emt('Enter check payment'),
                'width'       => 392,
   &>
 % } 
 % if ( $payby{'CASH'} && $curuser->access_right(['Post payment', 'Post cash payment']) ) { 
   <% $s++ ? ' | ' : '' %>
   <& /elements/popup_link-cust_main.html,
-               'label'       => mt('Enter cash payment'),
+               'label'       => emt('Enter cash payment'),
                'action'      => "${p}edit/cust_pay.cgi?popup=1;payby=CASH",
                'cust_main'   => $cust_main,
-               'actionlabel' => mt('Enter cash payment'),
+               'actionlabel' => emt('Enter cash payment'),
                'width'       => 392,
   &>
 % } 
@@ -28,6 +32,9 @@
   <A HREF="<% $p %>edit/cust_pay.cgi?payby=WEST;custnum=<% $custnum %>"><% mt('Enter Western Union payment') |h %></A>
 % } 
 
+<BR>
+% $s=0;
+
 % if ( ( $payby{'CARD'} || $payby{'DCRD'} )
 %        && $curuser->access_right(['Process payment', 'Process credit card payment'])
 %        && ! $cust_main->is_encrypted($cust_main->payinfo)
 
 % if ( $curuser->access_right('Post credit') ) { 
   <& /elements/popup_link-cust_main.html,
-               'label'       => mt('Enter credit'),
+               'label'       => emt('Enter credit'),
                'action'      => "${p}edit/cust_credit.cgi",
                'cust_main'   => $cust_main,
-               'actionlabel' => mt('Enter credit'),
+               'actionlabel' => emt('Enter credit'),
                'width'       => 616, #make room for reasons #540 default
   &>
   <BR>
 % if ( $payby{'BILL'} && $curuser->access_right(['Post refund', 'Post check refund']) ) { 
   <% $s++ ? ' | ' : '' %>
   <& /elements/popup_link-cust_main.html,
-               'label'       => mt('Enter check refund'),
+               'label'       => emt('Enter check refund'),
                'action'      => "${p}edit/cust_refund.cgi?popup=1;payby=BILL",
                'cust_main'   => $cust_main,
-               'actionlabel' => mt('Enter check refund'),
+               'actionlabel' => emt('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'),
+               'label'       => emt('Enter cash refund'),
                'action'      => "${p}edit/cust_refund.cgi?popup=1;payby=CASH",
                'cust_main'   => $cust_main,
-               'actionlabel' => mt('Enter cash refund'),
+               'actionlabel' => emt('Enter cash refund'),
                'width'       => 392,
   &>
 % } 
   <A HREF="<% $p %>edit/cust_refund.cgi?payby=MCRD;custnum=<% $custnum %>"><% mt('Post manual (offline/POS) credit card refund') |h %></A>
 % } 
 
+    </TD>
+    <TD ALIGN="right" VALIGN="top">
+
+%# invoice reports
+% if ( $curuser->access_right('List invoices') ) { 
+  <A HREF="<% $p %>search/report_cust_bill.html?custnum=<% $custnum %>"><% mt('Invoice reports') |h %></A>
+% } 
 <BR>
 
+%# XXX payments, credits, refund reports
+
 %# tax exemption link
 
 % my $view_exemptions = $curuser->access_right('View customer tax exemptions');
 %   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'),
+           'label'  => emt('Add tax adjustment'),
+           'actionlabel' => emt('Add tax adjustment'),
            'height' => 200,
          }
       &>
     <A HREF="<% $p %>search/cust_pay_pending.html?magic=_date;statusNOT=done;custnum=<% $custnum %>"><% mt('View pending payments') |h %></A><BR>
 % }
 
+    </TD>
+  </TR>
+  <TR>
+    <TD COLSPAN=2>
+
 %# and now the table
 
 <& /elements/table-grid.html &>
   <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Description') |h %></TH>
   <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1><% mt('Invoice') |h %></FONT></TH>
   <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1><% mt('Payment') |h %></FONT></TH>
-  <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>In-house Credit</FONT></TH>
+  <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1><% mt('In-house Credit') |h %></FONT></TH>
   <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1><% mt('Refund') |h %></FONT></TH>
   <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1><% mt('Balance') |h %></FONT></TH>
 </TR>
 %
 %  my $charge  = exists($item->{'charge'})
 %                  ? sprintf("$money_char\%.2f", $item->{'charge'})
-%                  : '';
+%                  : exists($item->{'charge_nobal'})
+%                    ? sprintf("$money_char\%.2f", $item->{'charge_nobal'})
+%                    : '';
 %
 %  my $payment = exists($item->{'payment'})
 %                  ? sprintf("-&nbsp;$money_char\%.2f", $item->{'payment'})
 %}
 
 </TABLE>
+    </TD>
+  </TR>
+</TABLE>
 
 <SCRIPT TYPE="text/javascript">
 
@@ -372,6 +398,17 @@ my %opt = (
   )
 );
 
+$opt{'date_format'} ||= '%m/%d/%Y';
+
+#legacy invoices
+foreach my $legacy_cust_bill ($cust_main->legacy_cust_bill) {
+  push @history, {
+    'date'   => $legacy_cust_bill->_date,
+    'desc'   => include('payment_history/legacy_invoice.html', $legacy_cust_bill, %opt ),
+    'charge_nobal' => $legacy_cust_bill->charged,
+  };
+}
+
 #invoices
 foreach my $cust_bill ($cust_main->cust_bill) {
   push @history, {
@@ -453,14 +490,14 @@ foreach my $cust_refund ($cust_main->cust_refund) {
 sub translate_payby {
     my ($payby,$payinfo) = (shift,shift);
     my %payby = (
-        BILL    => $payinfo ? mt('Check #') : '',
-        CHEK    => mt('Electronic check '),
-        PREP    => mt('Prepaid card '),
-        CARD    => mt('Credit card #'),
-        COMP    => mt('Complimentary by '),
-        CASH    => mt('Cash'),
-        WEST    => mt('Western Union'),
-        MCRD    => mt('Manual credit card'),
+        BILL    => $payinfo ? emt('Check #') : '',
+        CHEK    => emt('Electronic check '),
+        PREP    => emt('Prepaid card '),
+        CARD    => emt('Credit card #'),
+        COMP    => emt('Complimentary by '),
+        CASH    => emt('Cash'),
+        WEST    => emt('Western Union'),
+        MCRD    => emt('Manual credit card'),
     );
     $payby = (exists $payby{$payby}) ? $payby{$payby} : $payby; 
     $payby;
@@ -469,13 +506,35 @@ sub translate_payby {
 sub translate_payby_refund {
     my ($payby,$payinfo) = (shift,shift);
     my %payby = (
-        BILL    => $payinfo ? mt('Check #') : mt('Check'),
-        CHEK    => mt('Electronic check '),
-        CARD    => 'CARD ',
-        COMP    => 'COMP ',
+        BILL    => $payinfo ? emt('Check #') : emt('Check'),
+        CHEK    => emt('Electronic check '),
+        CARD    => emt('Credit card #'),
+        COMP    => emt('Complimentary by '),
     );
     $payby = (exists $payby{$payby}) ? $payby{$payby} : $payby; 
     $payby;
 };
 
+sub translate_payinfo {
+    my $object = shift;
+    my $payby = $object->payby;
+    my $payinfo = $object->payinfo;
+
+    my $conf = new FS::Conf;
+
+    if ( $payby eq 'CARD' ) {
+        $payinfo = $object->paymask;
+    } elsif ( $payby eq 'CHEK' ) {
+        my( $account, $aba ) = split('@', $object->paymask );
+        $payinfo = emt("ABA [_1], Acct #[_2]",$aba,$account);
+    }
+
+    ($payby,$payinfo);
+}
+
+sub areyousure_link {
+    my ($url,$msg,$title,$label) = (shift,shift,shift,shift);
+    ' (<A HREF="javascript:areyousure(\''.$url.'\',\''.$msg.'\')" TITLE="'.$title.'">'.$label.'</A>)';
+}
+
 </%init>