From e17ab02e11dcb1ec81c1878cd515b450e50106dd Mon Sep 17 00:00:00 2001 From: Julio Heredia Date: Tue, 25 Apr 2023 15:04:34 -0300 Subject: [PATCH] fixes bug#AL-2550 --- pom.xml | 2 +- .../impl/RelatorioReceitaDiariaAgencia.java | 59 ++++++++++--------- 2 files changed, 33 insertions(+), 28 deletions(-) diff --git a/pom.xml b/pom.xml index c3eebf1c0..e3a0b9a8f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 br.com.rjconsultores ventaboletosadm - 1.0.103 + 1.0.104 war diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioReceitaDiariaAgencia.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioReceitaDiariaAgencia.java index ce0a5b26c..d2982593e 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioReceitaDiariaAgencia.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioReceitaDiariaAgencia.java @@ -29,15 +29,15 @@ import com.rjconsultores.ventaboletos.utilerias.MoneyHelper; import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; /** - * @author Bruno H. G. Gouvêa + * @author Bruno H. G. Gouv�a * */ public class RelatorioReceitaDiariaAgencia extends Relatorio { private LinkedHashMap> mapCacheConfigComissao; //Mantis 16390 - //As vendas com impressão posterior não estavam sendo exibidas como prévenda pois só estavam sendo validados os tipoVendaId 18 e 39. - //Verifiquei a classe RelatorioImpressaoPosterior e adicionei os tipoVendaId faltantes de acordo com sua regra de negócio. + //As vendas com impress�o posterior n�o estavam sendo exibidas como pr�venda pois s� estavam sendo validados os tipoVendaId 18 e 39. + //Verifiquei a classe RelatorioImpressaoPosterior e adicionei os tipoVendaId faltantes de acordo com sua regra de neg�cio. private List listaTipoVentaIdPreVenda = Arrays.asList(EnumTipoVenda.TPV_CENTRAL_TELEFONICA.getId(), EnumTipoVenda.TPV_POR_INTERNET.getId(), EnumTipoVenda.TPV_BOLETO_REMOTO.getId(), @@ -171,13 +171,13 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { public void setRowComissao(LinkedHashMap rowOrigem) throws Exception { LinkedHashMap rowDestino = rowOrigem; - // Busca as configurações de comissão + // Busca as configura��es de comiss�o LinkedHashMap configComissao = getConfigComissao((Integer) rowOrigem.get("PUNTOVENTA_ID"), (Integer) rowOrigem.get("EMPRESAPUNTOVENTA_ID")); if (configComissao == null) { return; } - // Verifica se existe agência de destino da comissão e atualiza a row se necessario + // Verifica se existe ag�ncia de destino da comiss�o e atualiza a row se necessario if ((Integer) configComissao.get("PUNTOVENTA_ID") != 0 && !((Integer) configComissao.get("PUNTOVENTA_ID")).equals(this.resultSet.getInt("PUNTOVENTA_ID"))) rowDestino = this.getRow((Integer) configComissao.get("PUNTOVENTA_ID"), (Integer) rowOrigem.get("EMPRESA_ID"), null); @@ -203,7 +203,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { BigDecimal valorComissaoSeguro = BigDecimal.ZERO; boolean isSeguroObrigatorioReceitaBPR = (Boolean) configComissao.get("SEGURORECEITA") || (Boolean) configComissao.get("SEGURO_DEV"); - // Defini a base de calculo da comissão + // Defini a base de calculo da comiss�o if (motivoCancelacionId == null) { if ((Boolean) configComissao.get("TARIFARECEITA") && this.resultSet.getBigDecimal("PRECIOPAGADO") != null) baseCalculo = baseCalculo.add(this.resultSet.getBigDecimal("PRECIOPAGADO") ); @@ -240,14 +240,20 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { } } - } - - // Caso esteje setado na configuração de comissão que o calculo deve ser sobre o liquido, deduz o imposto. + } + + BigDecimal imposto = getValorImposto(this.resultSet.getInt("ORIGEM_ESTADO_ID"), + this.resultSet.getInt("EMPRESA_ID"), this.resultSet.getString("INTERESTADUAL"), + this.resultSet.getBigDecimal("PRECIOPAGADO"), this.resultSet.getBigDecimal("IMPORTESEGURO"), + this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE"), + this.resultSet.getBigDecimal("IMPORTEPEDAGIO"), BigDecimal.ZERO); + + // Caso esteje setado na configura��o de comiss�o que o calculo deve ser sobre o liquido, deduz o imposto. if (configComissao.get("RECEITA") != null && ((String) configComissao.get("RECEITA")).equals("RL") && (!tipoVentaId.equals(18) || (tipoVentaId.equals(18) && (Boolean) this.relatorio.getParametros().get("B_CONTEMPLAR_GAP"))) && - rowOrigem.get("IMPOSTOS") != null) { - baseCalculo = baseCalculo.subtract((BigDecimal) rowOrigem.get("IMPOSTOS")); - baseCalculoSeguro = baseCalculoSeguro.subtract((BigDecimal) rowOrigem.get("IMPOSTOS")); + imposto != null) { + baseCalculo = baseCalculo.subtract(imposto); + baseCalculoSeguro = baseCalculoSeguro.subtract(imposto); } if (MoneyHelper.isMenorIgual(baseCalculo, BigDecimal.ZERO) && MoneyHelper.isMenorIgual(baseCalculoSeguro, BigDecimal.ZERO)) { @@ -299,7 +305,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { rowDestino.put("VALOR_COMISSAO", ((BigDecimal) rowDestino.get("VALOR_COMISSAO")).add(valorComissao).add(valorComissaoSeguro)); - // Se a agencia de destino não estiver na listagem, finaliza o preenchimento do map e adiciona na listagem + // Se a agencia de destino n�o estiver na listagem, finaliza o preenchimento do map e adiciona na listagem if (!mapDados.containsKey(puntoVentaId)) { rowDestino.put("PUNTOVENTA_ID", configComissao.get("PUNTOVENTA_ID")); @@ -363,14 +369,14 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { row.put("GRUPO_RUTA", " ----- "); } - // Como a receita de bagagem é obtida por agencia, já calcula o valor + // Como a receita de bagagem � obtida por agencia, j� calcula o valor if (!(Boolean) this.relatorio.getParametros().get("B_EXCLUI_BAGAGEM")) { BigDecimal receitaBagagem = getValorReceitaBagagem(puntoVentaId, empresaId); try { row.put("IMPOSTOS", getValorImposto(rs.getInt("ORIGEM_ESTADO_ID"), rs.getInt("EMPRESA_ID"), rs.getString("INTERESTADUAL"), BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, receitaBagagem)); } catch (Exception e) { - // Este erro não é tratado pois existem demais pontos no relatorio que fazem esta chamada com os mesmos parametros e fazer o tratamento correto. + // Este erro n�o � tratado pois existem demais pontos no relatorio que fazem esta chamada com os mesmos parametros e fazer o tratamento correto. } row.put("RECEITA_BAGAGEM", receitaBagagem); @@ -404,7 +410,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { boolean preVenda = isTipoVentaIdPreVenda(tipoVentaId); if ((Boolean) getParametros().get("TRANSFERENCIA_PASSAGENS")) { - // Utiliza o -1 para retirar as transferências + // Utiliza o -1 para retirar as transfer�ncias row.put("TOTAL_BILHETES", ((BigDecimal) row.get("TOTAL_BILHETES")).add(motivoCancelacionId == 23 ? new BigDecimal(-1) : motivoCancelacionId == 0 && !preVenda ? BigDecimal.ONE : BigDecimal.ZERO)); } else { row.put("TOTAL_BILHETES", ((BigDecimal) row.get("TOTAL_BILHETES")).add(motivoCancelacionId == 0 && !preVenda ? BigDecimal.ONE : BigDecimal.ZERO)); @@ -415,7 +421,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { // Aumenta receita - // Não se trate de cancelamento e não seja uma impressão de pré venda + // N�o se trate de cancelamento e n�o seja uma impress�o de pr� venda if (motivoCancelacionId == 0 && !((tipoVentaId.equals(18) && this.resultSet.getInt("INDREIMPRESION") == 1))) { /*row.put("RECEITA_TARIFA", ((BigDecimal) row.get("RECEITA_TARIFA")).add(!tipoVentaId.equals(18) && !tipoVentaId.equals(39) ? this.resultSet.getBigDecimal("PRECIOPAGADO") : BigDecimal.ZERO)); @@ -429,13 +435,13 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { 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 + // 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);*/ //Mantis 16390 - //As vendas com impressão posterior não estavam sendo exibidas como prévenda pois só estavam sendo validados os tipoVendaId 18 e 39. - //Verifiquei a classe RelatorioImpressaoPosterior e adicionei os tipoVendaId faltantes de acordo com sua regra de negócio. + //As vendas com impress�o posterior n�o estavam sendo exibidas como pr�venda pois s� estavam sendo validados os tipoVendaId 18 e 39. + //Verifiquei a classe RelatorioImpressaoPosterior e adicionei os tipoVendaId faltantes de acordo com sua regra de neg�cio. row.put("RECEITA_TARIFA", ((BigDecimal) row.get("RECEITA_TARIFA")).add(!preVenda ? this.resultSet.getBigDecimal("PRECIOPAGADO") : BigDecimal.ZERO)); row.put("RECEITA_TARIFA_GAP", ((BigDecimal) row.get("RECEITA_TARIFA_GAP")).add(preVenda ? this.resultSet.getBigDecimal("PRECIOPAGADO") : BigDecimal.ZERO)); @@ -448,7 +454,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { row.put("RECEITA_PEDAGIO", ((BigDecimal) row.get("RECEITA_PEDAGIO")).add(!preVenda && this.resultSet.getBigDecimal("IMPORTEPEDAGIO") != null ? this.resultSet.getBigDecimal("IMPORTEPEDAGIO") : BigDecimal.ZERO)); row.put("RECEITA_PEDAGIO_GAP", ((BigDecimal) row.get("RECEITA_PEDAGIO_GAP")).add(preVenda && 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 + // 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) && (!preVenda || (preVenda && (Boolean) this.relatorio.getParametros().get("B_CONTEMPLAR_GAP")))) this.setRowComissao(row); } @@ -461,7 +467,6 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { // 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 e transferencias @@ -479,8 +484,8 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { 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));*/ //Mantis 16390 - //As vendas com impressão posterior não estavam sendo exibidas como prévenda pois só estavam sendo validados os tipoVendaId 18 e 39. - //Verifiquei a classe RelatorioImpressaoPosterior e adicionei os tipoVendaId faltantes de acordo com sua regra de negócio. + //As vendas com impress�o posterior n�o estavam sendo exibidas como pr�venda pois s� estavam sendo validados os tipoVendaId 18 e 39. + //Verifiquei a classe RelatorioImpressaoPosterior e adicionei os tipoVendaId faltantes de acordo com sua regra de neg�cio. row.put("RECEITA_TARIFA", ((BigDecimal) row.get("RECEITA_TARIFA")).subtract(!preVenda ? this.resultSet.getBigDecimal("PRECIOPAGADO") : BigDecimal.ZERO)); row.put("RECEITA_TARIFA_GAP", ((BigDecimal) row.get("RECEITA_TARIFA_GAP")).subtract(preVenda ? this.resultSet.getBigDecimal("PRECIOPAGADO") : BigDecimal.ZERO)); @@ -493,10 +498,10 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { row.put("RECEITA_PEDAGIO", ((BigDecimal) row.get("RECEITA_PEDAGIO")).subtract(!preVenda && this.resultSet.getBigDecimal("IMPORTEPEDAGIO") != null ? this.resultSet.getBigDecimal("IMPORTEPEDAGIO") : BigDecimal.ZERO)); row.put("RECEITA_PEDAGIO_GAP", ((BigDecimal) row.get("RECEITA_PEDAGIO_GAP")).subtract(preVenda && this.resultSet.getBigDecimal("IMPORTEPEDAGIO") != null ? this.resultSet.getBigDecimal("IMPORTEPEDAGIO") : BigDecimal.ZERO)); } - // Aumenta devolução + // Aumenta devolu��o if (motivoCancelacionId == 32) { - // Verificia se a devolução é pra ser contabilizada na agência de destino ou de origem da venda + // Verificia se a devolu��o � pra ser contabilizada na ag�ncia de destino ou de origem da venda // if (((Integer) this.relatorio.getParametros().get("ISDEVOLUCAODESTINO") == 1) || (((Integer) this.relatorio.getParametros().get("ISDEVOLUCAODESTINO")).equals(0) && this.resultSet.getInt("POSSUI_CANC") == 1)) { row.put("TOTAL_DEVOL", ((BigDecimal) row.get("TOTAL_DEVOL")).add(!(tipoVentaId.equals(18) || tipoVentaId.equals(5))? this.resultSet.getBigDecimal("PRECIOPAGADO").add(this.resultSet.getBigDecimal("IMPORTESEGURO") != null ? this.resultSet.getBigDecimal("IMPORTESEGURO") : BigDecimal.ZERO).add(this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE") != null ? this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE") : BigDecimal.ZERO).add(this.resultSet.getBigDecimal("IMPORTEPEDAGIO") != null ? this.resultSet.getBigDecimal("IMPORTEPEDAGIO") : BigDecimal.ZERO).add(this.resultSet.getBigDecimal("IMPORTEOUTROS") != null ? this.resultSet.getBigDecimal("IMPORTEOUTROS") : BigDecimal.ZERO) : BigDecimal.ZERO)); row.put("TOTAL_DEVOL_GAP", ((BigDecimal) row.get("TOTAL_DEVOL_GAP")).add(tipoVentaId.equals(18) || tipoVentaId.equals(5) ? this.resultSet.getBigDecimal("PRECIOPAGADO").add(this.resultSet.getBigDecimal("IMPORTESEGURO") != null ? this.resultSet.getBigDecimal("IMPORTESEGURO") : BigDecimal.ZERO).add(this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE") != null ? this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE") : BigDecimal.ZERO).add(this.resultSet.getBigDecimal("IMPORTEPEDAGIO") != null ? this.resultSet.getBigDecimal("IMPORTEPEDAGIO") : BigDecimal.ZERO).add(this.resultSet.getBigDecimal("IMPORTEOUTROS") != null ? this.resultSet.getBigDecimal("IMPORTEOUTROS") : BigDecimal.ZERO) : BigDecimal.ZERO)); @@ -524,7 +529,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { LinkedHashMap cacheConfig = null; - // Verifica se já existe configuração na memoria, caso não exista, realiza busca no banco + // Verifica se j� existe configura��o na memoria, caso n�o exista, realiza busca no banco if (!mapCacheConfigComissao.containsKey(puntoVentaId.toString() + "_" + empresaId.toString())) { StringBuilder sql = new StringBuilder();