service refactor!
[freeside.git] / httemplate / search / svc_external.cgi
1 %my $conf = new FS::Conf;
2 %
3 %my @svc_external = ();
4 %my @h_svc_external = ();
5 %my $sortby=\*svcnum_sort;
6 %if ( $cgi->param('magic') =~ /^(all|unlinked)$/ ) {
7 %
8 %  @svc_external=qsearch('svc_external',{});
9 %
10 %  if ( $cgi->param('magic') eq 'unlinked' ) {
11 %    @svc_external = grep { qsearchs('cust_svc', {
12 %                                                  'svcnum' => $_->svcnum,
13 %                                                  'pkgnum' => '',
14 %                                                }
15 %                                   )
16 %                         }
17 %                    @svc_external;
18 %  }
19 %
20 %  if ( $cgi->param('sortby') =~ /^(\w+)$/ ) {
21 %    my $sortby = $1;
22 %    if ( $sortby eq 'id' ) {
23 %      $sortby = \*id_sort;
24 %    }
25 %  }
26 %
27 %} elsif ( $cgi->param('svcpart') =~ /^(\d+)$/ ) {
28 %
29 %  @svc_external =
30 %    qsearch( 'svc_external', {}, '',
31 %               " WHERE $1 = ( SELECT svcpart FROM cust_svc ".
32 %               "              WHERE cust_svc.svcnum = svc_external.svcnum ) "
33 %    );
34 %
35 %} elsif ( $cgi->param('title') =~ /^(.*)$/ ) {
36 %  $sortby=\*id_sort;
37 %  @svc_external=qsearch('svc_external',{ title => $1 });
38 %  if( $cgi->param('history') == 1 ) {
39 %    @h_svc_external=qsearch('h_svc_external',{ title => $1 });
40 %  }
41 %} elsif ( $cgi->param('id') =~ /^([\w\-\.]+)$/ ) {
42 %  my $id = $1;
43 %  @svc_external = qsearchs('svc_external',{'id'=>$id});
44 %}
45 %
46 %if ( scalar(@svc_external) == 1 ) {
47 %
48 %  
49 <% $cgi->redirect(popurl(2). "view/svc_external.cgi?". $svc_external[0]->svcnum) %>
50 %
51 %
52 %} elsif ( scalar(@svc_external) == 0 ) {
53 %
54 %  
55 <% include('/elements/header.html', 'External Search Results' ) %>
56
57   No matching external services found
58 % } else {
59 %
60 %  
61 <% include('/elements/header.html', 'External Search Results', '') %>
62
63     <% scalar(@svc_external) %> matching external services found
64     <TABLE BORDER=4 CELLSPACING=0 CELLPADDING=0>
65       <TR>
66         <TH>Service #</TH>
67         <TH><% FS::Msgcat::_gettext('svc_external-id') || 'External&nbsp;ID' %></TH>
68         <TH><% FS::Msgcat::_gettext('svc_external-title') || 'Title' %></TH>
69       </TR>
70 %
71 %  foreach my $svc_external (
72 %    sort $sortby (@svc_external)
73 %  ) {
74 %    my($svcnum, $id, $title)=(
75 %      $svc_external->svcnum,
76 %      $svc_external->id,
77 %      $svc_external->title,
78 %    );
79 %
80 %    my $rowspan = 1;
81 %
82 %    print <<END;
83 %    <TR>
84 %      <TD ROWSPAN=$rowspan><A HREF="${p}view/svc_external.cgi?$svcnum">$svcnum</A></TD>
85 %      <TD ROWSPAN=$rowspan><A HREF="${p}view/svc_external.cgi?$svcnum">$id</A></TD>
86 %      <TD ROWSPAN=$rowspan><A HREF="${p}view/svc_external.cgi?$svcnum">$title</A></TD>
87 %END
88 %
89 %    #print @rows;
90 %    print "</TR>";
91 %
92 %  }
93 %  if( scalar(@h_svc_external) > 0 ) {
94 %    print <<HTML;
95 %    </TABLE>
96 %    <TABLE BORDER=4 CELLSPACING=0 CELLPADDING=0>
97 %      <TR>
98 %        <TH>Freeside ID</TH>
99 %        <TH>Service #</TH>
100 %        <TH>Title</TH>
101 %        <TH>Date</TH>
102 %      </TR>
103 %HTML
104 %
105 %    foreach my $h_svc ( @h_svc_external ) {
106 %        my($svcnum, $id, $title, $user, $date)=(
107 %            $h_svc->svcnum,
108 %            $h_svc->id,
109 %            $h_svc->title,
110 %            $h_svc->history_user,
111 %            $h_svc->history_date,
112 %        );
113 %        my $rowspan = 1;
114 %        my ($h_cust_svc) = qsearchs( 'h_cust_svc', {
115 %            svcnum  =>  $svcnum,
116 %        });
117 %        my $cust_pkg = qsearchs( 'cust_pkg', {
118 %            pkgnum  =>  $h_cust_svc->pkgnum,
119 %        });
120 %        my $custnum = $cust_pkg->custnum;
121 %
122 %        print <<END;
123 %        <TR>
124 %          <TD ROWSPAN=$rowspan><A HREF="${p}view/cust_main.cgi?$custnum">$custnum</A></TD>
125 %          <TD ROWSPAN=$rowspan><A HREF="${p}view/cust_main.cgi?$custnum">$svcnum</A></TD>
126 %          <TD ROWSPAN=$rowspan><A HREF="${p}view/cust_main.cgi?$custnum">$title</A></TD>
127 %          <TD ROWSPAN=$rowspan><A HREF="${p}view/cust_main.cgi?$custnum">$date</A></TD>
128 %        </TR>
129 %END
130 %    }
131 %  }
132 %
133 %  print <<END;
134 %    </TABLE>
135 %  </BODY>
136 %</HTML>
137 %END
138 %
139 %}
140 %
141 %sub svcnum_sort {
142 %  $a->getfield('svcnum') <=> $b->getfield('svcnum');
143 %}
144 %
145 %sub id_sort {
146 %  $a->getfield('id') <=> $b->getfield('id');
147 %}
148 %
149 %
150