diff options
Diffstat (limited to 'httemplate/view/cust_main/packages/services.html')
-rw-r--r-- | httemplate/view/cust_main/packages/services.html | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/httemplate/view/cust_main/packages/services.html b/httemplate/view/cust_main/packages/services.html new file mode 100644 index 000000000..5f458e635 --- /dev/null +++ b/httemplate/view/cust_main/packages/services.html @@ -0,0 +1,157 @@ +% ### +% # Services +% ### + + <TD CLASS="inv" BGCOLOR="<% $bgcolor %>"> + <TABLE CLASS="inv" BORDER=0 CELLSPACING=0 CELLPADDING=0 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( +% 'summarize_size' => $opt{'cust_pkg-large_pkg_size'} +% ) ) +% { + +% 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'} <= $num_cust_svc ) { # summarize +% + <TR> + <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> + </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 ) { + <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="hidden" NAME="pkgnum" VALUE="<%$cust_pkg->pkgnum%>"> + <INPUT TYPE="text" NAME="search_svc" + onfocus="clearhint_search_cust_svc(this, '<%$hint%>')" VALUE="<%$hint%>"> + <INPUT TYPE="submit" VALUE="Search"></FORM> + </TD> + </TR> +% } #$hint +% +% } else { # don't summarize +% +% foreach my $cust_svc ( @{ $part_svc->cust_pkg_svc } ) { +% if ( $cust_pkg->getfield('cancel') > 0 ) { + <& /elements/tr-cust_svc_cancel.html, + %opt, + 'part_svc' => $part_svc, + 'cust_svc' => $cust_svc, + 'cust_pkg' => $cust_pkg, + &> +% } +% else { + <& /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 +% if ( ! $cust_pkg->get('cancel') +% && $curuser->access_right('Provision customer service') +% && $part_svc->num_avail +% ) { + + <TR> + <TD COLSPAN=3 ALIGN="center" STYLE="padding-bottom:4px;padding-top:0px"> + <B><% svc_provision_link($cust_pkg, $part_svc, \%opt, $curuser) %></B> +% if ( $curuser->access_right('Bulk provision customer service') +% && $part_svc->svcdb eq 'svc_phone' ) { +% 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> + +% } + +% } + + </TABLE> + </TD> + +<%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 $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?$query"; + } else { + $url = svc_url( + 'm' => $m, + 'action' => 'edit', + 'part_svc' => $part_svc, + 'query' => $query, + ); + } + + my $action = $opt->{bulk} ? 'Bulk provision' : 'Provision'; + + my $link = qq!<A CLASS="provision" HREF="$url">!. + 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?$query">!. + emt("Link to legacy [_1] ([_2])",$svc_nbsp,$num_avail).'</A>'; + } + $link; +} + +my %hints = ( +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> |