Der SQL-Code für die Suche nach Hersteller und Modell in den Stammdaten benutze einen...
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 21 May 2007 11:37:24 +0000 (11:37 +0000)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 21 May 2007 11:37:24 +0000 (11:37 +0000)
SL/IC.pm

index a27cc52..092a24d 100644 (file)
--- a/SL/IC.pm
+++ b/SL/IC.pm
@@ -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}) {