- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/checklist/checklistfacade.php
- Класс: BitrixTasksCheckListCheckListFacade
- Вызов: CheckListFacade::deleteLeaf
static function deleteLeaf($entityId, $userId, $checkList)
{
/** @noinspection PhpVariableNamingConventionInspection */
global $USER_FIELD_MANAGER;
$deleteLeafResult = new Result();
if (!static::checkAccess($entityId, $userId, ActionDictionary::ACTION_CHECKLIST_EDIT, $checkList))
{
$code = 'ACTION_NOT_ALLOWED';
$deleteLeafResult = static::addErrorToResult($deleteLeafResult, $code, self::ACTION_REMOVE);
return $deleteLeafResult;
}
$id = $checkList->getFields()['ID'];
try
{
if (static::$userFieldsEntityIdName)
{
$USER_FIELD_MANAGER->Delete(static::$userFieldsEntityIdName, $id);
}
}
catch (Exception $exception)
{
$deleteLeafResult = static::addErrorToResult($deleteLeafResult, 'USER_FIELD_DELETE_FAILED');
static::logError($exception->getMessage());
}
/** @var DataManager $memberDataController */
$memberDataController = static::getCheckListMemberDataController();
if ($memberDataController)
{
$members = $memberDataController::getList([
'select' => ['ID'],
'filter' => ['ITEM_ID' => $id]
])->fetchAll();
foreach ($members as $member)
{
$memberDeleteResult = $memberDataController::delete($member['ID']);
if (!$memberDeleteResult->isSuccess())
{
$deleteLeafResult = static::addErrorToResult($deleteLeafResult, 'MEMBER_DELETE_FAILED');
static::logError($memberDeleteResult->getErrorMessages()[0]);
}
}
}
/** @var CheckListTree $checkListTree */
$checkListTree = static::getCheckListTree();
$treeDeleteResult = $checkListTree::delete($id, ['DELETE_SUBTREE' => true]);
if (!$treeDeleteResult->isSuccess())
{
$deleteLeafResult->loadErrors($treeDeleteResult->getErrors());
}
/** @var DataManager $checkListDataController */
$checkListDataController = static::getCheckListDataController();
$tableDeleteResult = $checkListDataController::delete($id);
if (!$tableDeleteResult->isSuccess())
{
$deleteLeafResult = static::addErrorToResult($deleteLeafResult, 'CHECKLIST_DELETE_FAILED');
static::logError($tableDeleteResult->getErrorMessages()[0]);
}
static::doDeletePostActions($entityId, $userId, ['CHECKLIST' => $checkList]);
return $deleteLeafResult;
}