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.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 { @Autowired public OperadorEmbarcadaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { setSessionFactory(factory); } @Override public List buscarTodosOperadores() { Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); return c.list(); } @Override public OperadorEmbarcada burcarOperadorPorId(Long operadorEmbarcadaID) { Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); c.add(Restrictions.eq("operadorEmbarcadaId", operadorEmbarcadaID)); return (OperadorEmbarcada) c.uniqueResult(); } @Override public OperadorEmbarcada buscarOperadorEmbarcadaPorUsuario(Integer idUsuario) { Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); c.add(Restrictions.eq("usuario.usuarioId", idUsuario)); return (OperadorEmbarcada) c.uniqueResult(); } @Override public PuntoVentaVO getPuntoVentaVO(Integer operador) { 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(); return puntoVentaVO; } }