예제 #1
0
 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;
 }
예제 #2
0
 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;
 }
예제 #3
0
 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);
 }
예제 #4
0
 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;
 }