Revision 2532 rückgängig gemacht (Befehl aus falschem Verzeichnis abgeschickt)
[kivitendo-erp.git] / SL / IC.pm
index b372971..092a24d 100644 (file)
--- a/SL/IC.pm
+++ b/SL/IC.pm
@@ -347,13 +347,13 @@ sub save {
     do_query($form, $dbh, qq|DELETE FROM translation WHERE parts_id = ?|, conv_i($form->{id}));
 
   } else {
-    my ($count) = selectrow_array($form, $dbh, qq|SELECT COUNT(*) FROM parts WHERE partnumber = ?|, $form->{partnumber});
+    my ($count) = selectrow_query($form, $dbh, qq|SELECT COUNT(*) FROM parts WHERE partnumber = ?|, $form->{partnumber});
     if ($count) {
       $main::lxdebug->leave_sub();
       return 3;
     }
 
-    ($form->{id}) = selectrow_array($form, $dbh, qq|SELECT nextval('id')|);
+    ($form->{id}) = selectrow_query($form, $dbh, qq|SELECT nextval('id')|);
     do_query($form, $dbh, qq|INSERT INTO parts (id, partnumber) VALUES (?, '')|, $form->{id});
 
     $form->{orphaned} = 1;
@@ -861,10 +861,15 @@ sub all_parts {
     $where .= qq| AND (p.onhand < p.rop)|;
   }
 
+  my @subcolumns;
   foreach my $column (qw(make model)) {
-    next unless ($form->{$column});
-    $where .= qq| AND p.id IN (SELECT DISTINCT m.parts_id FROM makemodel WHERE $column ILIKE ?)|;
-    push(@values, '%' . $form->{$column} . '%');
+    push @subcolumns, $column if $form->{$column};
+  }
+  if (@subcolumns) {
+    $where .= qq| AND p.id IN (SELECT DISTINCT parts_id FROM makemodel WHERE |;
+    $where .= join " AND ", map { "($_ ILIKE ?)"; } @subcolumns;
+    $where .= qq|)|;
+    push @values, map { '%' . $form->{$_} . '%' } @subcolumns;
   }
 
   if ($form->{l_soldtotal}) {