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
master
wilian 2021-03-18 14:51:47 +00:00
parent f6469e9e27
commit fe224ee4a9
1 changed files with 25 additions and 15 deletions

View File

@ -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"));