Import sort filters

This commit is contained in:
David Bomba 2023-12-20 13:59:48 +11:00
parent 3365e93da0
commit 685c21c78a

View File

@ -114,20 +114,25 @@ class RecurringInvoiceFilters extends QueryFilters
*/ */
public function sort(string $sort = ''): Builder public function sort(string $sort = ''): Builder
{ {
$sort_col = explode('|', $sort);
$sort_col = explode('|', $sort);
if (!is_array($sort_col) || count($sort_col) != 2) { if (!is_array($sort_col) || count($sort_col) != 2) {
return $this->builder; return $this->builder;
} }
$dir = ($sort_col[1] == 'asc') ? 'asc' : 'desc';
if ($sort_col[0] == 'client_id') { if ($sort_col[0] == 'client_id') {
return $this->builder->orderBy(\App\Models\Client::select('name') 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);
} }
/** /**