s/CGI::(Request|Base)/CGI.pm/;
[freeside.git] / htdocs / misc / cancel-unaudited.cgi
1 #!/usr/bin/perl -Tw
2 #
3 # $Id: cancel-unaudited.cgi,v 1.2 1998-12-17 09:12:42 ivan Exp $
4 #
5 # Usage: cancel-unaudited.cgi svcnum
6 #        http://server.name/path/cancel-unaudited.cgi pkgnum
7 #
8 # Note: Should be run setuid freeside as user nobody
9 #
10 # ivan@voicenet.com 97-apr-23
11 #
12 # rewrote for new API
13 # ivan@voicenet.com 97-jul-21
14 #
15 # Search->Record, cgisuidsetup($cgi) ivan@sids.com 98-mar-19
16 #
17 # Changes to allow page to work at a relative position in server
18 #       bmccane@maxbaud.net     98-apr-3
19 #
20 # $Log: cancel-unaudited.cgi,v $
21 # Revision 1.2  1998-12-17 09:12:42  ivan
22 # s/CGI::(Request|Base)/CGI.pm/;
23 #
24
25 use strict;
26 use CGI;
27 use CGI::Carp qw(fatalsToBrowser);
28 use FS::UID qw(cgisuidsetup);
29 use FS::CGI qw(popurl eidiot);
30 use FS::Record qw(qsearchs);
31 use FS::cust_svc;
32 use FS::svc_acct;
33
34 my($cgi) = new CGI;
35 &cgisuidsetup($cgi);
36  
37 #untaint svcnum
38 $cgi->query_string =~ /^(\d+)$/;
39 my($svcnum)=$1;
40
41 my($svc_acct) = qsearchs('svc_acct',{'svcnum'=>$svcnum});
42 &eidiot("Unknown svcnum!") unless $svc_acct;
43
44 my($cust_svc) = qsearchs('cust_svc',{'svcnum'=>$svcnum});
45 &eidiot(qq!This account has already been audited.  Cancel the 
46     <A HREF="!. popurl(2). qq!view/cust_pkg.cgi?! . $cust_svc->getfield('pkgnum') .
47     qq!pkgnum"> package</A> instead.!) 
48   if $cust_svc->getfield('pkgnum') ne '';
49
50 local $SIG{HUP} = 'IGNORE';
51 local $SIG{INT} = 'IGNORE';
52 local $SIG{QUIT} = 'IGNORE';
53 local $SIG{TERM} = 'IGNORE';
54 local $SIG{TSTP} = 'IGNORE';
55
56 my($error);
57
58 $error = $svc_acct->cancel;
59 &eidiot($error) if $error;
60 $error = $svc_acct->delete;
61 &eidiot($error) if $error;
62
63 $error = $cust_svc->delete;
64 &eidiot($error) if $error;
65
66 $cgi->redirect(popurl(2));
67