X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fmisc%2Fcancel-unaudited.cgi;h=4b3084f00a648348d0e8988a6831a2a30631fb5e;hp=43e439b58e0a62e345044f9ee4b404082c598db6;hb=949a80c148a8bbeeeec54c5a0be5d73b292423a5;hpb=5fc8c5edf574ab024d4646914b6432d458e2ffbd diff --git a/httemplate/misc/cancel-unaudited.cgi b/httemplate/misc/cancel-unaudited.cgi index 43e439b58..4b3084f00 100755 --- a/httemplate/misc/cancel-unaudited.cgi +++ b/httemplate/misc/cancel-unaudited.cgi @@ -1,34 +1,46 @@ -<% +%if ( $error ) { +% errorpage($error); +%} else { +<% $cgi->redirect(popurl(2)) %> +%} + +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Unprovision customer service') + && $FS::CurrentUser::CurrentUser->access_right('View/link unlinked services'); -my $dbh = dbh; - #untaint svcnum my($query) = $cgi->keywords; $query =~ /^(\d+)$/; my $svcnum = $1; -#my $svc_acct = qsearchs('svc_acct',{'svcnum'=>$svcnum}); -#die "Unknown svcnum!" unless $svc_acct; - +my $error = ''; my $cust_svc = qsearchs('cust_svc',{'svcnum'=>$svcnum}); -die "Unknown svcnum!" unless $cust_svc; -my $cust_pkg = $cust_svc->cust_pkg; -if ( $cust_pkg ) { - &eidiot( 'This account has already been audited. Cancel the '. - qq!'. - 'package instead.'); -} - -my $error = $cust_svc->cancel; +if ( $cust_svc ) { + my $cust_pkg = $cust_svc->cust_pkg; + if ( $cust_pkg ) { + errorpage( 'This account has already been audited. Cancel the '. + qq!'. + 'package instead.'); #' + } -if ( $error ) { - %> - -<% - &eidiot($error); + $error = $cust_svc->cancel; } else { - print $cgi->redirect(popurl(2)); + # the rare obscure case: svc_x without cust_svc + my $svc_x; + foreach my $svcdb (FS::part_svc->svc_tables) { + $svc_x = qsearchs($svcdb, { 'svcnum' => $svcnum }); + last if $svc_x; + } + if ( $svc_x ) { + $error = $svc_x->return_inventory + || $svc_x->FS::Record::delete; + } else { + # the svcnum really doesn't exist + $error = "svcnum $svcnum not found"; + } } -%> +