move account search (httemplate/search/svc_acct.cgi) to new template, cust-fields...
[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                     'cust_main.custnum',
21                     FS::UI::Web::cust_sql_fields(),
22                  ),
23   'extra_sql' => $orderby,
24   'addl_from' => 'LEFT JOIN cust_svc  USING ( svcnum  )'.
25                  'LEFT JOIN cust_pkg  USING ( pkgnum  )'.
26                  'LEFT JOIN cust_main USING ( custnum )',
27 };
28
29 #        <TH>Service #<BR><FONT SIZE=-1>(click to view forward)</FONT></TH>
30 #        <TH>Mail to<BR><FONT SIZE=-1>(click to view account)</FONT></TH>
31 #        <TH>Forwards to<BR><FONT SIZE=-1>(click to view account)</FONT></TH>
32
33 my $link = [ "${p}view/svc_forward.cgi?", 'svcnum' ];
34
35 my $format_src = sub {
36   my $svc_forward = shift;
37   if ( $svc_forward->srcsvc_acct ) {
38     $svc_forward->srcsvc_acct->email;
39   } else {
40     my $src = $svc_forward->src;
41     $src = "<I>(anything)</I>$src" if $src =~ /^@/;
42     $src;
43   }
44 };
45
46 my $link_src = sub {
47   my $svc_forward = shift;
48   if ( $svc_forward->srcsvc_acct ) {
49     [ "${p}view/svc_acct.cgi?", 'srcsvc' ];
50   } else {
51     '';
52   }
53 };
54
55 my $format_dst = sub {
56   my $svc_forward = shift;
57   if ( $svc_forward->dstsvc_acct ) {
58     $svc_forward->dstsvc_acct->email;
59   } else {
60     $svc_forward->dst;
61   }
62 };
63
64 my $link_dst = sub {
65   my $svc_forward = shift;
66   if ( $svc_forward->dstsvc_acct ) {
67     [ "${p}view/svc_acct.cgi?", 'dstsvc' ];
68   } else {
69     '';
70   }
71 };
72
73 #smaller false laziness w/svc_*.cgi here
74 my $link_cust = sub {
75   my $svc_x = shift;
76   $svc_x->custnum ? [ "${p}view/cust_main.cgi?", 'custnum' ] : '';
77 };
78
79 %><%= include( 'elements/search.html',
80                  'title'             => "Mail forward Search Results",
81                  'name'              => 'mail forwards',
82                  'query'             => $sql_query,
83                  'count_query'       => $count_query,
84                  'redirect'          => $link,
85                  'header'            => [ '#',
86                                           'Mail to',
87                                           'Forwards to',
88                                           FS::UI::Web::cust_header(),
89                                         ],
90                  'fields'            => [ 'svcnum',
91                                           $format_src,
92                                           $format_dst,
93                                           \&FS::UI::Web::cust_fields,
94                                         ],
95                  'links'             => [ $link,
96                                           $link_src,
97                                           $link_dst,
98                                           ( map { $link_cust }
99                                                 FS::UI::Web::cust_header()
100                                           ),
101                                         ],
102              )
103 %>