a5a55521a5743d0d86901afa4774bbd00d9da2b0
[freeside.git] / httemplate / view / cust_main / packages / services.html
1 % ###
2 % # Services
3 % ###
4
5   <TD CLASS="inv" BGCOLOR="<% $bgcolor %>">
6     <TABLE CLASS="inv" BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%">
7     <SCRIPT TYPE="text/javascript">
8 function clearhint_search_cust_svc(obj, str) {
9   if (obj.value == str) obj.value = '';
10 }
11     </SCRIPT>
12
13 %  foreach my $part_svc ( $cust_pkg->part_svc ) {
14
15 %    if ( $opt{'cust_pkg-large_pkg_size'} > 0 and
16 %         $opt{'cust_pkg-large_pkg_size'} <= $cust_pkg->num_svcs ) {
17 %      # summarize
18       <TR>
19         <TD ALIGN="center" VALIGN="top">
20 %       my $href="${p}search/cust_pkg_svc.html?svcpart=".$part_svc->svcpart.
21 %          ";pkgnum=".$cust_pkg->pkgnum;
22         <A HREF="<% $href %>"><% $part_svc->svc %></A>&nbsp;
23         <A HREF="<% $href %>"><B>(view all <% $cust_pkg->num_svcs %>)</B></A>
24 %     my $hint = $hints{$part_svc->svcdb};
25 %     if ( $hint ) {
26         <BR>
27         <FORM name="svcpart<%$part_svc->svcpart%>_search" STYLE="display:inline"
28         ACTION="<%$p%>search/cust_pkg_svc.html" METHOD="GET">
29         <INPUT TYPE="hidden" NAME="svcpart" VALUE="<%$part_svc->svcpart%>">
30         <INPUT TYPE="hidden" NAME="pkgnum" VALUE="<%$cust_pkg->pkgnum%>">
31         <INPUT TYPE="text" NAME="search_svc"
32         onfocus="clearhint_search_cust_svc(this, '<%$hint%>')" VALUE="<%$hint%>">
33         <INPUT TYPE="submit" VALUE="Search"></FORM>
34 %     } #$hint
35         </TD>
36       </TR>
37 %    }
38 %    else { # don't summarize
39 %      foreach my $cust_svc ( @{ $part_svc->cust_pkg_svc } ) {
40 %        if ( $cust_pkg->getfield('cancel') > 0 ) {
41       <% include('/elements/tr-cust_svc_cancel.html',
42                   %opt,
43                   'part_svc' => $part_svc,
44                   'cust_svc' => $cust_svc,
45                   'cust_pkg' => $cust_pkg,
46       ) %>
47 %        }
48 %        else {
49       <% include('/elements/tr-cust_svc.html',
50                   %opt,
51                   'part_svc' => $part_svc,
52                   'cust_svc' => $cust_svc,
53                   'cust_pkg' => $cust_pkg,
54       ) %>
55 %       } #if cancel > 0
56 %     } #foreach $cust_svc
57 %   } #if summarizing
58 %   if (    ! $cust_pkg->get('cancel')
59 %        && $curuser->access_right('Provision customer service') 
60 %        && $part_svc->num_avail
61 %      ) {
62
63       <TR>
64         <TD COLSPAN=3 ALIGN="center" STYLE="padding-bottom:4px;padding-top:0px">
65           <B><% svc_provision_link($cust_pkg, $part_svc, \%opt, $curuser) %></B>
66 %        if ( $curuser->access_right('Bulk provision customer service') 
67 %               && $part_svc->svcdb eq 'svc_phone' ) {
68             <BR><A HREF="<%$p%>browse/did_order.html?custnum=<%$cust_pkg->custnum%>">Browse Received DID Inventory</A> 
69 %       }
70         </TD>
71       </TR>
72
73 %   } 
74
75 % } 
76
77     </TABLE>
78   </TD>
79
80 <%init>
81
82 my %opt = @_;
83
84 my $bgcolor  = $opt{'bgcolor'};
85 my $cust_pkg = $opt{'cust_pkg'};
86 my $part_pkg = $opt{'part_pkg'};
87 my $curuser  = $FS::CurrentUser::CurrentUser;
88
89 my $conf = new FS::Conf;
90
91 sub svc_provision_link {
92   my ($cust_pkg, $part_svc, $opt, $curuser) = @_;
93   ( my $svc_nbsp = $part_svc->svc ) =~ s/\s+/&nbsp;/g;
94   my $num_avail = $part_svc->num_avail;
95   my $pkgnum_svcpart = "pkgnum=". $cust_pkg->pkgnum. ';'.
96                        "svcpart=". $part_svc->svcpart;
97   my $url;
98   if ( $part_svc->svcdb eq 'svc_external' #could be generalized
99        && $opt->{'svc_external-skip_manual'}
100   ) {
101     $url = "${p}edit/process/". $part_svc->svcdb. ".cgi?$pkgnum_svcpart";
102   } else {
103     $url = svc_url(
104                     'm'        => $m,
105                     'action'   => 'edit',
106                     'part_svc' => $part_svc, 
107                     'query'    => $pkgnum_svcpart,
108                   );
109     #$url = "${p}edit/$svcpart->{svcdb}.cgi?$pkgnum_svcpart";
110   }
111
112   my $link = qq!<A CLASS="provision" HREF="$url">!.
113              "Provision&nbsp;$svc_nbsp&nbsp;($num_avail)</A>";
114   if ( $opt->{'legacy_link'}
115        && $curuser->access_right('View/link unlinked services')
116      )
117   {
118     $link .= '<BR>'.
119              qq!<A CLASS="provision" HREF="${p}misc/link.cgi?!.
120              qq!$pkgnum_svcpart">!.
121             "Link&nbsp;to&nbsp;legacy&nbsp;$svc_nbsp&nbsp;($num_avail)</A>";
122   }
123   $link;
124 }
125
126 my %hints = (
127 svc_acct      => '(user or email)',
128 svc_domain    => '(domain)',
129 svc_broadband => '(ip or mac)',
130 svc_forward   => '(email)',
131 svc_phone     => '(phone)',
132 svc_pbx       => '(phone)',
133 );
134
135 </%init>