<% #untaint invnum my($query) = $cgi->keywords; $query =~ /^((.+)-)?(\d+)$/; my $templatename = $2; my $invnum = $3; my $conf = new FS::Conf; my $cust_bill = qsearchs('cust_bill',{'invnum'=>$invnum}); die "Invoice #$invnum not found!" unless $cust_bill; my $custnum = $cust_bill->getfield('custnum'); #my $printed = $cust_bill->printed; print header('Invoice View', menubar( "Main Menu" => $p, "View this customer (#$custnum)" => "${p}view/cust_main.cgi?$custnum", )); print qq!Enter payments (check/cash) against this invoice | ! if $cust_bill->owed > 0; print qq!Reprint this invoice!; if ( grep { $_ ne 'POST' } $cust_bill->cust_main->invoicing_list ) { print qq! | !. qq!Re-email this invoice!; } print qq! | Refax this invoice! if ($conf->exists('hylafax')); print '

'; if ( $conf->exists('invoice_latex') ) { my $link = "${p}view/cust_bill-pdf.cgi?"; $link .= "$templatename-" if $templatename; $link .= "$invnum.pdf"; print menubar( 'View typeset invoice' => $link, ), '

'; } #false laziness with search/cust_bill_event.cgi unless ( $templatename ) { print table(). 'EventDateStatus'; foreach my $cust_bill_event ( sort { $a->_date <=> $b->_date } $cust_bill->cust_bill_event ) { my $status = $cust_bill_event->status; $status .= ': '. encode_entities($cust_bill_event->statustext) if $cust_bill_event->statustext; my $part_bill_event = $cust_bill_event->part_bill_event; print ''. $part_bill_event->event; if ( $part_bill_event->plan eq 'send_alternate' && $part_bill_event->plandata =~ /^templatename (.*)$/m ) { my $templatename = $1; print qq! ( !. 'view text | '. qq!!. 'view typeset )'; } print ''. time2str("%a %b %e %T %Y", $cust_bill_event->_date). ''. $status. ''; } print '
'; } print '
', $cust_bill->print_text('', $templatename);

	#formatting
	print <
  

END

%>