also fix agent-specific From: address on "re-email" link
[freeside.git] / httemplate / search / svc_domain.cgi
1 <%
2
3 my $conf = new FS::Conf;
4
5 my($query)=$cgi->keywords;
6 $query ||= ''; #to avoid use of unitialized value errors
7 my(@svc_domain,$sortby);
8 if ( $query eq 'svcnum' ) {
9   $sortby=\*svcnum_sort;
10   @svc_domain=qsearch('svc_domain',{});
11 } elsif ( $query eq 'domain' ) {
12   $sortby=\*domain_sort;
13   @svc_domain=qsearch('svc_domain',{});
14 } elsif ( $query eq 'UN_svcnum' ) {
15   $sortby=\*svcnum_sort;
16   @svc_domain = grep qsearchs('cust_svc',{
17       'svcnum' => $_->svcnum,
18       'pkgnum' => '',
19     }), qsearch('svc_domain',{});
20 } elsif ( $query eq 'UN_domain' ) {
21   $sortby=\*domain_sort;
22   @svc_domain = grep qsearchs('cust_svc',{
23       'svcnum' => $_->svcnum,
24       'pkgnum' => '',
25     }), qsearch('svc_domain',{});
26 } elsif ( $cgi->param('svcpart') =~ /^(\d+)$/ ) {
27   @svc_domain =
28     qsearch( 'svc_domain', {}, '',
29                " WHERE $1 = ( SELECT svcpart FROM cust_svc ".
30                "              WHERE cust_svc.svcnum = svc_domain.svcnum ) "
31     );
32   $sortby=\*svcnum_sort;
33 } else {
34   $cgi->param('domain') =~ /^([\w\-\.]+)$/; 
35   my($domain)=$1;
36   #push @svc_domain, qsearchs('svc_domain',{'domain'=>$domain});
37   @svc_domain = qsearchs('svc_domain',{'domain'=>$domain});
38 }
39
40 if ( scalar(@svc_domain) == 1 ) {
41   print $cgi->redirect(popurl(2). "view/svc_domain.cgi?". $svc_domain[0]->svcnum);
42   #exit;
43 } elsif ( scalar(@svc_domain) == 0 ) {
44 %>
45 <!-- mason kludge -->
46 <%
47   eidiot "No matching domains found!\n";
48 } else {
49 %>
50 <!-- mason kludge -->
51 <%
52   my($total)=scalar(@svc_domain);
53   print header("Domain Search Results",''), <<END;
54
55     $total matching domains found
56     <TABLE BORDER=4 CELLSPACING=0 CELLPADDING=0>
57       <TR>
58         <TH>Service #</TH>
59         <TH>Domain</TH>
60 <!--        <TH>Mail to<BR><FONT SIZE=-1>(click to view account)</FONT></TH>
61         <TH>Forwards to<BR><FONT SIZE=-1>(click to view account)</FONT></TH>
62 -->
63       </TR>
64 END
65
66 #  my(%saw);                 # if we've multiple domains with the same
67                              # svcnum, then we've a corrupt database
68
69   foreach my $svc_domain (
70 #    sort $sortby grep(!$saw{$_->svcnum}++, @svc_domain)
71     sort $sortby (@svc_domain)
72   ) {
73     my($svcnum,$domain)=(
74       $svc_domain->svcnum,
75       $svc_domain->domain,
76     );
77
78     #don't display all accounts here
79     my $rowspan = 1;
80
81     #my @svc_acct=qsearch('svc_acct',{'domsvc' => $svcnum});
82     #my $rowspan = 0;
83     #
84     #my $n1 = '';
85     #my($svc_acct, @rows);
86     #foreach $svc_acct (
87     #  sort {$b->getfield('username') cmp $a->getfield('username')} (@svc_acct)
88     #) {
89     #
90     #  my (@forwards) = ();
91     #
92     #  my($svcnum,$username)=(
93     #    $svc_acct->svcnum,
94     #    $svc_acct->username,
95     #  );
96     #
97     #  my @svc_forward = qsearch( 'svc_forward', { 'srcsvc' => $svcnum } );
98     #  my $svc_forward;
99     #  foreach $svc_forward (@svc_forward) {
100     #    my($dstsvc,$dst) = (
101     #      $svc_forward->dstsvc,
102     #      $svc_forward->dst,
103     #    );
104     #    if ($dstsvc) {
105     #      my $dst_svc_acct=qsearchs( 'svc_acct', { 'svcnum' => $dstsvc } );
106     #      my $destination=$dst_svc_acct->email;
107     #      push @forwards, qq!<TD><A HREF="!, popurl(2),
108     #            qq!view/svc_acct.cgi?$dstsvc">$destination</A>!,
109     #            qq!</TD></TR>!
110     #      ;
111     #    }else{
112     #      push @forwards, qq!<TD>$dst</TD></TR>!
113     #      ;
114     #    }
115     #  }
116     #
117     #  push @rows, qq!$n1<TD ROWSPAN=!, (scalar(@svc_forward) || 1),
118     #        qq!><A HREF="!. popurl(2). qq!view/svc_acct.cgi?$svcnum">!,
119     #  #print '', ( ($domuser eq '*') ? "<I>(anything)</I>" : $domuser );
120     #        ( ($username eq '*') ? "<I>(anything)</I>" : $username ),
121     #        qq!\@$domain</A> </TD>!,
122     #  ;
123     #
124     #  push @rows, @forwards;
125     #
126     #  $rowspan += (scalar(@svc_forward) || 1);
127     #  $n1 = "</TR><TR>";
128     #}
129     ##end of false laziness
130     #
131     #
132
133     print <<END;
134     <TR>
135       <TD ROWSPAN=$rowspan><A HREF="${p}view/svc_domain.cgi?$svcnum">$svcnum</A></TD>
136       <TD ROWSPAN=$rowspan><A HREF="${p}view/svc_domain.cgi?$svcnum">$domain</A></TD>
137 END
138
139     #print @rows;
140     print "</TR>";
141
142   }
143  
144   print <<END;
145     </TABLE>
146   </BODY>
147 </HTML>
148 END
149
150 }
151
152 sub svcnum_sort {
153   $a->getfield('svcnum') <=> $b->getfield('svcnum');
154 }
155
156 sub domain_sort {
157   $a->getfield('domain') cmp $b->getfield('domain');
158 }
159
160
161 %>