fixes bug#16390

dev:
qua:

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@98525 d1611594-4594-4d17-8e1d-87c2c4800839
master
thiago.clemente 2019-10-30 21:52:36 +00:00
parent 4a647a869b
commit 9145a645d3
1 changed files with 51 additions and 7 deletions

View File

@ -10,7 +10,9 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.rjconsultores.ventaboletos.entidad.Estado;
@ -28,6 +30,10 @@ import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
public class RelatorioReceitaDiariaAgencia extends Relatorio {
private Map<String, HashMap<String, Object>> 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.
private List<Integer> listaTipoVentaIdPreVenda = Arrays.asList(5, 12, 18, 41, 49, 39);
public RelatorioReceitaDiariaAgencia(Map<String, Object> parametros, Connection conexao) throws Exception {
@ -320,11 +326,13 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
row.put("TOTAL_BILHETES_GAP", ((BigDecimal) row.get("TOTAL_BILHETES_GAP")).add(motivoCancelacionId == 0 && tipoVentaId.equals(18) && this.resultSet.getInt("INDREIMPRESION") == 0 ? BigDecimal.ONE : BigDecimal.ZERO));
row.put("TOTAL_BILHETES_CANC", ((BigDecimal) row.get("TOTAL_BILHETES_CANC")).add(motivoCancelacionId == 31 ? BigDecimal.ONE : BigDecimal.ZERO));
boolean preVenda = isTipoVentaIdPreVenda(tipoVentaId);
// Aumenta receita
// 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));
/*row.put("RECEITA_TARIFA", ((BigDecimal) row.get("RECEITA_TARIFA")).add(!tipoVentaId.equals(18) && !tipoVentaId.equals(39) ? this.resultSet.getBigDecimal("PRECIOPAGADO") : BigDecimal.ZERO));
row.put("RECEITA_TARIFA_GAP", ((BigDecimal) row.get("RECEITA_TARIFA_GAP")).add((tipoVentaId.equals(18) || tipoVentaId.equals(39)) ? this.resultSet.getBigDecimal("PRECIOPAGADO") : BigDecimal.ZERO));
row.put("RECEITA_SEGURO", ((BigDecimal) row.get("RECEITA_SEGURO")).add(!tipoVentaId.equals(18) && !tipoVentaId.equals(39) && this.resultSet.getBigDecimal("IMPORTESEGURO") != null ? this.resultSet.getBigDecimal("IMPORTESEGURO") : BigDecimal.ZERO));
row.put("RECEITA_SEGURO_GAP", ((BigDecimal) row.get("RECEITA_SEGURO_GAP")).add(((tipoVentaId.equals(18) || tipoVentaId.equals(39)) && this.resultSet.getBigDecimal("IMPORTESEGURO") != null) ? this.resultSet.getBigDecimal("IMPORTESEGURO") : BigDecimal.ZERO));
@ -337,6 +345,25 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
// 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.
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));
row.put("RECEITA_SEGURO", ((BigDecimal) row.get("RECEITA_SEGURO")).add(!preVenda && this.resultSet.getBigDecimal("IMPORTESEGURO") != null ? this.resultSet.getBigDecimal("IMPORTESEGURO") : BigDecimal.ZERO));
row.put("RECEITA_SEGURO_GAP", ((BigDecimal) row.get("RECEITA_SEGURO_GAP")).add((preVenda && this.resultSet.getBigDecimal("IMPORTESEGURO") != null) ? this.resultSet.getBigDecimal("IMPORTESEGURO") : BigDecimal.ZERO));
row.put("RECEITA_EMBARQUE", ((BigDecimal) row.get("RECEITA_EMBARQUE")).add(!preVenda && this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE") != null ? this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE") : BigDecimal.ZERO));
row.put("RECEITA_EMBARQUE_GAP", ((BigDecimal) row.get("RECEITA_EMBARQUE_GAP")).add(preVenda && this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE") != null ? this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE") : BigDecimal.ZERO));
row.put("RECEITA_OUTROS", ((BigDecimal) row.get("RECEITA_OUTROS")).add(!preVenda && this.resultSet.getBigDecimal("IMPORTEOUTROS") != null ? this.resultSet.getBigDecimal("IMPORTEOUTROS") : BigDecimal.ZERO));
row.put("RECEITA_OUTROS_GAP", ((BigDecimal) row.get("RECEITA_OUTROS_GAP")).add(preVenda && this.resultSet.getBigDecimal("IMPORTEOUTROS") != null ? this.resultSet.getBigDecimal("IMPORTEOUTROS") : BigDecimal.ZERO));
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
if (!tipoVentaId.equals(9) && (!preVenda || (preVenda && (Boolean) this.relatorio.getParametros().get("B_CONTEMPLAR_GAP"))))
this.setRowComissao(row);
}
@ -354,7 +381,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
// Deduz os cancelamentos e trocas e transferencias
if (motivoCancelacionId == 31 || motivoCancelacionId == 10 || (motivoCancelacionId == 23 && (Boolean) getParametros().get("TRANSFERENCIA_PASSAGENS"))) {
row.put("RECEITA_TARIFA", ((BigDecimal) row.get("RECEITA_TARIFA")).subtract(!tipoVentaId.equals(18) && !tipoVentaId.equals(39) ? this.resultSet.getBigDecimal("PRECIOPAGADO") : BigDecimal.ZERO));
/*row.put("RECEITA_TARIFA", ((BigDecimal) row.get("RECEITA_TARIFA")).subtract(!tipoVentaId.equals(18) && !tipoVentaId.equals(39) ? this.resultSet.getBigDecimal("PRECIOPAGADO") : BigDecimal.ZERO));
row.put("RECEITA_TARIFA_GAP", ((BigDecimal) row.get("RECEITA_TARIFA_GAP")).subtract((tipoVentaId.equals(18) || tipoVentaId.equals(39)) ? this.resultSet.getBigDecimal("PRECIOPAGADO") : BigDecimal.ZERO));
row.put("RECEITA_SEGURO", ((BigDecimal) row.get("RECEITA_SEGURO")).subtract(!tipoVentaId.equals(18) && !tipoVentaId.equals(39) && this.resultSet.getBigDecimal("IMPORTESEGURO") != null ? this.resultSet.getBigDecimal("IMPORTESEGURO") : BigDecimal.ZERO));
row.put("RECEITA_SEGURO_GAP", ((BigDecimal) row.get("RECEITA_SEGURO_GAP")).subtract(((tipoVentaId.equals(18) || tipoVentaId.equals(39)) && this.resultSet.getBigDecimal("IMPORTESEGURO") != null) ? this.resultSet.getBigDecimal("IMPORTESEGURO") : BigDecimal.ZERO));
@ -363,8 +390,22 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
row.put("RECEITA_OUTROS", ((BigDecimal) row.get("RECEITA_OUTROS")).subtract(!tipoVentaId.equals(18) && !tipoVentaId.equals(39) && this.resultSet.getBigDecimal("IMPORTEOUTROS") != null ? this.resultSet.getBigDecimal("IMPORTEOUTROS") : BigDecimal.ZERO));
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));
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.
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));
row.put("RECEITA_SEGURO", ((BigDecimal) row.get("RECEITA_SEGURO")).subtract(!preVenda && this.resultSet.getBigDecimal("IMPORTESEGURO") != null ? this.resultSet.getBigDecimal("IMPORTESEGURO") : BigDecimal.ZERO));
row.put("RECEITA_SEGURO_GAP", ((BigDecimal) row.get("RECEITA_SEGURO_GAP")).subtract((preVenda && this.resultSet.getBigDecimal("IMPORTESEGURO") != null) ? this.resultSet.getBigDecimal("IMPORTESEGURO") : BigDecimal.ZERO));
row.put("RECEITA_EMBARQUE", ((BigDecimal) row.get("RECEITA_EMBARQUE")).subtract(!preVenda && this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE") != null ? this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE") : BigDecimal.ZERO));
row.put("RECEITA_EMBARQUE_GAP", ((BigDecimal) row.get("RECEITA_EMBARQUE_GAP")).subtract(preVenda && this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE") != null ? this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE") : BigDecimal.ZERO));
row.put("RECEITA_OUTROS", ((BigDecimal) row.get("RECEITA_OUTROS")).subtract(!preVenda && this.resultSet.getBigDecimal("IMPORTEOUTROS") != null ? this.resultSet.getBigDecimal("IMPORTEOUTROS") : BigDecimal.ZERO));
row.put("RECEITA_OUTROS_GAP", ((BigDecimal) row.get("RECEITA_OUTROS_GAP")).subtract(preVenda && this.resultSet.getBigDecimal("IMPORTEOUTROS") != null ? this.resultSet.getBigDecimal("IMPORTEOUTROS") : BigDecimal.ZERO));
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
if (motivoCancelacionId == 32) {
@ -695,4 +736,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
return sql.toString();
}
private boolean isTipoVentaIdPreVenda(Integer tipoVentaId) {
return listaTipoVentaIdPreVenda.contains(tipoVentaId);
}
}