/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.rjconsultores.ventaboletos.dao.hibernate; import com.rjconsultores.ventaboletos.dao.InformePasajeroServicioDAO; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Marca; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.Date; import java.util.Map; import org.apache.log4j.Logger; import org.springframework.stereotype.Repository; /** * * @author Administrador */ @Repository("informePasajeroServicioDAO") public class InformePasajeroServicioDAOImpl implements InformePasajeroServicioDAO { private static final Logger log = Logger.getLogger(InformePasajeroServicioDAOImpl.class); private String getSql(Empresa empresa, Marca marca, Integer numServicio, Date dataInicio, Date dataFinal) { StringBuilder sql = new StringBuilder(); sql.append(" SELECT nombpasajero, feccorrida, corrida_id, boleto_id, preciopagado, "); sql.append(" cs.descclase, pao.descparada origen, pad.descparada destino, "); sql.append(" fechorventa, pv.nombpuntoventa, ma.descmarca, bo.usuario_id, "); sql.append(" em.nombempresa "); sql.append(" FROM boleto bo "); sql.append(" INNER JOIN parada pao ON pao.parada_id = bo.origen_id "); sql.append(" INNER JOIN parada pad ON pad.parada_id = bo.destino_id "); sql.append(" INNER JOIN clase_servicio cs ON cs.claseservicio_id = bo.claseservicio_id "); sql.append(" INNER JOIN punto_venta pv ON pv.puntoventa_id = bo.puntoventa_id "); sql.append(" INNER JOIN marca ma on ma.marca_id = bo.marca_id "); sql.append(" INNER JOIN empresa em ON em.empresa_id = bo.empresacorrida_id"); sql.append(" WHERE 1=1 "); if (empresa != null) { sql.append(" AND bo.empresacorrida_id = ").append(empresa.getEmpresaId()); } if (marca != null) { sql.append(" AND bo.marca_id = ").append(marca.getMarcaId()); } if (numServicio != null) { sql.append(" AND corrida_id = ").append(numServicio); } if (dataInicio != null) { sql.append(" AND bo.fechorventa >= ? "); } if (dataFinal != null) { sql.append(" AND bo.fechorventa <= ? "); } return sql.toString(); } public ResultSet executarSQL(Connection conn, Map parameters) { Empresa empresa = (Empresa) parameters.get("empresa"); Marca marca = (Marca) parameters.get("marca"); Integer numServicio = (Integer) parameters.get("numServicio"); Date dataInicio = (Date) parameters.get("dataInicio"); Date dataFinal = (Date) parameters.get("dataFinal"); String sql = getSql(empresa, marca, numServicio, dataInicio, dataFinal); PreparedStatement stmt = null; ResultSet rset = null; try { stmt = conn.prepareStatement(sql); stmt.setDate(1, new java.sql.Date(dataInicio.getTime())); stmt.setDate(2, new java.sql.Date(dataFinal.getTime())); rset = stmt.executeQuery(); } catch (Exception ex) { log.error(ex); } return rset; } }