hide start date on package order for specific package definitions, RT#13783
[freeside.git] / httemplate / elements / select-part_pkg.html
index cd6d24c..439c4b5 100644 (file)
@@ -22,31 +22,30 @@ Example:
               'name_col'       => 'pkg',
               'empty_label'    => 'Select package', #should this be the default?
               'label_callback' => sub { shift->pkg_comment },
-              'hashref'        => { 'disabled' => '' },
+              'hashref'        => \%hash,
+              'extra_option_attributes' => [ 'can_discount', 'can_start_date' ],
               %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>