diff options
Diffstat (limited to 'httemplate/view/cust_pay.html')
| -rw-r--r-- | httemplate/view/cust_pay.html | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/httemplate/view/cust_pay.html b/httemplate/view/cust_pay.html new file mode 100644 index 000000000..c9b2d51b5 --- /dev/null +++ b/httemplate/view/cust_pay.html @@ -0,0 +1,183 @@ +% if ( $link eq 'popup' ) { + + <& /elements/header-popup.html, mt("$thing Receipt") &> + + <div align="center"> + <A HREF="javascript:self.parent.location = '<% $pr_link %>'"><% mt('Print') |h %></A> | + <A HREF="javascript:self.location = '<% $email_link %>'"><% mt('Re-email') |h %></A> + </div><BR> + +% } elsif ( $link eq 'print' ) { + + <& /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 { + + <& /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 =~ /^(popup|email)$/ ) { + <& /elements/small_custview.html, + $custnum, + scalar($conf->config('countrydefault')), + 1, #no balance + &> + <BR><BR> +% } + +<% ntable("#cccccc", 2) %> + +<TR> + <TD ALIGN="right"><% mt('Payment #') |h %></TD> + <TD BGCOLOR="#FFFFFF"><B><% $cust_pay->paynum %></B></TD> +</TR> + +<TR> + <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"><% mt('Amount') |h %></TD> + <TD BGCOLOR="#FFFFFF"><B><% $money_char. $cust_pay->paid %></B></TD> +</TR> +<TR> + <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 ) { + + <TR> + <TD ALIGN="right"><% mt('Processor') |h %></TD> + <TD BGCOLOR="#FFFFFF"><B><% $cust_pay->processor %></B></TD> + </TR> + + <TR> + <TD ALIGN="right"><% mt('Authorization #') |h %></TD> + <TD BGCOLOR="#FFFFFF"><B><% $cust_pay->authorization %></B></TD> + </TR> + +% 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 ( $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' ) { + + <SCRIPT TYPE="text/javascript"> + window.print(); + </SCRIPT> + +% } elsif ( $link eq 'email' ) { + + <SCRIPT TYPE="text/javascript"> + window.top.location.reload(); + </SCRIPT> + +% } +% if ( $link =~ /^(popup|print|email)$/ ) { + </BODY> + </HTML> +% } else { + <& /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'); + +$cgi->param('paynum') =~ /^(\d+)$/ or die "no paynum"; +my $paynum = $1; + +my $link = ''; +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' => "$table.*", + 'table' => $table, + 'addl_from' => 'LEFT JOIN cust_main USING ( custnum )', + 'hashref' => { 'paynum' => $paynum }, + 'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql, +}); +die "$thing #$paynum not found!" unless $cust_pay; + +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; + +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> |
