% if ( $link eq 'popup' ) { <& /elements/header-popup.html, mt("$thing Receipt") &>
<% mt('Print') |h %> % if ( $cust_main->invoicing_list_emailonly ) { | <% mt('Re-email') |h %> % }

% } 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", ) %>

% } 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 &>

% } <% ntable("#cccccc", 2) %> <% mt('Payment #') |h %> <% $cust_pay->paynum %> <% mt('Date') |h %> <% time2str"%a %b %o, %Y %r", $cust_pay->_date %> % if ( $void ) { <% mt('Void Date') |h %> <% time2str"%a %b %o, %Y %r", $cust_pay->void_date %> %# %# <% mt('Void reason') |h %> %# <% $cust_pay->reason %> %# % } <% mt('Amount') |h %> <% $money_char. $cust_pay->paid %> <% mt('Payment method') |h %> <% $cust_pay->payby_name %> #<% $cust_pay->paymask %> % if ( $cust_pay->payby =~ /^(CARD|CHEK|LECB)$/ && $cust_pay->processor ) { <% mt('Processor') |h %> <% $cust_pay->processor %> <% mt('Authorization #') |h %> <% $cust_pay->auth %> % } % # API allows setting this for any payby % if ( $cust_pay->order_number ) { <% mt('Order #') |h %> <% $cust_pay->order_number %> % } % if ( $cust_pay->payby eq 'CASH' && $cust_pay->payinfo ) { <% mt('Bank') |h %> <% $cust_pay->bank %> <% mt('Teller #') |h %> <% $cust_pay->teller %> <% mt('Depositor') |h %> <% $cust_pay->depositor %> <% mt('Account #') |h %> <% $cust_pay->account %> % } % if ( $conf->exists('pkg-balances') && $cust_pay->pkgnum ) { % my $cust_pkg = qsearchs('cust_pkg', { 'pkgnum' => $cust_pay->pkgnum } ); <% mt('For package') |h %> <% $cust_pkg->pkg_label_long %> % } % if ( $link eq 'print' ) { % } elsif ( $link eq 'email' ) { % } % if ( $link =~ /^(popup|print|email)$/ ) { % } else { <& /elements/footer.html &> % } <%init> my $curuser = $FS::CurrentUser::CurrentUser; die "access denied" 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; 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 $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_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' ) { $email_error = $cust_pay->send_receipt( 'manual' => 1, 'cust_main' => $cust_main, ); warn "can't send payment receipt/statement: $email_error" if $email_error; }