mx.com.tubocreto.dao.Impl.OportunidadDaoImpl.java Source code

Java tutorial

Introduction

Here is the source code for mx.com.tubocreto.dao.Impl.OportunidadDaoImpl.java

Source

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.com.tubocreto.dao.Impl;

import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import mx.com.tubocreto.dao.OportunidadDao;
import mx.com.tubocreto.dto.*;
import mx.com.tubocreto.exception.DAOException;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.hibernate.transform.DistinctRootEntityResultTransformer;
import org.hibernate.transform.ResultTransformer;
import org.hibernate.transform.Transformers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

/**
 *
 * @author tubo
 */
@Repository
@Transactional(readOnly = true)
public class OportunidadDaoImpl extends SoporteHibernateDao implements OportunidadDao {

    @Autowired
    private SessionFactory sessionFactory;

    @Transactional(readOnly = false)
    @Override
    public void creaActualizaLicitacion(Oportunidad oportunidad) throws DAOException {
        //getHibernateTemplate().saveOrUpdate(oportunidad);
        sessionFactory.getCurrentSession().saveOrUpdate(oportunidad);
        //  sessionFactory.getCurrentSession().saveOrUpdate(oportunidadMaterial);
        // sessionFactory.getCurrentSession().saveOrUpdate(oportunidadMaterialId);
    }

    //nuevaOportunidad.jsp,cotizaOportunicad.jsp
    @Transactional(readOnly = false)
    @Override
    public void creaActualizaOportunidad(Oportunidad oportunidad) throws DAOException {
        //getHibernateTemplate().saveOrUpdate(oportunidad);
        /*
             * if (sessionFactory.getCurrentSession().getTransaction() != null &&
             * sessionFactory.getCurrentSession().getTransaction().isActive()) {
             * sessionFactory.getCurrentSession().getTransaction().rollback(); }
             * else { sessionFactory.getCurrentSession().saveOrUpdate(oportunidad);
             *
             * sessionFactory.getCurrentSession().saveOrUpdate(oportunidadMaterial);
             *
             * sessionFactory.getCurrentSession().saveOrUpdate(oportunidadMaterialId);
             * }
             */
        try {
            sessionFactory.getCurrentSession().beginTransaction();
            sessionFactory.getCurrentSession().saveOrUpdate(oportunidad);
            sessionFactory.getCurrentSession().getTransaction().commit();
        } catch (HibernateException h) {
            System.out.println("%-%- Exception HIBERNATE-%-% :  " + h);
            sessionFactory.getCurrentSession().getTransaction().rollback();
            throw h;

        } catch (NullPointerException n) {
            System.out.println("%-%- Exception NULL-%-% :  " + n);
            sessionFactory.getCurrentSession().getTransaction().rollback();
            throw n;

        } catch (RuntimeException r) {
            System.out.println("%-%- Exception RUNTimeExcepction :: -%-% : " + r);
            sessionFactory.getCurrentSession().getTransaction().rollback();
            throw new RuntimeException(r);
        } catch (Exception e) {
            System.out.println("%-%- Exception QUERY-%-% : " + e);
            sessionFactory.getCurrentSession().getTransaction().rollback();
            throw new RuntimeException(e);
        }

    }

