- Модуль: timeman
- Путь к файлу: ~/bitrix/modules/timeman/lib/helper/form/schedule/scheduleformhelper.php
- Класс: BitrixTimemanHelperFormScheduleScheduleFormHelper
- Вызов: ScheduleFormHelper::fillScheduleSignMap
private function fillScheduleSignMap($parentSign, $selfCode, &$signMap)
{
$signMap[$selfCode] = $this->getSign($parentSign, $selfCode, $signMap);
static $directChildrenUsersMap = [];
if (
EntityCodesHelper::isDepartment($selfCode)
&& ($directChildrenUsersMap[$selfCode] ?? null) === null
)
{
$directChildrenUsersMap[$selfCode] = EntityCodesHelper::buildUserCodes(
$this->departmentRepository->getUsersOfDepartment(EntityCodesHelper::getDepartmentId($selfCode))
);
}
static $directChildrenMap = null;
if ($directChildrenMap === null)
{
$directChildrenMap = $this->departmentRepository->getDepartmentsTree();
foreach ($directChildrenMap as $index => $data)
{
$directChildrenMap[EntityCodesHelper::buildDepartmentCode($index)] = EntityCodesHelper::buildDepartmentCodes($data);
unset($directChildrenMap[$index]);
}
$directChildrenMap = array_filter($directChildrenMap);
}
if (array_key_exists($selfCode, $directChildrenMap))
{
foreach ($directChildrenMap[$selfCode] as $childCode)
{
$this->fillScheduleSignMap($signMap[$selfCode], $childCode, $signMap);
}
}
if (array_key_exists($selfCode, $directChildrenUsersMap))
{
foreach ($directChildrenUsersMap[$selfCode] as $userCode)
{
$signMap[$userCode] = $this->getSign($signMap[$selfCode], $userCode, $signMap);
$this->fillScheduleSignMap($signMap[$userCode], $userCode, $signMap);
}
}
}