This commit was generated by cvs2svn to compensate for changes in r5562,
[freeside.git] / httemplate / misc / catchall.cgi
1 <!-- mason kludge -->
2 %
3 %
4 %my $conf = new FS::Conf;
5 %
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')
10 %  } );
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;
16 %} else {
17 %  my($query) = $cgi->keywords;
18 %  if ( $query =~ /^(\d+)$/ ) { #editing
19 %    $svcnum=$1;
20 %    $svc_domain=qsearchs('svc_domain',{'svcnum'=>$svcnum})
21 %      or die "Unknown (svc_domain) svcnum!";
22 %
23 %    my($cust_svc)=qsearchs('cust_svc',{'svcnum'=>$svcnum})
24 %      or die "Unknown (cust_svc) svcnum!";
25 %
26 %    $pkgnum=$cust_svc->pkgnum;
27 %    $svcpart=$cust_svc->svcpart;
28 %  
29 %    $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
30 %    die "No part_svc entry!" unless $part_svc;
31 %
32 %  } else { 
33 %
34 %    die "Invalid (svc_domain) svcnum!";
35 %
36 %  }
37 %}
38 %
39 %my %email;
40 %if ($pkgnum) {
41 %
42 %  #find all possible user svcnums (and emails)
43 %
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;
48 %  }
49 %
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');
54 %  }
55 %
56 %  my($cust_pkg)=qsearchs('cust_pkg',{'pkgnum'=>$pkgnum});
57 %  my($custnum)=$cust_pkg->getfield('custnum');
58 %  my($i_cust_pkg);
59 %  foreach $i_cust_pkg ( qsearch('cust_pkg',{'custnum'=>$custnum}) ) {
60 %    my($cust_pkgnum)=$i_cust_pkg->getfield('pkgnum');
61 %    my($acct_svcpart);
62 %    foreach $acct_svcpart (@u_acct_svcparts) {   #now find the corresponding 
63 %                                              #record(s) in cust_svc ( for this
64 %                                              #pkgnum ! )
65 %      my($i_cust_svc);
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;
69 %      }  
70 %    }
71 %  }
72 %
73 %} else {
74 %
75 %  my($svc_acct)=qsearchs('svc_acct',{'svcnum'=>$svc_domain->catchall});
76 %  $email{$svc_domain->catchall} = $svc_acct->email;
77 %}
78 %
79 %# add an absence of a catchall
80 %$email{''} = "(none)";
81 %
82 %my $p1 = popurl(1);
83 %print header("Domain Catchall Edit", '');
84 %
85 %print qq!<FONT SIZE="+1" COLOR="#ff0000">Error: !, $cgi->param('error'),
86 %      "</FONT>"
87 %  if $cgi->param('error');
88 %
89 %print qq!<FORM ACTION="${p1}process/catchall.cgi" METHOD=POST>!;
90 %
91 %#display
92 %
93 %       #formatting
94 %       print "<PRE>";
95 %
96 %#svcnum
97 %print qq!<INPUT TYPE="hidden" NAME="svcnum" VALUE="$svcnum">!;
98 %print qq!Service #<FONT SIZE=+1><B>!, $svcnum ? $svcnum : " (NEW)", "</B></FONT>";
99 %
100 %#pkgnum
101 %print qq!<INPUT TYPE="hidden" NAME="pkgnum" VALUE="$pkgnum">!;
102
103 %#svcpart
104 %print qq!<INPUT TYPE="hidden" NAME="svcpart" VALUE="$svcpart">!;
105 %
106 %my($domain,$catchall)=(
107 %  $svc_domain->domain,
108 %  $svc_domain->catchall,
109 %);
110 %
111 %print qq!<INPUT TYPE="hidden" NAME="domain" VALUE="$domain">!;
112 %
113 %#catchall
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{$_}!;
118 %}
119 %print "</SELECT>";
120 %
121 %       #formatting
122 %       print "</PRE>\n";
123 %
124 %print qq!<CENTER><INPUT TYPE="submit" VALUE="Submit"></CENTER>!;
125 %
126 %print <<END;
127 %
128 %    </FORM>
129 %  </BODY>
130 %</HTML>
131 %END
132 %
133 %
134