From 0a97e35f62acffaa7f82ac199bb77847bccf44b2 Mon Sep 17 00:00:00 2001 From: rodrigo Date: Mon, 19 Aug 2013 22:56:02 +0000 Subject: [PATCH] git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@29971 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../impl/RelatorioOrigemDestino.java | 58 ++++++++++--------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioOrigemDestino.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioOrigemDestino.java index cf4e7c313..da4e56e51 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioOrigemDestino.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioOrigemDestino.java @@ -11,7 +11,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import com.rjconsultores.ventaboletos.entidad.Corrida; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.relatorios.utilitarios.beans.PesoOperacional; @@ -32,12 +31,13 @@ public class RelatorioOrigemDestino extends Relatorio { String sql = getSQL(empresaIds, corridasIds, dataDe, dataAte, bilhetesGratuitos, trechosSemMovimento); - List lsPesoOperacionalRelatorio = getPesoOperacional(corridasIds, dataDe, dataAte); + List lsPesoOperacionalRelatorio = getPesoOperacional(corridasIds, dataDe, dataAte, bilhetesGratuitos); getParametros().put("lsPesoOperacionalRelatorio", lsPesoOperacionalRelatorio); getParametros().put("SQL", sql); } - private List getPesoOperacional(String corridasIds, String dataDe, String dataAte) throws SQLException { + private List getPesoOperacional(String corridasIds, String dataDe, String dataAte, + Boolean bilhetesGratuitos) throws SQLException { StringBuilder sql = new StringBuilder(); sql.append(" SELECT "); sql.append(" CA.CORRIDA_ID CORRIDA_ID, "); @@ -47,9 +47,17 @@ public class RelatorioOrigemDestino extends Relatorio { sql.append(" D.CVEPARADA CVE_DESTINO, "); sql.append(" D.DESCPARADA DESTINO, "); sql.append(" SUM(CA.PRECIOPAGADO) RECEITA "); - sql.append(" FROM CAJA CA INNER JOIN PARADA O ON O.PARADA_ID = CA.ORIGEN_ID "); + sql.append(" FROM CAJA CA "); + sql.append(" INNER JOIN PARADA O ON O.PARADA_ID = CA.ORIGEN_ID "); sql.append(" INNER JOIN PARADA D ON D.PARADA_ID = CA.DESTINO_ID "); - sql.append(" WHERE 1=1 "); + sql.append(" WHERE CA.ACTIVO = 1 "); + sql.append(" AND ca.indreimpresion = 0 "); + sql.append(" AND CA.PRECIOBASE IS NOT NULL "); + if (bilhetesGratuitos) { + sql.append(" AND CA.PRECIOBASE >= 0 "); + } else { + sql.append(" AND CA.PRECIOBASE > 0 "); + } if (!corridasIds.equals("Todas")) { sql.append(" AND CA.CORRIDA_ID IN (").append(corridasIds).append(")"); } @@ -71,21 +79,19 @@ public class RelatorioOrigemDestino extends Relatorio { ResultSet rset = null; rset = stmt.executeQuery(); - Map> mapPorCorridaReceitaSaida = new HashMap>(); - Map> mapPorCorridaReceitaChegada = new HashMap>(); - Map mapTotalReceitaCorrida = new HashMap(); - List lsCorridaIds = new ArrayList(); + Map> mapPorCorridaReceitaSaida = new HashMap>(); + Map> mapPorCorridaReceitaChegada = new HashMap>(); + Map mapTotalReceitaCorrida = new HashMap(); + List lsCorridaIds = new ArrayList(); while (rset.next()) { - Corrida.Id id = new Corrida.Id(); - id.setCorridaId(rset.getInt("CORRIDA_ID")); - id.setFeccorrida(rset.getDate("FECCORRIDA")); + Integer idCorrida = rset.getInt("CORRIDA_ID"); - if (!lsCorridaIds.contains(id)) { - lsCorridaIds.add(id); + if (!lsCorridaIds.contains(idCorrida)) { + lsCorridaIds.add(idCorrida); } - Map mapReceitaSaida = mapPorCorridaReceitaSaida.get(id); - Map mapReceitaChegada = mapPorCorridaReceitaChegada.get(id); + Map mapReceitaSaida = mapPorCorridaReceitaSaida.get(idCorrida); + Map mapReceitaChegada = mapPorCorridaReceitaChegada.get(idCorrida); if (mapReceitaSaida == null) { mapReceitaSaida = new HashMap(); @@ -96,12 +102,12 @@ public class RelatorioOrigemDestino extends Relatorio { } BigDecimal receita = rset.getBigDecimal("RECEITA"); - BigDecimal totalReceita = mapTotalReceitaCorrida.get(id); + BigDecimal totalReceita = mapTotalReceitaCorrida.get(idCorrida); if (totalReceita == null) { totalReceita = BigDecimal.ZERO; } totalReceita = totalReceita.add(receita); - mapTotalReceitaCorrida.put(id, totalReceita); + mapTotalReceitaCorrida.put(idCorrida, totalReceita); String cveOrigem = rset.getString("CVE_ORIGEM"); String origem = rset.getString("ORIGEM"); @@ -125,14 +131,14 @@ public class RelatorioOrigemDestino extends Relatorio { mapReceitaChegada.put(chaveDestino, receita); } - mapPorCorridaReceitaSaida.put(id, mapReceitaSaida); - mapPorCorridaReceitaChegada.put(id, mapReceitaChegada); + mapPorCorridaReceitaSaida.put(idCorrida, mapReceitaSaida); + mapPorCorridaReceitaChegada.put(idCorrida, mapReceitaChegada); } List lsPesoOperacionalRelatorio = new ArrayList(); - for (Corrida.Id id : lsCorridaIds) { - Map mapReceitaSaida = mapPorCorridaReceitaSaida.get(id); - Map mapReceitaChegada = mapPorCorridaReceitaChegada.get(id); + for (Integer idCorrida : lsCorridaIds) { + Map mapReceitaSaida = mapPorCorridaReceitaSaida.get(idCorrida); + Map mapReceitaChegada = mapPorCorridaReceitaChegada.get(idCorrida); List lsTodasParadas = new ArrayList(); for (String parada : mapReceitaChegada.keySet()) { @@ -144,7 +150,7 @@ public class RelatorioOrigemDestino extends Relatorio { } } - BigDecimal totalReceita = mapTotalReceitaCorrida.get(id); + BigDecimal totalReceita = mapTotalReceitaCorrida.get(idCorrida); for (String parada : lsTodasParadas) { BigDecimal receitaSaida = mapReceitaSaida.get(parada) == null ? BigDecimal.ZERO : mapReceitaSaida.get(parada); BigDecimal receitaChegada = mapReceitaChegada.get(parada) == null ? BigDecimal.ZERO : mapReceitaChegada.get(parada); @@ -152,8 +158,8 @@ public class RelatorioOrigemDestino extends Relatorio { BigDecimal peso = totalReceita.equals(BigDecimal.ZERO) ? BigDecimal.ZERO : soma.divide(totalReceita, 2, RoundingMode.HALF_EVEN); PesoOperacional pesoOperacional = new PesoOperacional(); - pesoOperacional.setCorridaId(id.getCorridaId()); - pesoOperacional.setFecCorrida(id.getFeccorrida()); + pesoOperacional.setCorridaId(idCorrida); + // pesoOperacional.setFecCorrida(id.getFeccorrida()); pesoOperacional.setLocalidade(parada); pesoOperacional.setReceitaSaida(receitaSaida); pesoOperacional.setReceitaChegada(receitaChegada);