+<!-- mason kludge -->
<%
-#
-# $Id: svc_forward.cgi,v 1.1 2001-08-19 15:53:36 jeff Exp $
-#
-# Usage: svc_forward.cgi svcnum
-# http://server.name/path/svc_forward.cgi?svcnum
-#
-# based on view/svc_acct.cgi
-#
-# $Log: svc_forward.cgi,v $
-# Revision 1.1 2001-08-19 15:53:36 jeff
-# added user interface for svc_forward and vpopmail support
-#
-#
-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');
$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( '-expires' => 'now' ), 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>'
;