add ACH help graphic
[freeside.git] / httemplate / view / svc_forward.cgi
index 4a636c6..52360bc 100755 (executable)
@@ -1,34 +1,17 @@
+<!-- mason kludge -->
 <%
-# <!-- $Id: svc_forward.cgi,v 1.3 2001-10-26 10:24:56 ivan Exp $ -->
 
-use strict;
-use vars qw($conf $cgi $query $svcnum $svc_forward $cust_svc
-            $pkgnum $cust_pkg $custnum $part_svc $p $srcsvc $dstsvc $dst
-            $svc $svc_acct $source $destination);
-use CGI;
-use FS::UID qw(cgisuidsetup);
-use FS::CGI qw(header popurl menubar );
-use FS::Record qw(qsearchs);
-use FS::Conf;
-use FS::cust_svc;
-use FS::cust_pkg;
-use FS::part_svc;
-use FS::svc_acct;
-use FS::svc_forward;
+my $conf = new FS::Conf;
 
-$cgi = new CGI;
-cgisuidsetup($cgi);
-
-$conf = new FS::Conf;
-
-($query) = $cgi->keywords;
+my($query) = $cgi->keywords;
 $query =~ /^(\d+)$/;
-$svcnum = $1;
-$svc_forward = qsearchs('svc_forward',{'svcnum'=>$svcnum});
+my $svcnum = $1;
+my $svc_forward = qsearchs('svc_forward',{'svcnum'=>$svcnum});
 die "Unknown svcnum" unless $svc_forward;
 
-$cust_svc = qsearchs('cust_svc',{'svcnum'=>$svcnum});
-$pkgnum = $cust_svc->getfield('pkgnum');
+my $cust_svc = qsearchs('cust_svc',{'svcnum'=>$svcnum});
+my $pkgnum = $cust_svc->getfield('pkgnum');
+my($cust_pkg, $custnum);
 if ($pkgnum) {
   $cust_pkg=qsearchs('cust_pkg',{'pkgnum'=>$pkgnum});
   $custnum=$cust_pkg->getfield('custnum');
@@ -37,42 +20,64 @@ if ($pkgnum) {
   $custnum = '';
 }
 
-$part_svc = qsearchs('part_svc',{'svcpart'=> $cust_svc->svcpart } )
+my $part_svc = qsearchs('part_svc',{'svcpart'=> $cust_svc->svcpart } )
   or die "Unkonwn svcpart";
 
-$p = popurl(2);
-print $cgi->header( @FS::CGI::header ), header('Mail Forward View', menubar(
+print header('Mail Forward View', menubar(
   ( ( $pkgnum || $custnum )
-    ? ( "View this package (#$pkgnum)" => "${p}view/cust_pkg.cgi?$pkgnum",
-        "View this customer (#$custnum)" => "${p}view/cust_main.cgi?$custnum",
+    ? ( "View this customer (#$custnum)" => "${p}view/cust_main.cgi?$custnum",
       )
-    : ( "Cancel this (unaudited) account" =>
+    : ( "Cancel this (unaudited) mail forward" =>
           "${p}misc/cancel-unaudited.cgi?$svcnum" )
   ),
   "Main menu" => $p,
 ));
 
-($srcsvc,$dstsvc,$dst) = (
+my($srcsvc,$dstsvc,$dst) = (
   $svc_forward->srcsvc,
   $svc_forward->dstsvc,
   $svc_forward->dst,
 );
-$svc = $part_svc->svc;
-$svc_acct = qsearchs('svc_acct',{'svcnum'=>$srcsvc})
-  or die "Corrupted database: no svc_acct.svcnum matching srcsvc $srcsvc";
-$source = $svc_acct->email;
+my $src = $svc_forward->dbdef_table->column('src') ? $svc_forward->src : '';
+
+my $svc = $part_svc->svc;
+
+my $source;
+if ($srcsvc) {
+  my $svc_acct = qsearchs('svc_acct',{'svcnum'=>$srcsvc})
+    or die "Corrupted database: no svc_acct.svcnum matching srcsvc $srcsvc";
+  $source = $svc_acct->email;
+} else {
+  $source = $src;
+}
+
+my $destination;
 if ($dstsvc) {
-  $svc_acct = qsearchs('svc_acct',{'svcnum'=>$dstsvc})
+  my $svc_acct = qsearchs('svc_acct',{'svcnum'=>$dstsvc})
     or die "Corrupted database: no svc_acct.svcnum matching dstsvc $dstsvc";
   $destination = $svc_acct->email;
-}else{
+} else {
   $destination = $dst;
 }
 
-print qq!<A HREF="${p}edit/svc_forward.cgi?$svcnum">Edit this information</A>!,
-      "<BR>Service #$svcnum",
-      "<BR>Service: <B>$svc</B>",
-      qq!<BR>Mail to <B>$source</B> forwards to <B>$destination</B> mailbox.!,
+print qq!<A HREF="${p}edit/svc_forward.cgi?$svcnum">Edit this information</A>!.
+      ntable("#cccccc",2).
+      '<TR><TD ALIGN="right">Service number</TD>'.
+        qq!<TD BGCOLOR="#ffffff">$svcnum</TD></TR>!.
+      '<TR><TD ALIGN="right">Service</TD>'.
+        qq!<TD BGCOLOR="#ffffff">$svc</TD></TR>!.
+      qq!<TR><TD ALIGN="right">Email to</TD>!.
+        qq!<TD BGCOLOR="#ffffff">$source</TD></TR>!.
+      qq!<TR><TD ALIGN="right">Forwards to </TD>!.
+        qq!<TD BGCOLOR="#ffffff">$destination</TD></TR>!;
+
+foreach (sort { $a cmp $b } $svc_forward->virtual_fields) {
+  print $svc_forward->pvf($_)->widget('HTML', 'view', $svc_forward->getfield($_)),
+      "\n";
+}
+
+print qq!  </TABLE>!.
+      '<BR>'. joblisting({'svcnum'=>$svcnum}, 1).
       '</BODY></HTML>'
 ;