<%doc> Example: include( '/elements/select-part_pkg.html', #strongly recommended (you want your forms to be "sticky" on errors, right?) 'curr_value' => 'current_value', #opt 'part_pkg' => \@records, #select-table.html options ) <% 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' => \%hash, 'extra_option_attributes' => [ 'can_discount', 'can_start_date' ], %opt, ) %> <%init> my( %opt ) = @_; $opt{'records'} = delete $opt{'part_pkg'} if $opt{'part_pkg'}; 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;