Merge branch 'master' of git.freeside.biz:/home/git/freeside
[freeside.git] / httemplate / elements / select-part_pkg.html
index cd6d24c..237d7df 100644 (file)
@@ -15,38 +15,35 @@ Example:
 
 </%doc>
 
-<% include( '/elements/select-table.html',
-              'table'          => 'part_pkg',
-              'agent_virt'     => 1,
-              'agent_null'     => 1,
-              'name_col'       => 'pkg',
-              'empty_label'    => 'Select package', #should this be the default?
-              'label_callback' => sub { shift->pkg_comment },
-              'hashref'        => { 'disabled' => '' },
-              %opt,
-          )
-%>
+<& /elements/select-table.html,
+     'table'          => 'part_pkg',
+     'agent_virt'     => 1,
+     'agent_null'     => 1,
+     'name_col'       => 'pkg',
+     'empty_label'    => 'Select package', #should this be the default?
+     'label_callback' => $opt{'label_callback'} || sub { shift->pkg_comment_only },
+     'hashref'        => \%hash,
+     %opt,
+&>
 <%init>
-
 my( %opt ) = @_;
 
 $opt{'records'} = delete $opt{'part_pkg'}
   if $opt{'part_pkg'};
 
-#false laziness w/browse/part_pkg.cgi
-my $agentnums = join(',', $FS::CurrentUser::CurrentUser->agentnums);
-
-$opt{'extra_sql'} .=
-  " AND ( agentnum IS NOT NULL
-          OR 0 < ( SELECT COUNT(*)
-                     FROM type_pkgs
-                       LEFT JOIN agent_type USING ( typenum )
-                       LEFT JOIN agent AS typeagent USING ( typenum )
-                     WHERE type_pkgs.pkgpart = part_pkg.pkgpart
-                       AND typeagent.agentnum IN ($agentnums)
-                 )
-        )
-  ";
-#eofalse
+my %hash = ();
+$hash{'disabled'} = '' unless $opt{'showdisabled'};
+
+if ( exists($opt{'classnum'}) && defined($opt{'classnum'}) ) {
+  if ( $opt{'classnum'} > 0 ) {
+    $hash{'classnum'} = $opt{'classnum'};
+  } elsif ( $opt{'classnum'} eq '' || $opt{'classnum'} == 0 ) {
+    $hash{'classnum'} = '';
+  } #else -1 or not specified, all classes, so don't set classnum
+}
+
+$opt{'extra_sql'} .= ( keys(%hash) ? ' AND ' : ' WHERE ' ).
+                     FS::part_pkg->curuser_pkgs_sql;
 
 </%init>