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