From 685c21c78a41d7283a47f104bff3a3337fae1aec Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 20 Dec 2023 13:59:48 +1100 Subject: [PATCH] Import sort filters --- app/Filters/RecurringInvoiceFilters.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/Filters/RecurringInvoiceFilters.php b/app/Filters/RecurringInvoiceFilters.php index 81060eed6123..8c3bb10936fc 100644 --- a/app/Filters/RecurringInvoiceFilters.php +++ b/app/Filters/RecurringInvoiceFilters.php @@ -114,20 +114,25 @@ class RecurringInvoiceFilters extends QueryFilters */ public function sort(string $sort = ''): Builder { - $sort_col = explode('|', $sort); + $sort_col = explode('|', $sort); + if (!is_array($sort_col) || count($sort_col) != 2) { return $this->builder; } + $dir = ($sort_col[1] == 'asc') ? 'asc' : 'desc'; if ($sort_col[0] == 'client_id') { return $this->builder->orderBy(\App\Models\Client::select('name') - ->whereColumn('clients.id', 'recurring_invoices.client_id'), $sort_col[1]); + ->whereColumn('clients.id', 'recurring_invoices.client_id'), $dir); } + if($sort_col[0] == 'number'){ + return $this->builder->orderByRaw("ABS(number) {$dir}"); + } - return $this->builder->orderBy($sort_col[0], $sort_col[1]); + return $this->builder->orderBy($sort_col[0], $dir); } /**