From 69a30eed6b3c4de7d96d8502294c317f0037f371 Mon Sep 17 00:00:00 2001 From: denisdulici Date: Thu, 27 Dec 2018 13:56:56 +0300 Subject: [PATCH] improved list filters --- app/Filters/Common/Items.php | 9 ++++++++- app/Filters/Expenses/Vendors.php | 9 ++++++++- app/Filters/Incomes/Customers.php | 9 ++++++++- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/app/Filters/Common/Items.php b/app/Filters/Common/Items.php index 9c6369953..79247943a 100644 --- a/app/Filters/Common/Items.php +++ b/app/Filters/Common/Items.php @@ -16,7 +16,14 @@ class Items extends ModelFilter public function search($query) { - return $this->whereLike('name', $query); + $model = $this->where('name', 'LIKE', '%' . $query . '%'); + + $or_fields = ['sku', 'description']; + foreach ($or_fields as $or_field) { + $model->orWhere($or_field, 'LIKE', '%' . $query . '%'); + } + + return $model; } public function categories($ids) diff --git a/app/Filters/Expenses/Vendors.php b/app/Filters/Expenses/Vendors.php index b6946182e..bcc15c08a 100644 --- a/app/Filters/Expenses/Vendors.php +++ b/app/Filters/Expenses/Vendors.php @@ -16,6 +16,13 @@ class Vendors extends ModelFilter public function search($query) { - return $this->where('name', 'LIKE', '%' . $query . '%')->orWhere('email', 'LIKE', '%' . $query . '%'); + $model = $this->where('name', 'LIKE', '%' . $query . '%'); + + $or_fields = ['email', 'tax_number', 'phone', 'website', 'address', 'reference']; + foreach ($or_fields as $or_field) { + $model->orWhere($or_field, 'LIKE', '%' . $query . '%'); + } + + return $model; } } \ No newline at end of file diff --git a/app/Filters/Incomes/Customers.php b/app/Filters/Incomes/Customers.php index 8af7266aa..c52a17599 100644 --- a/app/Filters/Incomes/Customers.php +++ b/app/Filters/Incomes/Customers.php @@ -16,6 +16,13 @@ class Customers extends ModelFilter public function search($query) { - return $this->where('name', 'LIKE', '%' . $query . '%')->orWhere('email', 'LIKE', '%' . $query . '%'); + $model = $this->where('name', 'LIKE', '%' . $query . '%'); + + $or_fields = ['email', 'tax_number', 'phone', 'website', 'address', 'reference']; + foreach ($or_fields as $or_field) { + $model->orWhere($or_field, 'LIKE', '%' . $query . '%'); + } + + return $model; } }