From fe224ee4a986b3a5dedfe426a3571fd7f8ac1abb Mon Sep 17 00:00:00 2001 From: wilian Date: Thu, 18 Mar 2021 14:51:47 +0000 Subject: [PATCH] fixes bug#21515 dev:wallace qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@105818 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../impl/RelatorioReceitaDiariaAgencia.java | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioReceitaDiariaAgencia.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioReceitaDiariaAgencia.java index ecc01356d..16ea9d94a 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioReceitaDiariaAgencia.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioReceitaDiariaAgencia.java @@ -178,37 +178,41 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { BigDecimal percComissao = BigDecimal.ZERO; BigDecimal issComissao = configComissao.get("ISSRETIDO") != null ? (BigDecimal) configComissao.get("ISSRETIDO") : BigDecimal.ZERO; BigDecimal royatilesComissao = configComissao.get("ROYALTIES") != null ? (BigDecimal) configComissao.get("ROYALTIES") : BigDecimal.ZERO; + + BigDecimal baseCalculoSeguro = BigDecimal.ZERO; + BigDecimal percComissaoSeguro = BigDecimal.ZERO; + BigDecimal valorComissaoSeguro = BigDecimal.ZERO; // 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") ); if ((Boolean) configComissao.get("SEGURORECEITA") && this.resultSet.getBigDecimal("IMPORTESEGURO") != null) - baseCalculo = baseCalculo.add(this.resultSet.getBigDecimal("IMPORTESEGURO")); + baseCalculoSeguro = baseCalculoSeguro.add(this.resultSet.getBigDecimal("IMPORTESEGURO")); if ((Boolean) configComissao.get("TAXARECEITA") && this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE") != null) baseCalculo = baseCalculo.add(this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE")); if ((Boolean) configComissao.get("PEDAGIORECEITA") && this.resultSet.getBigDecimal("IMPORTEPEDAGIO") != null) baseCalculo = baseCalculo.add(this.resultSet.getBigDecimal("IMPORTEPEDAGIO")); - - // 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")); - - } - else { + } else { if ((Boolean) configComissao.get("TARIFADEV") && this.resultSet.getBigDecimal("PRECIOPAGADO") != null) baseCalculo = baseCalculo.add(this.resultSet.getBigDecimal("PRECIOPAGADO")); if ((Boolean) configComissao.get("SEGURO_DEV") && this.resultSet.getBigDecimal("IMPORTESEGURO") != null) - baseCalculo = baseCalculo.add(this.resultSet.getBigDecimal("IMPORTESEGURO")); + baseCalculoSeguro = baseCalculoSeguro.add(this.resultSet.getBigDecimal("IMPORTESEGURO")); if ((Boolean) configComissao.get("TAXADEV") && this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE") != null) baseCalculo = baseCalculo.add(this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE")); if ((Boolean) configComissao.get("PEDAGIODEV") && this.resultSet.getBigDecimal("IMPORTEPEDAGIO") != null) baseCalculo = baseCalculo.add(this.resultSet.getBigDecimal("IMPORTEPEDAGIO")); } + + // 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")); + } - if (BigDecimal.ZERO.equals(baseCalculo) || BigDecimal.ZERO.compareTo(baseCalculo) >= 0) { + if (MoneyHelper.isMenorIgual(baseCalculo, BigDecimal.ZERO) && MoneyHelper.isMenorIgual(baseCalculoSeguro, BigDecimal.ZERO)) { return; } @@ -227,25 +231,29 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { } percComissao = isAltaTemporada ? (BigDecimal) configComissao.get("PASSAGEMALTA") : (BigDecimal) configComissao.get("PASSAGEMBAIXA"); + percComissaoSeguro = isAltaTemporada ? (BigDecimal) configComissao.get("SEGUROOBRIGATORIOALTA") : (BigDecimal) configComissao.get("SEGUROOBRIGATORIOBAIXA"); - if (percComissao == null) + if (percComissao == null && percComissaoSeguro == null) return; // VALOR COMISSAO = BASE DE CALCULO * (PERCENTUAL COMISSAO / 100) valorComissao = baseCalculo.multiply(MoneyHelper.dividir(percComissao, MoneyHelper.HUNDRED, 4)); + valorComissaoSeguro = baseCalculoSeguro.multiply(MoneyHelper.dividir(percComissaoSeguro, MoneyHelper.HUNDRED, 4)); // Deduz o ISS: VALOR COMISSAO = VALOR COMISSAO * (PERCENTUAL ISS / 100) - 1 if (issComissao != null && !issComissao.equals(BigDecimal.ZERO)) { BigDecimal fator = BigDecimal.ONE.subtract(MoneyHelper.dividir(issComissao, MoneyHelper.HUNDRED, 4)); valorComissao = valorComissao.multiply(fator); + valorComissaoSeguro = valorComissaoSeguro.multiply(fator); } // Deduz os royatiles if (royatilesComissao != null && !royatilesComissao.equals(BigDecimal.ZERO)) { BigDecimal fator = BigDecimal.ONE.subtract(MoneyHelper.dividir(royatilesComissao, MoneyHelper.HUNDRED, 4)); valorComissao = valorComissao.multiply(fator); + valorComissaoSeguro = valorComissaoSeguro.multiply(fator); } - rowDestino.put("VALOR_COMISSAO", ((BigDecimal) rowDestino.get("VALOR_COMISSAO")).add(valorComissao)); + 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 if (!mapDados.containsKey(puntoVentaId)) { @@ -478,7 +486,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { sql.append(" PC.SEGUROALTA, PC.SEGUROBAIXA, PC.OUTROSBAIXA, PC.OUTROSALTA, PC.EXCESSOALTA, PC.EXCESSOBAIXA, "); sql.append(" PC.TARIFARECEITA, PC.SEGURORECEITA, PC.TAXARECEITA, PC.PEDAGIORECEITA, TP.CVEPTOVTA TIPO_AGENCIA, "); sql.append(" PC.TARIFADEV, PC.SEGURO_DEV, PC.TAXADEV, PC.PEDAGIODEV, PV.PUNTOVENTA_ID, PV.NUMPUNTOVENTA, PV.NOMBPUNTOVENTA, "); - sql.append(" ES.CVEESTADO, ES.ESTADO_ID "); + sql.append(" ES.CVEESTADO, ES.ESTADO_ID, PC.SEGUROOBRIGATORIOALTA, PC.SEGUROOBRIGATORIOBAIXA "); sql.append(" FROM PTOVTA_COMISSAO PC "); sql.append(" INNER JOIN PUNTO_VENTA PV ON PV.PUNTOVENTA_ID = PC.PUNTOVENTA_ID AND PC.PTOVTADESCOMISSAO_ID = PV.PUNTOVENTA_ID "); sql.append(" INNER JOIN PARADA PR ON PR.PARADA_ID = PV.PARADA_ID "); @@ -508,6 +516,8 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio { cacheConfig.put("OUTROSBAIXA", rs.getBigDecimal("OUTROSBAIXA")); cacheConfig.put("EXCESSOALTA", rs.getBigDecimal("EXCESSOALTA")); cacheConfig.put("EXCESSOBAIXA", rs.getBigDecimal("EXCESSOBAIXA")); + cacheConfig.put("SEGUROOBRIGATORIOBAIXA", rs.getBigDecimal("SEGUROOBRIGATORIOBAIXA")); + cacheConfig.put("SEGUROOBRIGATORIOALTA", rs.getBigDecimal("SEGUROOBRIGATORIOALTA")); cacheConfig.put("TARIFARECEITA", rs.getBoolean("TARIFARECEITA")); cacheConfig.put("SEGURORECEITA", rs.getBoolean("SEGURORECEITA"));