public function executeComponent() { $id = $this->getWorkflowId(); $this->arResult = array('NeedAuth' => $this->isAuthorizationNeeded() ? 'Y' : 'N', 'FatalErrorMessage' => '', 'ErrorMessage' => ''); if ($id) { $workflowState = \CBPStateService::getWorkflowState($id); if (!$workflowState) { $this->arResult['FatalErrorMessage'] = Loc::getMessage('BPWFI_WORKFLOW_NOT_FOUND'); } else { $this->arResult['WorkflowState'] = $workflowState; $this->arResult['WorkflowTrack'] = \CBPTrackingService::DumpWorkflow($id); if ($workflowState['STARTED_BY'] && ($photo = $this->getStartedByPhoto($workflowState['STARTED_BY']))) { $this->arResult['startedByPhotoSrc'] = $photo['src']; } $runtime = CBPRuntime::GetRuntime(); $runtime->StartRuntime(); /** * @var CBPDocumentService $documentService */ $documentService = $runtime->GetService('DocumentService'); try { $this->arResult['DOCUMENT_NAME'] = $documentService->getDocumentName($workflowState['DOCUMENT_ID']); $this->arResult['DOCUMENT_ICON'] = $documentService->getDocumentIcon($workflowState['DOCUMENT_ID']); } catch (Main\ArgumentException $e) { $this->arResult['FatalErrorMessage'] = $e->getMessage(); } } } $this->includeComponentTemplate(); if ($this->arParams['SET_TITLE']) { $this->setPageTitle(Loc::getMessage('BPWFI_PAGE_TITLE')); } }
</table> </li> <?php } foreach ($arDocumentStates as $arDocumentState) { $bizProcIndex++; if (intVal($arDocumentState["WORKFLOW_STATUS"]) < 0 || $arDocumentState["ID"] <= 0) { continue; } elseif (!CBPDocument::CanUserOperateDocument(CBPCanUserOperateOperation::ViewWorkflow, $GLOBALS["USER"]->GetID(), $arParams["DOCUMENT_ID"], array("DocumentStates" => $arDocumentStates, "WorkflowId" => $arDocumentState["ID"]))) { continue; } $arTasks = array(); $arDumpWorkflow = array(); $arTasks = CBPDocument::GetUserTasksForWorkflow($USER->GetID(), $arDocumentState["ID"]); if (strlen($arDocumentState["WORKFLOW_STATUS"]) > 0) { $arDmpWorkflow = array_reverse(CBPTrackingService::DumpWorkflow($arDocumentState["ID"])); $track = $tmp = reset($arDmpWorkflow); do { $strMessageTemplate = ""; switch ($track["TYPE"]) { case 1: $strMessageTemplate = GetMessage("BPABL_TYPE_1"); break; case 2: $strMessageTemplate = GetMessage("BPABL_TYPE_2"); break; case 3: $strMessageTemplate = GetMessage("BPABL_TYPE_3"); break; case 4: $strMessageTemplate = GetMessage("BPABL_TYPE_4");
if (!is_array($arResult["arWorkflowState"]) || count($arResult["arWorkflowState"]) <= 0) { $arError[] = array("id" => "error", "text" => GetMessage("BPABL_INVALID_WF")); } else { $bCanView = CBPDocument::CanUserOperateDocument(CBPCanUserOperateOperation::ViewWorkflow, $GLOBALS["USER"]->GetID(), $arResult["arWorkflowState"]["DOCUMENT_ID"], array("WorkflowId" => $arParams["ID"], "DocumentStates" => array($arParams["ID"] => $arResult["arWorkflowState"]), "UserGroups" => $arParams["USER_GROUPS"])); if (!$bCanView) { $arError[] = array("id" => "access denied", "text" => GetMessage("BPABL_NO_PERMS")); } } if (!empty($arError)) { $e = new CAdminException($arError); ShowError($e->GetString()); return false; } /******************************************************************** Data ********************************************************************/ $arResult["arWorkflowTrack"] = CBPTrackingService::DumpWorkflow($arParams["ID"]); /******************************************************************** /Data ********************************************************************/ $this->IncludeComponentTemplate(); /******************************************************************** Standart operations ********************************************************************/ if ($arParams["SET_TITLE"] == "Y") { $APPLICATION->SetTitle(str_replace("#ID#", $arParams["ID"], GetMessage("BPABL_TITLE"))); } /******************************************************************** /Standart operations ********************************************************************/ }
</td> </tr> <tr> <td colspan="2"> </td> </tr> <tr class="heading"> <td colspan="2"><?php echo GetMessage("BPABL_LOG"); ?> :</td> </tr> <tr> <td colspan="2"> <?php if ($adminMode) { $arWorkflowTrack = CBPTrackingService::DumpWorkflow($ID); foreach ($arWorkflowTrack as $track) { echo $track["PREFIX"]; $strMessageTemplate = ""; switch ($track["TYPE"]) { case 1: $strMessageTemplate = GetMessage("BPABL_TYPE_1"); break; case 2: $strMessageTemplate = GetMessage("BPABL_TYPE_2"); break; case 3: $strMessageTemplate = GetMessage("BPABL_TYPE_3"); break; case 4: $strMessageTemplate = GetMessage("BPABL_TYPE_4");
if ($arParams[$name] <= 0) { $arParams[$name] = trim($_REQUEST[$nameLower]); } if ($arParams[$name] <= 0) { foreach ($_REQUEST as $key => $value) { if (strtolower($key) == $nameLower) { $arParams[$name] = trim($_REQUEST[$key]); break; } } } } } BPWSInitParam($arParams, "WORKFLOW_ID"); $arResult["NeedAuth"] = "N"; $arResult["FatalErrorMessage"] = ""; $arResult["ErrorMessage"] = ""; global $USER; if (!$USER->IsAuthorized()) { $arResult["NeedAuth"] = "Y"; } elseif (strlen($arParams["WORKFLOW_ID"]) <= 0) { $arResult["FatalErrorMessage"] .= "Не указан код рабочего потока" . ". "; } else { $arResult["WorkflowState"] = CBPStateService::GetWorkflowState($arParams["WORKFLOW_ID"]); if ($arResult["WorkflowState"]) { $arResult["WorkflowTrack"] = CBPTrackingService::DumpWorkflow($arParams["WORKFLOW_ID"]); } else { $arResult["FatalErrorMessage"] .= "Рабочий поток не найден" . ". "; } } $this->IncludeComponentTemplate();