summaryrefslogtreecommitdiff
path: root/httemplate/elements/select-cust-part_pkg.html
blob: 8b446b95d49e7883c1aa43ecaaebcf9b4fb7c8fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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
  )

</%doc>

<% 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',
                             })
                    ];

</%init>