X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=htdocs%2Fmisc%2Fcancel-unaudited.cgi;h=319ac5526180195dae07884136d76c70c879b9bd;hb=251030ed112d091a77a71299043cf46d88914bc5;hp=929274f385816160e02417531267bcd9baa9d319;hpb=cdf65c45fa7e4a290caed33185ece86fdccd2e84;p=freeside.git
diff --git a/htdocs/misc/cancel-unaudited.cgi b/htdocs/misc/cancel-unaudited.cgi
index 929274f38..319ac5526 100755
--- a/htdocs/misc/cancel-unaudited.cgi
+++ b/htdocs/misc/cancel-unaudited.cgi
@@ -1,12 +1,10 @@
#!/usr/bin/perl -Tw
#
-# cancel-unaudited.cgi: Cancel an unaudited account
+# $Id: cancel-unaudited.cgi,v 1.8 2001-04-09 23:05:16 ivan Exp $
#
# Usage: cancel-unaudited.cgi svcnum
# http://server.name/path/cancel-unaudited.cgi pkgnum
#
-# Note: Should be run setuid freeside as user nobody
-#
# ivan@voicenet.com 97-apr-23
#
# rewrote for new API
@@ -16,31 +14,57 @@
#
# Changes to allow page to work at a relative position in server
# bmccane@maxbaud.net 98-apr-3
+#
+# $Log: cancel-unaudited.cgi,v $
+# Revision 1.8 2001-04-09 23:05:16 ivan
+# Transactions Part I!!!
+#
+# Revision 1.7 2000/06/15 12:30:37 ivan
+# bugfix from Jeff Finucane, thanks!
+#
+# Revision 1.6 1999/02/28 00:03:48 ivan
+# removed misleading comments
+#
+# Revision 1.5 1999/02/07 09:59:34 ivan
+# more mod_perl fixes, and bugfixes Peter Wemm sent via email
+#
+# Revision 1.4 1999/01/19 05:14:03 ivan
+# for mod_perl: no more top-level my() variables; use vars instead
+# also the last s/create/new/;
+#
+# Revision 1.3 1998/12/23 03:02:05 ivan
+# $cgi->keywords instead of $cgi->query_string
+#
+# Revision 1.2 1998/12/17 09:12:42 ivan
+# s/CGI::(Request|Base)/CGI.pm/;
+#
use strict;
-use CGI::Base qw(:DEFAULT :CGI); # CGI module
+use vars qw( $cgi $query $svcnum $svc_acct $cust_svc $error $dbh );
+use CGI;
use CGI::Carp qw(fatalsToBrowser);
use FS::UID qw(cgisuidsetup);
+use FS::CGI qw(popurl eidiot);
use FS::Record qw(qsearchs);
use FS::cust_svc;
use FS::svc_acct;
-my($cgi) = new CGI::Base;
-$cgi->get;
-&cgisuidsetup($cgi);
+$cgi = new CGI;
+$dbh = &cgisuidsetup($cgi);
#untaint svcnum
-$QUERY_STRING =~ /^(\d+)$/;
-my($svcnum)=$1;
+($query) = $cgi->keywords;
+$query =~ /^(\d+)$/;
+$svcnum = $1;
-my($svc_acct) = qsearchs('svc_acct',{'svcnum'=>$svcnum});
-&idiot("Unknown svcnum!") unless $svc_acct;
+$svc_acct = qsearchs('svc_acct',{'svcnum'=>$svcnum});
+die "Unknown svcnum!" unless $svc_acct;
-my($cust_svc) = qsearchs('cust_svc',{'svcnum'=>$svcnum});
-&idiot(qq!This account has already been audited. Cancel the
- getfield('pkgnum') .
qq!pkgnum"> package instead.!)
- if $cust_svc->getfield('pkgnum') ne '';
+ if $cust_svc->pkgnum ne '' && $cust_svc->pkgnum ne '0';
local $SIG{HUP} = 'IGNORE';
local $SIG{INT} = 'IGNORE';
@@ -48,38 +72,22 @@ local $SIG{QUIT} = 'IGNORE';
local $SIG{TERM} = 'IGNORE';
local $SIG{TSTP} = 'IGNORE';
-my($error);
+local $FS::UID::AutoCommit = 0;
-bless($svc_acct,"FS::svc_acct");
$error = $svc_acct->cancel;
-&idiot($error) if $error;
+&myeidiot($error) if $error;
$error = $svc_acct->delete;
-&idiot($error) if $error;
+&myeidiot($error) if $error;
-bless($cust_svc,"FS::cust_svc");
$error = $cust_svc->delete;
-&idiot($error) if $error;
+&myeidiot($error) if $error;
+
+$dbh->commit or die $dbh->errstr;
-$cgi->redirect("../");
+print $cgi->redirect(popurl(2));
-sub idiot {
- my($error)=@_;
- SendHeaders();
- print <
-
- Error cancelling account
-
-
-
- Error cancelling account
-
-
- There has been an error cancelling this acocunt: $error
-
-
-