Initial revision
[freeside.git] / htdocs / misc / bill.cgi
diff --git a/htdocs/misc/bill.cgi b/htdocs/misc/bill.cgi
new file mode 100755 (executable)
index 0000000..d41f6d1
--- /dev/null
@@ -0,0 +1,66 @@
+#!/usr/bin/perl -Tw
+#
+# s/FS:Search/FS::Record/ and cgisuidsetup($cgi) ivan@sisd.com 98-mar-13
+#
+# Changes to allow page to work at a relative position in server
+#       bmccane@maxbaud.net     98-apr-3
+
+use strict;
+use CGI::Base qw(:DEFAULT :CGI);
+use CGI::Carp qw(fatalsToBrowser);
+use FS::UID qw(cgisuidsetup);
+use FS::Record qw(qsearchs);
+use FS::Bill;
+
+my($cgi) = new CGI::Base;
+$cgi->get;
+&cgisuidsetup($cgi);
+
+#untaint custnum
+$QUERY_STRING =~ /^(\d*)$/;
+my($custnum)=$1;
+my($cust_main)=qsearchs('cust_main',{'custnum'=>$custnum});
+die "Can't find customer!\n" unless $cust_main;
+
+# ? 
+bless($cust_main,"FS::Bill");
+
+my($error);
+
+$error = $cust_main->bill(
+#                          'time'=>$time
+                         );
+&idiot($error) if $error;
+
+$error = $cust_main->collect(
+#                             'invoice-time'=>$time,
+#                             'batch_card'=> 'yes',
+                             'batch_card'=> 'no',
+                             'report_badcard'=> 'yes',
+                            );
+&idiot($error) if $error;
+
+$cgi->redirect("../view/cust_main.cgi?$custnum#history");
+
+sub idiot {
+  my($error)=@_;
+  CGI::Base::SendHeaders(); # one guess
+  print <<END;
+<HTML>
+  <HEAD>
+    <TITLE>Error billing customer</TITLE>
+  </HEAD>
+  <BODY>
+    <CENTER>
+    <H4>Error billing customer</H4>
+    </CENTER>
+    Your update did not occur because of the following error:
+    <P><B>$error</B>
+  </BODY>
+</HTML>
+END
+
+  exit;
+
+}
+