function UnLock($ID) { global $DB; $ID = IntVal($ID); if ($ID <= 0) { return False; } $arOrder = CSaleOrder::GetByID($ID); if (!$arOrder) { return False; } $userRights = CMain::GetUserRight("sale", $GLOBALS["USER"]->GetUserGroupArray(), "Y", "Y"); if ($userRights >= "W" || $arOrder["LOCKED_BY"] == $GLOBALS["USER"]->GetID()) { $arFields = array("DATE_LOCK" => false, "LOCKED_BY" => false); if (!CSaleOrder::Update($ID, $arFields, false)) { return False; } else { return True; } } return False; }
static function getStatusesGroupCanDoOperations($groupId, array $operations) { $statuses = array(); if (!is_array($groupId)) { $groupId = array($groupId); } if (in_array('1', $groupId, true) || \CMain::GetUserRight('sale', $groupId) >= 'W') { $statuses = self::getAllStatuses(); } else { $operations = self::convertNamesToOperations($operations); $result = StatusTable::getList(array('select' => array('ID', 'OPERATION' => 'Bitrix\\Sale\\Internals\\StatusGroupTaskTable:STATUS.TASK.Bitrix\\Main\\TaskOperation:TASK.OPERATION.NAME'), 'filter' => array('=TYPE' => static::TYPE, '=Bitrix\\Sale\\Internals\\StatusGroupTaskTable:STATUS.GROUP_ID' => $groupId, '=Bitrix\\Sale\\Internals\\StatusGroupTaskTable:STATUS.TASK.Bitrix\\Main\\TaskOperation:TASK.OPERATION.NAME' => $operations), 'order' => array('SORT'))); while ($row = $result->fetch()) { if ($status =& $statuses[$row['ID']]) { $status[] = $row['OPERATION']; } else { $status = array($row['OPERATION']); } } unset($status); foreach ($statuses as $id => $ops) { if (array_diff($operations, $ops)) { unset($statuses[$id]); } } $statuses = array_keys($statuses); } return $statuses; }
function GetGroupRight($module_id, $arGroups = false, $use_default_level = "Y", $max_right_for_super_admin = "Y", $site_id = false) { return CMain::GetUserRight($module_id, $arGroups, $use_default_level, $max_right_for_super_admin, $site_id); }
public static function UnLock($ID) { $ID = IntVal($ID); if ($ID <= 0) { return False; } $arOrder = CSaleOrder::GetByID($ID); if (!$arOrder) { return False; } $userRights = CMain::GetUserRight("sale", $GLOBALS["USER"]->GetUserGroupArray(), "Y", "Y"); if ($userRights >= "W" || $arOrder["LOCKED_BY"] == $GLOBALS["USER"]->GetID()) { $arFields = array("DATE_LOCK" => false, "LOCKED_BY" => false); if (!Sale\Internals\OrderTable::update($ID, $arFields)) { return False; } else { return True; } } return False; }