& /elements/header-popup.html, $title &> <& /browse/elements/browse.html, 'name_singular' => 'tax product', 'html_form' => include('.form', $service_code, $trans_code), 'query' => { 'table' => 'part_pkg_taxproduct', 'hashref' => $hashref, 'order_by' => 'ORDER BY taxproduct', }, 'count_query' => $count_query, 'header' => \@header, 'fields' => \@fields, 'align' => $align, 'links' => [], 'link_onclicks' => \@link_onclicks, 'nohtmlheader' => 1, &> <%shared> # populate dropdowns # taxproduct is 12 digits. First half is the service type code, second # half is the transaction code. Description is also two parts, corresponding # to those codes, separated with a :. my (@service_codes, @trans_codes, %service_labels, %trans_labels); foreach my $row ( qsearch({ table => 'part_pkg_taxproduct', select => 'DISTINCT substr(taxproduct, 1, 6) AS code, '. "substring(description from '(.*):') AS label", })) { $service_labels{$row->get('code')} = sprintf('%02d %s', $row->get('code'), $row->get('label')); } foreach my $row ( qsearch({ table => 'part_pkg_taxproduct', select => 'DISTINCT substr(taxproduct, 7, 6) AS code, '. "substring(description from ':(.*)') AS label", })) { $trans_labels{$row->get('code')} = sprintf('%02d %s', $row->get('code'), $row->get('label')); } $service_labels{''} = $trans_labels{''} = ''; @service_codes = sort {$a <=> $b} keys %service_labels; @trans_codes = sort {$a <=> $b} keys %trans_labels; %shared> <%def .form> % my ($service_code, $trans_code) = @_;