From 7290fcd05a5a39bfb43b77e3935ec84af6cb3502 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 21 Dec 2022 22:08:00 +1100 Subject: [PATCH] Refactor quote filters --- app/Filters/BankTransactionFilters.php | 1 + app/Filters/PurchaseOrderFilters.php | 14 ++++++++++---- app/Filters/QuoteFilters.php | 16 +++++++++++----- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/app/Filters/BankTransactionFilters.php b/app/Filters/BankTransactionFilters.php index b2b16ec73c11..a993cb2aa7a5 100644 --- a/app/Filters/BankTransactionFilters.php +++ b/app/Filters/BankTransactionFilters.php @@ -78,6 +78,7 @@ class BankTransactionFilters extends QueryFilters $status_parameters = explode(',', $value); $status_array = []; + $debit_or_withdrawal_array = []; if (in_array('all', $status_parameters)) { diff --git a/app/Filters/PurchaseOrderFilters.php b/app/Filters/PurchaseOrderFilters.php index 2d9f957d75f6..77fd4ede62c0 100644 --- a/app/Filters/PurchaseOrderFilters.php +++ b/app/Filters/PurchaseOrderFilters.php @@ -42,20 +42,26 @@ class PurchaseOrderFilters extends QueryFilters return $this->builder; } + $po_status = []; + if (in_array('draft', $status_parameters)) { - $this->builder->where('status_id', PurchaseOrder::STATUS_DRAFT); + $po_status[] = PurchaseOrder::STATUS_DRAFT; } if (in_array('sent', $status_parameters)) { - $this->builder->where('status_id', PurchaseOrder::STATUS_SENT); + $po_status[] = PurchaseOrder::STATUS_SENT; } if (in_array('accepted', $status_parameters)) { - $this->builder->where('status_id', PurchaseOrder::STATUS_ACCEPTED); + $po_status[] = PurchaseOrder::STATUS_ACCEPTED; } if (in_array('cancelled', $status_parameters)) { - $this->builder->where('status_id', PurchaseOrder::STATUS_CANCELLED); + $po_status[] = PurchaseOrder::STATUS_CANCELLED; + } + + if(count($status_parameters) >=1) { + $this->builder->whereIn('status_id', $status_parameters); } return $this->builder; diff --git a/app/Filters/QuoteFilters.php b/app/Filters/QuoteFilters.php index 5446c0532da7..a545f76fddd3 100644 --- a/app/Filters/QuoteFilters.php +++ b/app/Filters/QuoteFilters.php @@ -66,25 +66,31 @@ class QuoteFilters extends QueryFilters return $this->builder; } + $quote_filters = []; + if (in_array('draft', $status_parameters)) { - $this->builder->where('status_id', Quote::STATUS_DRAFT); + $quote_filters[] = Quote::STATUS_DRAFT; } if (in_array('sent', $status_parameters)) { - $this->builder->where('status_id', Quote::STATUS_SENT); + $quote_filters[] = Quote::STATUS_SENT; } if (in_array('approved', $status_parameters)) { - $this->builder->where('status_id', Quote::STATUS_APPROVED); + $quote_filters[] = Quote::STATUS_APPROVED; + } + + if(count($quote_filters) >=1){ + $this->builder->whereIn('status_id', $quote_filters); } if (in_array('expired', $status_parameters)) { - $this->builder->where('status_id', Quote::STATUS_SENT) + $this->builder->orWhere('status_id', Quote::STATUS_SENT) ->where('due_date', '>=', now()->toDateString()); } if (in_array('upcoming', $status_parameters)) { - $this->builder->where('status_id', Quote::STATUS_SENT) + $this->builder->orWhere('status_id', Quote::STATUS_SENT) ->where('due_date', '<=', now()->toDateString()) ->orderBy('due_date', 'DESC'); }