further work on agents editing own packages: allow them to see (but not edit) global...
[freeside.git] / httemplate / elements / select-part_pkg.html
1 <%doc>
2
3 Example:
4
5   include( '/elements/select-part_pkg.html',
6
7     #strongly recommended (you want your forms to be "sticky" on errors, right?)
8     'curr_value' => 'current_value',
9   
10     #opt
11     'part_pkg'   => \@records,
12
13     #select-table.html options
14   )
15
16 </%doc>
17
18 <% include( '/elements/select-table.html',
19               'table'          => 'part_pkg',
20               'agent_virt'     => 1,
21               'agent_null'     => 1,
22               'name_col'       => 'pkg',
23               'empty_label'    => 'Select package', #should this be the default?
24               'label_callback' => sub { shift->pkg_comment },
25               'hashref'        => { 'disabled' => '' },
26               %opt,
27           )
28 %>
29 <%init>
30
31 my( %opt ) = @_;
32
33 $opt{'records'} = delete $opt{'part_pkg'}
34   if $opt{'part_pkg'};
35
36 #false laziness w/browse/part_pkg.cgi
37 my $agentnums = join(',', $FS::CurrentUser::CurrentUser->agentnums);
38
39 $opt{'extra_sql'} .=
40   " AND ( agentnum IS NOT NULL
41           OR 0 < ( SELECT COUNT(*)
42                      FROM type_pkgs
43                        LEFT JOIN agent_type USING ( typenum )
44                        LEFT JOIN agent AS typeagent USING ( typenum )
45                      WHERE type_pkgs.pkgpart = part_pkg.pkgpart
46                        AND typeagent.agentnum IN ($agentnums)
47                  )
48         )
49   ";
50 #eofalse
51
52 </%init>