diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioReceitaDiariaAgencia.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioReceitaDiariaAgencia.java index bc3da5b74..ad9f25d9c 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioReceitaDiariaAgencia.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioReceitaDiariaAgencia.java @@ -315,7 +315,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { row.put("RECEITA_OUTROS_GAP", ((BigDecimal) row.get("RECEITA_OUTROS_GAP")).add((tipoVentaId.equals(18) || tipoVentaId.equals(39)) && this.resultSet.getBigDecimal("IMPORTEOUTROS") != null ? this.resultSet.getBigDecimal("IMPORTEOUTROS") : BigDecimal.ZERO)); row.put("RECEITA_PEDAGIO", ((BigDecimal) row.get("RECEITA_PEDAGIO")).add(!tipoVentaId.equals(18) && !tipoVentaId.equals(39) && this.resultSet.getBigDecimal("IMPORTEPEDAGIO") != null ? this.resultSet.getBigDecimal("IMPORTEPEDAGIO") : BigDecimal.ZERO)); row.put("RECEITA_PEDAGIO_GAP", ((BigDecimal) row.get("RECEITA_PEDAGIO_GAP")).add((tipoVentaId.equals(18) || tipoVentaId.equals(39)) && this.resultSet.getBigDecimal("IMPORTEPEDAGIO") != null ? this.resultSet.getBigDecimal("IMPORTEPEDAGIO") : BigDecimal.ZERO)); - + // Realiza os calculos de comissão se o tipo de venda não for "EM ABERTO" e se for venda normal, ou se for GAP e o check estiver marcado if (!tipoVentaId.equals(9) && ((!tipoVentaId.equals(18) && !tipoVentaId.equals(39)) || ((tipoVentaId.equals(18) || tipoVentaId.equals(39)) && (Boolean) this.relatorio.getParametros().get("B_CONTEMPLAR_GAP")))) this.setRowComissao(row); @@ -325,11 +325,11 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { if ((motivoCancelacionId == 0 && tipoVentaId != 18) || ((tipoVentaId == 18 && this.resultSet.getInt("INDREIMPRESION") == 1))) { row.put("IMPOSTOS", ((BigDecimal) row.get("IMPOSTOS")).add(getValorImposto(idEstado, empresaId, this.resultSet.getString("INTERESTADUAL"), this.resultSet.getBigDecimal("PRECIOPAGADO"), this.resultSet.getBigDecimal("IMPORTESEGURO"), this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE"), this.resultSet.getBigDecimal("IMPORTEPEDAGIO"), BigDecimal.ZERO))); } - - //Deduz imposto - if(( tipoVentaId != 18 && motivoCancelacionId != 0 ) || (tipoVentaId == 18 && this.resultSet.getInt("INDREIMPRESION") == 1 && this.resultSet.getInt("POSSUI_CANC") == 1 )){ - row.put("IMPOSTOS", ((BigDecimal) row.get("IMPOSTOS")).subtract( getValorImposto(idEstado, empresaId, this.resultSet.getString("INTERESTADUAL"), this.resultSet.getBigDecimal("PRECIOPAGADO"), this.resultSet.getBigDecimal("IMPORTESEGURO"), this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE"), this.resultSet.getBigDecimal("IMPORTEPEDAGIO"), BigDecimal.ZERO))); - + + // Deduz imposto + if ((tipoVentaId != 18 && motivoCancelacionId != 0) || (tipoVentaId == 18 && this.resultSet.getInt("INDREIMPRESION") == 1 && this.resultSet.getInt("POSSUI_CANC") == 1)) { + row.put("IMPOSTOS", ((BigDecimal) row.get("IMPOSTOS")).subtract(getValorImposto(idEstado, empresaId, this.resultSet.getString("INTERESTADUAL"), this.resultSet.getBigDecimal("PRECIOPAGADO"), this.resultSet.getBigDecimal("IMPORTESEGURO"), this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE"), this.resultSet.getBigDecimal("IMPORTEPEDAGIO"), BigDecimal.ZERO))); + } // Deduz os cancelamentos e trocas @@ -345,7 +345,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { row.put("RECEITA_OUTROS_GAP", ((BigDecimal) row.get("RECEITA_OUTROS_GAP")).subtract((tipoVentaId.equals(18) || tipoVentaId.equals(39)) && this.resultSet.getBigDecimal("IMPORTEOUTROS") != null ? this.resultSet.getBigDecimal("IMPORTEOUTROS") : BigDecimal.ZERO)); row.put("RECEITA_PEDAGIO", ((BigDecimal) row.get("RECEITA_PEDAGIO")).subtract(!tipoVentaId.equals(18) && !tipoVentaId.equals(39) && this.resultSet.getBigDecimal("IMPORTEPEDAGIO") != null ? this.resultSet.getBigDecimal("IMPORTEPEDAGIO") : BigDecimal.ZERO)); row.put("RECEITA_PEDAGIO_GAP", ((BigDecimal) row.get("RECEITA_PEDAGIO_GAP")).subtract((tipoVentaId.equals(18) || tipoVentaId.equals(39)) && this.resultSet.getBigDecimal("IMPORTEPEDAGIO") != null ? this.resultSet.getBigDecimal("IMPORTEPEDAGIO") : BigDecimal.ZERO)); - + } // Aumenta devolução if (motivoCancelacionId == 32) { @@ -498,8 +498,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { Boolean indBaseEmbarque = (tipoBaseCalculo == 1 || tipoBaseCalculo == 4 ? true : false); Boolean indBasePedagio = (tipoBaseCalculo == 1 || tipoBaseCalculo == 5 ? true : false); Boolean indBaseBagagem = (tipoBaseCalculo == 1 || tipoBaseCalculo == 6 ? true : false); - System.out.println("Valores:"); - System.out.println(tarifa+" - "+ seguro+" - "+ embarque+" - "+ pedagio+" - "+ bagagem); + return CalculoImposto.getValorImpostoRelatorioReceitaDiaria(this.getConexao(), estadoId, empresaId, indInterestadual, tarifa, seguro, embarque, pedagio, bagagem, indBaseTarifa, indBaseSeguro, indBaseEmbarque, indBasePedagio, indBaseBagagem); } catch (Exception e) { if (e instanceof ExceptionConfiguracao) diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioTaxasLinha.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioTaxasLinha.java index 3c352b1b3..8990bc611 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioTaxasLinha.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioTaxasLinha.java @@ -5,13 +5,14 @@ package com.rjconsultores.ventaboletos.relatorios.impl; import java.math.BigDecimal; import java.sql.Connection; +import java.sql.ResultSet; import java.sql.Timestamp; import java.util.Date; import java.util.HashMap; import java.util.Map; import com.rjconsultores.ventaboletos.relatorios.negocio.CalculoImposto; -import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; import com.rjconsultores.ventaboletos.relatorios.utilitarios.ExceptionConfiguracao; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.utilerias.DateUtil; @@ -32,7 +33,7 @@ public class RelatorioTaxasLinha extends Relatorio { super(parametros, conexao); CalculoImposto.limpaCache(); - this.setCustomDataSource(new DataSource(this) { + this.setCustomDataSource(new ArrayDataSource(this) { public void initDados() throws Exception { Connection conexao = this.relatorio.getConexao(); @@ -62,7 +63,35 @@ public class RelatorioTaxasLinha extends Relatorio { else stmt.setNull("DESTINO_ID", java.sql.Types.INTEGER); - this.resultSet = stmt.executeQuery(); + ResultSet rset = stmt.executeQuery(); + + while (rset.next()) { + + Map dataResult = new HashMap(); + + dataResult.put("PREFIXO", rset.getString("PREFIXO")); + dataResult.put("CIDADE_ORIGEM", rset.getString("CIDADE_ORIGEM")); + dataResult.put("CIDADE_DESTINO", rset.getString("CIDADE_DESTINO")); + dataResult.put("IMPORTETAXAEMBARQUE", rset.getBigDecimal("IMPORTETAXAEMBARQUE")); + dataResult.put("IMPORTEPEDAGIO", rset.getBigDecimal("IMPORTEPEDAGIO")); + dataResult.put("IMPORTESEGURO", rset.getBigDecimal("IMPORTESEGURO")); + dataResult.put("NOMBEMPRESA", rset.getString("NOMBEMPRESA")); + dataResult.put("NOMBPUNTOVENTA", rset.getString("NOMBPUNTOVENTA")); + dataResult.put("EMBARQUE_VENDIDOS", rset.getBigDecimal("EMBARQUE_VENDIDOS")); + dataResult.put("PEDAGIO_VENDIDOS", rset.getBigDecimal("PEDAGIO_VENDIDOS")); + dataResult.put("SEGURO_VENDIDOS", rset.getBigDecimal("SEGURO_VENDIDOS")); + dataResult.put("ORIGEM_ESTADO_ID", rset.getInt("ORIGEM_ESTADO_ID")); + dataResult.put("DESTINO_ESTADO_ID", rset.getInt("DESTINO_ESTADO_ID")); + dataResult.put("INTERESTADUAL", rset.getString("INTERESTADUAL")); + dataResult.put("TOTAL_EMBARQUE", rset.getBigDecimal("TOTAL_EMBARQUE")); + dataResult.put("TOTAL_PEDAGIO", rset.getBigDecimal("TOTAL_PEDAGIO")); + dataResult.put("TOTAL_SEGURO", rset.getBigDecimal("TOTAL_SEGURO")); + + this.dados.add(dataResult); + } + + this.resultSet = rset; + } public Object valueCustomFields(String fieldName) throws Exception { @@ -72,7 +101,6 @@ public class RelatorioTaxasLinha extends Relatorio { BigDecimal valorIcms = BigDecimal.ZERO; String indInterestadual = this.resultSet.getString("INTERESTADUAL"); Integer idEstado = this.resultSet.getInt("ORIGEM_ESTADO_ID"); - try { if (fieldName.equals("IMPORTETAXAEMBARQUE") && this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE") != null && !this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE").equals(BigDecimal.ZERO)) { @@ -208,7 +236,7 @@ public class RelatorioTaxasLinha extends Relatorio { sql.append(" EM.EMPRESA_ID, "); sql.append(" CJ.PUNTOVENTA_ID, "); sql.append(" PV.NOMBPUNTOVENTA "); - sql.append(" ORDER BY EM.NOMBEMPRESA, PO.DESCPARADA "); + sql.append(" ORDER BY EM.NOMBEMPRESA, PO.DESCPARADA, PD.DESCPARADA, PV.NOMBPUNTOVENTA "); return sql.toString(); } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ArrayDataSource.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ArrayDataSource.java index 1af484552..896c68ee2 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ArrayDataSource.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ArrayDataSource.java @@ -8,6 +8,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +import org.apache.log4j.Logger; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JRField; @@ -18,10 +19,11 @@ import net.sf.jasperreports.engine.JRField; */ public class ArrayDataSource implements IDataSource { + private static Logger log = Logger.getLogger(ArrayDataSource.class); + protected Relatorio relatorio; protected ResultSet resultSet; private Integer rowNum; - protected List> dados; public ArrayDataSource(Relatorio relatorio) throws Exception { @@ -36,18 +38,24 @@ public class ArrayDataSource implements IDataSource { try { Object valueCustomField = this.valueCustomFields(field.getName()); - + return (valueCustomField != null) ? valueCustomField : getByName(field.getName()); } catch (Exception e) { - e.printStackTrace(); + log.error("", e); throw new JRException(e); - + } } - - protected Object getByName(String name){ - return this.dados.get(this.rowNum).get(name); + + protected Object getByName(String name) { + + try { + return this.dados.get(this.rowNum).get(name); + } catch (Exception e) { + log.error("", e); + } + return null; } /* @@ -58,9 +66,13 @@ public class ArrayDataSource implements IDataSource { @Override public boolean next() { - this.rowNum++; - if ( this.dados != null && this.rowNum < this.dados.size()) { - return true; + try { + this.rowNum++; + if (this.dados != null && this.rowNum < this.dados.size()) { + return true; + } + } catch (Exception e) { + log.error("", e); } return false; @@ -77,7 +89,6 @@ public class ArrayDataSource implements IDataSource { * * @see com.rjconsultores.ventaboletos.relatorios.utilitarios.IDataSource#valueCustomFields(java.lang.String) */ - @Override public Object valueCustomFields(String fieldName) throws Exception { // TODO Auto-generated method stub return null; diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/DataSource.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/DataSource.java index af2180c38..d41c0c98c 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/DataSource.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/DataSource.java @@ -9,12 +9,16 @@ import java.sql.SQLException; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JRField; +import org.apache.log4j.Logger; + /** * @author Bruno H. G. Gouvêa * */ public class DataSource implements IDataSource { + private static Logger log = Logger.getLogger(DataSource.class); + protected Relatorio relatorio; protected ResultSet resultSet; protected Integer rowNum; @@ -28,11 +32,9 @@ public class DataSource implements IDataSource { @Override public Object getFieldValue(JRField field) throws JRException { try { - Object valueCustomField = this.valueCustomFields(field.getName()); - - return (valueCustomField != null) ? valueCustomField : this.resultSet.getObject(field.getName()); + return this.resultSet.getObject(field.getName()); } catch (Exception e) { - e.printStackTrace(); + log.error("", e); throw new JRException(e); } @@ -49,6 +51,7 @@ public class DataSource implements IDataSource { this.rowNum++; return this.resultSet != null && this.resultSet.next(); } catch (SQLException e) { + log.error("", e); return false; } } @@ -58,13 +61,4 @@ public class DataSource implements IDataSource { } - /* - * (non-Javadoc) - * - * @see com.rjconsultores.ventaboletos.relatorios.utilitarios.IDataSource#valueCustomFields(java.lang.String) - */ - @Override - public Object valueCustomFields(String fieldName) throws Exception { - return null; - } } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/IDataSource.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/IDataSource.java index a7621f1bb..bff97c3ca 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/IDataSource.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/IDataSource.java @@ -1,6 +1,5 @@ package com.rjconsultores.ventaboletos.relatorios.utilitarios; - import net.sf.jasperreports.engine.JRDataSource; /** @@ -12,6 +11,5 @@ import net.sf.jasperreports.engine.JRDataSource; public interface IDataSource extends JRDataSource { public void initDados() throws Exception; - - public Object valueCustomFields(String fieldName) throws Exception; + } \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/Relatorio.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/Relatorio.java index 59bd02bf3..89d408985 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/Relatorio.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/Relatorio.java @@ -1,32 +1,26 @@ package com.rjconsultores.ventaboletos.relatorios.utilitarios; import java.sql.Connection; +import java.sql.SQLException; import java.util.HashSet; import java.util.Map; import java.util.Set; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; +import org.apache.log4j.Logger; + import com.rjconsultores.ventaboletos.relatorios.render.RenderRelatorioJasper; -/** - * - * Enum complexo contendo as configurações dos relatórios disponíveis no sistema. - * - * @author Bruno H. G. Gouvêa - * - */ /** * @author Bruno H. G. Gouvêa * */ public abstract class Relatorio { - /* - * RELATORIO_APROVEITAMENTO(1, "RelatorioAproveitamento", "Relatório de Aproveitamento",new RendimentoParamsImpl(), null); RELATORIO_RECEITA_DIARIA_AGENCIA(2, "RelatorioReceitaDiariaAgencia", "Relatório de Receita Diária por Agência", null, null), RELATORIO_EXEMPLO(99, "ExemploFoo", "Relatório Foo", null, null); - */ - private Connection conexao; + private static Logger log = Logger.getLogger(Relatorio.class); + private Connection conexao; private Map parametros; protected RenderRelatorioJasper render; private IDataSource customDataSource; @@ -87,6 +81,13 @@ public abstract class Relatorio { */ public void setCustomDataSource(IDataSource iDataSource) { this.customDataSource = iDataSource; + + try { + if (!this.conexao.isClosed()) + this.conexao.close(); + } catch (SQLException e) { + log.error("Erro ao fechar a conexion", e); + } } public IParametros getProcessadorParametros() { @@ -108,7 +109,7 @@ public abstract class Relatorio { byte[] conteudo = null; try { - if (this.render == null){ + if (this.render == null) { this.processaParametros(); this.render = new RenderRelatorioJasper(this); } diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioReceitaDiariaAgenciaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioReceitaDiariaAgenciaController.java index 6934a8df8..62638171f 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioReceitaDiariaAgenciaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioReceitaDiariaAgenciaController.java @@ -4,7 +4,6 @@ */ package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; -import java.sql.Connection; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -341,19 +340,7 @@ public class RelatorioReceitaDiariaAgenciaController extends MyGenericForwardCom parametros.put("FILTROS", filtro.toString()); - Connection conexao = null; - Relatorio relatorio = null; - try { - conexao = dataSource.getConnection(); - relatorio = new RelatorioReceitaDiariaAgencia(parametros, conexao); - } catch (Exception e) { - if (!conexao.isClosed()) - conexao.close(); - throw e; - } finally { - if (!conexao.isClosed()) - conexao.close(); - } + Relatorio relatorio = new RelatorioReceitaDiariaAgencia(parametros, dataSource.getConnection()); Map args = new HashMap(); args.put("relatorio", relatorio);