use parent qw(SL::DBUpgrade2::Base);
+use SL::DBUtils;
+
sub run {
my ($self) = @_;
+ if (defined $::form->{upgrade_action} && $::form->{upgrade_action} eq 'filter_parts') {
+ return $self->filter_parts($self);
+ }
+
if ( $::form->{'continued'} ) {
my $update_query;
foreach my $i (1 .. $::form->{rowcount}) {
$update_query = qq|UPDATE parts SET partnumber = '| . $::form->{"partnumber_$i"} . qq|' WHERE id = | . $::form->{"partid_$i"};
$self->db_query($update_query);
- print FH $i;
}
- $self->dbh->commit();
}
- my $query = qq|SELECT id, partnumber, description, unit, notes, assembly, ean, inventory_accno_id
+ my $query = qq|SELECT id, partnumber, description, unit, notes, assembly, ean, inventory_accno_id, obsolete
FROM parts pa
WHERE (SELECT COUNT(*)
FROM parts p
> 1
ORDER BY partnumber;|;
- my $sth = $self->dbh->prepare($query);
- $sth->execute || $::form->dberror($query);
-
- $::form->{PARTS} = [];
- while (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
- map {$ref->{$_} = $::locale->{iconv_utf8}->convert($ref->{$_})} keys %$ref;
- push @{ $::form->{PARTS} }, $ref;
- }
+ $::form->{PARTS} = [ selectall_hashref_query($::form, $self->dbh, $query) ];
if ( scalar @{ $::form->{PARTS} } > 0 ) {
&print_error_message;
print $::form->parse_html_template("dbupgrade/erzeugnisnummern");
}
+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;
+}
+
1;