[Добавлено]: Вывод всех врачей при создании отчета #2

This commit is contained in:
brusnitsyn
2026-06-04 17:55:24 +09:00
parent ee6b13d447
commit 0a6af0a315
3 changed files with 23 additions and 5 deletions

View File

@@ -26,19 +26,24 @@ class DepartmentController extends Controller
$type = $request->query('type', 'duty'); $type = $request->query('type', 'duty');
if ($onlyUserDepartment) { if ($onlyUserDepartment) {
$departmentId = $department->rf_mis_department_id; $departmentIds = [$department->rf_mis_department_id];
} else { } else {
$user = Auth::user(); $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']) $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->when($type === 'nurse', function ($query) {
$query->whereIn('rf_PRVDID', [1567, 1629]); $query->whereIn('rf_PRVDID', [1567, 1629]);
}) })
->where('rf_DepartmentID', $departmentId) ->whereIn('rf_DepartmentID', $departmentIds)
->whereDate('D_END', '2222-01-01 00:00:00.000000'); ->whereDate('D_END', '2222-01-01 00:00:00.000000');
}) })
->active() ->active()

View File

@@ -40,7 +40,7 @@ class Department extends Model
public function userDepartment() 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() public function recipientPlanOfYear()

View File

@@ -68,6 +68,19 @@ class User extends Authenticatable
return $this->hasMany(UserDepartment::class, 'rf_user_id', 'id')->orderBy('order'); 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() public function favoriteDepartment()
{ {
return $this->department()->where('is_favorited', true); return $this->department()->where('is_favorited', true);