*finally* seems to be working under Mason. sheesh.
[freeside.git] / httemplate / misc / cancel-unaudited.cgi
1 <%
2
3 my $dbh = dbh;
4  
5 #untaint svcnum
6 my($query) = $cgi->keywords;
7 $query =~ /^(\d+)$/;
8 my $svcnum = $1;
9
10 my $svc_acct = qsearchs('svc_acct',{'svcnum'=>$svcnum});
11 die "Unknown svcnum!" unless $svc_acct;
12
13 my $cust_svc = qsearchs('cust_svc',{'svcnum'=>$svcnum});
14 &eidiot(qq!This account has already been audited.  Cancel the 
15     <A HREF="!. popurl(2). qq!view/cust_pkg.cgi?! . $cust_svc->getfield('pkgnum') .
16     qq!pkgnum"> package</A> instead.!) 
17   if $cust_svc->pkgnum ne '' && $cust_svc->pkgnum ne '0';
18
19 local $SIG{HUP} = 'IGNORE';
20 local $SIG{INT} = 'IGNORE';
21 local $SIG{QUIT} = 'IGNORE';
22 local $SIG{TERM} = 'IGNORE';
23 local $SIG{TSTP} = 'IGNORE';
24
25 local $FS::UID::AutoCommit = 0;
26
27 my $error = $svc_acct->cancel;
28 &myeidiot($error) if $error;
29 $error = $svc_acct->delete;
30 &myeidiot($error) if $error;
31
32 $error = $cust_svc->delete;
33
34 if ( $error ) {
35   $dbh->rollback;
36   %>
37 <!-- mason kludge -->
38 <%
39   &eidiot(@_);
40 } else {
41
42   $dbh->commit or die $dbh->errstr;
43
44   print $cgi->redirect(popurl(2));
45 }
46
47 %>