From 0a6af0a315794012a43ec7eb18b543e9883fbe95 Mon Sep 17 00:00:00 2001 From: brusnitsyn Date: Thu, 4 Jun 2026 17:55:24 +0900 Subject: [PATCH] =?UTF-8?q?[=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE]:=20=D0=92=D1=8B=D0=B2=D0=BE=D0=B4=20=D0=B2=D1=81?= =?UTF-8?q?=D0=B5=D1=85=20=D0=B2=D1=80=D0=B0=D1=87=D0=B5=D0=B9=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D0=B8?= =?UTF-8?q?=20=D0=BE=D1=82=D1=87=D0=B5=D1=82=D0=B0=20#2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Api/DepartmentController.php | 13 +++++++++---- app/Models/Department.php | 2 +- app/Models/User.php | 13 +++++++++++++ 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/Api/DepartmentController.php b/app/Http/Controllers/Api/DepartmentController.php index 5d52c0d..bcc956d 100644 --- a/app/Http/Controllers/Api/DepartmentController.php +++ b/app/Http/Controllers/Api/DepartmentController.php @@ -26,19 +26,24 @@ class DepartmentController extends Controller $type = $request->query('type', 'duty'); if ($onlyUserDepartment) { - $departmentId = $department->rf_mis_department_id; + $departmentIds = [$department->rf_mis_department_id]; } else { $user = Auth::user(); - $departmentId = $user->department->rf_mis_department_id; + // TODO: Доработать сопоставление с должностями + $userDepartmentProfile = $user->department->departmentType; + $departmentProfileToDoctorProfiles = [ + 1 => [1336, 1351, 1379, 1393, 1402, 1423, 1424, 1505] + ]; + $departmentIds = $user->misDepartments->pluck('rf_mis_department_id')->toArray(); } $users = MisLpuDoctor::select(['LPUDoctorID', 'FAM_V', 'IM_V', 'OT_V']) - ->whereHas('prvds', function ($query) use ($departmentId, $type) { + ->whereHas('prvds', function ($query) use ($departmentIds, $type) { $query->when($type === 'nurse', function ($query) { $query->whereIn('rf_PRVDID', [1567, 1629]); }) - ->where('rf_DepartmentID', $departmentId) + ->whereIn('rf_DepartmentID', $departmentIds) ->whereDate('D_END', '2222-01-01 00:00:00.000000'); }) ->active() diff --git a/app/Models/Department.php b/app/Models/Department.php index 8019ce0..645274b 100644 --- a/app/Models/Department.php +++ b/app/Models/Department.php @@ -40,7 +40,7 @@ class Department extends Model public function userDepartment() { - return $this->belongsTo(UserDepartment::class, 'rf_department_id', 'department_id'); + return $this->belongsTo(UserDepartment::class, 'department_id', 'rf_department_id'); } public function recipientPlanOfYear() diff --git a/app/Models/User.php b/app/Models/User.php index 2436698..1971516 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -68,6 +68,19 @@ class User extends Authenticatable return $this->hasMany(UserDepartment::class, 'rf_user_id', 'id')->orderBy('order'); } + public function misDepartments() + { + return $this->belongsToMany( + Department::class, // конечная модель + 'user_departments', // промежуточная таблица + 'rf_user_id', // внешний ключ в промежуточной таблице на User + 'rf_department_id', // внешний ключ в промежуточной таблице на Department + 'id', // локальный ключ в User + 'department_id' // локальный ключ в Department (уточните имя!) + )->withPivot('order') // если нужен order + ->orderBy('user_departments.order'); + } + public function favoriteDepartment() { return $this->department()->where('is_favorited', true);