From ee1db268c52ace4a4c40ca5629a57cfbf0678255 Mon Sep 17 00:00:00 2001
From: Guillaume Pommier <guillaume.pommier@grand-manitou.com>
Date: Fri, 8 Oct 2021 18:32:55 +0200
Subject: [PATCH] Bugfix first logic was not taken into account

---
 app/Http/Controllers/Frontend/PlasmidController.php |  2 ++
 app/Traits/Frontend/SearchBuilder.php               | 12 +++++++++---
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/app/Http/Controllers/Frontend/PlasmidController.php b/app/Http/Controllers/Frontend/PlasmidController.php
index d9c272c..83dffb9 100644
--- a/app/Http/Controllers/Frontend/PlasmidController.php
+++ b/app/Http/Controllers/Frontend/PlasmidController.php
@@ -30,7 +30,9 @@ class PlasmidController extends Controller
         if (request()->ajax()) {
             $query = Plasmid::query()->when(request()->searchBuilder, function ($query, $searchBuilderAjaxRequest) {
                     $criteria = $searchBuilderAjaxRequest['criteria'];
+                    \Log::debug($criteria);
                     $logic = $searchBuilderAjaxRequest['logic'];
+                    \Log::debug($logic);
                     $query = $this->buildRecursiveQuery($query, $criteria, $logic);
                 });
 
diff --git a/app/Traits/Frontend/SearchBuilder.php b/app/Traits/Frontend/SearchBuilder.php
index 1b0c997..4348075 100644
--- a/app/Traits/Frontend/SearchBuilder.php
+++ b/app/Traits/Frontend/SearchBuilder.php
@@ -13,9 +13,15 @@ trait SearchBuilder
                 // Recursive
                 $subCriteria = $item['criteria'];
                 $subLogic = $item['logic'];
-                $query->where(function ($query) use ($subCriteria, $subLogic) {
-                    $this->buildRecursiveQuery($query, $subCriteria,  $subLogic);
-                });
+                if ($logic == 'OR') {
+                    $query->orWhere(function ($query) use ($subCriteria, $subLogic) {
+                        $this->buildRecursiveQuery($query, $subCriteria,  $subLogic);
+                    });
+                } else {
+                    $query->where(function ($query) use ($subCriteria, $subLogic) {
+                        $this->buildRecursiveQuery($query, $subCriteria,  $subLogic);
+                    });
+                }
             } else {
                 // Apply criteria
 
-- 
GitLab