package com.rjconsultores.ventaboletos.dao.hibernate; import java.util.List; import org.hibernate.Criteria; import org.hibernate.SQLQuery; import org.hibernate.SessionFactory; import org.hibernate.criterion.Restrictions; import org.hibernate.transform.AliasToBeanResultTransformer; import org.hibernate.type.IntegerType; import org.hibernate.type.StringType; import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Repository; import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaDAO; import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcada; import com.rjconsultores.ventaboletos.entidad.PuntoVentaVO; @Repository("operadorEmbarcadaDAO") @SuppressWarnings("unchecked") public class OperadorEmbarcadaHibernateDAO extends GenericHibernateDAO implements OperadorEmbarcadaDAO { private static Logger log = org.slf4j.LoggerFactory.getLogger(OperadorEmbarcadaHibernateDAO.class); @Autowired public OperadorEmbarcadaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { setSessionFactory(factory); } @Override public List buscarTodosOperadores() { start = System.currentTimeMillis(); Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); List retorno = c.list(); log.debug( printInfo("buscarOperadorEmbarcadaPorUsuario", start)); return retorno; } @Override public OperadorEmbarcada burcarOperadorPorId(Long operadorEmbarcadaID) { start = System.currentTimeMillis(); Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); c.add(Restrictions.eq("operadorEmbarcadaId", operadorEmbarcadaID)); OperadorEmbarcada retorno = (OperadorEmbarcada) c.uniqueResult(); log.debug( printInfo("burcarOperadorPorId", start)); return retorno; } @Override public OperadorEmbarcada buscarOperadorEmbarcadaPorUsuario(Integer idUsuario) { start = System.currentTimeMillis(); Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); c.add(Restrictions.eq("usuario.usuarioId", idUsuario)); OperadorEmbarcada op = (OperadorEmbarcada) c.uniqueResult(); log.debug( printInfo("buscarOperadorEmbarcadaPorUsuario", start)); return op; } @Override public PuntoVentaVO getPuntoVentaVO(Integer operador) { start = System.currentTimeMillis(); StringBuilder sb = new StringBuilder(); sb.append(" SELECT "); sb.append(" PV.PUNTOVENTA_ID AS puntoventaId, "); sb.append(" PV.NOMBPUNTOVENTA AS nombpuntoventa "); sb.append(" FROM "); sb.append(" USUARIO_UBICACION USU "); sb.append(" INNER JOIN PUNTO_VENTA PV ON USU.PUNTOVENTA_ID = PV.PUNTOVENTA_ID "); sb.append(" WHERE "); sb.append(" USU.USUARIO_ID = :usuario_id "); // sb.append(" AND PV.EMPRESA_ID = :empresa_id "); sb.append(" AND USU.ACTIVO = 1 AND PV.ACTIVO = 1 "); SQLQuery sql = getSession().createSQLQuery(sb.toString()) .addScalar("puntoventaId", IntegerType.INSTANCE) .addScalar("nombpuntoventa", StringType.INSTANCE); sql.setInteger("usuario_id", operador); // sql.setInteger("empresa_id", empresa); sql.setResultTransformer(new AliasToBeanResultTransformer(PuntoVentaVO.class)); PuntoVentaVO puntoVentaVO = (PuntoVentaVO) sql.uniqueResult(); log.debug( printInfo("getPuntoVentaVO", start)); return puntoVentaVO; } }