Your IP : 216.73.216.170
<?// обработчики
$handler = Bitrix\Main\EventManager::getInstance();
$handler->addEventHandler(
'tasks',
'OnBeforeTaskUpdate',
['DgtlHandlers', 'onBeforeTaskAddOrUpdateHandler']
);
$handler->addEventHandler(
'tasks',
'OnBeforeTaskAdd',
['DgtlHandlers', 'onBeforeTaskAddOrUpdateHandler']
);
Class DgtlHandlers
{
function onBeforeTaskAddOrUpdateHandler($id, $fields = [], $task = []) {
if (empty($fields) && !empty($id)) { // add task -- no id
$fields = $id;
}
if ($fields['PARENT_ID'] > 0 || $fields['SE_PARENTTASK']['ID'] > 0) {
$parentId = $fields['PARENT_ID'];
if (!$parentId) {
$parentId = $fields['SE_PARENTTASK']['ID'];
}
$parentTask = \Bitrix\Tasks\Internals\TaskTable::getList([
'filter' => ['ID' => $parentId],
'select' => ['UF_KEY_ID', 'UF_OBJ']
])->fetch();
if ($fields['UF_KEY_ID'] > 0 && $fields['UF_KEY_ID'] != $parentTask['UF_KEY_ID']) {
throw new \Bitrix\Tasks\ActionFailedException("Показатель эффективности не совпадает с родительской задачей!");
}
if ($fields['UF_OBJ'] != $parentTask['UF_OBJ']) {
throw new \Bitrix\Tasks\ActionFailedException("Цель не совпадает с родительской задачей!");
}
}
}
}