% ### % # Services % ### % #foreach my $svcpart (sort {$a->{svcpart} <=> $b->{svcpart}} @{$pkg->{svcparts}}) { % foreach my $part_svc ( $cust_pkg->part_svc ) { % #foreach my $service (@{$svcpart->{services}}) { % foreach my $cust_svc ( @{ $part_svc->cust_pkg_svc } ) { % } % if ( ! $cust_pkg->get('cancel') % && $curuser->access_right('Provision customer service') % && $part_svc->num_avail % ) { % } % }
<% FS::UI::Web::svc_link($m, $part_svc, $cust_svc) %> <% FS::UI::Web::svc_label_link($m, $part_svc, $cust_svc) %> <% FS::UI::Web::svc_export_links($m, $part_svc, $cust_svc) %>
<% $cust_svc->overlimit ? "Overlimit: ". time2str('%b %o %Y' . ($opt{'cust_pkg-display_times'} ? ' %l:%M %P' : ''), $cust_svc->overlimit) : '' %>
% if ( $curuser->access_right('Recharge customer service') % && $part_svc->svcdb eq 'svc_acct' % && ( $cust_svc->svc_x->seconds ne '' % || $cust_svc->svc_x->upbytes ne '' % || $cust_svc->svc_x->downbytes ne '' % || $cust_svc->svc_x->totalbytes ne '' % ) % ) { ( <%svc_recharge_link($cust_svc)%> ) % } % my $ip_addr = $cust_svc->svc_x->ip_addr; % if ( $part_svc->svcdb eq 'svc_broadband' ) { ( <% include('/elements/popup_link-ping.html', 'ip'=> $ip_addr ) %> ) % } % my $manage_link = $opt{'svc_broadband-manage_link'}; % if ( $manage_link && $part_svc->svcdb eq 'svc_broadband' ) { % my $svc_manage_link = eval(qq("$manage_link")); Manage Device ) % } % if ( $curuser->access_right('Unprovision customer service') ) { ( <%svc_unprovision_link($cust_svc)%> ) % } % if ( $part_svc->svcdb eq 'svc_pbx' && $opt{'maestro-status_test'} ){ Test maestro status ) % }
<% svc_provision_link($cust_pkg, $part_svc, \%opt, $curuser) %>
<%init> my %opt = @_; my $bgcolor = $opt{'bgcolor'}; my $cust_pkg = $opt{'cust_pkg'}; my $part_pkg = $opt{'part_pkg'}; my $curuser = $FS::CurrentUser::CurrentUser; my $conf = new FS::Conf; sub svc_provision_link { my ($cust_pkg, $part_svc, $opt, $curuser) = @_; ( my $svc_nbsp = $part_svc->svc ) =~ s/\s+/ /g; my $num_avail = $part_svc->num_avail; my $pkgnum_svcpart = "pkgnum=". $cust_pkg->pkgnum. ';'. "svcpart=". $part_svc->svcpart; my $url; if ( $part_svc->svcdb eq 'svc_external' #could be generalized && $opt->{'svc_external-skip_manual'} ) { $url = "${p}edit/process/". $part_svc->svcdb. ".cgi?$pkgnum_svcpart"; } else { $url = svc_url( 'm' => $m, 'action' => 'edit', 'part_svc' => $part_svc, 'query' => $pkgnum_svcpart, ); #$url = "${p}edit/$svcpart->{svcdb}.cgi?$pkgnum_svcpart"; } my $link = qq!!. "Provision $svc_nbsp ($num_avail)"; if ( $opt->{'legacy_link'} && $curuser->access_right('View/link unlinked services') ) { $link .= '
'. qq!!. "Link to legacy $svc_nbsp ($num_avail)"; } $link; } sub svc_unprovision_link { my $cust_svc = shift or return ''; qq!Unprovision!; }