stray closing /TABLE in the no-ticket case
[freeside.git] / httemplate / view / cust_pay.html
index 2f23d9e..ba4cfda 100644 (file)
 % if ( $link eq 'popup' ) { 
 
-  <% include('/elements/header-popup.html', "$thing Receipt" ) %>
+  <& /elements/header-popup.html, mt("$thing Receipt") &>
 
-  <CENTER><A HREF="javascript:self.parent.location = '<% $pr_link %>'">Print</A></CENTER><BR>
+  <div align="center">
+    <A HREF="javascript:self.parent.location = '<% $pr_link %>'"><% mt('Print') |h %></A>
+%   if ( $cust_main->invoicing_list_emailonly ) {
+    | <A HREF="javascript:self.location = '<% $email_link %>'"><% mt('Re-email') |h %></A>
+%   }
+  </div><BR>
 
 % } elsif ( $link eq 'print' ) { 
 
-  <% include('/elements/header-popup.html', "$thing Receipt" ) %>
+  <& /elements/header-popup.html, mt("$thing Receipt") &>
   
 % #it would be nice if the menubar could be hidden for print, but better to
 % # have it available than not, otherwise the user winds up at a dead end
   <% menubar(
-       "View this customer (#$display_custnum)" => "${p}view/cust_main.cgi?$custnum",
+       emt("View this customer (#[_1])",$display_custnum) => "${p}view/cust_main.cgi?$custnum",
      )
   %>
   <BR><BR>
-
+% } elsif ( $link eq 'email' ) {
+%  if ( $email_error ) {
+      <& /elements/header-popup.html, mt("Error re-emailing receipt: [_1]", $email_error) &>
+%  } else {
+      <& /elements/header-popup.html, mt("Re-emailed receipt") &>
+%  }
 % } else { 
 
-  <% include('/elements/header.html', "$thing Receipt", menubar(
-       "View this customer (#$display_custnum)" => "${p}view/cust_main.cgi?$custnum",
-       'Print receipt' => $pr_link,
-     ))
-  %>
+  <& /elements/header.html, mt("$thing Receipt"), menubar(
+       emt("View this customer (#[_1])",$display_custnum) => "${p}view/cust_main.cgi?$custnum",
+       emt('Print receipt') => $pr_link,
+     )
+  &>
 
 % }
 
