function GetByFilename($FILENAME, $SITE_ID, $arFilter = false) { if (!is_array($arFilter)) { $arFilter = array("!STATUS_ID" => 1); } $obQueryWhere = new CSQLWhere(); $obQueryWhere->SetFields(array("STATUS_ID" => array("TABLE_ALIAS" => "D", "FIELD_NAME" => "D.STATUS_ID", "FIELD_TYPE" => "int", "JOIN" => false))); $strSqlWhere = $obQueryWhere->GetQuery($arFilter); $err_mess = CWorkflowStatus::err_mess() . "<br>Function: GetByFilename<br>Line: "; global $DB, $USER; $MAX_LOCK = intval(COption::GetOptionString("workflow", "MAX_LOCK_TIME", "60")); $uid = intval($USER->GetID()); $strSql = "\n\t\t\tSELECT\n\t\t\t\tD.*,\n\t\t\t\t" . $DB->DateToCharFunction("D.DATE_ENTER") . " DATE_ENTER,\n\t\t\t\t" . $DB->DateToCharFunction("D.DATE_MODIFY") . " DATE_MODIFY,\n\t\t\t\t" . $DB->DateToCharFunction("D.DATE_LOCK") . " DATE_LOCK,\n\t\t\t\tconcat('(',UM.LOGIN,') ',ifnull(UM.NAME,''),' ',ifnull(UM.LAST_NAME,'')) MUSER_NAME,\n\t\t\t\tconcat('(',UE.LOGIN,') ',ifnull(UE.NAME,''),' ',ifnull(UE.LAST_NAME,'')) EUSER_NAME,\n\t\t\t\tconcat('(',UL.LOGIN,') ',ifnull(UL.NAME,''),' ',ifnull(UL.LAST_NAME,'')) LUSER_NAME,\n\t\t\t\tS.TITLE STATUS_TITLE,\n\t\t\t\tif (D.DATE_LOCK is null, 'green',\n\t\t\t\t\tif(DATE_ADD(D.DATE_LOCK, interval {$MAX_LOCK} MINUTE)<now(), 'green',\n\t\t\t\t\t\tif(D.LOCKED_BY={$uid}, 'yellow', 'red'))) LOCK_STATUS\n\t\t\tFROM\n\t\t\t\tb_workflow_document D\n\t\t\t\tLEFT JOIN b_user UM ON (UM.ID = D.MODIFIED_BY)\n\t\t\t\tLEFT JOIN b_user UE ON (UE.ID = D.ENTERED_BY)\n\t\t\t\tLEFT JOIN b_user UL ON (UL.ID = D.LOCKED_BY)\n\t\t\t\tLEFT JOIN b_workflow_status S ON (S.ID = D.STATUS_ID)\n\t\t\tWHERE\n\t\t\t\tSITE_ID = '" . $DB->ForSql($SITE_ID, 2) . "'\n\t\t\t\tAND D.FILENAME = '" . $DB->ForSql($FILENAME, 255) . "'\n\t\t\t\t" . ($strSqlWhere ? "AND " . $strSqlWhere : "") . "\n\t\t"; $res = $DB->Query($strSql, false, $err_mess . __LINE__); return $res; }
function SetPermissions($STATUS_ID, $arGroups, $PERMISSION_TYPE = 1) { global $DB; $STATUS_ID = intval($STATUS_ID); $PERMISSION_TYPE = intval($PERMISSION_TYPE); $err_mess = CWorkflowStatus::err_mess() . "<br>Function: SetPermissions<br>Line: "; $DB->Query("DELETE FROM b_workflow_status2group WHERE STATUS_ID = " . $STATUS_ID . " AND PERMISSION_TYPE = " . $PERMISSION_TYPE, false, $err_mess . __LINE__); if (is_array($arGroups) && ($PERMISSION_TYPE == 1 || $PERMISSION_TYPE == 2)) { foreach ($arGroups as $GROUP_ID) { $GROUP_ID = intval($GROUP_ID); $arFields = array("STATUS_ID" => $STATUS_ID, "GROUP_ID" => $GROUP_ID, "PERMISSION_TYPE" => $PERMISSION_TYPE); $DB->Insert("b_workflow_status2group", $arFields, $err_mess . __LINE__); } } }
function GetNextSort() { $err_mess = CWorkflowStatus::err_mess() . "<br>Function: GetNextSort<br>Line: "; global $DB; $strSql = "SELECT max(C_SORT) MAX_SORT FROM b_workflow_status"; $z = $DB->Query($strSql, false, $err_mess . __LINE__); $zr = $z->Fetch(); return intval($zr["MAX_SORT"]) + 100; }