Initial revision
[freeside.git] / htdocs / misc / print-invoice.cgi
1 #!/usr/bin/perl -Tw
2 #
3 # just a kludge for now, since this duplicates in a way it shouldn't stuff from
4 # Bill.pm (like $lpr) ivan@sisd.com 98-jun-16
5
6 use strict;
7 use CGI::Base qw(:DEFAULT :CGI);
8 use CGI::Carp qw(fatalsToBrowser);
9 use FS::UID qw(cgisuidsetup);
10 use FS::Record qw(qsearchs);
11 use FS::Invoice;
12
13 my($lpr) = "|lpr -h";
14
15 my($cgi) = new CGI::Base;
16 $cgi->get;
17 &cgisuidsetup($cgi);
18
19 #untaint invnum
20 $QUERY_STRING =~ /^(\d*)$/;
21 my($invnum)=$1;
22 my($cust_bill)=qsearchs('cust_bill',{'invnum'=>$invnum});
23 die "Can't find invoice!\n" unless $cust_bill;
24
25         bless($cust_bill,"FS::Invoice");
26         open(LPR,$lpr) or die "Can't open $lpr: $!";
27         print LPR $cust_bill->print_text; #( date )
28         close LPR
29           or die $! ? "Error closing $lpr: $!"
30                        : "Exit status $? from $lpr";
31
32 my($custnum)=$cust_bill->getfield('custnum');
33
34 $cgi->redirect("../view/cust_main.cgi?$custnum#history");
35
36 sub idiot {
37   my($error)=@_;
38   CGI::Base::SendHeaders(); # one guess
39   print <<END;
40 <HTML>
41   <HEAD>
42     <TITLE>Error printing invoice</TITLE>
43   </HEAD>
44   <BODY>
45     <CENTER>
46     <H4>Error printing invoice</H4>
47     </CENTER>
48     Your update did not occur because of the following error:
49     <P><B>$error</B>
50   </BODY>
51 </HTML>
52 END
53
54   exit;
55
56 }
57