    //cotizaOportunicad.jsp
    @Transactional(readOnly = false)
    @Override
    public void actualizaPlantaOportunidad(String planta, int idO) throws DAOException {
        //getHibernateTemplate().saveOrUpdate(oportunidad);
        //  sessionFactory.getCurrentSession().update(oportunidad);
        try {

            System.out.println("&&- REALIZA QUERY [ACTUALIZACION PLANTA OPORTUNIDAD-ASIGNAR] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("UPDATE Oportunidad SET planta= :planta " + "WHERE id= :idO")
                    .setParameter("idO", idO);
            queryObject.setParameter("planta", planta);
            System.out.println("&&- QUERY GENERADO [ACTUALIZACION PLANTA OPORTUNIDAD-ASIGNAR] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans(DTO).Se adiere toString() al query
             */
            //  queryObject.setResultTransformer(Transformers.aliasToBean(Empleado.class));
            System.out.println("&&- ENVIA LISTA [ACTUALIZACION PLANTA OPORTUNIDAD-ASIGNAR] -&&");

            queryObject.executeUpdate();
            //return (ArrayList<String>) queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception NULL-%-% :  " + n);
            throw n;

        } catch (HibernateException h) {
            System.out.println("%-%-Exception HIBERNATE-%-% : " + h);
            throw new RuntimeException(h);

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    //nuevaOportunidad.jsp,cotizaOportunicad.jsp
    @Transactional(readOnly = false)
    @Override
    public void actualizaOportunidadAsignar(String numeroOportunidad, String ejecutivo, String status,
            String ultimaModificacion, String cotizado, int idO) throws DAOException {
        //getHibernateTemplate().saveOrUpdate(oportunidad);
        //  sessionFactory.getCurrentSession().update(oportunidad);
        try {

            System.out.println("&&- REALIZA QUERY [ACTUALIZACION OPORTUNIDAD-ASIGNAR] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("UPDATE Oportunidad SET numeroOportunidad= :numeroOportunidad,"
                            + "ejecutivo=:ejecutivo, status=:status,ultimaModificacion = :ultimaModificacion,cotizado=:cotizado "
                            + "WHERE id= :idO")
                    .setParameter("idO", idO);
            queryObject.setParameter("numeroOportunidad", numeroOportunidad);
            queryObject.setParameter("ejecutivo", ejecutivo);
            queryObject.setParameter("status", status);
            queryObject.setParameter("ultimaModificacion", ultimaModificacion);
            queryObject.setParameter("cotizado", cotizado);

            System.out.println("&&- QUERY GENERADO [ACTUALIZACION OPORTUNIDAD-ASIGNAR] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans(DTO).Se adiere toString() al query
             */
            //  queryObject.setResultTransformer(Transformers.aliasToBean(Empleado.class));
            System.out.println("&&- ENVIA LISTA [ACTUALIZACION OPORTUNIDAD-ASIGNAR] -&&");

            queryObject.executeUpdate();
            //return (ArrayList<String>) queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception NULL-%-% :  " + n);
            throw n;

        } catch (HibernateException h) {
            System.out.println("%-%-Exception HIBERNATE-%-% : " + h);
            throw new RuntimeException(h);

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    //envioCotizacion.jsp
    @Transactional(readOnly = false)
    @Override
    public void actualizaFechaReporteOportunidad(String fechaReporte, int idO) throws DAOException {

        try {

            System.out.println("&&- REALIZA QUERY [ACTUALIZACION FECHA_REPORTE OPORTUNIDAD-ENVIO] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("UPDATE Oportunidad SET fechaReporte= :fechaReporte " + "WHERE id= :idO")
                    .setParameter("idO", idO);
            queryObject.setParameter("fechaReporte", fechaReporte);
            System.out.println("&&- QUERY GENERADO [ACTUALIZACION FECHA_REPORTE OPORTUNIDAD-ENVIO] -&&");

            System.out.println("&&- ENVIA LISTA [ACTUALIZACION FECHA_REPORTE OPORTUNIDAD-ENVIO] -&&");

            queryObject.executeUpdate();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception NULL-%-% :  " + n);
            throw n;

        } catch (HibernateException h) {
            System.out.println("%-%-Exception HIBERNATE-%-% : " + h);
            throw new RuntimeException(h);

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Transactional(readOnly = false)
    @Override
    public void crearOportunidadFlete(OportunidadFlete oportunidadFlete) throws DAOException {
        try {
            sessionFactory.getCurrentSession().beginTransaction();
            sessionFactory.getCurrentSession().saveOrUpdate(oportunidadFlete);
            sessionFactory.getCurrentSession().getTransaction().commit();
        } catch (HibernateException h) {
            System.out.println("%-%- Exception HIBERNATE-%-% :  " + h);
            sessionFactory.getCurrentSession().getTransaction().rollback();
            throw h;

        } catch (NullPointerException n) {
            System.out.println("%-%- Exception NULL-%-% :  " + n);
            sessionFactory.getCurrentSession().getTransaction().rollback();
            throw n;

        } catch (RuntimeException r) {
            System.out.println("%-%- Exception RUNTimeExcepction :: -%-% : " + r);
            sessionFactory.getCurrentSession().getTransaction().rollback();
            throw new RuntimeException(r);
        } catch (Exception e) {
            System.out.println("%-%- Exception QUERY-%-% : " + e);
            sessionFactory.getCurrentSession().getTransaction().rollback();
            throw new RuntimeException(e);
        }
    }

    @Transactional(readOnly = false)
    @Override
    public void crearOportunidadMaterial(OportunidadMaterial oportunidadMaterial) throws DAOException {
        try {
            sessionFactory.getCurrentSession().beginTransaction();
            sessionFactory.getCurrentSession().saveOrUpdate(oportunidadMaterial);
            sessionFactory.getCurrentSession().getTransaction().commit();
            // sessionFactory.getCurrentSession().saveOrUpdate(oportunidadMaterialId);
        } catch (HibernateException h) {
            System.out.println("%-%- Exception HIBERNATE-%-% :  " + h);
            sessionFactory.getCurrentSession().getTransaction().rollback();
            throw h;

        } catch (NullPointerException n) {
            System.out.println("%-%- Exception NULL-%-% :  " + n);
            sessionFactory.getCurrentSession().getTransaction().rollback();
            throw n;

        } catch (RuntimeException r) {
            System.out.println("%-%- Exception RUNTimeExcepction :: -%-% : " + r);
            sessionFactory.getCurrentSession().getTransaction().rollback();
            throw new RuntimeException(r);
        } catch (Exception e) {
            System.out.println("%-%- Exception QUERY-%-% : " + e);
            sessionFactory.getCurrentSession().getTransaction().rollback();
            throw new RuntimeException(e);
        }

    }

    @Transactional(readOnly = false)
    @Override
    public void crearOportunidadParticipante(OportunidadParticipante oportunidadParticipante) throws DAOException {
        try {
            //sessionFactory.getCurrentSession().persist(oportunidadMaterial);
            sessionFactory.getCurrentSession().beginTransaction();
            sessionFactory.getCurrentSession().saveOrUpdate(oportunidadParticipante);
            sessionFactory.getCurrentSession().getTransaction().commit();
        } catch (HibernateException h) {
            System.out.println("%-%- Exception HIBERNATE-%-% :  " + h);
            sessionFactory.getCurrentSession().getTransaction().rollback();
            throw h;

        } catch (NullPointerException n) {
            System.out.println("%-%- Exception NULL-%-% :  " + n);
            sessionFactory.getCurrentSession().getTransaction().rollback();
            throw n;

        } catch (RuntimeException r) {
            System.out.println("%-%- Exception RUNTimeExcepction :: -%-% : " + r);
            sessionFactory.getCurrentSession().getTransaction().rollback();
            throw new RuntimeException(r);
        } catch (Exception e) {
            System.out.println("%-%- Exception QUERY-%-% : " + e);
            sessionFactory.getCurrentSession().getTransaction().rollback();
            throw new RuntimeException(e);
        }
    }

    //envioCotizacion
    @Override
    public List<Oportunidad> oportunidadParaEnvio() throws DAOException {
        // List<Oportunidad> lista = getHibernateTemplate().find("select id, numeroOportunidad from Oportunidad");
        Query queryObject = sessionFactory.getCurrentSession()
                .createQuery("SELECT numeroOportunidad AS numeroOportunidad " + "FROM Oportunidad "
                        + "WHERE numeroOportunidad!='null' and status='monitorear' and cotizado='si' and enviado='no'"
                                .toString());
        queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
        /*
         * queryObject.setFetchSize(10); // se obtendrn 10 resultados en cada
         * acceso a la base. Iterator iter = queryObject.iterate(); while
         * (iter.hasNext()) {
         *
         * Oportunidad o = (Oportunidad) iter.next(); // fetch the object }
         */
        return queryObject.list();
        //    return (List<Oportunidad>) queryObject;
    }

    //verOportunidad.jsp
    @Override
    public List<Oportunidad> verCotizaciones() throws DAOException {
        // List<Oportunidad> lista = getHibernateTemplate().find("select id, numeroOportunidad from Oportunidad");
        Query queryObject = sessionFactory.getCurrentSession()
                .createQuery("SELECT id AS id, numeroOportunidad AS numeroOportunidad,"
                        + "numeroLicitacion AS numeroLicitacion, status AS status,cotizado AS cotizado,enviado AS enviado "
                        + "FROM Oportunidad " + "WHERE numeroOportunidad!='null'".toString());
        queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
        /*
         * queryObject.setFetchSize(100); // se obtendrn 10 resultados en cada
         * acceso a la base. Iterator iter = queryObject.iterate(); while
         * (iter.hasNext()) {
         *
         * Oportunidad o = (Oportunidad) iter.next(); // fetch the object }
         */
        return queryObject.list();
        //    return (List<Oportunidad>) queryObject;
    }

    @Override
    public List<Oportunidad> verCotizacionesEjecutivo(String codigo) throws DAOException {
        // List<Oportunidad> lista = getHibernateTemplate().find("select id, numeroOportunidad from Oportunidad");
        Query queryObject = sessionFactory.getCurrentSession()
                .createQuery("SELECT id AS id, numeroOportunidad AS numeroOportunidad,"
                        + "numeroLicitacion AS numeroLicitacion, status AS status,cotizado AS cotizado,enviado AS enviado "
                        + "FROM Oportunidad "
                        + "WHERE numeroOportunidad!='null' and numeroOportunidad LIKE :codigo".toString())
                .setParameter("codigo", "%" + codigo + "%");
        queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
        return queryObject.list();
        //    return (List<Oportunidad>) queryObject;
    }

    //cotizaOportunidad.jsp
    @Override
    public List<Oportunidad> verCotizacionesAsignar() throws DAOException {
        // List<Oportunidad> lista = getHibernateTemplate().find("select id, numeroOportunidad from Oportunidad");
        Query queryObject = sessionFactory.getCurrentSession()
                .createQuery("SELECT id AS id, numeroOportunidad AS numeroOportunidad,"
                        + "numeroLicitacion AS numeroLicitacion, status AS status,cotizado AS cotizado,enviado AS enviado,planta AS planta "
                        + "FROM Oportunidad "
                        + "WHERE enviado='no' AND (status='asignar vendedor' OR status='monitorear')".toString());
        //cotizado='no' AND
        queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
        //return (ArrayList<Oportunidad>) queryObject.list();
        return queryObject.list();
    }

    // INICIO LISTA DE LICITACIONES 
    //verLicitaciones.jsp
    @Override
    public List<String> licXNumeroLicitacion(String numeroLicitacion) throws DAOException {
        try {
            // List<Oportunidad> lista = getHibernateTemplate().find("select id, numeroOportunidad from Oportunidad");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("select om.clave as clave, om.volumen as volumen, om.notas as notas, "
                            + "p.costo as costo, om.precioProducto as precioProducto, om.precioFlete as precioFlete, "
                            + "om.precioFinal as precioFinal FROM Oportunidad o,OportunidadMaterial om, Producto p WHERE "
                            + "o.id=om.oportunidad  and om.clave=p.clave and o.numeroLicitacion = :numeroLicitacion"
                                    .toString())
                    .setParameter("numeroLicitacion", numeroLicitacion);

            Map<String, Object> miMap = new HashMap<String, Object>();
            miMap.put("Oportunidad", Oportunidad.class);
            miMap.put("OportunidadMaterial", OportunidadMaterial.class);
            miMap.put("Producto", Producto.class);
            queryObject.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
            //return (ArrayList<Oportunidad>) queryObject.list();
            return queryObject.list();
        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<Oportunidad> licXFechaRegistro() throws DAOException {
        // List<Oportunidad> lista = getHibernateTemplate().find("select id, numeroOportunidad from Oportunidad");
        Query queryObject = sessionFactory.getCurrentSession()
                .createQuery("select id as id, numeroOportunidad as numeroOportunidad from Oportunidad".toString());
        queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
        //return (ArrayList<Oportunidad>) queryObject.list();
        return queryObject.list();
    }

    @Override
    public List<Oportunidad> licXFechaApertura() throws DAOException {
        // List<Oportunidad> lista = getHibernateTemplate().find("select id, numeroOportunidad from Oportunidad");
        Query queryObject = sessionFactory.getCurrentSession()
                .createQuery("select id as id, numeroOportunidad as numeroOportunidad from Oportunidad".toString());
        queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
        //return (ArrayList<Oportunidad>) queryObject.list();
        return queryObject.list();
    }

    @Override
    public List<Oportunidad> licXFechaVisita() throws DAOException {
        // List<Oportunidad> lista = getHibernateTemplate().find("select id, numeroOportunidad from Oportunidad");
        Query queryObject = sessionFactory.getCurrentSession()
                .createQuery("select id as id, numeroOportunidad as numeroOportunidad from Oportunidad".toString());
        queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
        //return (ArrayList<Oportunidad>) queryObject.list();
        return queryObject.list();
    }

    @Override
    public List<Oportunidad> licXFechaFallo() throws DAOException {
        // List<Oportunidad> lista = getHibernateTemplate().find("select id, numeroOportunidad from Oportunidad");
        Query queryObject = sessionFactory.getCurrentSession()
                .createQuery("select id as id, numeroOportunidad as numeroOportunidad from Oportunidad".toString());
        queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
        //return (ArrayList<Oportunidad>) queryObject.list();
        return queryObject.list();
    }

    @Override
    public List<Oportunidad> licXRojas() throws DAOException {
        // List<Oportunidad> lista = getHibernateTemplate().find("select id, numeroOportunidad from Oportunidad");
        Query queryObject = sessionFactory.getCurrentSession()
                .createQuery("select id as id, numeroOportunidad as numeroOportunidad from Oportunidad".toString());
        queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
        //return (ArrayList<Oportunidad>) queryObject.list();
        return queryObject.list();
    }

    @Override
    public List<Oportunidad> licXAmarillas() throws DAOException {
        // List<Oportunidad> lista = getHibernateTemplate().find("select id, numeroOportunidad from Oportunidad");
        Query queryObject = sessionFactory.getCurrentSession()
                .createQuery("select id as id, numeroOportunidad as numeroOportunidad from Oportunidad".toString());
        queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
        //return (ArrayList<Oportunidad>) queryObject.list();
        return queryObject.list();
    }

    @Override
    public List<Oportunidad> licXBlancas() throws DAOException {
        // List<Oportunidad> lista = getHibernateTemplate().find("select id, numeroOportunidad from Oportunidad");
        Query queryObject = sessionFactory.getCurrentSession()
                .createQuery("select id as id, numeroOportunidad as numeroOportunidad from Oportunidad".toString());
        queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
        //return (ArrayList<Oportunidad>) queryObject.list();
        return queryObject.list();
    }

    @Override
    public List<Oportunidad> licXEstado() throws DAOException {
        // List<Oportunidad> lista = getHibernateTemplate().find("select id, numeroOportunidad from Oportunidad");
        Query queryObject = sessionFactory.getCurrentSession()
                .createQuery("select id as id, numeroOportunidad as numeroOportunidad from Oportunidad".toString());
        queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
        //return (ArrayList<Oportunidad>) queryObject.list();
        return queryObject.list();
    }

    @Override
    public List<Oportunidad> licXUbicacionObra() throws DAOException {
        // List<Oportunidad> lista = getHibernateTemplate().find("select id, numeroOportunidad from Oportunidad");
        Query queryObject = sessionFactory.getCurrentSession()
                .createQuery("select id as id, numeroOportunidad as numeroOportunidad from Oportunidad".toString());
        queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
        //return (ArrayList<Oportunidad>) queryObject.list();
        return queryObject.list();
    }

    @Override
    public List<Oportunidad> licXDescripcionObra() throws DAOException {
        // List<Oportunidad> lista = getHibernateTemplate().find("select id, numeroOportunidad from Oportunidad");
        Query queryObject = sessionFactory.getCurrentSession()
                .createQuery("select id as id, numeroOportunidad as numeroOportunidad from Oportunidad".toString());
        queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
        //return (ArrayList<Oportunidad>) queryObject.list();
        return queryObject.list();
    }

    @Override
    public List<String> licEnSeguimineto() throws DAOException {
        // List<Oportunidad> lista = getHibernateTemplate().find("select id, numeroOportunidad from Oportunidad");
        Query queryObject = sessionFactory.getCurrentSession()
                .createQuery("select id as id, numeroLicitacion as numeroLicitacion from Oportunidad".toString());
        //where status !='descartada' and status!='cancelada'
        queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
        //return (ArrayList<Oportunidad>) queryObject.list();
        return queryObject.list();
    }

    @Override
    public List<String> detallesLicitacion(String numeroLicitacion) throws DAOException {
        try {
            // List<Oportunidad> lista = getHibernateTemplate().find("select id, numeroOportunidad from Oportunidad");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("select om.clave as clave, om.volumen as volumen, om.notas as notas, "
                            + "p.costo as costo, om.precioProducto as precioProducto, om.precioFlete as precioFlete, "
                            + "om.precioFinal as precioFinal from Oportunidad o,OportunidadMaterial om, Producto p where "
                            + "o.id=om.oportunidad  and om.clave=p.clave and o.numeroLicitacion = :numeroLicitacion"
                                    .toString())
                    .setParameter("numeroLicitacion", numeroLicitacion);

            Map<String, Object> miMap = new HashMap<String, Object>();
            miMap.put("Oportunidad", Oportunidad.class);
            miMap.put("OportunidadMaterial", OportunidadMaterial.class);
            miMap.put("Producto", Producto.class);
            queryObject.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
            //return (ArrayList<Oportunidad>) queryObject.list();
            return queryObject.list();
        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }
    // FIN LISTA DE LICITACIONES 
    // Fin verLicitaciones.jsp

    //verOportunidad.jsp
    @Override
    public List<Oportunidad> ejecutivoOportunidad() throws DAOException {//Querys con nombre y variables de las clases!
        try {

            System.out.println("&&- REALIZA QUERY [EJECTUTIVO DE OPORTUNIDAD] -&&");
            Query queryObject = sessionFactory.getCurrentSession().createQuery("SELECT o.ejecutivo AS ejecutivo "
                    + "FROM Oportunidad o where ejecutivo != '' group by ejecutivo".toString());
            System.out.println("&&- QUERY GENERADO [EJECTUTIVO DE OPORTUNIDAD] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
            System.out.println("&&- ENVIA LISTA [EJECTUTIVO DE OPORTUNIDAD] -&&");

            return queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<Oportunidad> estatusOportunidad() throws DAOException {//Querys con nombre y variables de las clases!
        try {

            System.out.println("&&- REALIZA QUERY [STATUS DE OPORTUNIDAD] -&&");
            Query queryObject = sessionFactory.getCurrentSession().createQuery("SELECT o.status AS status "
                    + "FROM Oportunidad o where status != '' group by status".toString());
            System.out.println("&&- QUERY GENERADO [STATUS DE OPORTUNIDAD] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
            System.out.println("&&- ENVIA LISTA [STATUS DE OPORTUNIDAD] -&&");

            return queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<Oportunidad> anioOportunidad() throws DAOException {//Querys con nombre y variables de las clases!
        try {

            System.out.println("&&- REALIZA QUERY [AO DE OPORTUNIDAD] -&&");
            Query queryObject = sessionFactory.getCurrentSession().createQuery(
                    "SELECT o.ao AS ao " + "FROM Oportunidad o where ao != '' group by ao".toString());
            System.out.println("&&- QUERY GENERADO [AO DE OPORTUNIDAD] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
            System.out.println("&&- ENVIA LISTA [AO DE OPORTUNIDAD] FULL -&&");

            return queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<Oportunidad> likeUbicacionObraOportunidad(String obra) throws DAOException {//Querys con nombre y variables de las clases!
        try {

            System.out.println("&&- REALIZA QUERY [OBRA DE OPORTUNIDAD] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.ubicacionObra AS ubicacionObra "
                            + "FROM Oportunidad o where o.ubicacionObra like :obra".toString())
                    .setParameter("obra", "%" + obra + "%");
            System.out.println("&&- QUERY GENERADO [OBRA DE OPORTUNIDAD] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
            System.out.println("&&- ENVIA LISTA [OBRA DE OPORTUNIDAD] FULL -&&");

            return queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<Oportunidad> likeLicitacionOportunidad(String licitacion) throws DAOException {//Querys con nombre y variables de las clases!
        try {

            System.out.println("&&- REALIZA QUERY [LICITACION DE OPORTUNIDAD] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.numeroLicitacion AS numeroLicitacion "
                            + "FROM Oportunidad o WHERE o.numeroLicitacion LIKE :licitacion".toString())
                    .setParameter("licitacion", "%" + licitacion + "%");
            System.out.println("&&- QUERY GENERADO [LICITACION DE OPORTUNIDAD] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
            System.out.println("&&- ENVIA LISTA [LICITACION DE OPORTUNIDAD] FULL -&&");

            return queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    // Con parametro segun lo seleccionado segunda parte izquierda verOportunidad.jsp
    @Override
    public List<Oportunidad> oportunidadxEjecutivo(String ejecutivo) throws DAOException {//Querys con nombre y variables de las clases!
        try {
            //   List<Oportunidad> lista = getHibernateTemplate().find("SELECT c.cliente FROM Oportunidad o ,OportunidadParticipante op,"
            //       + "Cliente c WHERE op.oportunidad=o.id and c.idCliente=op.cliente and o.numeroOportunidad=?",numeroOportunidad);
            //return (List<Oportunidad>) (Oportunidad) lista.get(0);
            //  return lista;
            System.out.println("&&- REALIZA QUERY [OPORTUNIDAD X EJECUTIVO] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.numeroOportunidad AS numeroOportunidad " + "FROM Oportunidad o "
                            + "WHERE o.ejecutivo= :ejecutivo and o.numeroOportunidad != ''".toString())
                    .setParameter("ejecutivo", ejecutivo);
            //"SELECT c.idCliente as idCliente, c.cliente as cliente FROM Cliente c,OportunidadParticipante op WHERE  c.idCliente=op.cliente and op.idOp= :oportunidad"
            //getCurrentSession().createSQLQuery("SELECT e.id as id,e.nombre as nombre FROM Estados e".toString());

            System.out.println("&&- QUERY GENERADO [OPORTUNIDAD X EJECUTIVO] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            /*
             * Map<String, Object> miMap = new HashMap<String, Object>();
             * miMap.put("Cliente", Cliente.class); miMap.put("Oportunidad",
             * Oportunidad.class);
             */
            //    queryObject.setResultTransformer(Transformers.aliasToBean(miMap.getClass()));
            queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
            //     queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
            System.out.println("&&- ENVIA LISTA [OPORTUNIDAD X EJECUTIVO] -&&");

            return queryObject.list();
            //  return (ArrayList<Cliente>) queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%- Exception NULL -%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%- Exception QUERY -%-% : " + e);
            throw new RuntimeException(e);
        }
    }
    //verOportunidad.jsp

    @Override
    public List<Oportunidad> oportunidadxEstado(String estado) throws DAOException {//Querys con nombre y variables de las clases!
        try {

            System.out.println("&&- REALIZA QUERY [OPORTUNIDAD X ESTADO] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.numeroOportunidad AS numeroOportunidad " + "FROM Oportunidad o "
                            + "WHERE o.estado = :estado and o.numeroOportunidad != ''".toString())
                    .setParameter("estado", estado);
            System.out.println("&&- QUERY GENERADO [OPORTUNIDAD X ESTADO] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
            System.out.println("&&- ENVIA LISTA [OPORTUNIDAD X ESTADO] -&&");

            return queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<Oportunidad> oportunidadxNumeroOportunidadEjecutivo(String oportunidad, String codigo)
            throws DAOException {//Querys con nombre y variables de las clases!
        try {
            System.out.println("&&- REALIZA QUERY [OPORTUNIDAD X numeroOportunidad EJECUTIVO] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.id AS id,o.numeroOportunidad AS numeroOportunidad "
                            + "FROM Oportunidad o "
                            + "WHERE o.numeroOportunidad LIKE :numeroOportunidad and o.numeroOportunidad != '' and o.numeroOportunidad LIKE :codigo"
                                    .toString())
                    .setParameter("numeroOportunidad", "%" + oportunidad + "%");
            queryObject.setParameter("codigo", "%" + codigo + "%");
            System.out.println("&&- QUERY GENERADO [OPORTUNIDAD X numeroOportunidad EJECUTIVO] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
            System.out.println("&&- ENVIA LISTA [OPORTUNIDAD X numeroOportunidad EJECUTIVO] -&&");
            return queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<Oportunidad> oportunidadxNumeroOportunidad(String oportunidad) throws DAOException {//Querys con nombre y variables de las clases!
        try {
            System.out.println("&&- REALIZA QUERY [OPORTUNIDAD X numeroOportunidad] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.id AS id,o.numeroOportunidad AS numeroOportunidad "
                            + "FROM Oportunidad o "
                            + "WHERE o.numeroOportunidad LIKE :numeroOportunidad and o.numeroOportunidad != '' "
                                    .toString())
                    .setParameter("numeroOportunidad", "%" + oportunidad + "%");
            System.out.println("&&- QUERY GENERADO [OPORTUNIDAD X numeroOportunidad] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
            System.out.println("&&- ENVIA LISTA [OPORTUNIDAD X numeroOportunidad] -&&");
            return queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<Oportunidad> oportunidadxEstatusEjecutivo(String estatus, String codigo) throws DAOException {//Querys con nombre y variables de las clases!
        try {
            System.out.println("&&- REALIZA QUERY [OPORTUNIDAD X ESTATUS] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.id AS id,o.numeroOportunidad AS numeroOportunidad "
                            + "FROM Oportunidad o "
                            + "WHERE o.status = :estatus and o.numeroOportunidad != '' and o.numeroOportunidad LIKE :codigo"
                                    .toString())
                    .setParameter("estatus", estatus);
            queryObject.setParameter("codigo", "%" + codigo + "%");
            System.out.println("&&- QUERY GENERADO [OPORTUNIDAD X ESTATUS] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
            System.out.println("&&- ENVIA LISTA [OPORTUNIDAD X ESTATUS] -&&");
            return queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<Oportunidad> oportunidadxEstatus(String estatus) throws DAOException {//Querys con nombre y variables de las clases!
        try {
            System.out.println("&&- REALIZA QUERY [OPORTUNIDAD X ESTATUS] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery(
                            "SELECT o.id AS id,o.numeroOportunidad AS numeroOportunidad " + "FROM Oportunidad o "
                                    + "WHERE o.status = :estatus and o.numeroOportunidad != '' ".toString())
                    .setParameter("estatus", estatus);
            System.out.println("&&- QUERY GENERADO [OPORTUNIDAD X ESTATUS] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
            System.out.println("&&- ENVIA LISTA [OPORTUNIDAD X ESTATUS] -&&");
            return queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<Oportunidad> oportunidadxAnioEjecutivo(Float anio, String codigo) throws DAOException {//Querys con nombre y variables de las clases!
        try {
            System.out.println("&&- REALIZA QUERY [OPORTUNIDAD X AO] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.numeroOportunidad AS numeroOportunidad " + "FROM Oportunidad o "
                            + "WHERE o.numeroOportunidad!='null' and o.ao = :anio AND o.numeroOportunidad LIKE :codigo"
                                    .toString())
                    .setParameter("anio", anio);
            queryObject.setParameter("codigo", "%" + codigo + "%");
            System.out.println("&&- QUERY GENERADO [OPORTUNIDAD X AO] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
            System.out.println("&&- ENVIA LISTA [OPORTUNIDAD X AO] -&&");
            return queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<Oportunidad> oportunidadxAnio(Float anio) throws DAOException {//Querys con nombre y variables de las clases!
        try {
            System.out.println("&&- REALIZA QUERY [OPORTUNIDAD X AO] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.numeroOportunidad AS numeroOportunidad " + "FROM Oportunidad o "
                            + "WHERE o.numeroOportunidad!='null' and o.ao = :anio".toString())
                    .setParameter("anio", anio);
            System.out.println("&&- QUERY GENERADO [OPORTUNIDAD X AO] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
            System.out.println("&&- ENVIA LISTA [OPORTUNIDAD X AO] -&&");
            return queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }
    // verOportunidad.jsp

    @Override
    public List<String> oportunidadxClienteEjecutivo(String cliente, String codigo) throws DAOException {//Querys con nombre y variables de las clases!
        try {
            System.out.println("&&- REALIZA QUERY [OPORTUNIDAD X CLIENTE] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.numeroOportunidad AS numeroOportunidad "
                            + "FROM Oportunidad o, Cliente c, OportunidadParticipante op "
                            + "WHERE o.id=op.oportunidad and c.idCliente=op.cliente "
                            + "and o.numeroOportunidad != '' and c.cliente = :cliente AND o.numeroOportunidad LIKE :codigo"
                                    .toString())
                    .setParameter("cliente", cliente);
            queryObject.setParameter("codigo", "%" + codigo + "%");
            System.out.println("&&- QUERY GENERADO [OPORTUNIDAD X CLIENTE] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            Map<String, Object> miMap = new HashMap<String, Object>();
            miMap.put("Cliente", Cliente.class);
            miMap.put("Oportunidad", Oportunidad.class);
            miMap.put("OportunidadParticipante", OportunidadParticipante.class);
            queryObject.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);

            System.out.println("&&- ENVIA LISTA [OPORTUNIDAD X CLIENTE] -&&");
            return queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<String> oportunidadxCliente(String cliente) throws DAOException {//Querys con nombre y variables de las clases!
        try {
            System.out.println("&&- REALIZA QUERY [OPORTUNIDAD X CLIENTE] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.numeroOportunidad AS numeroOportunidad "
                            + "FROM Oportunidad o, Cliente c, OportunidadParticipante op "
                            + "WHERE o.id=op.oportunidad and c.idCliente=op.cliente "
                            + "and o.numeroOportunidad != '' and c.cliente = :cliente".toString())
                    .setParameter("cliente", cliente);
            System.out.println("&&- QUERY GENERADO [OPORTUNIDAD X CLIENTE] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            Map<String, Object> miMap = new HashMap<String, Object>();
            miMap.put("Cliente", Cliente.class);
            miMap.put("Oportunidad", Oportunidad.class);
            miMap.put("OportunidadParticipante", OportunidadParticipante.class);
            queryObject.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);

            System.out.println("&&- ENVIA LISTA [OPORTUNIDAD X CLIENTE] -&&");
            return queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<Oportunidad> oportunidadxUbicacionObraEjecutivo(String obra, String codigo) throws DAOException {//Querys con nombre y variables de las clases!
        try {
            System.out.println("&&- REALIZA QUERY [OPORTUNIDAD X UBICACION DE OBRA] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.numeroOportunidad AS numeroOportunidad " + "FROM Oportunidad o "
                            + "WHERE o.ubicacionObra = :obra and o.numeroOportunidad != '' AND o.numeroOportunidad LIKE :codigo"
                                    .toString())
                    .setParameter("obra", obra);
            queryObject.setParameter("codigo", "%" + codigo + "%");
            System.out.println("&&- QUERY GENERADO [OPORTUNIDAD X UBICACION DE OBRA] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
            System.out.println("&&- ENVIA LISTA [OPORTUNIDAD X UBICACION DE OBRA] -&&");
            return queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<Oportunidad> oportunidadxUbicacionObra(String obra) throws DAOException {//Querys con nombre y variables de las clases!
        try {
            System.out.println("&&- REALIZA QUERY [OPORTUNIDAD X UBICACION DE OBRA] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.numeroOportunidad AS numeroOportunidad " + "FROM Oportunidad o "
                            + "WHERE o.ubicacionObra = :obra and o.numeroOportunidad != ''".toString())
                    .setParameter("obra", obra);
            System.out.println("&&- QUERY GENERADO [OPORTUNIDAD X UBICACION DE OBRA] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
            System.out.println("&&- ENVIA LISTA [OPORTUNIDAD X UBICACION DE OBRA] -&&");
            return queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<Oportunidad> oportunidadxLicitacionEjecutivo(String licitacion, String codigo) throws DAOException {//Querys con nombre y variables de las clases!
        try {
            System.out.println("&&- REALIZA QUERY [OPORTUNIDAD X LICITACIN] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.numeroOportunidad AS numeroOportunidad " + "FROM Oportunidad o "
                            + "WHERE o.numeroLicitacion = :licitacion and o.numeroOportunidad != '' AND o.numeroOportunidad LIKE :codigo"
                                    .toString())
                    .setParameter("licitacion", licitacion);
            queryObject.setParameter("codigo", "%" + codigo + "%");
            System.out.println("&&- QUERY GENERADO [OPORTUNIDAD X LICITACIN] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
            System.out.println("&&- ENVIA LISTA [OPORTUNIDAD X LICITACIN] -&&");
            return queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<Oportunidad> oportunidadxLicitacion(String licitacion) throws DAOException {//Querys con nombre y variables de las clases!
        try {
            System.out.println("&&- REALIZA QUERY [OPORTUNIDAD X LICITACIN] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.numeroOportunidad AS numeroOportunidad " + "FROM Oportunidad o "
                            + "WHERE o.numeroLicitacion = :licitacion and o.numeroOportunidad != ''".toString())
                    .setParameter("licitacion", licitacion);
            System.out.println("&&- QUERY GENERADO [OPORTUNIDAD X LICITACIN] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
            System.out.println("&&- ENVIA LISTA [OPORTUNIDAD X LICITACIN] -&&");
            return queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }
    // verOportunidad.jsp

    @Override
    public List<String> detalleVerOportunidad(String cotizacion) throws DAOException {//Querys con nombre y variables de las clases!
        try {

            System.out.println("&&- REALIZA QUERY [OPORTUNIDAD-PARTICIPANTE] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.numeroLicitacion AS numeroLicitacion, o.fechaRegistro AS fechaRegistro,"
                            + "o.fechaBases AS fechaBases, o.fechaJunta AS fechaJunta,o.fechaApertura AS fechaApertura,o.fechaVisita AS fechaVisita,c.idCliente AS idCliente,"
                            + "o.fechaFallo AS fechaFallo, o.ultimaModificacion AS ultimaModificacion, o.estado AS estado,o.capital AS capital,o.ubicacionObra AS ubicacionObra,o.dependencia AS dependencia,"
                            + "o.descripcion AS descripcion, o.status AS status, o.ejecutivo AS ejecutivo, o.notas AS notas,o.numeroOportunidad AS numeroOportunidad,om.clave AS clave,c.cliente AS cliente, "
                            + "o.fleteTrailer AS fleteTrailer, o.fleteTorton AS fleteTorton, om.montoTotal AS montoTotal, om.volumen AS volumen,om.notas AS notasp,o.planta AS planta "
                            + "FROM Oportunidad o,OportunidadMaterial om,Producto p,OportunidadParticipante op,Cliente c "
                            + "WHERE o.id=om.oportunidad and p.clave=om.clave and o.id=op.oportunidad and c.idCliente=op.cliente "
                            + "and o.numeroOportunidad= :cotizacion".toString())
                    .setParameter("cotizacion", cotizacion);

            System.out.println("&&- QUERY GENERADO [OPORTUNIDAD-PARTICIPANTE] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            //  ResultTransformer trans = new DistinctRootEntityResultTransformer();
            //queryObject.setResultTransformer(trans);
            //    queryObject.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
            Map<String, Object> miMap = new HashMap<String, Object>();
            miMap.put("Producto", Producto.class);
            miMap.put("Cliente", Cliente.class);
            miMap.put("Oportunidad", Oportunidad.class);
            miMap.put("OportunidadMaterial", OportunidadMaterial.class);
            miMap.put("OportunidadParticipante", OportunidadParticipante.class);
            queryObject.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);

            System.out.println("&&- ENVIA LISTA [OPORTUNIDAD-PARTICIPANTE] -&&");

            return queryObject.list();

        } catch (HibernateException h) {
            System.out.println("%-%-Exception HIBERNATE-%-% :  " + h);
            throw h;
        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }
    // verOportunidad.jsp

    @Override
    public List<String> detalleVerOportunidadb(String cotizacion) throws DAOException {//Querys con nombre y variables de las clases!
        try {

            System.out.println("&&- REALIZA QUERY [OPORTUNIDAD-PARTICIPANTE] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.numeroLicitacion AS numeroLicitacion, o.fechaRegistro AS fechaRegistro,"
                            + "o.fechaBases AS fechaBases, o.fechaJunta AS fechaJunta,o.fechaApertura AS fechaApertura,o.fechaVisita AS fechaVisita,c.idCliente AS idCliente,"
                            + "o.fechaFallo AS fechaFallo, o.ultimaModificacion AS ultimaModificacion, o.estado AS estado,o.capital AS capital,o.ubicacionObra AS ubicacionObra,o.dependencia AS dependencia,"
                            + "o.descripcion AS descripcion, o.status AS status, o.ejecutivo AS ejecutivo, o.notas AS notas,o.numeroOportunidad AS numeroOportunidad,om.clave AS clave,c.cliente AS cliente, "
                            + "o.fleteTrailer AS fleteTrailer, o.fleteTorton AS fleteTorton, om.montoTotal AS montoTotal, om.volumen AS volumen,om.notas AS notasp,o.planta AS planta "
                            + "FROM Oportunidad o,OportunidadMaterial om,ProductoBajio pb,OportunidadParticipante op,Cliente c "
                            + "WHERE o.id=om.oportunidad and pb.clave=om.clave and o.id=op.oportunidad and c.idCliente=op.cliente "
                            + "and o.numeroOportunidad= :cotizacion".toString())
                    .setParameter("cotizacion", cotizacion);

            System.out.println("&&- QUERY GENERADO [OPORTUNIDAD-PARTICIPANTE] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            //  ResultTransformer trans = new DistinctRootEntityResultTransformer();
            //queryObject.setResultTransformer(trans);
            //    queryObject.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
            Map<String, Object> miMap = new HashMap<String, Object>();
            miMap.put("ProductoBajio", ProductoBajio.class);
            miMap.put("Cliente", Cliente.class);
            miMap.put("Oportunidad", Oportunidad.class);
            miMap.put("OportunidadMaterial", OportunidadMaterial.class);
            miMap.put("OportunidadParticipante", OportunidadParticipante.class);
            queryObject.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);

            System.out.println("&&- ENVIA LISTA [OPORTUNIDAD-PARTICIPANTE] -&&");

            return queryObject.list();

        } catch (HibernateException h) {
            System.out.println("%-%-Exception HIBERNATE-%-% :  " + h);
            throw h;
        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }
    //  verOportunidad.jsp

    @Override
    public List<String> detalleVerOportunidads(String cotizacion) throws DAOException {//Querys con nombre y variables de las clases!
        try {

            System.out.println("&&- REALIZA QUERY [OPORTUNIDAD-PARTICIPANTE] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.numeroLicitacion AS numeroLicitacion, o.fechaRegistro AS fechaRegistro,"
                            + "o.fechaBases AS fechaBases, o.fechaJunta AS fechaJunta,o.fechaApertura AS fechaApertura,o.fechaVisita AS fechaVisita,c.idCliente AS idCliente,"
                            + "o.fechaFallo AS fechaFallo, o.ultimaModificacion AS ultimaModificacion, o.estado AS estado,o.capital AS capital,o.ubicacionObra AS ubicacionObra,o.dependencia AS dependencia,"
                            + "o.descripcion AS descripcion, o.status AS status, o.ejecutivo AS ejecutivo, o.notas AS notas,o.numeroOportunidad AS numeroOportunidad,om.clave AS clave,c.cliente AS cliente, "
                            + "o.fleteTrailer AS fleteTrailer, o.fleteTorton AS fleteTorton, om.montoTotal AS montoTotal, om.volumen AS volumen,om.notas AS notasp,o.planta AS planta "
                            + "FROM Oportunidad o,OportunidadMaterial om,ProductoSureste ps,OportunidadParticipante op,Cliente c "
                            + "WHERE o.id=om.oportunidad and ps.clave=om.clave and o.id=op.oportunidad and c.idCliente=op.cliente "
                            + "and o.numeroOportunidad= :cotizacion".toString())
                    .setParameter("cotizacion", cotizacion);

            System.out.println("&&- QUERY GENERADO [OPORTUNIDAD-PARTICIPANTE] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            //  ResultTransformer trans = new DistinctRootEntityResultTransformer();
            //queryObject.setResultTransformer(trans);
            //  queryObject.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
            Map<String, Object> miMap = new HashMap<String, Object>();
            miMap.put("ProductoSureste", ProductoSureste.class);
            miMap.put("Cliente", Cliente.class);
            miMap.put("Oportunidad", Oportunidad.class);
            miMap.put("OportunidadMaterial", OportunidadMaterial.class);
            miMap.put("OportunidadParticipante", OportunidadParticipante.class);
            queryObject.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);

            System.out.println("&&- ENVIA LISTA [OPORTUNIDAD-PARTICIPANTE] -&&");

            return queryObject.list();

        } catch (HibernateException h) {
            System.out.println("%-%-Exception HIBERNATE-%-% :  " + h);
            throw h;
        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }
    // Fin verOportunidad.jsp

    @Override
    public List<Cliente> verParticipantes(String oportunidad) throws DAOException {//Querys con nombre y variables de las clases!
        try {
            //   List<Oportunidad> lista = getHibernateTemplate().find("SELECT c.cliente FROM Oportunidad o ,OportunidadParticipante op,"
            //       + "Cliente c WHERE op.oportunidad=o.id and c.idCliente=op.cliente and o.numeroOportunidad=?",numeroOportunidad);
            //return (List<Oportunidad>) (Oportunidad) lista.get(0);
            //  return lista;
            System.out.println("&&- REALIZA QUERY [OPORTUNIDAD-PARTICIPANTE] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT c.idCliente as idCliente, c.cliente as cliente,o.fechaBases as fechaBases,"
                            + "o.fechaApertura as fechaApertura,o.ubicacionObra as ubicacionObra,o.notas as notas,o.id AS id,o.planta AS planta,o.ejecutivo AS ejecutivo "
                            + "FROM Oportunidad o ,OportunidadParticipante op,Cliente c "
                            + "WHERE op.oportunidad=o.id and c.idCliente=op.cliente and o.numeroOportunidad= :oportunidad"
                                    .toString())
                    .setParameter("oportunidad", oportunidad);
            //"SELECT c.idCliente as idCliente, c.cliente as cliente FROM Cliente c,OportunidadParticipante op WHERE  c.idCliente=op.cliente and op.idOp= :oportunidad"
            //getCurrentSession().createSQLQuery("SELECT e.id as id,e.nombre as nombre FROM Estados e".toString());

            System.out.println("&&- QUERY GENERADO [OPORTUNIDAD-PARTICIPANTE] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            Map<String, Object> miMap = new HashMap<String, Object>();
            miMap.put("Cliente", Cliente.class);
            miMap.put("Oportunidad", Oportunidad.class);
            //    queryObject.setResultTransformer(Transformers.aliasToBean(miMap.getClass()));
            queryObject.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
            //     queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
            System.out.println("&&- ENVIA LISTA [OPORTUNIDAD-PARTICIPANTE] -&&");

            return queryObject.list();
            //  return (ArrayList<Cliente>) queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<String> datosCliente(int participante) throws DAOException {//Querys con nombre y variables de las clases!
        try {

            System.out.println("&&- REALIZA QUERY [DATOS-PARTICIPANTE] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT c.idCliente as idCliente, c.cliente as cliente,c.direccion as direccion,"
                            + "c.telefonos as telefonos,c.atencion as atencion,c.mail as mail,c.mail1 as mail1,c.comentarios as comentarios,cc.nombre as nombre "
                            + "FROM Oportunidad o ,OportunidadParticipante op,Cliente c,ClienteContacto cc "
                            + "WHERE op.oportunidad=o.id and c.idCliente=op.cliente and c.idCliente=cc.cliente and c.idCliente= :participante"
                                    .toString())
                    .setParameter("participante", participante);

            System.out.println("&&- QUERY GENERADO [DATOS-PARTICIPANTE] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            Map<String, Object> miMap = new HashMap<String, Object>();
            miMap.put("Cliente", Cliente.class);
            miMap.put("Oportunidad", Oportunidad.class);
            miMap.put("ClienteContacto", ClienteContacto.class);
            queryObject.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
            System.out.println("&&- ENVIA LISTA [DATOS-PARTICIPANTE] -&&");

            return queryObject.list();
            //return (ArrayList<String>) queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }
    /*
     * public Oportunidad verParticipantes(String numeroOportunidad) throws
     * DAOException {//Querys con nombre y variables de las clases! List lista =
     * getSessionFactory().getCurrentSession().createQuery("SELECT c.cliente
     * FROM Oportunidad o ,OportunidadParticipante op," + "Cliente c WHERE
     * op.oportunidad=o.id and c.idCliente=op.cliente and
     * o.numeroOportunidad=?").setParameter(0,numeroOportunidad).list();
     * //return (List<Oportunidad>) (Oportunidad) lista.get(0); return
     * (Oportunidad) lista.get(0); }
     */
    /*
     * Lo usa verLicitaciones al dar click en Licitaciones en Seguimiento.
     */

    @Override
    public List<String> datosLicitacion(String numeroLicitacion) throws DAOException {//Querys con nombre y variables de las clases!
        try {

            System.out.println("&&- REALIZA QUERY [DATOS-PARTICIPANTE] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.numeroLicitacion AS numeroLicitacion, o.fechaRegistro AS fechaRegistro,"
                            + "o.fechaBases AS fechaBases,o.fechaJunta AS fechaJunta,o.fechaApertura AS fechaApertura,o.fechaVisita AS fechaVisita,"
                            + "o.fechaFallo AS fechaFallo,o.estado AS estado,o.capital AS capital,o.ubicacionObra AS ubicacionObra,o.dependencia AS dependencia,"
                            + "o.descripcion AS descripcion,o.notas AS notas,o.numeroOportunidad AS numeroOportunidad,om.volumen AS volumen,om.clave AS clave,om.notas AS notasp, c.cliente AS cliente "
                            + "FROM Oportunidad o,OportunidadMaterial om,Producto p,OportunidadParticipante op,Cliente c "
                            + "WHERE o.id=om.oportunidad and p.clave=om.clave and o.id=op.oportunidad and c.idCliente=op.cliente "
                            + "and o.numeroLicitacion= :numeroLicitacion".toString())
                    .setParameter("numeroLicitacion", numeroLicitacion);

            System.out.println("&&- QUERY GENERADO [DATOS-PARTICIPANTE] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            Map<String, Object> miMap = new HashMap<String, Object>();
            miMap.put("Producto", Producto.class);
            miMap.put("Cliente", Cliente.class);
            miMap.put("Oportunidad", Oportunidad.class);
            miMap.put("OportunidadMaterial", OportunidadMaterial.class);
            miMap.put("OportunidadParticipante", OportunidadParticipante.class);
            queryObject.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
            System.out.println("&&- ENVIA LISTA [DATOS-PARTICIPANTE] -&&");

            return queryObject.list();
            //return (ArrayList<String>) queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (HibernateException h) {
            System.out.println("%-%-Exception HIBERNATE-%-% : " + h);
            throw new RuntimeException(h);

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<String> datosLicitacionb(String numeroLicitacion) throws DAOException {//Querys con nombre y variables de las clases!
        try {

            System.out.println("&&- REALIZA QUERY [DATOS-PARTICIPANTE] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.numeroLicitacion AS numeroLicitacion, o.fechaRegistro AS fechaRegistro,"
                            + "o.fechaBases AS fechaBases,o.fechaJunta AS fechaJunta,o.fechaApertura AS fechaApertura,o.fechaVisita AS fechaVisita,"
                            + "o.fechaFallo AS fechaFallo,o.estado AS estado,o.capital AS capital,o.ubicacionObra AS ubicacionObra,o.dependencia AS dependencia,"
                            + "o.descripcion AS descripcion,o.notas AS notas,o.numeroOportunidad AS numeroOportunidad,om.volumen AS volumen,om.clave AS clave,om.notas AS notasp, c.cliente AS cliente "
                            + "FROM Oportunidad o,OportunidadMaterial om,ProductoBajio pb,OportunidadParticipante op,Cliente c "
                            + "WHERE o.id=om.oportunidad and pb.clave=om.clave and o.id=op.oportunidad and c.idCliente=op.cliente "
                            + "and o.numeroLicitacion= :numeroLicitacion".toString())
                    .setParameter("numeroLicitacion", numeroLicitacion);

            System.out.println("&&- QUERY GENERADO [DATOS-PARTICIPANTE] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            Map<String, Object> miMap = new HashMap<String, Object>();
            miMap.put("ProductoBajio", ProductoBajio.class);
            miMap.put("Cliente", Cliente.class);
            miMap.put("Oportunidad", Oportunidad.class);
            miMap.put("OportunidadMaterial", OportunidadMaterial.class);
            miMap.put("OportunidadParticipante", OportunidadParticipante.class);
            queryObject.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
            System.out.println("&&- ENVIA LISTA [DATOS-PARTICIPANTE] -&&");

            return queryObject.list();
            //return (ArrayList<String>) queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (HibernateException h) {
            System.out.println("%-%-Exception HIBERNATE-%-% : " + h);
            throw new RuntimeException(h);

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<String> datosLicitacions(String numeroLicitacion) throws DAOException {//Querys con nombre y variables de las clases!
        try {

            System.out.println("&&- REALIZA QUERY [DATOS-PARTICIPANTE] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.numeroLicitacion AS numeroLicitacion, o.fechaRegistro AS fechaRegistro,"
                            + "o.fechaBases AS fechaBases,o.fechaJunta AS fechaJunta,o.fechaApertura AS fechaApertura,o.fechaVisita AS fechaVisita,"
                            + "o.fechaFallo AS fechaFallo,o.estado AS estado,o.capital AS capital,o.ubicacionObra AS ubicacionObra,o.dependencia AS dependencia,"
                            + "o.descripcion AS descripcion,o.notas AS notas,o.numeroOportunidad AS numeroOportunidad,om.volumen AS volumen,om.clave AS clave,om.notas AS notasp, c.cliente AS cliente "
                            + "FROM Oportunidad o,OportunidadMaterial om,ProductoSureste ps,OportunidadParticipante op,Cliente c "
                            + "WHERE o.id=om.oportunidad and ps.clave=om.clave and o.id=op.oportunidad and c.idCliente=op.cliente "
                            + "and o.numeroLicitacion= :numeroLicitacion".toString())
                    .setParameter("numeroLicitacion", numeroLicitacion);

            System.out.println("&&- QUERY GENERADO [DATOS-PARTICIPANTE] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            Map<String, Object> miMap = new HashMap<String, Object>();
            miMap.put("ProductoSureste", ProductoSureste.class);
            miMap.put("Cliente", Cliente.class);
            miMap.put("Oportunidad", Oportunidad.class);
            miMap.put("OportunidadMaterial", OportunidadMaterial.class);
            miMap.put("OportunidadParticipante", OportunidadParticipante.class);
            queryObject.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
            System.out.println("&&- ENVIA LISTA [DATOS-PARTICIPANTE] -&&");

            return queryObject.list();
            //return (ArrayList<String>) queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (HibernateException h) {
            System.out.println("%-%-Exception HIBERNATE-%-% : " + h);
            throw new RuntimeException(h);

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<String> buscaOportunidadxId(int id) throws DAOException {
        //     List list = getHibernateTemplate().find("from Oportunidad WHERE id=?", id);
        //   return (Oportunidad) list.get(0);
        try {

            System.out.println("&&- REALIZA QUERY [DATOS-COTIZACION] -&&");
            /*
             * Query queryObject =
             * sessionFactory.getCurrentSession().createQuery("SELECT o.id AS
             * id,o.numeroLicitacion AS numeroLicitacion, o.fechaRegistro AS
             * fechaRegistro," + "o.fechaBases AS fechaBases,o.fechaJunta AS
             * fechaJunta, o.status AS status,o.cotizado AS
             * cotizado,o.fechaApertura AS fechaApertura,o.fechaVisita AS
             * fechaVisita," + "o.fechaFallo AS fechaFallo,o.estado AS
             * estado,o.municipio AS municipio,o.capital AS
             * capital,o.ubicacionObra AS ubicacionObra,o.dependencia AS
             * dependencia," + "o.descripcion AS descripcion,o.notas AS
             * notas,o.numeroOportunidad AS numeroOportunidad,om.montoTotal AS
             * montoTotal,om.clave AS clave, c.cliente AS cliente," +
             * "om.volumen AS volumen, om.notas AS notasp,o.empleado AS
             * empleado,o.ejecutivo AS ejecutivo, o.ultimaModificacion AS
             * ultimaModificacion,p.costo AS costo," + "o.planta AS planta " +
             * "FROM Oportunidad o LEFT JOIN OportunidadMaterial om ON
             * o.id=om.oportunidad " + "FULL OUTER JOIN Producto p ON
             * p.clave=om.clave, " + "Cliente c,OportunidadParticipante op " +
             * "WHERE "//p.clave=om.clave OR pb.clave=om.clave OR
             * ps.clave=om.clave + "om.oportunidad IS NULL AND
             * op.cliente=c.idCliente AND op.oportunidad=o.id " + "AND o.id= :id
             * ".toString()).setParameter("id", id);
             */
            Query queryObject = sessionFactory.getCurrentSession().createQuery(
                    "SELECT o.id AS id,o.numeroLicitacion AS numeroLicitacion, o.fechaRegistro AS fechaRegistro,"
                            + "o.fechaBases AS fechaBases,o.fechaJunta AS fechaJunta, o.status AS status,o.cotizado AS cotizado,o.fechaApertura AS fechaApertura,o.fechaVisita AS fechaVisita,"
                            + "o.fechaFallo AS fechaFallo,o.estado AS estado,o.municipio AS municipio,o.capital AS capital,o.ubicacionObra AS ubicacionObra,o.dependencia AS dependencia,"
                            + "o.descripcion AS descripcion,o.notas AS notas,o.numeroOportunidad AS numeroOportunidad,om.montoTotal AS montoTotal,om.clave AS clave, c.cliente AS cliente,"
                            + "om.pproductoOptimo AS precioOptimo,om.ubOptimo AS ubOptimo,om.precioProducto AS precioMinimo,om.ub AS ubMinimo,om.precioFlete AS precioFlete,"
                            + "om.pfinalOptimo AS precioFinalOptimo,om.acotizar AS acotizar,om.id AS idOM,"
                            + "om.volumen AS volumen, om.notas AS notasp,o.empleado AS empleado,o.ejecutivo AS ejecutivo, o.ultimaModificacion AS ultimaModificacion,p.costo AS costo,"
                            + "o.planta AS planta,o.nivel AS nivel,o.clasifi AS clasifi,o.fleteTrailer AS fleteTrailer, o.fleteTorton AS fleteTorton,o.montoOportunidad AS montoOportunidad,"
                            + "o.contadorOportunidad AS contadorOportunidad,c.idCliente AS idCliente "
                            + "FROM Oportunidad o,OportunidadMaterial om,Producto p,"
                            + "Cliente c,OportunidadParticipante op " + "WHERE "//p.clave=om.clave OR pb.clave=om.clave OR ps.clave=om.clave 
                            + "o.id=om.oportunidad AND p.clave=om.clave AND op.cliente=c.idCliente AND op.oportunidad=o.id "
                            + "AND o.id= :id group by om.clave".toString())
                    .setParameter("id", id);
            System.out.println("&&- QUERY GENERADO [DATOS-COTIZACION] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans(DTO).Se adiere toString() al query
             */

            Map<String, Object> miMap = new HashMap<String, Object>();
            miMap.put("Cliente", Cliente.class);
            miMap.put("Oportunidad", Oportunidad.class);
            miMap.put("OportunidadMaterial", OportunidadMaterial.class);
            miMap.put("OportunidadParticipante", OportunidadParticipante.class);
            miMap.put("Producto", Producto.class);
            queryObject.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
            System.out.println("&&- ENVIA LISTA [DATOS-COTIZACION] -&&");
            //      queryObject.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
            return queryObject.list();
            //return (ArrayList<String>) queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception NULL-%-% :  " + n);
            throw n;

        } catch (HibernateException h) {
            System.out.println("%-%-Exception HIBERNATE-%-% : " + h);
            throw new RuntimeException(h);

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<String> buscaOportunidadBxId(int id) throws DAOException {
        //     List list = getHibernateTemplate().find("from Oportunidad WHERE id=?", id);
        //   return (Oportunidad) list.get(0);
        try {

            System.out.println("&&- REALIZA QUERY [DATOS-COTIZACION] -&&");
            Query queryObject = sessionFactory.getCurrentSession().createQuery(
                    "SELECT o.id AS id,o.numeroLicitacion AS numeroLicitacion, o.fechaRegistro AS fechaRegistro,"
                            + "o.fechaBases AS fechaBases,o.fechaJunta AS fechaJunta, o.status AS status,o.cotizado AS cotizado,o.fechaApertura AS fechaApertura,o.fechaVisita AS fechaVisita,"
                            + "o.fechaFallo AS fechaFallo,o.estado AS estado,o.municipio AS municipio,o.capital AS capital,o.ubicacionObra AS ubicacionObra,o.dependencia AS dependencia,"
                            + "o.descripcion AS descripcion,o.notas AS notas,o.numeroOportunidad AS numeroOportunidad,om.montoTotal AS montoTotal,om.clave AS clave, c.cliente AS cliente,"
                            + "om.pproductoOptimo AS precioOptimo,om.ubOptimo AS ubOptimo,om.precioProducto AS precioMinimo,om.ub AS ubMinimo,om.precioFlete AS precioFlete,"
                            + "om.pfinalOptimo AS precioFinalOptimo,om.acotizar AS acotizar,om.id AS idOM,"
                            + "om.volumen AS volumen, om.notas AS notasp,o.empleado AS empleado,o.ejecutivo AS ejecutivo, o.ultimaModificacion AS ultimaModificacion,pb.costo AS costo, "
                            + "o.planta AS planta,o.nivel AS nivel,o.clasifi AS clasifi,o.fleteTrailer AS fleteTrailer, o.fleteTorton AS fleteTorton,o.montoOportunidad AS montoOportunidad,"
                            + "o.contadorOportunidad AS contadorOportunidad,c.idCliente AS idCliente "
                            + "FROM Oportunidad o,OportunidadMaterial om,ProductoBajio pb,"
                            + "Cliente c,OportunidadParticipante op " + "WHERE "//p.clave=om.clave OR pb.clave=om.clave OR ps.clave=om.clave 
                            + "o.id=om.oportunidad AND pb.clave=om.clave AND op.cliente=c.idCliente AND op.oportunidad=o.id "
                            + "AND o.id= :id".toString())
                    .setParameter("id", id);

            System.out.println("&&- QUERY GENERADO [DATOS-COTIZACION] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans(DTO).Se adiere toString() al query
             */

            Map<String, Object> miMap = new HashMap<String, Object>();
            miMap.put("Cliente", Cliente.class);
            miMap.put("Oportunidad", Oportunidad.class);
            miMap.put("OportunidadMaterial", OportunidadMaterial.class);
            miMap.put("OportunidadParticipante", OportunidadParticipante.class);
            miMap.put("ProductoBajio", ProductoBajio.class);
            queryObject.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
            System.out.println("&&- ENVIA LISTA [DATOS-COTIZACION] -&&");

            return queryObject.list();
            //return (ArrayList<String>) queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception NULL-%-% :  " + n);
            throw n;

        } catch (HibernateException h) {
            System.out.println("%-%-Exception HIBERNATE-%-% : " + h);
            throw new RuntimeException(h);

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<String> buscaOportunidadSxId(int id) throws DAOException {
        //     List list = getHibernateTemplate().find("from Oportunidad WHERE id=?", id);
        //   return (Oportunidad) list.get(0);
        try {

            System.out.println("&&- REALIZA QUERY [DATOS-COTIZACION] -&&");
            Query queryObject = sessionFactory.getCurrentSession().createQuery(
                    "SELECT o.id AS id,o.numeroLicitacion AS numeroLicitacion, o.fechaRegistro AS fechaRegistro,"
                            + "o.fechaBases AS fechaBases,o.fechaJunta AS fechaJunta, o.status AS status,o.cotizado AS cotizado,o.fechaApertura AS fechaApertura,o.fechaVisita AS fechaVisita,"
                            + "o.fechaFallo AS fechaFallo,o.estado AS estado,o.municipio AS municipio,o.capital AS capital,o.ubicacionObra AS ubicacionObra,o.dependencia AS dependencia,"
                            + "o.descripcion AS descripcion,o.notas AS notas,o.numeroOportunidad AS numeroOportunidad,om.montoTotal AS montoTotal,om.clave AS clave, c.cliente AS cliente,"
                            + "om.pproductoOptimo AS precioOptimo,om.ubOptimo AS ubOptimo,om.precioProducto AS precioMinimo,om.ub AS ubMinimo,om.precioFlete AS precioFlete,"
                            + "om.pfinalOptimo AS precioFinalOptimo,om.acotizar AS acotizar,om.id AS idOM,"
                            + "om.volumen AS volumen, om.notas AS notasp,o.empleado AS empleado,o.ejecutivo AS ejecutivo, o.ultimaModificacion AS ultimaModificacion,ps.costo AS costo, "
                            + "o.planta AS planta,o.nivel AS nivel,o.clasifi AS clasifi,o.fleteTrailer AS fleteTrailer, o.fleteTorton AS fleteTorton,o.montoOportunidad AS montoOportunidad,"
                            + "o.contadorOportunidad AS contadorOportunidad,c.idCliente AS idCliente "
                            + "FROM Oportunidad o,OportunidadMaterial om,ProductoSureste ps,"
                            + "Cliente c,OportunidadParticipante op " + "WHERE "//p.clave=om.clave OR pb.clave=om.clave OR ps.clave=om.clave 
                            + "o.id=om.oportunidad AND ps.clave=om.clave AND op.cliente=c.idCliente AND op.oportunidad=o.id "
                            + "AND o.id= :id".toString())
                    .setParameter("id", id);

            System.out.println("&&- QUERY GENERADO [DATOS-COTIZACION] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans(DTO).Se adiere toString() al query
             */

            Map<String, Object> miMap = new HashMap<String, Object>();
            miMap.put("Cliente", Cliente.class);
            miMap.put("Oportunidad", Oportunidad.class);
            miMap.put("OportunidadMaterial", OportunidadMaterial.class);
            miMap.put("OportunidadParticipante", OportunidadParticipante.class);
            miMap.put("ProductoSureste", ProductoSureste.class);
            queryObject.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
            System.out.println("&&- ENVIA LISTA [DATOS-COTIZACION] -&&");

            return queryObject.list();
            //return (ArrayList<String>) queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception NULL-%-% :  " + n);
            throw n;

        } catch (HibernateException h) {
            System.out.println("%-%-Exception HIBERNATE-%-% : " + h);
            throw new RuntimeException(h);

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<OportunidadParticipante> participantexIdOportunidad(int idOp) throws DAOException {
        try {
            System.out.println("&&- REALIZA QUERY [PARTICIPANTE X ID OPORTUNIDAD] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT op.id AS id,c.idCliente AS idCliente,c.cliente AS cliente "
                            + "FROM Oportunidad o, Cliente c, OportunidadParticipante op "
                            + "WHERE c.idCliente=op.cliente AND o.id=op.oportunidad and o.id=:idOportunidad"
                                    .toString())
                    .setParameter("idOportunidad", idOp);
            System.out.println("&&- QUERY GENERADO [PARTICIPANTE X ID OPORTUNIDAD] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            Map<String, Object> miMap = new HashMap<String, Object>();
            miMap.put("Cliente", Cliente.class);
            miMap.put("Oportunidad", Oportunidad.class);
            miMap.put("OportunidadParticipante", OportunidadParticipante.class);
            queryObject.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
            System.out.println("&&- ENVIA LISTA [PARTICIPANTE X ID OPORTUNIDAD] FULL -&&");

            return queryObject.list();
        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<Oportunidad> ubicacionObraOportunidad() throws DAOException {//Querys con nombre y variables de las clases!
        try {

            System.out.println("&&- REALIZA QUERY [OBRA DE OPORTUNIDAD] -&&");
            Query queryObject = sessionFactory.getCurrentSession()
                    .createQuery("SELECT o.ubicacionObra AS ubicacionObra, o.numeroLicitacion AS numeroLicitacion "
                            + "FROM Oportunidad o".toString());
            System.out.println("&&- QUERY GENERADO [OBRA DE OPORTUNIDAD] -&&");
            /*
             * Convierte resultado de Query en cadena JSON, a partir del
             * toString() de los beans.Se adiere toString() al query
             */
            queryObject.setResultTransformer(Transformers.aliasToBean(Oportunidad.class));
            System.out.println("&&- ENVIA LISTA [OBRA DE OPORTUNIDAD] FULL -&&");

            return queryObject.list();

        } catch (NullPointerException n) {
            System.out.println("%-%-Exception Null-%-% :  " + n);
            throw n;

        } catch (Exception e) {
            System.out.println("%-%-Exception QUERY-%-% : " + e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<Oportunidad> listaOportunidades() throws DAOException {
        List<Oportunidad> lista = getHibernateTemplate()
                .find("select o.oportunidad as oportunidad from Oportunidad o");
        return lista;
    }

    @Override
    public void modificarOportunidad(Oportunidad oportunidad) throws DAOException {
        getHibernateTemplate().update(oportunidad);
    }

    @Override
    public void borrarOportunidad(Oportunidad oportunidad) throws DAOException {
        getHibernateTemplate().delete(oportunidad);
    }
}