+sub filter_parts {
+ my $self = shift;
+
+ my $where = 'TRUE';
+ my @values;
+
+ if ( $::form->{filter_partnumber} ) {
+ $where .= ' AND partnumber ILIKE ?';
+ push(@values, like( $::form->{filter_partnumber} ));
+ }
+
+ if ($::form->{filter_description}) {
+ $where .= ' AND description ILIKE ?';
+ push(@values, like($::form->{filter_description}));
+ }
+
+ if ($::form->{filter_notes}) {
+ $where .= ' AND notes ILIKE ?';
+ push(@values, like($::form->{filter_notes}));
+ }
+
+ if ($::form->{filter_ean}) {
+ $where .= ' AND ean ILIKE ?';
+ push(@values, like($::form->{filter_ean}));
+ }
+
+ if ($::form->{filter_type} eq 'assembly') {
+ $where .= " AND part_type = 'assembly'";
+ }
+
+ if ($::form->{filter_type} eq 'service') {
+ $where .= " AND part_type = 'service'";
+ }
+
+ if ($::form->{filter_type} eq 'part') {
+ $where .= " AND part_type = 'part'";
+ }
+
+ if ($::form->{filter_obsolete} eq 'obsolete') {
+ $where .= ' AND obsolete';
+ }
+
+ if ($::form->{filter_obsolete} eq 'valid') {
+ $where .= ' AND NOT obsolete';
+ }
+
+ my $query = qq|SELECT id, partnumber, description, unit, notes, assembly, ean, inventory_accno_id, obsolete
+ FROM parts
+ WHERE $where
+ ORDER BY partnumber|;
+
+ $::form->{ALL_PARTS} = [ selectall_hashref_query($::form, $self->dbh, $query, @values) ];
+
+ print $::form->parse_html_template("dbupgrade/show_partlist");
+ return 2;
+}
+