so Search.tsf and Search.rdf work
[freeside.git] / httemplate / search / svc_forward.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 $orderby;
8 if ( $query eq 'svcnum' ) {
9   $orderby = 'ORDER BY svcnum';
10 } else {
11   eidiot('unimplemented');
12 }
13
14 my $count_query = 'SELECT COUNT(*) FROM svc_forward';
15 my $sql_query = {
16   'table'     => 'svc_forward',
17   'hashref'   => {},
18   'select'    => join(', ',
19                    'svc_forward.*',
20                    map "cust_main.$_", qw(custnum last first company)
21                  ),
22   'extra_sql' => $orderby,
23   'addl_from' => 'LEFT JOIN cust_svc  USING ( svcnum  )'.
24                  'LEFT JOIN cust_pkg  USING ( pkgnum  )'.
25                  'LEFT JOIN cust_main USING ( custnum )',
26 };
27
28 #        <TH>Service #<BR><FONT SIZE=-1>(click to view forward)</FONT></TH>
29 #        <TH>Mail to<BR><FONT SIZE=-1>(click to view account)</FONT></TH>
30 #        <TH>Forwards to<BR><FONT SIZE=-1>(click to view account)</FONT></TH>
31
32 my $link = [ "${p}view/svc_forward.cgi?", 'svcnum' ];
33
34 my $format_src = sub {
35   my $svc_forward = shift;
36   if ( $svc_forward->srcsvc_acct ) {
37     $svc_forward->srcsvc_acct->email;
38   } else {
39     my $src = $svc_forward->src;
40     $src = "<I>(anything)</I>$src" if $src =~ /^@/;
41     $src;
42   }
43 };
44
45 my $link_src = sub {
46   my $svc_forward = shift;
47   if ( $svc_forward->srcsvc_acct ) {
48     [ "${p}view/svc_acct.cgi?", 'srcsvc' ];
49   } else {
50     '';
51   }
52 };
53
54 my $format_dst = sub {
55   my $svc_forward = shift;
56   if ( $svc_forward->dstsvc_acct ) {
57     $svc_forward->dstsvc_acct->email;
58   } else {
59     $svc_forward->dst;
60   }
61 };
62
63 my $link_dst = sub {
64   my $svc_forward = shift;
65   if ( $svc_forward->dstsvc_acct ) {
66     [ "${p}view/svc_acct.cgi?", 'dstsvc' ];
67   } else {
68     '';
69   }
70 };
71
72 #smaller false laziness w/svc_*.cgi here
73 my $link_cust = sub {
74   my $svc_x = shift;
75   $svc_x->custnum ? [ "${p}view/cust_main.cgi?", 'custnum' ] : '';
76 };
77
78 %><%= include ('elements/search.html',
79                  'title'             => "Mail forward Search Results",
80                  'name'              => 'mail forwards',
81                  'query'             => $sql_query,
82                  'count_query'       => $count_query,
83                  'redirect'          => $link,
84                  'header'            => [ '#',
85                                           'Mail to',
86                                           'Forwards to',
87                                           'Customer',
88                                         ],
89                  'fields'            => [ 'svcnum',
90                                           $format_src,
91                                           $format_dst,
92                                           \&FS::svc_Common::cust_name,
93                                         ],
94                  'links'             => [ $link,
95                                           $link_src,
96                                           $link_dst,
97                                           $link_cust,
98                                         ],
99               )
100 %>