added an e-mail link on payment receipts, RT7946
[freeside.git] / httemplate / view / cust_pay.html
index 4037d35..1408b3d 100644 (file)
@@ -1,32 +1,40 @@
 % if ( $link eq 'popup' ) { 
 
-  <% include('/elements/header-popup.html', "Payment Receipt" ) %>
+  <% include('/elements/header-popup.html', "$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 %>'">Print</A> | 
+    <A HREF="javascript:self.location = '<% $email_link %>'">Re-email</A>
+  </div><BR>
 
 % } elsif ( $link eq 'print' ) { 
 
-  <% include('/elements/header-popup.html', "Payment Receipt" ) %>
+  <% include('/elements/header-popup.html', "$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 (#$custnum)" => "${p}view/cust_main.cgi?$custnum",
+       "View this customer (#$display_custnum)" => "${p}view/cust_main.cgi?$custnum",
      )
   %>
   <BR><BR>
-
+% } elsif ( $link eq 'email' ) {
+%  if ( $email_error ) {
+      <% include('/elements/header-popup.html', "Error re-emailing receipt: $email_error" ) %>
+%  } else {
+      <% include('/elements/header-popup.html', "Re-emailed receipt" ) %>
+%  }
 % } else { 
 
-  <% include('/elements/header.html', "Payment Receipt", menubar(
-       "View this customer (#$custnum)" => "${p}view/cust_main.cgi?$custnum",
+  <% include('/elements/header.html', "$thing Receipt", menubar(
+       "View this customer (#$display_custnum)" => "${p}view/cust_main.cgi?$custnum",
        'Print receipt' => $pr_link,
      ))
   %>
 
 % }
 
-% unless ($link eq 'popup' ) {
+% unless ($link =~ /^(popup|email)$/ ) {
   <% include('/elements/small_custview.html',
                $custnum,
                scalar($conf->config('countrydefault')),
   <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 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 BGCOLOR="#FFFFFF"><B><% $cust_pay->reason %></B></TD>
+%#  </TR>
+
+% }
+
 <TR>
   <TD ALIGN="right">Amount</TD>
   <TD BGCOLOR="#FFFFFF"><B><% $money_char. $cust_pay->paid %></B></TD>
 
 % }
 
+% 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 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 {
 my $curuser = $FS::CurrentUser::CurrentUser;
 
 die "access denied"
-  unless $curuser->access_right('View customer payments');
+  unless $curuser->access_right('View invoices') #remove this in 1.9 EVENTUALLY
+  || $curuser->access_right('View customer payments');
 
 $cgi->param('paynum') =~ /^(\d+)$/ or die "no paynum";
 my $paynum = $1;
@@ -111,18 +148,24 @@ if ( $cgi->param('link') =~ /^(\w+)$/ ) {
   $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 $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_pay->cust_main->display_custnum;
 
 my $conf = new FS::Conf;
 
@@ -130,4 +173,14 @@ my $money_char = $conf->config('money_char') || '$';
 
 tie my %payby, 'Tie::IxHash', FS::payby->payby2longname;
 
+my $email_error;
+
+if ( $link eq 'email' ) {
+    my $email_error = $cust_pay->send_receipt(
+       'manual' => 1,
+    );
+
+    warn "can't send payment receipt/statement: $email_error" if $email_error;
+}
+
 </%init>