- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/kanban/stages.php
- Класс: BitrixTasksKanbanStagesTable
- Вызов: StagesTable::delete
static function delete($key, $entityId = 0)
{
$entityType = self::getWorkMode();
$res = self::getList(array(
'filter' => array(
'ID' => $key,
'ENTITY_ID' => $entityId,
'=ENTITY_TYPE' => $entityType,
//'=SYSTEM_TYPE' => false
)
));
if ($stage = $res->fetch())
{
// user can't delete first stage
if (
$stage['SYSTEM_TYPE'] == self::SYS_TYPE_NEW
&& $entityType !== self::WORK_MODE_ACTIVE_SPRINT
)
{
$result = new EntityDeleteResult();
$result->addError(new EntityEntityError(
Loc::getMessage('TASKS_STAGE_ERROR_CANT_DELETE_FIRST'),
'CANT_DELETE_FIRST'
));
return $result;
}
$res = parent::delete($stage['ID']);
// remove tasks from this stage
if ($res->isSuccess())
{
if ($entityType == self::WORK_MODE_GROUP)
{
$resT = Task::getList(array(
'select' => array('ID'),
'filter' => array(
'STAGE_ID' => $stage['ID']
)
));
while ($row = $resT->fetch())
{
Task::update($row['ID'], array(
'STAGE_ID' => 0
));
}
}
elseif (
$entityType === self::WORK_MODE_USER
|| $entityType === self::WORK_MODE_ACTIVE_SPRINT
)
{
$resT = TaskStageTable::getList(array(
'filter' => array(
'STAGE_ID' => $stage['ID']
)
));
while ($row = $resT->fetch())
{
TaskStageTable::delete($row['ID']);
}
}
}
return $res;
}
return false;
}