X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fsvc_forward.cgi;h=cda577b76c6d13e28d5a22e415df704a8b73814f;hb=0bdec843e4a9bb7f947c9ba980a40f7bf37020fb;hp=f1aa1c628dc724a6bebbeb088c5e58fe9f12f74d;hpb=8a8c9386cbd3383b0134aae8e32b5995f8886fb2;p=freeside.git diff --git a/httemplate/edit/svc_forward.cgi b/httemplate/edit/svc_forward.cgi index f1aa1c628..cda577b76 100755 --- a/httemplate/edit/svc_forward.cgi +++ b/httemplate/edit/svc_forward.cgi @@ -1,37 +1,10 @@ + <% -# -# $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') @@ -42,7 +15,9 @@ if ( $cgi->param('error') ) { $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}) @@ -71,27 +46,30 @@ if ( $cgi->param('error') ) { $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; } @@ -110,10 +88,13 @@ if ($pkgnum) { 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; } } } @@ -130,7 +111,7 @@ if ($pkgnum) { 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, @@ -138,8 +119,8 @@ if ($pkgnum) { #display -$p1 = popurl(1); -print $cgi->header( '-expires' => 'now' ), header("Mail Forward $action", '', +my $p1 = popurl(1); +print header("Mail Forward $action", '', " onLoad=\"visualize()\""); %>