% ###
<TD CLASS="inv" BGCOLOR="<% $bgcolor %>">
- <TABLE CLASS="inv" BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%">
+ <TABLE CLASS="inv" BORDER=0 CELLSPACING=0 CELLPADDING=2 WIDTH="100%">
<SCRIPT TYPE="text/javascript">
function clearhint_search_cust_svc(obj, str) {
if (obj.value == str) obj.value = '';
}
</SCRIPT>
-% foreach my $part_svc ( $cust_pkg->part_svc ) {
-
+% foreach my $part_svc (
+% $cust_pkg->part_svc(
+% 'summarize_size' => $opt{'cust_pkg-large_pkg_size'},
+% 'hide_discontinued' => $opt{'cust_pkg-hide_discontinued-part_svc'},
+% )
+% ) {
+%
+% my $num_cust_svc = $cust_pkg->num_cust_svc( $part_svc->svcpart );
+%
% if ( $opt{'cust_pkg-large_pkg_size'} > 0 and
-% $opt{'cust_pkg-large_pkg_size'} <= $cust_pkg->num_svcs ) {
-% # summarize
+% $opt{'cust_pkg-large_pkg_size'} <= $num_cust_svc ) { # summarize
+%
<TR>
- <TD ALIGN="center" VALIGN="top">
+ <TD ALIGN="right" VALIGN="top">
% my $href="${p}search/cust_pkg_svc.html?svcpart=".$part_svc->svcpart.
% ";pkgnum=".$cust_pkg->pkgnum;
- <A HREF="<% $href %>"><% $part_svc->svc %></A>
- <A HREF="<% $href %>"><B>(view all <% $cust_pkg->num_svcs %>)</B></A>
+ <A HREF="<% $href %>"><% $part_svc->svc |h %></A>
+ </TD>
+ <TD ALIGN="left" VALIGN="top">
+ <A HREF="<% $href %>"><B>(<% mt("view all [_1]", $num_cust_svc) |h %>)</B></A>
+ </TD>
+ </TR>
% my $hint = $hints{$part_svc->svcdb};
% if ( $hint ) {
- <BR>
+ <TR>
+ <TD></TD>
+ <TD ALIGN="left" VALIGN="top">
<FORM name="svcpart<%$part_svc->svcpart%>_search" STYLE="display:inline"
ACTION="<%$p%>search/cust_pkg_svc.html" METHOD="GET">
<INPUT TYPE="hidden" NAME="svcpart" VALUE="<%$part_svc->svcpart%>">
<INPUT TYPE="text" NAME="search_svc"
onfocus="clearhint_search_cust_svc(this, '<%$hint%>')" VALUE="<%$hint%>">
<INPUT TYPE="submit" VALUE="Search"></FORM>
-% } #$hint
</TD>
</TR>
-% }
-% else { # don't summarize
+% } #$hint
+%
+% } else { # don't summarize
+%
% foreach my $cust_svc ( @{ $part_svc->cust_pkg_svc } ) {
% if ( $cust_pkg->getfield('cancel') > 0 ) {
- <% include('/elements/tr-cust_svc_cancel.html',
+ <& /elements/tr-cust_svc_cancel.html,
%opt,
'part_svc' => $part_svc,
'cust_svc' => $cust_svc,
'cust_pkg' => $cust_pkg,
- ) %>
+ &>
% }
% else {
- <% include('/elements/tr-cust_svc.html',
+ <& /elements/tr-cust_svc.html,
%opt,
'part_svc' => $part_svc,
'cust_svc' => $cust_svc,
'cust_pkg' => $cust_pkg,
- ) %>
+ &>
% } #if cancel > 0
% } #foreach $cust_svc
% } #if summarizing
<TR>
<TD COLSPAN=3 ALIGN="center" STYLE="padding-bottom:4px;padding-top:0px">
- <B><% svc_provision_link($cust_pkg, $part_svc, \%opt, $curuser) %></B>
+
+ <B>
+% if ( $opt{no_links} ) {
+ <% $part_svc->svc |h %>: <% $part_svc->num_avail %>
+ <% mt('Available') |h %>
+% } else {
+ <% svc_provision_link($cust_pkg, $part_svc, \%opt, $curuser) %>
+% }
+ </B>
+
% if ( $curuser->access_right('Bulk provision customer service')
-% && $part_svc->svcdb eq 'svc_phone' ) {
- <BR><A HREF="<%$p%>browse/did_order.html?custnum=<%$cust_pkg->custnum%>">Browse Received DID Inventory</A>
+% && $part_svc->svcdb eq 'svc_phone'
+% && ! $opt{no_links}
+% )
+% {
+% if ( $part_svc->num_avail > 5 ) {
+% local $opt{'bulk'} = 1;
+ <BR><% svc_provision_link($cust_pkg, $part_svc, \%opt, $curuser) %>
+% }
+% #XXX if there's orders for this customer {
+ <BR><A HREF="<%$p%>browse/did_order.html?custnum=<%$cust_pkg->custnum%>"><% mt('Browse Received DID Inventory') |h %></A>
+% #}
% }
</TD>
</TR>
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 $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 $query = "pkgnum=". $cust_pkg->pkgnum. ';'.
+ "svcpart=". $part_svc->svcpart;
+ $query .= ';bulk=1' if $opt->{bulk};
+
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";
+ $url = "${p}edit/process/". $part_svc->svcdb. ".cgi?$query";
} else {
$url = svc_url(
'm' => $m,
'action' => 'edit',
'part_svc' => $part_svc,
- 'query' => $pkgnum_svcpart,
+ 'query' => $query,
);
- #$url = "${p}edit/$svcpart->{svcdb}.cgi?$pkgnum_svcpart";
}
+ my $action = $opt->{bulk} ? 'Bulk provision' : 'Provision';
+
my $link = qq!<A CLASS="provision" HREF="$url">!.
- "Provision $svc_nbsp ($num_avail)</A>";
+ emt("$action [_1] ([_2])",$svc_nbsp,$num_avail).'</A>';
if ( $opt->{'legacy_link'}
&& $curuser->access_right('View/link unlinked services')
)
{
$link .= '<BR>'.
- qq!<A CLASS="provision" HREF="${p}misc/link.cgi?!.
- qq!$pkgnum_svcpart">!.
- "Link to legacy $svc_nbsp ($num_avail)</A>";
+ qq!<A CLASS="provision" HREF="${p}misc/link.cgi?$query">!.
+ emt("Link to legacy [_1] ([_2])",$svc_nbsp,$num_avail).'</A>';
}
$link;
}
my %hints = (
-svc_acct => '(user or email)',
-svc_domain => '(domain)',
-svc_broadband => '(ip or mac)',
-svc_forward => '(email)',
-svc_phone => '(phone)',
-svc_pbx => '(phone)',
+svc_acct => emt('(user or email)'),
+svc_domain => emt('(domain)'),
+svc_broadband => emt('(ip or mac)'),
+svc_forward => emt('(email)'),
+svc_phone => emt('(phone)'),
+svc_pbx => emt('(phone)'),
);
</%init>