add svc_forward, depriciate svc_acct_sm
[freeside.git] / htdocs / view / svc_acct_sm.cgi
index 24c78ad..072c94d 100755 (executable)
@@ -1,12 +1,10 @@
 #!/usr/bin/perl -Tw
 #
-# $Id: svc_acct_sm.cgi,v 1.7 1999-02-07 09:59:42 ivan Exp $
+# $Id: svc_acct_sm.cgi,v 1.11 2000-07-17 10:58:42 ivan Exp $
 #
 # Usage: svc_acct_sm.cgi svcnum
 #        http://server.name/path/svc_acct_sm.cgi?svcnum
 #
-# Note: Should be run setuid freeside as user nobody.
-#
 # based on view/svc_acct.cgi
 # 
 # ivan@voicenet.com 97-jan-5
 # /var/spool/freeside/conf/domain ivan@sisd.com 98-jul-17
 #
 # $Log: svc_acct_sm.cgi,v $
-# Revision 1.7  1999-02-07 09:59:42  ivan
+# Revision 1.11  2000-07-17 10:58:42  ivan
+# better error messages if svc_acct or svc_domain records are missing
+#
+# Revision 1.10  1999/04/08 12:00:19  ivan
+# aesthetic update
+#
+# Revision 1.9  1999/02/28 00:04:03  ivan
+# removed misleading comments
+#
+# Revision 1.8  1999/02/09 09:23:00  ivan
+# visual and bugfixes
+#
+# Revision 1.7  1999/02/07 09:59:42  ivan
 # more mod_perl fixes, and bugfixes Peter Wemm sent via email
 #
 # Revision 1.6  1999/01/19 05:14:22  ivan
@@ -49,9 +59,15 @@ use vars qw($conf $cgi $mydomain $query $svcnum $svc_acct_sm $cust_svc
             $svc $svc_domain $domain $svc_acct $username );
 use CGI;
 use FS::UID qw(cgisuidsetup);
-use FS::CGI qw(header popurl);
+use FS::CGI qw(header popurl menubar );
 use FS::Record qw(qsearchs);
 use FS::Conf;
+use FS::svc_acct_sm;
+use FS::cust_svc;
+use FS::cust_pkg;
+use FS::part_svc;
+use FS::svc_domain;
+use FS::svc_acct;
 
 $cgi = new CGI;
 cgisuidsetup($cgi);
@@ -59,7 +75,6 @@ cgisuidsetup($cgi);
 $conf = new FS::Conf;
 $mydomain = $conf->config('domain');
 
-#untaint svcnum
 ($query) = $cgi->keywords;
 $query =~ /^(\d+)$/;
 $svcnum = $1;
@@ -76,28 +91,20 @@ if ($pkgnum) {
   $custnum = '';
 }
 
-$part_svc = qsearchs('part_svc',{'svcpart'=> $cust_svc->svcpart } );
-die "Unkonwn svcpart" unless $part_svc;
-
-print $cgi->header( '-expires' => 'now' ), header('Mail Alias View');
+$part_svc = qsearchs('part_svc',{'svcpart'=> $cust_svc->svcpart } )
+  or die "Unkonwn svcpart";
 
 $p = popurl(2);
-if ($pkgnum || $custnum) {
-  print <<END;
-<A HREF="${p}view/cust_pkg.cgi?$pkgnum">View this package (#$pkgnum)</A> | 
-<A HREF="${p}view/cust_main.cgi?$custnum">View this customer (#$custnum)</A> | 
-END
-} else {
-  print <<END;
-<A HREF="${p}misc/cancel-unaudited.cgi?$svcnum">Cancel this (unaudited)account</A> |
-END
-}
-
-print <<END;
-    <A HREF="${p}">Main menu</A></CENTER><BR>
-    Service #$svcnum
-    <P><A HREF="${p}edit/svc_acct_sm.cgi?$svcnum">Edit this information</A>
-END
+print $cgi->header( '-expires' => 'now' ), header('Mail Alias View', menubar(
+  ( ( $pkgnum || $custnum )
+    ? ( "View this package (#$pkgnum)" => "${p}view/cust_pkg.cgi?$pkgnum",
+        "View this customer (#$custnum)" => "${p}view/cust_main.cgi?$custnum",
+      )
+    : ( "Cancel this (unaudited) account" =>
+          "${p}misc/cancel-unaudited.cgi?$svcnum" )
+  ),
+  "Main menu" => $p,
+));
 
 ($domsvc,$domuid,$domuser) = (
   $svc_acct_sm->domsvc,
@@ -105,25 +112,17 @@ END
   $svc_acct_sm->domuser,
 );
 $svc = $part_svc->svc;
-$svc_domain = qsearchs('svc_domain',{'svcnum'=>$domsvc});
+$svc_domain = qsearchs('svc_domain',{'svcnum'=>$domsvc})
+  or die "Corrupted database: no svc_domain.svcnum matching domsvc $domsvc";
 $domain = $svc_domain->domain;
-$svc_acct = qsearchs('svc_acct',{'uid'=>$domuid});
+$svc_acct = qsearchs('svc_acct',{'uid'=>$domuid})
+  or die "Corrupted database: no svc_acct.uid matching domuid $domuid";
 $username = $svc_acct->username;
 
-#formatting
-print qq!<BR><BR>!;
-
-#svc
-print "Service: <B>$svc</B>";
-
-print "<BR><BR>";
-
-print qq!Mail to <B>!, ( ($domuser eq '*') ? "<I>(anything)</I>" : $domuser ) , qq!</B>\@<B>$domain</B> forwards to <B>$username</B>\@$mydomain mailbox.!;
-
-       #formatting
-       print <<END;
-
-  </BODY>
-</HTML>
-END
+print qq!<A HREF="${p}edit/svc_acct_sm.cgi?$svcnum">Edit this information</A>!,
+      "<BR>Service #$svcnum",
+      "<BR>Service: <B>$svc</B>",
+      qq!<BR>Mail to <B>!, ( ($domuser eq '*') ? "<I>(anything)</I>" : $domuser ) , qq!</B>\@<B>$domain</B> forwards to <B>$username</B>\@$mydomain mailbox.!,
+      '</BODY></HTML>'
+;