move httemplate/search/svc_domain to the new search template along with svc_www and...
[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
8 my $orderby = 'ORDER BY svcnum';
9 my $join = '';
10 my %svc_domain = ();
11 my $extra_sql = '';
12 if ( $query eq 'svcnum' ) {
13   #$orderby = 'ORDER BY svcnum';
14 } elsif ( $query eq 'domain' ) {
15   $orderby = 'ORDER BY domain';
16 } elsif ( $query eq 'UN_svcnum' ) {
17   #$orderby = 'ORDER BY svcnum';
18   $join = 'LEFT JOIN cust_svc USING ( svcnum )';
19   $extra_sql = ' WHERE pkgnum IS NULL';
20 } elsif ( $query eq 'UN_domain' ) {
21   $orderby = 'ORDER BY domain';
22   $join = 'LEFT JOIN cust_svc USING ( svcnum )';
23   $extra_sql = ' WHERE pkgnum IS NULL';
24 } elsif ( $cgi->param('svcpart') =~ /^(\d+)$/ ) {
25   #$orderby = 'ORDER BY svcnum';
26   $join = 'LEFT JOIN cust_svc USING ( svcnum )';
27   $extra_sql = " WHERE svcpart = $1";
28 } else {
29   $cgi->param('domain') =~ /^([\w\-\.]+)$/; 
30   $join = '';
31   $svc_domain{'domain'} = $1;
32 }
33
34 my $count_query = "SELECT COUNT(*) FROM svc_domain $join $extra_sql";
35 if ( keys %svc_domain ) {
36   $count_query .= ' WHERE '.
37                     join(' AND ', map "$_ = ". dbh->quote($svc_domain{$_}),
38                                       keys %svc_domain
39                         );
40
41 }
42
43 my $sql_query = {
44   'table'     => 'svc_domain',
45   'hashref'   => \%svc_domain,
46   'select'    => join(', ',
47                    'svc_domain.*',
48                    map "cust_main.$_", qw(custnum last first company)
49                  ),
50   'extra_sql' => "$extra_sql $orderby",
51   'addl_from' => 'LEFT JOIN cust_svc  USING ( svcnum  )'.
52                  'LEFT JOIN cust_pkg  USING ( pkgnum  )'.
53                  'LEFT JOIN cust_main USING ( custnum )',
54 };
55
56 my $link = [ "${p}view/svc_domain.cgi", 'svcnum' ];
57
58 #smaller false laziness w/svc_*.cgi here
59 my $link_cust = sub {
60   my $svc_x = shift;
61   $svc_x->custnum ? [ "${p}view/cust_main.cgi?", 'custnum' ] : '';
62 };
63
64 %><%= include ('elements/search.html',
65                  'title'             => "Domain Search Results",
66                  'name'              => 'domains',
67                  'query'             => $sql_query,
68                  'count_query'       => $count_query,
69                  'redirect'          => $link,
70                  'header'            => [ '#',
71                                           'Domain',
72                                           'Customer',
73                                         ],
74                  'fields'            => [ 'svcnum',
75                                           'domain',
76                                           \&FS::svc_Common::cust_name,
77                                         ],
78                  'links'             => [ $link,
79                                           $link,
80                                           $link_cust,
81                                         ],
82               )
83 %>