From 58cfac8638978d97857ee42883e8f8b56b22451b Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 2 Aug 2007 23:01:01 +0000 Subject: [PATCH] fix slowness on change package and also make it into a popup --- httemplate/elements/select-cust-part_pkg.html | 56 +++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 httemplate/elements/select-cust-part_pkg.html diff --git a/httemplate/elements/select-cust-part_pkg.html b/httemplate/elements/select-cust-part_pkg.html new file mode 100644 index 000000000..8b446b95d --- /dev/null +++ b/httemplate/elements/select-cust-part_pkg.html @@ -0,0 +1,56 @@ +<%doc> + +Example: + + include( '/elements/select-cust-part_pkg.html', + + #required + 'cust_main' => $cust_main, #or 'custnum' ? + + #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', + 'name_col' => 'pkg', + 'empty_label' => 'Select package', + 'label_callback' => sub { $_[0]->pkgpart. ': '. + $_[0]->pkg. ' - '. + $_[0]->comment; + }, + %opt, + ) +%> +<%init> + +my( %opt ) = @_; + +my $cust_main = $opt{'cust_main'} + or die "cust_main not specified"; + +$opt{'records'} = delete $opt{'part_pkg'} + if $opt{'part_pkg'}; + +my $extra_sql = $opt{'extra_sql'}. + ' AND 0 < ( SELECT COUNT(*) FROM type_pkgs '. + ' WHERE typenum = '. $cust_main->agent->typenum. + ' AND type_pkgs.pkgpart = part_pkg.pkgpart )'; + +$opt{'records'} ||= [ qsearch({ + 'table' => 'part_pkg', + 'hashref' => { 'disabled' => '', }, + 'extra_sql' => "$extra_sql ORDER BY pkg", + #'extra_sql' => $extra_sql, + #'order_by' => 'ORDER BY pkg', + }) + ]; + + -- 2.11.0