public List<ProductoDto> obtenerTodosActivos() throws DAOException {
   Map<String, Object> filtros = new HashMap<String, Object>();
   filtros.put("estado", Boolean.TRUE);
   Map<String, String> orden = new HashMap<String, String>();
   orden.put("descripcion", "asc");
   return springHibernateDao.obtenerDtosConFiltrosConOrden(ProductoDto.class, filtros, orden);
 }
 public List<OrganizacionDto> obtenerTodosPorEstado(Long estado) throws DAOException {
   Map<String, Object> filtros = new HashMap<String, Object>();
   filtros.put("estadoDto.id", estado);
   Map<String, String> orden = new HashMap<String, String>();
   orden.put("descripcion", "asc");
   return springHibernateDao.obtenerDtosConFiltrosConOrden(OrganizacionDto.class, filtros, orden);
 }
  /**
   * Metodo para obtener la cantidad de Materiales por Producto
   *
   * @param dto Moneda
   * @return int
   * @throws DAOException
   */
  public int obtenerCantMaterialesPorProducto(MaterialDto dto) throws DAOException {
    List<Object> listaParametros = new ArrayList<Object>();

    String hqsql = "select count(e.id) from MaterialDto as e ";
    hqsql += " where e.productoDetaDto.id = ? and e.materialDto.id = ?";
    listaParametros.add(dto.getProductoDetaDto().getId());
    listaParametros.add(dto.getMaterialDto().getId());
    if (dto.getId() != null) {
      hqsql += " and e.id != ?";
      listaParametros.add(dto.getId());
    }
    return Integer.parseInt(
        springHibernateDao.ejecutarQueryGeneric(hqsql, listaParametros).get(0).toString());
  }
  /**
   * Metodo para obtener catalogos por filtros
   *
   * @param dtoFiltro filtros
   * @return lista de catalogos
   * @throws DAOException
   */
  public List<CategoriaPecDto> obtener(CategoriaPecDto dtoFiltro) throws DAOException {
    List<Object> listaParametros = new ArrayList<Object>();
    String hqsql = "select e from CategoriaPecDto as e where e.id=e.id";

    if (dtoFiltro.getId() != null && !dtoFiltro.getId().equals(0L)) {
      hqsql += " and e.id = ?";
      listaParametros.add(dtoFiltro.getId());
    }

    if (dtoFiltro.getDescripcion() != null && dtoFiltro.getDescripcion().length() != 0) {
      hqsql +=
          " and upper(e.descripcion) like '%" + dtoFiltro.getDescripcion().toUpperCase() + "%' ";
    }

    hqsql += " order by e.id asc, e.descripcion asc ";

    return springHibernateDao.ejecutarQuery(hqsql, listaParametros);
  }
  public List<OrganizacionDto> obtenerTodosPorEstadoPropietario(Long estado, String descripcion)
      throws DAOException {
    Long entidad = ConstantesCore.Entidad.ORGANIZACION;
    SessionMBean sessionMBean =
        (SessionMBean) WebServletContextListener.getApplicationContext().getBean("sessionMBean");

    String hqsql =
        "select e from OrganizacionDto as e, PropietarioDto as pro where e.estadoDto.id = ? "
            + " and pro.estado = ? and pro.propietarioDtoPK.entidad = ? and pro.propietarioDtoPK.organizacionDto.id = ?"
            + " and pro.propietarioDtoPK.registro = e.id"
            + " and  (upper(e.descripcion)) like '%"
            + descripcion.toUpperCase()
            + "%'";
    List<Object> listaParametros = new ArrayList<Object>();
    listaParametros.add(estado);
    listaParametros.add(Boolean.TRUE);
    listaParametros.add(entidad);
    listaParametros.add(sessionMBean.getSessionOrganizacionDto().getId());
    hqsql += " order by e.descripcion asc";
    return springHibernateDao.ejecutarQuery(hqsql, listaParametros);
  }
  public List<ProductoDto> obtenerProductosPorQuery(String query) throws DAOException {
    // String entidad = ProductoDto.class.getAnnotation(Table.class).name();
    Long entidad = ConstantesCore.Entidad.PRODUCTO;
    SessionMBean sessionMBean =
        (SessionMBean) WebServletContextListener.getApplicationContext().getBean("sessionMBean");

    // String hqsql = "select e from ProductoDto as e where e.estado = ? and  (upper(e.id ||
    // e.descripcion)) like '%" + query.toUpperCase()+"%'";
    String hqsql =
        "select e from ProductoDto as e, PropietarioDto as pro where e.estado = ? "
            + " and pro.estado = ? and pro.propietarioDtoPK.entidad = ? and pro.propietarioDtoPK.organizacionDto.id = ?"
            + " and pro.propietarioDtoPK.registro = e.id"
            + " and  (upper(e.id || e.descripcion)) like '%"
            + query.toUpperCase()
            + "%'";
    List<Object> listaParametros = new ArrayList<Object>();
    listaParametros.add(Boolean.TRUE);
    listaParametros.add(Boolean.TRUE);
    listaParametros.add(entidad);
    listaParametros.add(sessionMBean.getSessionOrganizacionDto().getId());
    hqsql += " order by e.descripcion desc";
    return springHibernateDao.ejecutarQuery(hqsql, listaParametros);
  }
 /**
  * Metodo que lista todos los dto (MaquinaCostoDto) usando filtros y un orden
  *
  * @since 09/01/2014
  * @param filtros es el filtro utilizado en la búsqueda
  * @param orden orden usado en la búsqueda
  * @throws DAOException
  * @return Lista de dto (MaquinaCostoDto)
  */
 public List<MaquinaCostoDto> obtenerConFiltroConOrden(
     Map<String, Object> filtros, Map<String, String> orden) throws DAOException {
   return springHibernateDao.obtenerDtosConFiltrosConOrden(MaquinaCostoDto.class, filtros, orden);
 }
 /**
  * Metodo que lista todos los dto (MaquinaCostoDto)
  *
  * @since 09/01/2014
  * @throws DAOException
  * @return Lista de dto (MaquinaCostoDto)
  */
 public List<MaquinaCostoDto> obtenerTodos() throws DAOException {
   return springHibernateDao.listarTodosDtos(MaquinaCostoDto.class);
 }
 public List<OrganizacionDto> obtenerConFiltro(Map<String, Object> filtros) throws DAOException {
   return springHibernateDao.obtenerDtosConFiltros(OrganizacionDto.class, filtros);
 }
 public List<OrganizacionDto> obtenerTodos() throws DAOException {
   return springHibernateDao.listarTodosDtos(OrganizacionDto.class);
 }
 /**
  * Metodo para obtener un catalogo por su ID
  *
  * @param id ID del catalogo
  * @return Catalogo
  * @throws DAOException
  */
 public CategoriaPecDto obtenerPorId(Long id) throws DAOException {
   return springHibernateDao.obtenerDtoPorId(CategoriaPecDto.class, id);
 }
 public List<ProductoDto> obtenerTodos() throws DAOException {
   return springHibernateDao.listarTodosDtos(ProductoDto.class);
 }
 public ProductoDto obtenerParametro(Long id) throws DAOException {
   return springHibernateDao.obtenerDtoPorId(ProductoDto.class, id);
 }
  public List<ProductoDto> obtenerProductos(ProductoDto dtoFiltro) throws DAOException {
    /*
    List<ProductoDto> lista = null;
    Map<String, Object> mapFiltro = new HashMap<String, Object>();

    if (dtoFiltro.getId() != null && !dtoFiltro.getId().equals(0L)) {
        mapFiltro.put("id", dtoFiltro.getId());
    } else {
        dtoFiltro.setId(null);
    }

    if (dtoFiltro.getDescripcion() != null && dtoFiltro.getDescripcion().length() != 0) {
        mapFiltro.put("descripcion", dtoFiltro.getDescripcion());
    }

    if (dtoFiltro.getRepresentadaDto().getDescripcion()!=null && dtoFiltro.getRepresentadaDto().getDescripcion().length()!=0) {
        mapFiltro.put("representadaDto.descripcion", dtoFiltro.getRepresentadaDto().getDescripcion());
    }

    Map<String, String> mapOrden = new HashMap<String, String>();
    mapOrden.put("descripcion", "asc");

    lista = obtenerConFiltroConOrden(mapFiltro, mapOrden);
    return lista;*/

    Long entidad = ConstantesCore.Entidad.PRODUCTO;
    SessionMBean sessionMBean =
        (SessionMBean) WebServletContextListener.getApplicationContext().getBean("sessionMBean");

    // String hqsql = "select e from ProductoDto as e where e.estado = ? and  (upper(e.id ||
    // e.descripcion)) like '%" + query.toUpperCase()+"%'";
    String hqsql =
        "select e from ProductoDto as e, PropietarioDto as pro where "
            + " pro.estado = ? and pro.propietarioDtoPK.entidad = ? and pro.propietarioDtoPK.organizacionDto.id = ?"
            + " and pro.propietarioDtoPK.registro = e.id";
    List<Object> listaParametros = new ArrayList<Object>();
    listaParametros.add(Boolean.TRUE);
    listaParametros.add(entidad);
    listaParametros.add(sessionMBean.getSessionOrganizacionDto().getId());

    if (dtoFiltro.getId() != null && !dtoFiltro.getId().equals(0L)) {
      hqsql += " and e.id = ?";
      listaParametros.add(dtoFiltro.getId());
    } else {
      dtoFiltro.setId(null);
    }

    if (dtoFiltro.getDescripcion() != null && dtoFiltro.getDescripcion().length() != 0) {
      hqsql +=
          " and upper(e.descripcion) like '%" + dtoFiltro.getDescripcion().toUpperCase() + "%'";
    }

    if (dtoFiltro.getRepresentadaDto().getDescripcion() != null
        && dtoFiltro.getRepresentadaDto().getDescripcion().length() != 0) {
      hqsql +=
          " and upper(e.representadaDto.descripcion) like '%"
              + dtoFiltro.getRepresentadaDto().getDescripcion().toUpperCase()
              + "%'";
    }

    hqsql += " order by e.descripcion asc";
    return springHibernateDao.ejecutarQuery(hqsql, listaParametros);
  }
 public OrganizacionDto obtenerPorId(Long id) throws DAOException {
   return springHibernateDao.obtenerDtoPorId(OrganizacionDto.class, id);
 }
 /**
  * obtener moneda por Id
  *
  * @param id
  * @return Moneda
  * @throws DAOException
  */
 public MaterialDto obtenerPorId(Long id) throws DAOException {
   return springHibernateDao.obtenerDtoPorId(MaterialDto.class, id);
 }
 /**
  * Metodo para obtener todas los catalogos
  *
  * @return lista de catalogos
  * @throws DAOException
  */
 public List<CategoriaPecDto> obtenerTodos() throws DAOException {
   return springHibernateDao.listarTodosDtos(CategoriaPecDto.class);
 }