Exemple #1
0
 public static function canAccessOrderStatusIds(Role $role)
 {
     if (isset(self::$_cache['accessOrderStatusIds'])) {
         self::$_cache['accessOrderStatusIds'] = array();
     }
     if (!isset(self::$_cache['accessOrderStatusIds'][$role->getId()])) {
         switch ($role->getId()) {
             case Role::ID_STORE_MANAGER:
             case Role::ID_SYSTEM_ADMIN:
             case Role::ID_SALES:
                 self::$_cache['accessOrderStatusIds'][$role->getId()] = array_map(create_function('$a', 'return intval($a->getId());'), OrderStatus::getAllByCriteria('id not in(?,?) ', array(OrderStatus::ID_CANCELLED, OrderStatus::ID_SHIPPED)));
                 break;
             case Role::ID_ACCOUNTING:
                 self::$_cache['accessOrderStatusIds'][$role->getId()] = array_map(create_function('$a', 'return intval($a->getId());'), OrderStatus::getAllByCriteria('id not in(?,?) ', array(OrderStatus::ID_CANCELLED, OrderStatus::ID_SHIPPED)));
                 break;
             case Role::ID_PURCHASING:
                 self::$_cache['accessOrderStatusIds'][$role->getId()] = array(OrderStatus::ID_NEW, OrderStatus::ID_INSUFFICIENT_STOCK);
                 break;
             case Role::ID_WAREHOUSE:
                 self::$_cache['accessOrderStatusIds'][$role->getId()] = array(OrderStatus::ID_ETA, OrderStatus::ID_STOCK_CHECKED_BY_PURCHASING, OrderStatus::ID_PICKED, OrderStatus::ID_INSUFFICIENT_STOCK);
                 break;
             case Role::ID_WORKSHOP:
                 self::$_cache['accessOrderStatusIds'][$role->getId()] = array(OrderStatus::ID_STOCK_CHECKED_BY_PURCHASING, OrderStatus::ID_NEW);
                 break;
         }
     }
     return self::$_cache['accessOrderStatusIds'][$role->getId()];
 }