• Модуль: 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;
}