This commit was manufactured by cvs2svn to create tag 'freeside_2_1_0'.
[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
8 %  #foreach my $svcpart (sort {$a->{svcpart} <=> $b->{svcpart}} @{$pkg->{svcparts}}) {
9 %  foreach my $part_svc ( $cust_pkg->part_svc ) {
10
11 %    #foreach my $service (@{$svcpart->{services}}) {
12 %    foreach my $cust_svc ( @{ $part_svc->cust_pkg_svc } ) {
13
14       <TR>
15         <TD ALIGN="right" VALIGN="top"><% FS::UI::Web::svc_link($m, $part_svc, $cust_svc) %></TD>
16         <TD STYLE="padding-bottom:0px"><B><% FS::UI::Web::svc_label_link($m, $part_svc, $cust_svc) %></B></TD>
17         <TD><% FS::UI::Web::svc_export_links($m, $part_svc, $cust_svc) %></TD>
18       </TR>
19
20       <TR>
21         <TD ALIGN="right" COLSPAN="3" VALIGN="top" STYLE="padding-bottom:1px;padding-top:0px"><FONT SIZE="-2" COLOR="#FFD000">
22
23             <% $cust_svc->overlimit ? "Overlimit: ". time2str('%b %o %Y' . ($opt{'cust_pkg-display_times'} ? ' %l:%M %P' : ''), $cust_svc->overlimit) : '' %>
24           </FONT></TD>
25       </TR>
26
27       <TR>
28         <TD ALIGN="right" VALIGN="top" STYLE="padding-bottom:5px;padding-top:0px"><FONT SIZE="-2">
29
30 %         if ( $curuser->access_right('Recharge customer service')
31 %              && $part_svc->svcdb eq 'svc_acct'
32 %              && (    $cust_svc->svc_x->seconds    ne ''
33 %                   || $cust_svc->svc_x->upbytes    ne ''
34 %                   || $cust_svc->svc_x->downbytes  ne ''
35 %                   || $cust_svc->svc_x->totalbytes ne ''
36 %                 )
37 %         ) { 
38             (&nbsp;<%svc_recharge_link($cust_svc)%>&nbsp;)
39 %         }
40           </FONT></TD>
41
42           <TD ALIGN="right" VALIGN="top" STYLE="padding-bottom:5px;padding-top:0px">
43
44 %           my $ip_addr = $cust_svc->svc_x->ip_addr;
45
46 %           if ( $part_svc->svcdb eq 'svc_broadband' ) {
47               <FONT SIZE="-1" STYLE="float:left">(&nbsp;<% include('/elements/popup_link-ping.html', 'ip'=> $ip_addr ) %>&nbsp;)</FONT>
48
49 %           }
50
51 %           my $manage_link = $opt{'svc_broadband-manage_link'};
52 %           if ( $manage_link && $part_svc->svcdb eq 'svc_broadband' ) {
53 %             my $svc_manage_link = eval(qq("$manage_link"));
54               <FONT SIZE="-1" STYLE="float:left">(&nbsp;<A HREF="<% $svc_manage_link %>">Manage Device</A>&nbsp;)</FONT>
55
56 %           }
57
58 %           if ( $curuser->access_right('Unprovision customer service') ) { 
59               <FONT SIZE="-2">(&nbsp;<%svc_unprovision_link($cust_svc)%>&nbsp;)</FONT>
60 %           } 
61           </TD>
62         </TR>
63 %   } 
64
65 %   if (    ! $cust_pkg->get('cancel')
66 %        && $curuser->access_right('Provision customer service') 
67 %        && $part_svc->num_avail
68 %      ) {
69
70       <TR>
71         <TD COLSPAN=3 ALIGN="center" STYLE="padding-bottom:4px;padding-top:0px">
72           <B><% svc_provision_link($cust_pkg, $part_svc, \%opt, $curuser) %></B>
73         </TD>
74       </TR>
75
76 %   } 
77
78 % } 
79
80     </TABLE>
81   </TD>
82
83 <%init>
84
85 my %opt = @_;
86
87 my $bgcolor  = $opt{'bgcolor'};
88 my $cust_pkg = $opt{'cust_pkg'};
89 my $part_pkg = $opt{'part_pkg'};
90 my $curuser  = $FS::CurrentUser::CurrentUser;
91
92 my $conf = new FS::Conf;
93
94 sub svc_provision_link {
95   my ($cust_pkg, $part_svc, $opt, $curuser) = @_;
96   ( my $svc_nbsp = $part_svc->svc ) =~ s/\s+/&nbsp;/g;
97   my $num_avail = $part_svc->num_avail;
98   my $pkgnum_svcpart = "pkgnum=". $cust_pkg->pkgnum. ';'.
99                        "svcpart=". $part_svc->svcpart;
100   my $url;
101   if ( $part_svc->svcdb eq 'svc_external' #could be generalized
102        && $opt->{'svc_external-skip_manual'}
103   ) {
104     $url = "${p}edit/process/". $part_svc->svcdb. ".cgi?$pkgnum_svcpart";
105   } else {
106     $url = svc_url(
107                     'm'        => $m,
108                     'action'   => 'edit',
109                     'part_svc' => $part_svc, 
110                     'query'    => $pkgnum_svcpart,
111                   );
112     #$url = "${p}edit/$svcpart->{svcdb}.cgi?$pkgnum_svcpart";
113   }
114
115   my $link = qq!<A CLASS="provision" HREF="$url">!.
116              "Provision&nbsp;$svc_nbsp&nbsp;($num_avail)</A>";
117   if ( $opt->{'legacy_link'}
118        && $curuser->access_right('View/link unlinked services')
119      )
120   {
121     $link .= '<BR>'.
122              qq!<A CLASS="provision" HREF="${p}misc/link.cgi?!.
123              qq!$pkgnum_svcpart">!.
124             "Link&nbsp;to&nbsp;legacy&nbsp;$svc_nbsp&nbsp;($num_avail)</A>";
125   }
126   $link;
127 }
128
129 sub svc_unprovision_link {
130   my $cust_svc = shift or return '';
131   qq!<A HREF="javascript:areyousure('${p}misc/unprovision.cgi?!. $cust_svc->svcnum.
132   qq!', 'Permanently unprovision and delete this service?')">Unprovision</A>!;
133 }
134
135 </%init>