Volltext-Suche Auftrag: Kosmetik: Formatierung SQL-Statements
authorBernd Bleßmann <bernd@kivitendo-premium.de>
Fri, 22 Apr 2022 13:49:20 +0000 (15:49 +0200)
committerBernd Bleßmann <bernd@kivitendo-premium.de>
Wed, 18 May 2022 13:26:49 +0000 (15:26 +0200)
SL/OE.pm

index 2a283d2..4ce1b10 100644 (file)
--- a/SL/OE.pm
+++ b/SL/OE.pm
@@ -331,10 +331,33 @@ SQL
     $query .= ' AND (';
     $query .= join ' ILIKE ? OR ', @fulltext_fields;
     $query .= ' ILIKE ?';
-    $query .= qq| OR EXISTS (SELECT files.id FROM files LEFT JOIN file_full_texts ON (file_full_texts.file_id = files.id) WHERE files.object_id = o.id AND files.object_type = 'sales_order' AND file_full_texts.full_text ILIKE ?)|;
-    $query .= qq| OR EXISTS (SELECT notes.id FROM notes WHERE notes.trans_id = o.id AND notes.trans_module LIKE 'oe' AND (notes.subject ILIKE ? OR notes.body ILIKE ?))|;
-    $query .= qq| OR EXISTS (SELECT follow_up_links.id FROM follow_up_links WHERE follow_up_links.trans_id = o.id AND trans_type = 'sales_order' AND EXISTS (SELECT notes.id FROM notes WHERE trans_module LIKE 'fu' AND trans_id = follow_up_links.follow_up_id AND (notes.subject ILIKE ? OR notes.body ILIKE ?)))|;
+
+    $query .= <<SQL;
+      OR EXISTS (
+        SELECT files.id FROM files LEFT JOIN file_full_texts ON (file_full_texts.file_id = files.id)
+          WHERE files.object_id = o.id AND files.object_type = 'sales_order'
+            AND file_full_texts.full_text ILIKE ?)
+SQL
+
+    $query .= <<SQL;
+      OR EXISTS (
+        SELECT notes.id FROM notes
+          WHERE notes.trans_id = o.id AND notes.trans_module LIKE 'oe'
+            AND (notes.subject ILIKE ? OR notes.body ILIKE ?))
+SQL
+
+    $query .= <<SQL;
+      OR EXISTS (
+        SELECT follow_up_links.id FROM follow_up_links
+          WHERE follow_up_links.trans_id = o.id AND trans_type = 'sales_order'
+            AND EXISTS (
+              SELECT notes.id FROM notes
+                WHERE trans_module LIKE 'fu' AND trans_id = follow_up_links.follow_up_id
+                  AND (notes.subject ILIKE ? OR notes.body ILIKE ?)))
+SQL
+
     $query .= ')';
+
     push(@values, like($form->{fulltext})) for 1 .. (scalar @fulltext_fields) + 5;
   }