diff --git a/app/Http/Controllers/Api/DepartmentsController.php b/app/Http/Controllers/Api/DepartmentsController.php index e337360cd..a7b30a10f 100644 --- a/app/Http/Controllers/Api/DepartmentsController.php +++ b/app/Http/Controllers/Api/DepartmentsController.php @@ -72,6 +72,9 @@ class DepartmentsController extends Controller case 'manager': $departments->OrderManager($order); break; + case 'company': + $departments->OrderCompany($order); + break; default: $departments->orderBy($sort, $order); break; diff --git a/app/Models/Department.php b/app/Models/Department.php index 855cb25f6..592fd840b 100644 --- a/app/Models/Department.php +++ b/app/Models/Department.php @@ -141,4 +141,17 @@ class Department extends SnipeModel { return $query->leftJoin('users as department_user', 'departments.manager_id', '=', 'department_user.id')->orderBy('department_user.first_name', $order)->orderBy('department_user.last_name', $order); } + + /** + * Query builder scope to order on company + * + * @param \Illuminate\Database\Query\Builder $query Query builder instance + * @param text $order Order + * + * @return \Illuminate\Database\Query\Builder Modified query builder + */ + public function scopeOrderCompany($query, $order) + { + return $query->leftJoin('companies as company_sort', 'departments.company_id', '=', 'company_sort.id')->orderBy('company_sort.name', $order); + } }