% if ( $link eq 'popup' ) {
- <% include('/elements/header-popup.html', "Payment 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', "Payment 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(
+ 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', "Payment Receipt", menubar(
- "View this customer (#$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 %b %o, %Y %r", $cust_pay->_date %></B></TD>
</TR>
+% if ( $void ) {
+
+ <TR>
+ <TD ALIGN="right"><% mt('Void Date') |h %></TD>
+ <TD BGCOLOR="#FFFFFF"><B><% time2str"%a %b %o, %Y %r", $cust_pay->void_date %></B></TD>
+ </TR>
+
+%# <TR>
+%# <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 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"><% mt('For package') |h %></TD>
+ <TD BGCOLOR="#FFFFFF"><B><% $cust_pkg->pkg_label_long %></B></TD>
+ </TR>
+
+% }
+
</TABLE>
% if ( $link eq 'print' ) {
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
- || $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;
$link = $1;
}
+my $void = $cgi->param('void') ? 1 : 0;
+my $thing = $void ? 'Voided Payment' : 'Payment';
+my $table = $void ? 'cust_pay_void' : 'cust_pay';
+
my $cust_pay = qsearchs({
- 'select' => 'cust_pay.*',
- 'table' => 'cust_pay',
+ 'select' => "$table.*",
+ 'table' => $table,
'addl_from' => 'LEFT JOIN cust_main USING ( custnum )',
'hashref' => { 'paynum' => $paynum },
'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql,
});
-die "Payment #$paynum not found!" unless $cust_pay;
+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";
+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_main->display_custnum;
my $conf = new FS::Conf;
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>