Никто не помог.
Родил сам.
Работает так, при закрытии задачи идет проверка на наличие комментариев, указанного времени и компании в задаче.
Если чего то не хватает, то добавляется комментарий к задаче и она не закрывается.
Нужно создать файл /bitrix/php_interface/s1/init.php
В него добавить следующий код
Родил сам.
Работает так, при закрытии задачи идет проверка на наличие комментариев, указанного времени и компании в задаче.
Если чего то не хватает, то добавляется комментарий к задаче и она не закрывается.
Нужно создать файл /bitrix/php_interface/s1/init.php
В него добавить следующий код
| Код |
|---|
<?php
AddEventHandler("tasks", "OnBeforeTaskUpdate", array("FinishTask", "OnBeforeTaskUpdateHandler"));
class FinishTask {
function OnBeforeTaskUpdateHandler($id, $arFields) {
if ($arFields["STATUS"] == CTasks::STATE_COMPLETED or $arFields["STATUS"] == CTasks::STATE_SUPPOSEDLY_COMPLETED) {
global $USER;
$olduser = $USER->getId();
$newuser = $UserID = 1;
CModule::includemodule('forum');
CModule::includemodule('crm');
CModule::IncludeModule('tasks');
$rsTask = CTasks::GetByID($id);
// подсчет потраченного времени
$res = CTaskElapsedTime::GetList(Array(), Array("TASK_ID" => $id));
$elapsedTime = 0;
while ($arElapsed = $res->Fetch())
{
$elapsedTime += $arElapsed["MINUTES"];
}
if ($arTask = $rsTask->GetNext())
{
$ftopicid = $arTask['FORUM_TOPIC_ID'];
$forumid = $arTask['FORUM_ID'];
$crmcomp = $arTask['UF_CRM_TASK'];
}
// проверка наличия комментариев
if ($ftopicid == '' or $forumid == '') {
$USER->Authorize($newuser);
$commid1 = CTaskComments::Add($id, 1, "Необходимо оставить комментарий!");
$USER->Authorize($olduser);
return false;
}
// проверка затраченного времени
if ($elapsedTime < 1) {
$USER->Authorize($newuser);
$commid2 = CTaskComments::Add($id, 1, "Необходимо указать время, потраченное на выполнение данной задачи!");
$USER->Authorize($olduser);
return false;
}
if ($crmcomp[0] == '') {
$USER->Authorize($newuser);
$commid3 = CTaskComments::Add($id, 1, "Необходимо указать клиента!");
$USER->Authorize($olduser);
return false;
}
}
}
}
?> |