Quicksuche: bei Stammdatensuche keine ungültigen anbieten
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 28 Aug 2017 11:36:48 +0000 (13:36 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 28 Aug 2017 11:38:17 +0000 (13:38 +0200)
Betrifft:

• Artikelstammdaten in allen Varianten (Waren, Dienstleistungen,
  Erzeugnisse, Sortimente)
• Kunden & Lieferanten
• Ansprechpersonen (hier werden nur diejenigen angeboten, die zu
  gültigen Kunden/Lieferanten gehören)

SL/Controller/TopQuickSearch/Article.pm
SL/Controller/TopQuickSearch/Contact.pm
SL/Controller/TopQuickSearch/CustomerVendor.pm

index ba051d2..e689bbe 100644 (file)
@@ -83,6 +83,7 @@ sub init_models {
     source     => {
       filter => {
         (part_type => $self->part_type) x!!$self->part_type,
+        or => [ obsolete => undef, obsolete => 0 ],
         'all:substr:multi::ilike' => $::form->{term},
       },
     },
index e170524..322df37 100644 (file)
@@ -19,6 +19,18 @@ sub description_field { t8('Contacts') }
 sub query_autocomplete {
   my ($self) = @_;
 
+  my $cv_query = <<SQL;
+    SELECT id FROM customer
+    WHERE (obsolete IS NULL)
+       OR (obsolete = FALSE)
+
+    UNION
+
+    SELECT id FROM vendor
+    WHERE (obsolete IS NULL)
+       OR (obsolete = FALSE)
+SQL
+
   my $result = SL::DB::Manager::Contact->get_all(
     query => [
       or => [
@@ -26,7 +38,7 @@ sub query_autocomplete {
         cp_givenname => { ilike => like($::form->{term}) },
         cp_email     => { ilike => like($::form->{term}) },
       ],
-      cp_cv_id => [ \'SELECT id FROM customer UNION SELECT id FROM vendor' ],
+      cp_cv_id => [ \$cv_query ],
     ],
     limit => 10,
     sort_by => 'cp_name',
index f337d10..0f18b3b 100644 (file)
@@ -82,6 +82,7 @@ sub init_models {
     source     => {
       filter => {
         'all:substr:multi::ilike' => $::form->{term}, # all filter spec is set in SL::DB::Manager::Customer
+        or => [ obsolete => undef, obsolete => 0 ],
       },
     },
     sorted     => {