Merge branch 'b-3.6.1' of ../kivitendo-erp_20220811
[kivitendo-erp.git] / sql / Pg-upgrade2 / erzeugnisnummern.pl
index 4146894..8468e69 100644 (file)
@@ -13,14 +13,16 @@ 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, obsolete
@@ -50,4 +52,61 @@ sub 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;