+<!-- mason kludge -->
<%
-#
-# $Id: svc_forward.cgi,v 1.1 2001-08-19 15:53:35 jeff Exp $
-#
-# Usage: svc_forward.cgi {svcnum} | pkgnum{pkgnum}-svcpart{svcpart}
-# http://server.name/path/svc_forward.cgi? {svcnum} | pkgnum{pkgnum}-svcpart{svcpart}
-#
-# use {svcnum} for edit, pkgnum{pkgnum}-svcpart{svcpart} for add
-#
-# should error out in a more CGI-friendly way, and should have more error checking (sigh).
-#
-# $Log: svc_forward.cgi,v $
-# Revision 1.1 2001-08-19 15:53:35 jeff
-# added user interface for svc_forward and vpopmail support
-#
-#
-
-use strict;
-use vars qw( $conf $cgi $mydomain $action $svcnum $svc_forward $pkgnum $svcpart
- $part_svc $query %email $p1 $srcsvc $dstsvc $dst );
-use CGI;
-use CGI::Carp qw(fatalsToBrowser);
-use FS::UID qw(cgisuidsetup);
-use FS::CGI qw(header popurl);
-use FS::Record qw(qsearch qsearchs fields);
-use FS::svc_forward;
-use FS::Conf;
-
-$cgi = new CGI;
-&cgisuidsetup($cgi);
-
-$conf = new FS::Conf;
-$mydomain = $conf->config('domain');
+my $conf = new FS::Conf;
+my $mydomain = $conf->config('domain');
+
+my($svcnum, $pkgnum, $svcpart, $part_svc, $svc_forward);
if ( $cgi->param('error') ) {
$svc_forward = new FS::svc_forward ( {
map { $_, scalar($cgi->param($_)) } fields('svc_forward')
$part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
die "No part_svc entry!" unless $part_svc;
} else {
+
my($query) = $cgi->keywords;
+
if ( $query =~ /^(\d+)$/ ) { #editing
$svcnum=$1;
$svc_forward=qsearchs('svc_forward',{'svcnum'=>$svcnum})
$svcnum='';
#set fixed and default fields from part_svc
- my($field);
- foreach $field ( fields('svc_forward') ) {
- if ( $part_svc->getfield('svc_forward__'. $field. '_flag') ne '' ) {
- $svc_forward->setfield($field,$part_svc->getfield('svc_forward__'. $field) );
- }
+ foreach my $part_svc_column (
+ grep { $_->columnflag } $part_svc->all_part_svc_column
+ ) {
+ $svc_forward->setfield( $part_svc_column->columnname,
+ $part_svc_column->columnvalue,
+ );
}
-
}
+
}
-$action = $svc_forward->svcnum ? 'Edit' : 'Add';
+my $action = $svc_forward->svcnum ? 'Edit' : 'Add';
+my %email;
if ($pkgnum) {
#find all possible user svcnums (and emails)
#starting with those currently attached
- my($svc_acct)=qsearchs('svc_acct',{'svcnum'=>$svc_forward->srcsvc});
- $email{$svc_forward->srcsvc} = $svc_acct->email;
-
- if ($svc_forward->dstsvc) {
- $svc_acct=qsearchs('svc_acct',{'svcnum'=>$svc_forward->dstsvc});
+ if ( $svc_forward->srcsvc ) {
+ my $svc_acct = qsearchs( 'svc_acct', { 'svcnum' => $svc_forward->srcsvc } );
+ $email{$svc_forward->srcsvc} = $svc_acct->email;
+ }
+ if ( $svc_forward->dstsvc ) {
+ my $svc_acct = qsearchs( 'svc_acct', { 'svcnum' => $svc_forward->dstsvc } );
$email{$svc_forward->dstsvc} = $svc_acct->email;
}
foreach $acct_svcpart (@u_acct_svcparts) { #now find the corresponding
#record(s) in cust_svc ( for this
#pkgnum ! )
- my($i_cust_svc);
- foreach $i_cust_svc ( qsearch('cust_svc',{'pkgnum'=>$cust_pkgnum,'svcpart'=>$acct_svcpart}) ) {
- $svc_acct=qsearchs('svc_acct',{'svcnum'=>$i_cust_svc->getfield('svcnum')});
- $email{$svc_acct->getfield('svcnum')}=$svc_acct->email;
+ foreach my $i_cust_svc (
+ qsearch( 'cust_svc', { 'pkgnum' => $cust_pkgnum,
+ 'svcpart' => $acct_svcpart } )
+ ) {
+ my $svc_acct =
+ qsearchs( 'svc_acct', { 'svcnum' => $i_cust_svc->svcnum } );
+ $email{$svc_acct->svcnum} = $svc_acct->email;
}
}
}
die "\$action eq Add, but \$pkgnum is null!\n";
}
-($srcsvc,$dstsvc,$dst)=(
+my($srcsvc,$dstsvc,$dst)=(
$svc_forward->srcsvc,
$svc_forward->dstsvc,
$svc_forward->dst,
#display
-$p1 = popurl(1);
-print $cgi->header( '-expires' => 'now' ), header("Mail Forward $action", '',
+my $p1 = popurl(1);
+print header("Mail Forward $action", '',
" onLoad=\"visualize()\"");
%>