X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Felements%2Fselect-part_pkg.html;h=439c4b53ed631ead17fbdef46554ce3f2aad9a8b;hb=ea3ce8d7f076e7fecff4be7ae63bc413adb0adf5;hp=cd6d24c28695dcdbff3c94d8e31f6dd67c99fb8f;hpb=24533a22a23e211888fcc36a5177c0def5c77de3;p=freeside.git diff --git a/httemplate/elements/select-part_pkg.html b/httemplate/elements/select-part_pkg.html index cd6d24c28..439c4b53e 100644 --- a/httemplate/elements/select-part_pkg.html +++ b/httemplate/elements/select-part_pkg.html @@ -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;