-% unless ($link eq 'popup' ) {
-  <% include('/elements/small_custview.html',
+% unless ($link =~ /^(popup|email)$/ ) {
+  <& /elements/small_custview.html,
                $custnum,
                scalar($conf->config('countrydefault')),
                1, #no balance
-            )
-  %>
+  &>
   <BR><BR>
 % } 
 
 <% ntable("#cccccc", 2) %>
 
 <TR>
-  <TD ALIGN="right">Payment#</TD>
+  <TD ALIGN="right"><% mt('Payment #') |h %></TD>
   <TD BGCOLOR="#FFFFFF"><B><% $cust_pay->paynum %></B></TD>
 </TR>
 
 <TR>
-  <TD ALIGN="right">Date</TD>
+  <TD ALIGN="right"><% mt('Date') |h %></TD>
   <TD BGCOLOR="#FFFFFF"><B><% time2str"%a&nbsp;%b&nbsp;%o,&nbsp;%Y&nbsp;%r", $cust_pay->_date %></B></TD>
 </TR>
 
 % if ( $void ) {
 
   <TR>
-    <TD ALIGN="right">Void Date</TD>
+    <TD ALIGN="right"><% mt('Void Date') |h %></TD>
     <TD BGCOLOR="#FFFFFF"><B><% time2str"%a&nbsp;%b&nbsp;%o,&nbsp;%Y&nbsp;%r", $cust_pay->void_date %></B></TD>
   </TR>
 
 %#  <TR>
-%#    <TD ALIGN="right">Void reason</TD>
+%#    <TD ALIGN="right"><% mt('Void reason') |h %></TD>
 %#    <TD BGCOLOR="#FFFFFF"><B><% $cust_pay->reason %></B></TD>
 %#  </TR>
 
 % }
-
 <TR>
-  <TD ALIGN="right">Amount</TD>
+  <TD ALIGN="right"><% mt('Amount') |h %></TD>
   <TD BGCOLOR="#FFFFFF"><B><% $money_char. $cust_pay->paid %></B></TD>
 </TR>
-
 <TR>
-  <TD ALIGN="right">Payment method</TD>
+  <TD ALIGN="right"><% mt('Payment method') |h %></TD>
   <TD BGCOLOR="#FFFFFF"><B><% $cust_pay->payby_name %> #<% $cust_pay->paymask %></B></TD>
 </TR>
 
-% if ( $cust_pay->payby =~ /^(CARD|CHEK|LECB)$/ && $cust_pay->paybatch ) { 
+% if ( $cust_pay->payby =~ /^(CARD|CHEK|LECB)$/ && $cust_pay->processor ) { 
 
     <TR>
-      <TD ALIGN="right">Processor</TD>
+      <TD ALIGN="right"><% mt('Processor') |h %></TD>
       <TD BGCOLOR="#FFFFFF"><B><% $cust_pay->processor %></B></TD>
     </TR>
 
     <TR>
-      <TD ALIGN="right">Authorization#</TD>
-      <TD BGCOLOR="#FFFFFF"><B><% $cust_pay->authorization %></B></TD>
+      <TD ALIGN="right"><% mt('Authorization #') |h %></TD>
+      <TD BGCOLOR="#FFFFFF"><B><% $cust_pay->auth %></B></TD>
     </TR>
 
-%   if ( $cust_pay->order_number ) {
-      <TR>
-        <TD ALIGN="right">Order#</TD>
-        <TD BGCOLOR="#FFFFFF"><B><% $cust_pay->order_number %></B></TD>
-      </TR>
-%   }
+% }
+
+% # API allows setting this for any payby
+% if ( $cust_pay->order_number ) {
+    <TR>
+      <TD ALIGN="right"><% mt('Order #') |h %></TD>
+      <TD BGCOLOR="#FFFFFF"><B><% $cust_pay->order_number %></B></TD>
+    </TR>
+% }
+
+% if ( $cust_pay->payby eq 'CASH' && $cust_pay->payinfo ) {
+    <TR>
+      <TD ALIGN="right"><% mt('Bank') |h %></TD>
+      <TD BGCOLOR="#FFFFFF"><B><% $cust_pay->bank %></B></TD>
+    </TR>
 
+    <TR>
+      <TD ALIGN="right"><% mt('Teller #') |h %></TD>
+      <TD BGCOLOR="#FFFFFF"><B><% $cust_pay->teller %></B></TD>
+    </TR>
+
+    <TR>
+      <TD ALIGN="right"><% mt('Depositor') |h %></TD>
+      <TD BGCOLOR="#FFFFFF"><B><% $cust_pay->depositor %></B></TD>
+    </TR>
+
+    <TR>
+      <TD ALIGN="right"><% mt('Account #') |h %></TD>
+      <TD BGCOLOR="#FFFFFF"><B><% $cust_pay->account %></B></TD>
+    </TR>
 % }
 
 % if ( $conf->exists('pkg-balances') && $cust_pay->pkgnum ) {
 %   my $cust_pkg = qsearchs('cust_pkg', { 'pkgnum' => $cust_pay->pkgnum } );
     <TR>
-      <TD ALIGN="right">For package</TD>
+      <TD ALIGN="right"><% mt('For package') |h %></TD>
       <TD BGCOLOR="#FFFFFF"><B><% $cust_pkg->pkg_label_long %></B></TD>
     </TR>
 
     window.print();
   </SCRIPT>
 
-% }
+% } elsif ( $link eq 'email' ) {
+
+    <SCRIPT TYPE="text/javascript">
+      window.top.location.reload();
+    </SCRIPT>
 
-% if ( $link =~ /^(popup|print)$/ ) { 
+% }
+% if ( $link =~ /^(popup|print|email)$/ ) { 
     </BODY>
   </HTML>
 % } else {
-  <% include('/elements/footer.html') %>
+  <& /elements/footer.html &>
 % }
 
 <%init>
 my $curuser = $FS::CurrentUser::CurrentUser;
 
 die "access denied"
-  unless $curuser->access_right('View invoices') #remove this in 1.9 EVENTUALLY
-  || $curuser->access_right('View customer payments');
+  unless $curuser->access_right('View invoices') #remove this in 2.5 (2.7?)
+  || $curuser->access_right('View payments');
 
 $cgi->param('paynum') =~ /^(\d+)$/ or die "no paynum";
 my $paynum = $1;
@@ -148,10 +183,13 @@ my $cust_pay = qsearchs({
 });
 die "$thing #$paynum not found!" unless $cust_pay;
 
+my $cust_main = $cust_pay->cust_main;
+
 my $pr_link = "${p}view/cust_pay.html?link=print;paynum=$paynum;void=$void";
+my $email_link = "${p}view/cust_pay.html?link=email;paynum=$paynum;void=$void";
 
 my $custnum = $cust_pay->custnum;
-my $display_custnum = $cust_pay->cust_main->display_custnum;
+my $display_custnum = $cust_main->display_custnum;
 
 my $conf = new FS::Conf;
 
@@ -159,4 +197,15 @@ my $money_char = $conf->config('money_char') || '$';
 
 tie my %payby, 'Tie::IxHash', FS::payby->payby2longname;
 
+my $email_error;
+
+if ( $link eq 'email' ) {
+    $email_error = $cust_pay->send_receipt(
+      'manual' => 1,
+      'cust_main' => $cust_main,
+    );
+
+    warn "can't send payment receipt/statement: $email_error" if $email_error;
+}
+
 </%init>