- Модуль: timeman
- Путь к файлу: ~/bitrix/modules/timeman/lib/service/schedule/scheduleassignmentsservice.php
- Класс: BitrixTimemanServiceScheduleScheduleAssignmentsService
- Вызов: ScheduleAssignmentsService::fillDepartmentsAssignments
private function fillDepartmentsAssignments($departmentsChainData, $departmentAssignments, $results, $depId, $commonSchedulesIds)
{
$stopOnFirstExcludedParent = [];
foreach ($departmentsChainData as $depDatum)
{
if (isset($departmentAssignments[$depDatum['ID']]))
{
foreach ($departmentAssignments[$depDatum['ID']] as $assignData)
{
$schId = (int)$assignData['SCHEDULE_ID'];
if ($stopOnFirstExcludedParent[$depId . '-' . $schId] === true)
{
continue;
}
if (ScheduleDepartment::isDepartmentIncluded($assignData))
{
$selfExcluded = false;
if (isset($departmentAssignments[$depId]))
{
foreach ($departmentAssignments[$depId] as $selfAssignData)
{
if ($schId === (int)$selfAssignData['SCHEDULE_ID'] &&
ScheduleDepartment::isDepartmentExcluded($selfAssignData))
{
$selfExcluded = true;
break;
}
}
}
if (!$selfExcluded)
{
$results[$depId][] = $schId;
}
}
else
{
$this->removeExcludedAssignFromResults($depId, $schId, $commonSchedulesIds, $results);
$stopOnFirstExcludedParent[$depId . '-' . $schId] = true;
}
}
}
}
return $results;
}