array("id" => "NAME", "name" => GetMessage("BPATL_NAME"), "default" => true, "sort" => "NAME"),
array("id" => "DESCRIPTION", "name" => GetMessage("BPATL_DESCRIPTION"), "default" => false, "sort" => ""),
array("id" => "MODIFIED", "name" => GetMessage("BPATL_MODIFIED"), "default" => true, "sort" => "MODIFIED"),
array("id" => "WORKFLOW_STARTED", "name" => GetMessage("BPATL_STARTED"), "default" => true, "sort" => ""),
array("id" => "WORKFLOW_STARTED_BY", "name" => GetMessage("BPATL_STARTED_BY"), "default" => true, "sort" => ""),
array("id" => "OVERDUE_DATE", "name" => GetMessage("BPATL_OVERDUE_DATE"), "default" => false, "sort" => "OVERDUE_DATE"),
array("id" => "WORKFLOW_NAME", "name" => GetMessage("BPATL_WORKFLOW_NAME"), "default" => false, "sort" => ""),
array("id" => "WORKFLOW_STATE", "name" => GetMessage("BPATL_WORKFLOW_STATE"), "default" => false, "sort" => ""),
array("id" => "DOCUMENT_ID", "name" => GetMessage("BPATL_DOCUMENT_ID"), "default" => false, "sort" => ""),
);
foreach ($arResult["HEADERS"] as $h)
{
if ((count($gridColumns) <= 0 || in_array($h["id"], $gridColumns)) && !in_array($h["id"], $arSelectFields))
$arSelectFields[] = $h["id"];
}
$arResult["FILTER"] = array(
array("id" => "NAME", "name" => GetMessage("BPATL_NAME"), "type" => "string"),
array("id" => "DESCRIPTION", "name" => GetMessage("BPATL_DESCRIPTION"), "type" => "string"),
array("id" => "MODIFIED", "name" => GetMessage("BPATL_MODIFIED"), "type" => "date"),
array("id" => "DOCUMENT_ID", "name" => GetMessage("BPATL_DOCUMENT_ID"), "type" => "string"),
);
$arFilter = array("USER_ID" => $arParams["USER_ID"]);
if (empty($arParams["WORKFLOW_ID"]))
{
$ar = array("" => GetMessage("BPATL_WORKFLOW_ID_ANY"));
$dbResTmp = CBPTaskService::GetList(
array("WORKFLOW_TEMPLATE_NAME" => "ASC"),
$arFilter,
array("WORKFLOW_TEMPLATE_TEMPLATE_ID", "WORKFLOW_TEMPLATE_NAME"),
false,
array("WORKFLOW_TEMPLATE_TEMPLATE_ID", "WORKFLOW_TEMPLATE_NAME")
);
while ($arResTmp = $dbResTmp->GetNext())
$ar[$arResTmp["WORKFLOW_TEMPLATE_TEMPLATE_ID"]] = $arResTmp["WORKFLOW_TEMPLATE_NAME"];
$arResult["FILTER"][] = array("id" => "WORKFLOW_TEMPLATE_ID", "name" => GetMessage("BPATL_WORKFLOW_ID"), "type" => "list", "items" => $ar);
}
else
{
$arFilter["WORKFLOW_ID"] = $arParams["WORKFLOW_ID"];
}
$gridFilter = $gridOptions->GetFilter($arResult["FILTER"]);
foreach ($gridFilter as $key => $value)
{
if (substr($key, -5) == "_from")
{
$op = ">=";
$newKey = substr($key, 0, -5);
}
elseif (substr($key, -3) == "_to")
{
$op = "<=";
$newKey = substr($key, 0, -3);
if (in_array($newKey, array("MODIFIED", "OVERDUE_DATE")))
{
if (!preg_match("/\\d\\d:\\d\\d:\\d\\d\$/", $value))
$value .= " 23:59:59";
}
}
else
{
$op = "";
$newKey = $key;
}
if (!in_array($newKey, array("NAME", "MODIFIED", "OVERDUE_DATE", "WORKFLOW_TEMPLATE_ID", "DESCRIPTION", "DOCUMENT_ID")))
continue;
if (in_array($newKey, array("NAME", "DESCRIPTION", "DOCUMENT_ID")) && $op == "")
{
$op = "~";
$value = "%".$value."%";
} |