From 2fc9df92920da6346854dc3826544dcaacc21578 Mon Sep 17 00:00:00 2001 From: julio Date: Thu, 17 Oct 2013 21:47:37 +0000 Subject: [PATCH] Erro registro valor Conta Corrente e Resumo de Caixa git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@31567 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../RelatorioAcompanhamentoEquivalentes.java | 121 ++++++++---------- ...oAcompanhamentoEquivalentesController.java | 16 +-- web/WEB-INF/i3-label_pt_BR.label | 2 +- ...troRelatorioAcompanhamentoEquivalentes.zul | 2 +- 4 files changed, 63 insertions(+), 78 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioAcompanhamentoEquivalentes.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioAcompanhamentoEquivalentes.java index e438a0e6a..b715be2b2 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioAcompanhamentoEquivalentes.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioAcompanhamentoEquivalentes.java @@ -23,6 +23,9 @@ import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; */ public class RelatorioAcompanhamentoEquivalentes extends Relatorio { + private static final Integer CEM = Integer.valueOf(100); + private static final Integer MAX_DECIMAL = Integer.valueOf(2); + enum IndicadorRelatorio { MPE(1), RECEITA_KM(2), RECEITA_VIAGEM(3), IAP(4), PAXKM(5), ABSOLUTO(6), EQ(7); @@ -52,7 +55,6 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio { */ public RelatorioAcompanhamentoEquivalentes(Map parametros, Connection conexao) throws Exception { super(parametros, conexao); - // TODO Auto-generated constructor stub this.setCustomDataSource(new ArrayDataSource(this) { @@ -61,6 +63,7 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio { Connection conexao = this.relatorio.getConexao(); Map parametros = this.relatorio.getParametros(); String sql = getSql(); + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); if (parametros.get("EMPRESA_ID") != null) @@ -89,6 +92,8 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio { Integer rolOperativoId = this.resultSet.getInt("ROLOPERATIVO_ID"); Integer corridaId = this.resultSet.getInt("CORRIDA_ID"); + Integer assentos = this.resultSet.getInt("ASSENTOS"); + Map row = new HashMap(); BigDecimal totalMes = BigDecimal.ZERO; Integer totalDias = 0; @@ -100,7 +105,7 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio { // Roda todos os dias do mes for (int dia = 1; dia <= cal.getActualMaximum(Calendar.DATE); dia++) { - BigDecimal valor = getValorByIndicador(cal.getTime(), corridaId, rolOperativoId, (Integer) this.relatorio.getParametros().get("INDICADOR")); + BigDecimal valor = getValorByIndicador(cal.getTime(), corridaId, rolOperativoId, (Integer) this.relatorio.getParametros().get("INDICADOR"), assentos); if (valor != null) { totalMes = totalMes.add(valor); @@ -133,7 +138,7 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio { } - protected BigDecimal getValorByIndicador(Date data, Integer corridaId, Integer rolOperativoId, Integer indicador) throws SQLException { + protected BigDecimal getValorByIndicador(Date data, Integer corridaId, Integer rolOperativoId, Integer indicador, Integer assentos) throws SQLException { String sql = null; @@ -161,7 +166,7 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio { break; } - return getValorIndicador(data, corridaId, sql); + return getValorIndicador(data, corridaId, indicador, assentos, sql); } }); @@ -251,57 +256,30 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio { protected String getSqlIndicadorIap() { StringBuilder sql = new StringBuilder(); - sql.append(" SELECT (TAB1.EQUIVALENTE * TAB1.EXTENSAO_LINHA) /"); - sql.append(" (TAB1.CAPACIDADE * TAB1.EXTENSAO_LINHA) VALOR"); - sql.append(" FROM (SELECT TAB.*,"); - sql.append(" (SELECT SUM((TR.CANTKMREAL / TAB.EXTENSAO_LINHA) *"); - sql.append(" COUNT(1))"); - sql.append(" FROM CORRIDA CR,"); - sql.append(" CORRIDA_TRAMO CT,"); - sql.append(" TRAMO TR,"); - sql.append(" BOLETO BO,"); - sql.append(" CORRIDA_TRAMO CTD,"); - sql.append(" CORRIDA_TRAMO CTO"); - sql.append(" WHERE CR.CORRIDA_ID = :CORRIDA_ID"); - sql.append(" AND CR.FECCORRIDA = :FECCORRIDA"); - sql.append(" AND CT.FECCORRIDA = CR.FECCORRIDA"); - sql.append(" AND CT.CORRIDA_ID = CR.CORRIDA_ID"); - sql.append(" AND TR.TRAMO_ID = CT.TRAMO_ID"); - sql.append(" AND BO.CORRIDA_ID = CT.CORRIDA_ID"); - sql.append(" AND BO.FECCORRIDA = CT.FECCORRIDA"); - sql.append(" AND BO.ORIGEN_ID = CTO.ORIGEN_ID"); - sql.append(" AND BO.DESTINO_ID = CTD.DESTINO_ID"); - sql.append(" AND CTD.CORRIDA_ID = CT.CORRIDA_ID"); - sql.append(" AND CTD.FECCORRIDA = CT.FECCORRIDA"); - sql.append(" AND CTO.CORRIDA_ID = CT.CORRIDA_ID"); - sql.append(" AND CTO.FECCORRIDA = CT.FECCORRIDA"); - sql.append(" AND CTO.ACTIVO = 1"); - sql.append(" AND CTD.ACTIVO = 1"); - sql.append(" AND CT.NUMSECUENCIA BETWEEN CTO.NUMSECUENCIA AND"); - sql.append(" CTD.NUMSECUENCIA"); - sql.append(" AND BO.ACTIVO = 1"); - sql.append(" AND BO.INDREIMPRESION = 0"); - sql.append(" AND BO.INDSTATUSOPERACION = 'F'"); - sql.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR"); - sql.append(" BO.MOTIVOCANCELACION_ID = 0)"); - sql.append(" GROUP BY CT.TRAMO_ID, TR.CANTKMREAL) EQUIVALENTE"); - sql.append(" FROM (SELECT (SELECT SUM(TR1.CANTKMREAL)"); - sql.append(" FROM CORRIDA_TRAMO CT1, TRAMO TR1"); - sql.append(" WHERE CT1.CORRIDA_ID = :CORRIDA_ID"); - sql.append(" AND CT1.FECCORRIDA = :FECCORRIDA"); - sql.append(" AND TR1.TRAMO_ID = CT1.TRAMO_ID) EXTENSAO_LINHA,"); - sql.append(" "); - sql.append(" (SELECT DA.CANTASIENTOS"); - sql.append(" FROM CORRIDA CR,"); - sql.append(" ROL_OPERATIVO RO,"); - sql.append(" DIAGRAMA_AUTOBUS DA"); - sql.append(" WHERE CR.CORRIDA_ID = :CORRIDA_ID"); - sql.append(" AND CR.FECCORRIDA = :FECCORRIDA"); - sql.append(" AND RO.ROLOPERATIVO_ID = CR.ROLOPERATIVO_ID"); - sql.append(" AND RO.DIAGRAMAAUTOBUS_ID ="); - sql.append(" DA.DIAGRAMAAUTOBUS_ID) CAPACIDADE"); - sql.append(" "); - sql.append(" FROM DUAL) TAB) TAB1"); + sql.append(" SELECT ROUND(SUM(:CEM * (( EQUIVALENTE * EXTENSAO_LINHA ) / ( :CAPACIDADE * "); + sql.append(" EXTENSAO_LINHA ))), "); + sql.append(" :MAX_DECIMAL ) VALOR "); + sql.append(" FROM (SELECT ROUND(SUM(EQ), :MAX_DECIMAL) EQUIVALENTE, "); + sql.append(" EL EXTENSAO_LINHA "); + sql.append(" FROM (SELECT ROUND(( BO.NUMKMVIAJE * COUNT(1) / ( EXTENSAO_LINHA.EL ) "); + sql.append(" ), :MAX_DECIMAL ) "); + sql.append(" EQ, "); + sql.append(" EXTENSAO_LINHA.EL "); + sql.append(" EL "); + sql.append(" FROM BOLETO BO, "); + sql.append(" (SELECT SUM(TR1.CANTKMREAL) EL "); + sql.append(" FROM CORRIDA_TRAMO CT1, "); + sql.append(" TRAMO TR1 "); + sql.append(" WHERE CT1.CORRIDA_ID = :CORRIDA_ID "); + sql.append(" AND CT1.FECCORRIDA = :FECCORRIDA "); + sql.append(" AND TR1.TRAMO_ID = CT1.TRAMO_ID) EXTENSAO_LINHA "); + sql.append(" WHERE BO.CORRIDA_ID = :CORRIDA_ID "); + sql.append(" AND BO.FECCORRIDA = :FECCORRIDA "); + sql.append(" AND BO.ACTIVO = 1 "); + sql.append(" AND ( BO.MOTIVOCANCELACION_ID IS NULL "); + sql.append(" OR BO.MOTIVOCANCELACION_ID = 0 ) "); + sql.append(" GROUP BY BO.NUMKMVIAJE, EXTENSAO_LINHA.EL) "); + sql.append(" GROUP BY EQ, EL) "); return sql.toString(); @@ -405,22 +383,33 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio { } - protected BigDecimal getValorIndicador(Date data, Integer corridaId, String sql) throws SQLException { - - Connection conexao = this.getConexao(); + protected BigDecimal getValorIndicador(Date data, Integer corridaId, Integer indicador, Integer assentos, String sql) throws SQLException { BigDecimal retorno = null; - NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); + try { - stmt.setInt("CORRIDA_ID", corridaId); - stmt.setDate("FECCORRIDA", new java.sql.Date(data.getTime())); + Connection conexao = this.getConexao(); - ResultSet resultSet = stmt.executeQuery(); + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); - if (resultSet.next()) - retorno = resultSet.getBigDecimal("VALOR"); + stmt.setInt("CORRIDA_ID", corridaId); + stmt.setDate("FECCORRIDA", new java.sql.Date(data.getTime())); - resultSet.close(); - stmt.close(); + if (IndicadorRelatorio.fromInt(indicador).equals(IndicadorRelatorio.IAP)) { + stmt.setInt("CAPACIDADE", assentos); + stmt.setInt("CEM", CEM); + stmt.setInt("MAX_DECIMAL", MAX_DECIMAL); + } + + ResultSet resultSet = stmt.executeQuery(); + + if (resultSet.next()) + retorno = resultSet.getBigDecimal("VALOR"); + + resultSet.close(); + stmt.close(); + } catch (Exception e) { + e.printStackTrace(); + } return retorno; } diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioAcompanhamentoEquivalentesController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioAcompanhamentoEquivalentesController.java index ebb19bb94..2d7f70b19 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioAcompanhamentoEquivalentesController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioAcompanhamentoEquivalentesController.java @@ -35,9 +35,11 @@ import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; @Scope("prototype") public class RelatorioAcompanhamentoEquivalentesController extends MyGenericForwardComposer { + private static final long serialVersionUID = 1L; + @Autowired private DataSource dataSource; - + @Autowired private EmpresaService empresaService; @@ -49,8 +51,6 @@ public class RelatorioAcompanhamentoEquivalentesController extends MyGenericForw private MyComboboxEstandar cmbEmpresa; - - public void onClick$btnExecutarRelatorio(Event ev) throws Exception { executarRelatorio(); } @@ -68,7 +68,6 @@ public class RelatorioAcompanhamentoEquivalentesController extends MyGenericForw parametros.put("NOME_RELATORIO", Labels.getLabel("relatorioAcompanhamentoEquivalentesController.window.title")); parametros.put("INDICADOR", Integer.parseInt(rdGroupIndicador.getSelectedItem().getValue())); parametros.put("INDICADOR_NOME", rdGroupIndicador.getSelectedItem().getLabel()); - Comboitem itemEmpresa = cmbEmpresa.getSelectedItem(); if (itemEmpresa != null) { @@ -77,14 +76,12 @@ public class RelatorioAcompanhamentoEquivalentesController extends MyGenericForw parametros.put("EMPRESA", empresa.getNombempresa()); } - if(rdGroupServico.getSelectedItem()!= null && !rdGroupServico.getSelectedItem().getValue().equals("-1")) - parametros.put("TIPOSERVICIO_ID", Integer.parseInt(rdGroupServico.getSelectedItem().getValue())); - + if (rdGroupServico.getSelectedItem() != null && !rdGroupServico.getSelectedItem().getValue().equals("-1")) + parametros.put("TIPOSERVICIO_ID", Integer.parseInt(rdGroupServico.getSelectedItem().getValue())); relatorio = new RelatorioAcompanhamentoEquivalentes(parametros, dataSource.getConnection()); - - Map args = new HashMap(); + Map args = new HashMap(); args.put("relatorio", relatorio); openWindow("/component/reportView.zul", @@ -99,7 +96,6 @@ public class RelatorioAcompanhamentoEquivalentesController extends MyGenericForw super.doAfterCompose(comp); } - public List getLsEmpresa() { return lsEmpresa; } diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 5a7468430..1e27fc510 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -383,7 +383,7 @@ relatorioAcompanhamentoEquivalentesController.lbIndicador.value = Indicador relatorioAcompanhamentoEquivalentesController.lbIndicador.mpe.value = MPE relatorioAcompanhamentoEquivalentesController.lbIndicador.receitaKm.value = R$/Km relatorioAcompanhamentoEquivalentesController.lbIndicador.receitaViagem.value = R$/Viagem -relatorioAcompanhamentoEquivalentesController.lbIndicador.iap.value = IAP +relatorioAcompanhamentoEquivalentesController.lbIndicador.iap.value = IAP% relatorioAcompanhamentoEquivalentesController.lbIndicador.paxKm.value = Pax.KM relatorioAcompanhamentoEquivalentesController.lbIndicador.absoluto.value = Absoluto relatorioAcompanhamentoEquivalentesController.lbIndicador.eq.value = Eq diff --git a/web/gui/relatorios/filtroRelatorioAcompanhamentoEquivalentes.zul b/web/gui/relatorios/filtroRelatorioAcompanhamentoEquivalentes.zul index 7fb063e22..077e230c5 100644 --- a/web/gui/relatorios/filtroRelatorioAcompanhamentoEquivalentes.zul +++ b/web/gui/relatorios/filtroRelatorioAcompanhamentoEquivalentes.zul @@ -7,7 +7,7 @@