fixes bug#AL-2550
parent
e17ab02e11
commit
4430a1680e
|
@ -29,15 +29,15 @@ import com.rjconsultores.ventaboletos.utilerias.MoneyHelper;
|
|||
import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
|
||||
|
||||
/**
|
||||
* @author Bruno H. G. Gouv<EFBFBD>a <bruno@rjconsultores.com.br>
|
||||
* @author Bruno H. G. Gouvêa <bruno@rjconsultores.com.br>
|
||||
*
|
||||
*/
|
||||
public class RelatorioReceitaDiariaAgencia extends Relatorio {
|
||||
|
||||
private LinkedHashMap<String, LinkedHashMap<String, Object>> mapCacheConfigComissao;
|
||||
//Mantis 16390
|
||||
//As vendas com impress<EFBFBD>o posterior n<>o estavam sendo exibidas como pr<70>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<EFBFBD>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<Integer> 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<String, Object> rowOrigem) throws Exception {
|
||||
LinkedHashMap<String, Object> rowDestino = rowOrigem;
|
||||
|
||||
// Busca as configura<EFBFBD><EFBFBD>es de comiss<73>o
|
||||
// Busca as configurações de comissão
|
||||
LinkedHashMap<String, Object> configComissao = getConfigComissao((Integer) rowOrigem.get("PUNTOVENTA_ID"), (Integer) rowOrigem.get("EMPRESAPUNTOVENTA_ID"));
|
||||
if (configComissao == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Verifica se existe ag<EFBFBD>ncia de destino da comiss<73>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<EFBFBD>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") );
|
||||
|
@ -248,10 +248,11 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
|
|||
this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE"),
|
||||
this.resultSet.getBigDecimal("IMPORTEPEDAGIO"), BigDecimal.ZERO);
|
||||
|
||||
// Caso esteje setado na configura<72><61>o de comiss<73>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"))) &&
|
||||
imposto != null) {
|
||||
// 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")))
|
||||
&& imposto != null) {
|
||||
baseCalculo = baseCalculo.subtract(imposto);
|
||||
baseCalculoSeguro = baseCalculoSeguro.subtract(imposto);
|
||||
}
|
||||
|
@ -305,7 +306,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<EFBFBD>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"));
|
||||
|
@ -369,14 +370,14 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
|
|||
row.put("GRUPO_RUTA", " ----- ");
|
||||
}
|
||||
|
||||
// Como a receita de bagagem <EFBFBD> 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<EFBFBD>o <20> 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);
|
||||
|
@ -410,7 +411,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
|
|||
boolean preVenda = isTipoVentaIdPreVenda(tipoVentaId);
|
||||
|
||||
if ((Boolean) getParametros().get("TRANSFERENCIA_PASSAGENS")) {
|
||||
// Utiliza o -1 para retirar as transfer<EFBFBD>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));
|
||||
|
@ -421,7 +422,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
|
|||
|
||||
|
||||
// Aumenta receita
|
||||
// N<EFBFBD>o se trate de cancelamento e n<>o seja uma impress<73>o de pr<70> 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));
|
||||
|
@ -435,13 +436,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<EFBFBD>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<EFBFBD>o posterior n<>o estavam sendo exibidas como pr<70>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<EFBFBD>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));
|
||||
|
@ -454,7 +455,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<EFBFBD>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);
|
||||
}
|
||||
|
@ -467,6 +468,7 @@ 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
|
||||
|
@ -484,8 +486,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<EFBFBD>o posterior n<>o estavam sendo exibidas como pr<70>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<EFBFBD>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));
|
||||
|
@ -498,10 +500,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<EFBFBD><EFBFBD>o
|
||||
// Aumenta devolução
|
||||
if (motivoCancelacionId == 32) {
|
||||
|
||||
// Verificia se a devolu<EFBFBD><EFBFBD>o <20> pra ser contabilizada na ag<61>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));
|
||||
|
@ -529,7 +531,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
|
|||
|
||||
LinkedHashMap<String, Object> cacheConfig = null;
|
||||
|
||||
// Verifica se j<EFBFBD> existe configura<72><61>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();
|
||||
|
||||
|
|
Loading…
Reference in New Issue