Initial revision
[freeside.git] / htdocs / misc / bill.cgi
1 #!/usr/bin/perl -Tw
2 #
3 # s/FS:Search/FS::Record/ and cgisuidsetup($cgi) ivan@sisd.com 98-mar-13
4 #
5 # Changes to allow page to work at a relative position in server
6 #       bmccane@maxbaud.net     98-apr-3
7
8 use strict;
9 use CGI::Base qw(:DEFAULT :CGI);
10 use CGI::Carp qw(fatalsToBrowser);
11 use FS::UID qw(cgisuidsetup);
12 use FS::Record qw(qsearchs);
13 use FS::Bill;
14
15 my($cgi) = new CGI::Base;
16 $cgi->get;
17 &cgisuidsetup($cgi);
18
19 #untaint custnum
20 $QUERY_STRING =~ /^(\d*)$/;
21 my($custnum)=$1;
22 my($cust_main)=qsearchs('cust_main',{'custnum'=>$custnum});
23 die "Can't find customer!\n" unless $cust_main;
24
25 # ? 
26 bless($cust_main,"FS::Bill");
27
28 my($error);
29
30 $error = $cust_main->bill(
31 #                          'time'=>$time
32                          );
33 &idiot($error) if $error;
34
35 $error = $cust_main->collect(
36 #                             'invoice-time'=>$time,
37 #                             'batch_card'=> 'yes',
38                              'batch_card'=> 'no',
39                              'report_badcard'=> 'yes',
40                             );
41 &idiot($error) if $error;
42
43 $cgi->redirect("../view/cust_main.cgi?$custnum#history");
44
45 sub idiot {
46   my($error)=@_;
47   CGI::Base::SendHeaders(); # one guess
48   print <<END;
49 <HTML>
50   <HEAD>
51     <TITLE>Error billing customer</TITLE>
52   </HEAD>
53   <BODY>
54     <CENTER>
55     <H4>Error billing customer</H4>
56     </CENTER>
57     Your update did not occur because of the following error:
58     <P><B>$error</B>
59   </BODY>
60 </HTML>
61 END
62
63   exit;
64
65 }
66