71513: Card tokenization [bug fixes, removed cardtype/taxclass override ui]
[freeside.git] / httemplate / elements / select-svc_pbx.html
1 <SELECT <% $opt{'multiple'} ? 'MULTIPLE' : 'SIZE=1' %>
2         NAME = "<% $opt{'element_name'} || $opt{'field'} || 'pbxsvc' %>"
3         <% $opt{'element_etc'} %>
4 >
5
6 % unless ( $opt{'multiple'} || $opt{'disable_empty'} ) {
7     <OPTION VALUE=""><% $opt{'empty_label'} || '' %>
8 % }
9
10 % foreach my $svcnum (
11 %                      sort { $svc_pbx{$a} cmp $svc_pbx{$b} }
12 %                      keys %svc_pbx
13 %                    ) {
14 %   my $svc_pbx = $svc_pbx{$svcnum};
15 %   my $selected = ($svcnum == $pbxsvc) ? ' SELECTED' : '';
16
17     <OPTION VALUE="<% $svcnum %>" <% $selected %>><% $svc_pbx{$svcnum} %>
18
19 % } 
20
21 </SELECT>
22 <%init>
23
24 # false laziness w/select-svc_acct-domain.html
25
26 my %opt = @_;
27
28 my $pbxsvc = $opt{'curr_value'};
29 my $part_svc = $opt{'part_svc'}
30                || qsearchs('part_svc', { 'svcpart' => $opt{'svcpart'} });
31 my $svcpart = $part_svc ? $part_svc->svcpart : '';
32
33 #optional
34 my $cust_pkg = $opt{'cust_pkg'};
35 $cust_pkg ||= qsearchs('cust_pkg', { 'pkgnum' => $opt{'pkgnum'} })
36   if $opt{'pkgnum'};
37
38 my $pkgnum = $cust_pkg ? $cust_pkg->pkgnum : '';
39
40 my %svc_pbx = ();
41
42 if ( $pbxsvc ) {
43   my $svc_pbx = qsearchs('svc_pbx', { 'svcnum' => $pbxsvc } );
44   if ( $svc_pbx ) {
45     $svc_pbx{$svc_pbx->svcnum} = $svc_pbx;
46   } else {
47     warn "unknown svc_pbx.svcnum for svc_acct.pbxsvc: $pbxsvc";
48   }
49 }
50
51 %svc_pbx = (
52   %svc_pbx,
53   FS::svc_Common->pbx_select_hash( 'svcpart' => $svcpart,
54                                    'pkgnum'  => $pkgnum,
55                                  )
56 );
57 </%init>