Как закрыть основную задачу при закрытии подзадачи
 
Как закрыть основную задачу при закрытии подзадачи
10.02.2017 18:12:49
Бизнес-процессы
800
Потребность в этом возникла в рамках реализации бизнес-процесса на согласование скидки для одного из наших клиентов.
На одном из этапов бизнес-процесса менеджеру ставилась задача на согласование скидки, куда наблюдателем шел руководитель отдела продаж.

Бизнес-процесс закрытия задачи от Эм Си Арт
Одновременно с постановкой задачи менеджеру, руководителю отдела продаж поступало задание бизнес-процесса, в котором он мог инициировать процесс обсуждения скидки с директором компании.

Бизнес-процесс закрытия задачи от Эм Си Арт

 Если руководитель отдела продаж выберет кнопку Делегировать выше, то в основной задаче на согласование скидки создастся подзадача вида:

Бизнес-процесс закрытия задачи от Эм Си Арт

Необходимо было сделать так, чтобы когда ответственный сотрудник закрывал основную задачу на согласование скидки, автоматически закрывалась и созданная подзадача для обсуждения скидки.
Поскольку весь процесс был организован в рамках бизнес-процесса, то несложно было получить id основной задачи:

Бизнес-процесс закрытия задачи от Эм Си Арт

В первом блоке получаем id основной задачи и id пользователя, закрывшего ее:

Бизнес-процесс закрытия задачи от Эм Си Арт

И далее идет блок PHP кода, в котором мы и закрываем основную задачу:

CModule::IncludeModule('tasks'); // подключаем модуль задач $arFields = array('STATUS' => CTasks::STATE_COMPLETED); // статус завершена
$oTaskItem = CTaskItem::getInstance($taskId, $userId);
// $taskId - id задачки, $userId - id юзера, от которого закрываем
 $oTaskItem->update($arFields); // закрываем задачу

Загрузка...