4 %my $conf = new FS::Conf;
6 %my($svc_domain, $svcnum, $pkgnum, $svcpart, $part_svc);
7 %if ( $cgi->param('error') ) {
8 % $svc_domain = new FS::svc_domain ( {
9 % map { $_, scalar($cgi->param($_)) } fields('svc_domain')
11 % $svcnum = $svc_domain->svcnum;
12 % $pkgnum = $cgi->param('pkgnum');
13 % $svcpart = $cgi->param('svcpart');
14 % $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
15 % die "No part_svc entry!" unless $part_svc;
17 % my($query) = $cgi->keywords;
18 % if ( $query =~ /^(\d+)$/ ) { #editing
20 % $svc_domain=qsearchs('svc_domain',{'svcnum'=>$svcnum})
21 % or die "Unknown (svc_domain) svcnum!";
23 % my($cust_svc)=qsearchs('cust_svc',{'svcnum'=>$svcnum})
24 % or die "Unknown (cust_svc) svcnum!";
26 % $pkgnum=$cust_svc->pkgnum;
27 % $svcpart=$cust_svc->svcpart;
29 % $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
30 % die "No part_svc entry!" unless $part_svc;
34 % die "Invalid (svc_domain) svcnum!";
42 % #find all possible user svcnums (and emails)
44 % #starting with that currently attached
45 % if ($svc_domain->catchall) {
46 % my($svc_acct)=qsearchs('svc_acct',{'svcnum'=>$svc_domain->catchall});
47 % $email{$svc_domain->catchall} = $svc_acct->email;
50 % #and including the rest for this customer
51 % my($u_part_svc,@u_acct_svcparts);
52 % foreach $u_part_svc ( qsearch('part_svc',{'svcdb'=>'svc_acct'}) ) {
53 % push @u_acct_svcparts,$u_part_svc->getfield('svcpart');
56 % my($cust_pkg)=qsearchs('cust_pkg',{'pkgnum'=>$pkgnum});
57 % my($custnum)=$cust_pkg->getfield('custnum');
59 % foreach $i_cust_pkg ( qsearch('cust_pkg',{'custnum'=>$custnum}) ) {
60 % my($cust_pkgnum)=$i_cust_pkg->getfield('pkgnum');
62 % foreach $acct_svcpart (@u_acct_svcparts) { #now find the corresponding
63 % #record(s) in cust_svc ( for this
66 % foreach $i_cust_svc ( qsearch('cust_svc',{'pkgnum'=>$cust_pkgnum,'svcpart'=>$acct_svcpart}) ) {
67 % my($svc_acct)=qsearchs('svc_acct',{'svcnum'=>$i_cust_svc->getfield('svcnum')});
68 % $email{$svc_acct->getfield('svcnum')}=$svc_acct->email;
75 % my($svc_acct)=qsearchs('svc_acct',{'svcnum'=>$svc_domain->catchall});
76 % $email{$svc_domain->catchall} = $svc_acct->email;
79 %# add an absence of a catchall
80 %$email{''} = "(none)";
83 %print header("Domain Catchall Edit", '');
85 %print qq!<FONT SIZE="+1" COLOR="#ff0000">Error: !, $cgi->param('error'),
87 % if $cgi->param('error');
89 %print qq!<FORM ACTION="${p1}process/catchall.cgi" METHOD=POST>!;
97 %print qq!<INPUT TYPE="hidden" NAME="svcnum" VALUE="$svcnum">!;
98 %print qq!Service #<FONT SIZE=+1><B>!, $svcnum ? $svcnum : " (NEW)", "</B></FONT>";
101 %print qq!<INPUT TYPE="hidden" NAME="pkgnum" VALUE="$pkgnum">!;
104 %print qq!<INPUT TYPE="hidden" NAME="svcpart" VALUE="$svcpart">!;
106 %my($domain,$catchall)=(
107 % $svc_domain->domain,
108 % $svc_domain->catchall,
111 %print qq!<INPUT TYPE="hidden" NAME="domain" VALUE="$domain">!;
114 %print qq!\n\nMail to <I>(anything)</I>@<B>$domain</B> forwards to <SELECT NAME="catchall" SIZE=1>!;
115 %foreach $_ (keys %email) {
116 % print "<OPTION", $_ eq $catchall ? " SELECTED" : "",
117 % qq! VALUE="$_">$email{$_}!;
124 %print qq!<CENTER><INPUT TYPE="submit" VALUE="Submit"></CENTER>!;