function __InTaskTaskComplete($taskCompleteId, $iblockId, $taskType, $ownerId, $arTaskStatus, $arParams) { $errorMessage = ""; $taskCompleteId = IntVal($taskCompleteId); if ($taskCompleteId <= 0) { return ""; } $arTask = __InTaskGetTask($taskCompleteId, $iblockId, $taskType, $ownerId); if (!$arTask) { $errorMessage .= GetMessage("INTL_TASK_NOT_FOUND") . "."; } if (StrLen($errorMessage) <= 0) { if ($arTask["PROPS"]["TASKASSIGNEDTO"]["VALUE"] != $GLOBALS["USER"]->GetID()) { $errorMessage .= GetMessage("INTL_CAN_NOT_FINISH") . "."; } } if (StrLen($arResult["ErrorMessage"]) <= 0) { $obIB = new CIBlockElement(); $obIB->SetPropertyValueCode($taskCompleteId, $arTask["PROPS"]["TASKSTATUS"]["ID"], $arTaskStatus["COMPLETED"]["ID"]); $obIB->SetPropertyValueCode($taskCompleteId, $arTask["PROPS"]["TASKCOMPLETE"]["ID"], array(100)); $obIB->SetPropertyValueCode($taskCompleteId, $arTask["PROPS"]["TASKFINISH"]["ID"], array(Date($GLOBALS["DB"]->DateFormatToPHP(FORMAT_DATETIME)))); // added by sigurd CIntranetUtils::UpdateOWSVersion($iblockId, $taskCompleteId); $obIB->Update($taskCompleteId, array('TIMESTAMP_X' => Date($GLOBALS["DB"]->DateFormatToPHP(FORMAT_DATETIME)))); $arMessageFields = array("=DATE_CREATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "MESSAGE_TYPE" => SONET_MESSAGE_SYSTEM, "FROM_USER_ID" => $GLOBALS["USER"]->GetID(), "TO_USER_ID" => $arTask["FIELDS"]["CREATED_BY"]); if ($arMessageFields["FROM_USER_ID"] != $arMessageFields["TO_USER_ID"]) { $path2view = ($GLOBALS["APPLICATION"]->IsHTTPS() ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_TASKS_TASK"], array("owner_id" => $arTask["PROPS"]["TASKASSIGNEDTO"]["VALUE"], "task_id" => $taskCompleteId, "action" => "view")); $arMessageFields["MESSAGE"] = str_replace(array("#URL_VIEW#", "#NAME#"), array($path2view, $arTask["FIELDS"]["NAME"]), GetMessage("INTL_FINISH_MESSAGE")); CSocNetMessages::Add($arMessageFields); } } return $errorMessage; }
if ($arParams["ACTION"] == "create" && $GLOBALS["USER"]->GetID() == $taskAssignedToUserId) { CBPDocument::SendExternalEvent(strlen($arDocumentState["ID"]) <= 0 ? $arWorkflowIds[$arDocumentState["TEMPLATE_ID"]] : $arDocumentState["ID"], "HEEA_NotAccepted_ApproveEvent", array("Groups" => $arCurrentUserGroups, "User" => $GLOBALS["USER"]->GetID()), $arErrorTmp); if (count($arErrorsTmp) > 0) { foreach ($arErrorsTmp as $e) { $arResult["ErrorMessage"] .= $e["message"] . "<br />"; } } } } $arDocumentStates = null; } if (strlen($arResult["ErrorMessage"]) <= 0) { if ($arParams["ACTION"] == "create") { CIntranetUtils::UpdateOWSVersion($iblockId, $arParams["TASK_ID"], 1); } else { CIntranetUtils::UpdateOWSVersion($iblockId, $arParams["TASK_ID"]); } } if (strlen($arResult["ErrorMessage"]) > 0) { $arResult["bVarsFromForm"] = true; } else { if (array_key_exists("PROPERTY_TaskRemind", $arFields) && strlen($arFields["PROPERTY_TaskRemind"]) > 0) { CAgent::RemoveAgent("CIntranetTasks::SendRemindEventAgentNew(" . $arParams["TASK_ID"] . ");", "intranet"); CAgent::AddAgent("CIntranetTasks::SendRemindEventAgentNew(" . $arParams["TASK_ID"] . ");", "intranet", "Y", 10, "", "Y", $arFields["PROPERTY_TaskRemind"]); } else { CAgent::RemoveAgent("CIntranetTasks::SendRemindEventAgentNew(" . $arParams["TASK_ID"] . ");", "intranet"); } if (strlen($_POST["save"]) > 0) { if (array_key_exists("back_url", $_REQUEST) && strlen($_REQUEST["back_url"]) > 0) { $redirectPath = $_REQUEST["back_url"]; } else {