diff --git a/app/Export/CSV/BaseExport.php b/app/Export/CSV/BaseExport.php index d40e4052f329..cc4fe21f5efd 100644 --- a/app/Export/CSV/BaseExport.php +++ b/app/Export/CSV/BaseExport.php @@ -832,6 +832,42 @@ class BaseExport return $query; } + protected function addClientFilter($query, $clients): Builder + { + $transformed_clients = $this->transformKeys(explode(',', $clients)); + + $query->whereIn('client_id', $transformed_clients); + + return $query; + } + + protected function addVendorFilter($query, $vendors): Builder + { + $transformed_vendors = $this->transformKeys(explode(',', $vendors)); + + $query->whereIn('vendor_id', $transformed_vendors); + + return $query; + } + + protected function addProjectFilter($query, $projects): Builder + { + $transformed_projects = $this->transformKeys(explode(',', $projects)); + + $query->whereIn('project_id', $transformed_projects); + + return $query; + } + + protected function addCategoryFilter($query, $expense_categories): Builder + { + $transformed_expense_categories = $this->transformKeys(explode(',', $expense_categories)); + + $query->whereIn('category_id', $transformed_expense_categories); + + return $query; + } + protected function addInvoiceStatusFilter($query, $status): Builder { diff --git a/app/Export/CSV/ExpenseExport.php b/app/Export/CSV/ExpenseExport.php index afa55a7a36ff..1ac3c96b777d 100644 --- a/app/Export/CSV/ExpenseExport.php +++ b/app/Export/CSV/ExpenseExport.php @@ -88,6 +88,22 @@ class ExpenseExport extends BaseExport $query = $this->addDateRange($query); + if(isset($this->input['clients'])) { + $query = $this->addClientFilter($query, $this->input['clients']); + } + + if(isset($this->input['vendors'])) { + $query = $this->addVendorFilter($query, $this->input['vendors']); + } + + if(isset($this->input['projects'])) { + $query = $this->addProjectFilter($query, $this->input['projects']); + } + + if(isset($this->input['categories'])) { + $query = $this->addCategoryFilter($query, $this->input['categories']); + } + return $query; }