require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
\Bitrix\Main\Loader::includeModule('bizproc');
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/bizproc/prolog.php");
IncludeModuleLangFile(__FILE__);
$fatalErrorMessage = "";
$errorMessage = "";
$moduleId = "";
if (defined("MODULE_ID"))
$moduleId = MODULE_ID;
$entity = "";
if (defined("ENTITY"))
$entity = ENTITY;
$documentType = trim($_REQUEST["document_type"]);
$documentId = trim($_REQUEST["document_id"]);
$backUrl = "/".ltrim(trim($_REQUEST["back_url"]), "\\/");
if ($documentType == '')
$fatalErrorMessage .= GetMessage("BPABS_EMPTY_DOC_TYPE").". ";
if ($entity == '')
$fatalErrorMessage .= GetMessage("BPABS_EMPTY_ENTITY").". ";
if ($documentId == '')
$fatalErrorMessage .= GetMessage("BPABS_EMPTY_DOC_ID").". ";
if ($fatalErrorMessage == '')
{
$documentType = array($moduleId, $entity, $documentType);
$documentId = array($moduleId, $entity, $documentId);
$runtime = CBPRuntime::GetRuntime();
$runtime->StartRuntime();
$documentService = $runtime->GetService("DocumentService");
$bCanUserStartDocumentWorkflow = CBPDocument::CanUserOperateDocument(
CBPCanUserOperateOperation::StartWorkflow,
$GLOBALS["USER"]->GetID(),
$documentId,
array("UserGroups" => $GLOBALS["USER"]->GetUserGroupArray())
);
if (!$bCanUserStartDocumentWorkflow)
$fatalErrorMessage .= GetMessage("BPABS_NO_PERMS").". ";
}
if ($fatalErrorMessage == '')
{
$showMode = "SelectWorkflow";
$workflowTemplateId = intval($_REQUEST["workflow_template_id"]);
$arWorkflowTemplates = array();
$dbWorkflowTemplate = CBPWorkflowTemplateLoader::GetList(
array(),
array("DOCUMENT_TYPE" => $documentType, "ACTIVE"=>"Y"),
false,
false,
array("ID", "NAME", "DESCRIPTION", "MODIFIED", "USER_ID", "PARAMETERS")
);
while ($arWorkflowTemplate = $dbWorkflowTemplate->GetNext())
{
$arWorkflowTemplates[$arWorkflowTemplate["ID"]] = $arWorkflowTemplate;
$arWorkflowTemplates[$arWorkflowTemplate["ID"]]["URL"] = htmlspecialcharsex($APPLICATION->GetCurPageParam("workflow_template_id=".$arWorkflowTemplate["ID"].'&'.bitrix_sessid_get(), Array("workflow_template_id", "sessid")));
;
}
if ($workflowTemplateId > 0 && check_bitrix_sessid() && $_POST["CancelStartParamWorkflow"] == ''
&& array_key_exists($workflowTemplateId, $arWorkflowTemplates))
{
$arWorkflowTemplate = $arWorkflowTemplates[$workflowTemplateId];
$arWorkflowParameters = array();
$bCanStartWorkflow = false;
if (count($arWorkflowTemplate["PARAMETERS"]) <= 0)
{
$bCanStartWorkflow = true;
}
elseif ($_SERVER["REQUEST_METHOD"] == "POST" && $_POST["DoStartParamWorkflow"] <> '')
{
$arErrorsTmp = array();
$arRequest = $_REQUEST;
foreach ($_FILES as $k => $v)
{
if (array_key_exists("name", $v))
{
if (is_array($v["name"]))
{
$ks = array_keys($v["name"]);
for ($i = 0, $cnt = count($ks); $i < $cnt; $i++)
{
$ar = array();
foreach ($v as $k1 => $v1)
$ar[$k1] = $v1[$ks[$i]];
$arRequest[$k][] = $ar;
}
}
else
{
$arRequest[$k] = $v;
}
}
}
$arWorkflowParameters = CBPWorkflowTemplateLoader::CheckWorkflowParameters(
$arWorkflowTemplate["PARAMETERS"],
$arRequest,
$documentType,
$arErrorsTmp
);
if (count($arErrorsTmp) > 0)
{
$bCanStartWorkflow = false;
foreach ($arErrorsTmp as $e)
$errorMessage .= $e["message"]."
";
}
else
{
$bCanStartWorkflow = true;
}
}
if ($bCanStartWorkflow)
{
$arErrorsTmp = array();
$wfId = CBPDocument::StartWorkflow(
$workflowTemplateId,
$documentId,
$arWorkflowParameters,
$arErrorsTmp
);
if (count($arErrorsTmp) > 0)
{
$showMode = "StartWorkflowError";
foreach ($arErrorsTmp as $e)
$errorMessage .= "[".$e["code"]."] ".$e["message"]."
";
}
else
{
$showMode = "StartWorkflowSuccess";
if ($backUrl == '')
$backUrl = "/bitrix/admin/bizproc_log.php?ID=#WF#";
LocalRedirect(str_replace("#WF#", $wfId, $backUrl));
die();
}
}
else
{
$p = ($_SERVER["REQUEST_METHOD"] == "POST" && $_POST["DoStartParamWorkflow"] <> '');
$keys = array_keys($arWorkflowTemplate["PARAMETERS"]);
foreach ($keys as $key)
{
$v = ($p ? $_REQUEST[$key] : $arWorkflowTemplate["PARAMETERS"][$key]["Default"]);
if (!is_array($v))
{
$arParametersValues[$key] = $v;
}
else
{
$keys1 = array_keys($v);
foreach ($keys1 as $key1)
$arParametersValues[$key][$key1] = $v[$key1];
}
}
$showMode = "WorkflowParameters";
}
}
else
{
$showMode = "SelectWorkflow";
}
}
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
CBPDocument::AddShowParameterInit(MODULE_ID, "only_users", $documentType[2], $documentType[1]);
if ($fatalErrorMessage <> '')
{
$APPLICATION->SetTitle(GetMessage("BPABS_ERROR"));
CAdminMessage::ShowMessage($fatalErrorMessage);
}
else
{
if ($backUrl == '')
$backUrl = CBPDocument::GetDocumentAdminPage($documentId);
$aMenu = array(
array(
"TEXT" => GetMessage("BPABS_BACK"),
"LINK" => $backUrl,
"ICON" => "btn_list",
)
);
$context = new CAdminContextMenu($aMenu);
$context->Show();
$APPLICATION->SetTitle(GetMessage("BPABS_TITLE"));
CAdminMessage::ShowMessage($errorMessage);
if ($showMode == "StartWorkflowSuccess")
{
?>
Warning: Undefined variable $arWorkflowTemplates in D:\ktt\ttepla.com\public_html\bitrix\modules\bizproc\admin\bizproc_start.php on line 217
Warning: Undefined variable $workflowTemplateId in D:\ktt\ttepla.com\public_html\bitrix\modules\bizproc\admin\bizproc_start.php on line 217
Warning: Trying to access array offset on value of type null in D:\ktt\ttepla.com\public_html\bitrix\modules\bizproc\admin\bizproc_start.php on line 217
Warning: Trying to access array offset on value of type null in D:\ktt\ttepla.com\public_html\bitrix\modules\bizproc\admin\bizproc_start.php on line 217
Fatal error: Uncaught Error: Call to undefined function GetMessage() in D:\ktt\ttepla.com\public_html\bitrix\modules\bizproc\admin\bizproc_start.php:217
Stack trace:
#0 {main}
thrown in D:\ktt\ttepla.com\public_html\bitrix\modules\bizproc\admin\bizproc_start.php on line 217