- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/classes/general/tasklog.php
- Класс: CTaskLog
- Вызов: CTaskLog::getStageChanges
static function getStageChanges(int $oldStageId, int $newStageId, int $oldGroupId, int $newGroupId): array
{
if ($newGroupId !== $oldGroupId)
{
return [];
}
$isScrum = false;
if (BitrixMainLoader::includeModule('socialnetwork'))
{
$group = BitrixSocialnetworkItemWorkgroup::getById($newGroupId);
$isScrum = ($group && $group->isScrumProject());
}
if ($isScrum)
{
$kanbanService = new KanbanService();
if (!$oldStageId && $oldGroupId)
{
$sprintService = new SprintService();
$sprint = $sprintService->getActiveSprintByGroupId($newGroupId);
$oldStageId = (int) $kanbanService->getDefaultStageId($sprint->getId());
}
$stageTitles = $kanbanService->getStageTitles([$newStageId, $oldStageId]);
return [
'FROM_VALUE' => $stageTitles[$oldStageId],
'TO_VALUE' => $stageTitles[$newStageId],
];
}
if (!$oldStageId && $oldGroupId)
{
$oldStageId = (int)StagesTable::getDefaultStageId($oldGroupId);
}
$stageFrom = false;
$stageTo = false;
$res = StagesTable::getList([
'select' => ['ID', 'TITLE'],
'filter' => ['@ID' => [$oldStageId, $newStageId]],
]);
while ($stage = $res->fetch())
{
if ((int)$stage['ID'] === $oldStageId)
{
$stageFrom = $stage['TITLE'];
}
elseif ((int)$stage['ID'] === $newStageId)
{
$stageTo = $stage['TITLE'];
}
}
return [
'FROM_VALUE' => $stageFrom,
'TO_VALUE' => $stageTo,
];
}