handle errors better
[freeside.git] / httemplate / misc / cancel-unaudited.cgi
index a73b2ce..8f31db8 100755 (executable)
@@ -25,20 +25,20 @@ local $SIG{TSTP} = 'IGNORE';
 local $FS::UID::AutoCommit = 0;
 
 my $error = $svc_acct->cancel;
-&myeidiot($error) if $error;
-$error = $svc_acct->delete;
-&myeidiot($error) if $error;
+$error ||= $svc_acct->delete;
+$error ||= $cust_svc->delete;
 
-$error = $cust_svc->delete;
-&myeidiot($error) if $error;
-
-$dbh->commit or die $dbh->errstr;
-
-print $cgi->redirect(popurl(2));
-
-sub myeidiot {
+if ( $error ) {
   $dbh->rollback;
+  %>
+<!-- mason kludge -->
+<%
   &eidiot(@_);
+} else {
+
+  $dbh->commit or die $dbh->errstr;
+
+  print $cgi->redirect(popurl(2));
 }
 
 %>