public Usuario authenticate(String usuarioId, String password) {
    EntityManager em = getEntityManager();
    try {
      Usuario userAuthenticated = null;
      Query q =
          em.createQuery(
              "SELECT u FROM Usuario u WHERE u.usuarioId = :usuarioId and u.password = :password");
      q.setParameter("usuarioId", usuarioId);
      q.setParameter("password", ApplicationLogic.getMD5Encrypted(password));
      userAuthenticated = (Usuario) q.getSingleResult();
      Sucursal sucursal = userAuthenticated.getSucursal();
      Collection<Almacen> almacenCollection = null;
      if (sucursal != null) {
        almacenCollection = sucursal.getAlmacenCollection();
      }
      Collection<Perfil> perfilCollection = userAuthenticated.getPerfilCollection();

      for (Perfil perfil : perfilCollection) {
        perfil.getUsuarioCollection();
        perfil.setUsuarioCollection(null);
      }

      userAuthenticated.setPedidoVentaCollection(null);
      userAuthenticated.setMovimientoHistoricoProductoCollection(null);
      // userAuthenticated.setEstadoDeCuentaCollection(null);
      userAuthenticated.setPedidoVentaEstadoCollection(null);
      userAuthenticated.setMensajesParaPortalCollection(null);

      return userAuthenticated;
    } catch (NoResultException nre) {
      return null;
    } finally {
      em.close();
    }
  }
  /** @return the almacenObjetivo */
  public Almacen getAlmacenObjetivo() {
    if (almacenObjetivo == null) {
      Sucursal sucursalPrincipal = sucursalJPAController.getSucursalPrincipal();

      Collection<Almacen> almacenCollection = sucursalPrincipal.getAlmacenCollection();
      for (Almacen a : almacenCollection) {
        if (a.getTipoAlmacen() == modoVenta) {
          almacenObjetivo = a;
          break;
        }
      }
    }
    return almacenObjetivo;
  }
  private void actualizarAlmacenObjetivoDesdeModoVenta() {
    logger.debug("## >> actualizarAlmacenObjetivoDesdeModoVenta: modoVenta=" + modoVenta);

    // almacenObjetivo = null;
    if (sucursalPrincipal == null) {
      sucursalPrincipal = sucursalJPAController.getSucursalPrincipal();
    }

    Collection<Almacen> almacenCollection = sucursalPrincipal.getAlmacenCollection();
    for (Almacen a : almacenCollection) {
      if (a.getTipoAlmacen() == modoVenta) {
        almacenObjetivo = a;
        logger.debug(
            "-> actualizarAlmacenObjetivoDesdeModoVenta: sucursalPrincipal="
                + sucursalPrincipal.getId()
                + ", almacenObjetivo="
                + almacenObjetivo.getId());

        break;
      }
    }
  }