예제 #1
0
 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'));
     }
 }
예제 #2
0
		</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");
예제 #3
0
파일: component.php 프로젝트: vim84/b-markt
    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
    	********************************************************************/
}
예제 #4
0
</td>
		</tr>
		<tr>
			<td colspan="2">&nbsp;</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");
예제 #5
0
        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();