bug#11015

dev:gleimar
qua:renato

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@81608 d1611594-4594-4d17-8e1d-87c2c4800839
master
wilian 2018-05-04 18:00:56 +00:00
parent 4b7ae66791
commit 8f4e432ee7
5 changed files with 105 additions and 36 deletions

View File

@ -841,7 +841,7 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
.append("NVL(T.PRECIO,0) + NVL(T.IMPORTEPEDAGIO,0) + NVL(T.IMPORTETAXAEMBARQUE,0) + NVL(T.IMPORTESEGURO,0) + NVL(T.IMPORTEOUTROS,0) AS \"valorTabela\", ")
.append("C.INDCANCELACION AS \"indCancelacion\", C.INDREIMPRESION AS \"indreimpresion\", C.FECCORTE AS \"feccorte\", C.TRANSACAOORIGINAL_ID AS \"transacaoOriginalId\", ")
.append("EI.ICMS as \"icmsBase\", EST.ESTADO_ID as \"estadoId\", ")
.append("CASE WHEN C.PTOVTAVENTA_ID = C.PUNTOVENTA_ID OR C.PTOVTAVENTA_ID IS NULL THEN 1 ELSE 0 END AS ptoVtaOrigem, ")
.append("CASE WHEN C.PTOVTAVENTA_ID = :puntoventaId OR C.PTOVTAVENTA_ID IS NULL THEN 1 ELSE 0 END AS ptoVtaOrigem, ")
.append("M.EMPRESA_ID AS empresaId, C.TRANSACAO_ID AS \"transacaoId\", ")
.append("CASE WHEN LOG.CONFERENCIA_ID IS NOT NULL OR ")
.append(" (C.INDSTATUSBOLETO = 'E' ")

View File

@ -216,7 +216,6 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
recbpr = MoneyHelper.multiplicar(receitaBPR, MoneyHelper.dividir( ptovtaComissao.getPassagemBaixa() != null ? ptovtaComissao.getPassagemBaixa() : BigDecimal.ZERO,CEM,4), 4);
}
recbpr = MoneyHelper.arredondar(recbpr);
return recbpr;
}
@ -227,7 +226,7 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
BigDecimal receitaEntrega = MoneyHelper.somar(gapImpressa, internet, 2);
if(ptovtaComissao.getValorImpressaoGap() != null) {
if (BooleanUtils.toBoolean(ptovtaComissao.getIndimpressaogapporc())) {
entregaPassagem = MoneyHelper.multiplicar(receitaEntrega, ptovtaComissao.getValorImpressaoGap() != null ? MoneyHelper.dividir(ptovtaComissao.getValorImpressaoGap(),CEM,4) : BigDecimal.ZERO, 2);
entregaPassagem = MoneyHelper.multiplicar(receitaEntrega, ptovtaComissao.getValorImpressaoGap() != null ? MoneyHelper.dividir(ptovtaComissao.getValorImpressaoGap(),CEM,4) : BigDecimal.ZERO, 4);
} else {
entregaPassagem = ptovtaComissao.getValorImpressaoGap() != null ? MoneyHelper.multiplicar(ptovtaComissao.getValorImpressaoGap(),new BigDecimal(contImpressa), 2) : BigDecimal.ZERO;
}
@ -241,9 +240,9 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
// Comissão Excesso = Receita Excesso Bagagem * (% Com. Exc. Bag)
BigDecimal excessoBagagem = BigDecimal.ZERO;
if (isAltaTemporada) {
excessoBagagem = MoneyHelper.multiplicar(excBag, ptovtaComissao.getExcessoAlta() != null ? MoneyHelper.dividir(ptovtaComissao.getExcessoAlta(), CEM,4) : BigDecimal.ZERO, 2);
excessoBagagem = MoneyHelper.multiplicar(excBag, ptovtaComissao.getExcessoAlta() != null ? MoneyHelper.dividir(ptovtaComissao.getExcessoAlta(), CEM, 4) : BigDecimal.ZERO, 4);
} else {
excessoBagagem = MoneyHelper.multiplicar(excBag, ptovtaComissao.getExcessoBaixa() != null ? MoneyHelper.dividir(ptovtaComissao.getExcessoBaixa(), CEM,4) : BigDecimal.ZERO, 2);
excessoBagagem = MoneyHelper.multiplicar(excBag, ptovtaComissao.getExcessoBaixa() != null ? MoneyHelper.dividir(ptovtaComissao.getExcessoBaixa(), CEM, 4) : BigDecimal.ZERO, 4);
}
return excessoBagagem;
@ -254,9 +253,9 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
// Comissão Seg. Opcional = Receita Seguro Opcional * (% Com. Seg. Pol)
BigDecimal recsegOpcional = BigDecimal.ZERO;
if (isAltaTemporada) {
recsegOpcional = MoneyHelper.multiplicar(segOpcional, ptovtaComissao.getSeguroAlta() != null ? MoneyHelper.dividir(ptovtaComissao.getSeguroAlta(), CEM,4) : BigDecimal.ZERO, 2);
recsegOpcional = MoneyHelper.multiplicar(segOpcional, ptovtaComissao.getSeguroAlta() != null ? MoneyHelper.dividir(ptovtaComissao.getSeguroAlta(), CEM, 4) : BigDecimal.ZERO, 4);
} else {
recsegOpcional = MoneyHelper.multiplicar(segOpcional, ptovtaComissao.getSeguroBaixa() != null ? MoneyHelper.dividir(ptovtaComissao.getSeguroBaixa(), CEM,4) : BigDecimal.ZERO, 2);
recsegOpcional = MoneyHelper.multiplicar(segOpcional, ptovtaComissao.getSeguroBaixa() != null ? MoneyHelper.dividir(ptovtaComissao.getSeguroBaixa(), CEM, 4) : BigDecimal.ZERO, 4);
}
return recsegOpcional;
}
@ -266,9 +265,9 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
// Comissão Seg. Opcional = Receita Seguro Opcional * (% Com. Seg. Pol)
BigDecimal recoutros = BigDecimal.ZERO;
if (isAltaTemporada) {
recoutros = MoneyHelper.multiplicar(outros, ptovtaComissao.getOutrosAlta() != null ? MoneyHelper.dividir(ptovtaComissao.getOutrosAlta(), CEM,4) : BigDecimal.ZERO, 2);
recoutros = MoneyHelper.multiplicar(outros, ptovtaComissao.getOutrosAlta() != null ? MoneyHelper.dividir(ptovtaComissao.getOutrosAlta(), CEM, 4) : BigDecimal.ZERO, 4);
} else {
recoutros = MoneyHelper.multiplicar(outros, ptovtaComissao.getOutrosBaixa() != null ? MoneyHelper.dividir(ptovtaComissao.getOutrosBaixa(), CEM,4) : BigDecimal.ZERO, 2);
recoutros = MoneyHelper.multiplicar(outros, ptovtaComissao.getOutrosBaixa() != null ? MoneyHelper.dividir(ptovtaComissao.getOutrosBaixa(), CEM, 4) : BigDecimal.ZERO, 4);
}
return recoutros;
}
@ -351,7 +350,9 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
receitas = recuperarComissaoReceita(empresaId, puntoVentaId, dataInicial, dataFinal);
}
if(!isRetencaoDiaria) {
return calcularRegistroCalculo(ptovtaComissao, puntoVentaId, empresaId, periodo, receitas);
}
} else {
if(!isRefazerCalculo) {
throw new ComissaoException("busquedaCalculoComissaoController.PtovtaComissao.exception");
@ -514,6 +515,7 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
private List<ComissaoReceita> calculaReceitaComissao(Integer empresaId, PtovtaComissao ptovtaComissao, List<BoletoComissao> receitasBoleto, Integer diaInicial, Integer diaFinal, Integer mes, Integer ano, List<EventosFinanceirosVO> eventosFinanceirosVOs) {
List<EmpresaImposto> impostos = empresaImpostoService.buscarEmpresaImposto(empresaId);
boolean isConsideraBilhetesDevolvidosEmOutraAgencia = ptovtaComissao.getIndbilhetesdevcanorigem() == null ? false : ptovtaComissao.getIndbilhetesdevcanorigem();
List<ComissaoReceita> receitas = new ArrayList<ComissaoReceita>();
for (int dia = diaInicial; dia <= diaFinal; dia++) {
@ -539,9 +541,11 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
BigDecimal receitaSeguroOutros = BigDecimal.ZERO;
BigDecimal cancelados = BigDecimal.ZERO;
BigDecimal canceladosOrigem = BigDecimal.ZERO;
BigDecimal devolvidos = BigDecimal.ZERO;
BigDecimal devolvidosOrigem = BigDecimal.ZERO;
BigDecimal canceladosGAP = BigDecimal.ZERO;
BigDecimal canceladosGAPOrigem = BigDecimal.ZERO;
BigDecimal devolvidosGAP = BigDecimal.ZERO;
BigDecimal devolvidosGAPOrigem = BigDecimal.ZERO;
@ -625,13 +629,14 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
}
BigDecimal bpr = BigDecimal.ZERO;
// Boletos impressos no punto venta
if (isEntregaPassagem) {
contImpressa++;
gapImpressa = MoneyHelper.somar(gapImpressa, receitaItem);
BigDecimal entregaPassagem = calculoEntregaPassagem(isAltaTemporada, ptovtaComissao, receitaItem, BigDecimal.ZERO, 1);
comissaoEntregaPassagem = MoneyHelper.somar(comissaoEntregaPassagem, entregaPassagem);
comissaoEntregaPassagem = MoneyHelper.somar(comissaoEntregaPassagem, entregaPassagem, 4);
} else {
@ -639,8 +644,8 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
if (rcc.getTipoVenta().equals(Constantes.TPV_BOLETO_REMOTO.intValue())) {
receitaGAP = MoneyHelper.somar(receitaGAP, receitaItem);
BigDecimal bpr = calculoComisssaoBPR(isAltaTemporada, ptovtaComissao, BigDecimal.ZERO, receitaItem);
comissaoBPR = MoneyHelper.somar(comissaoBPR, bpr);
bpr = calculoComisssaoBPR(isAltaTemporada, ptovtaComissao, BigDecimal.ZERO, receitaItem);
comissaoBPR = MoneyHelper.somar(comissaoBPR, bpr, 4);
}
// Internet
else if (rcc.getTipoVenta().equals(Constantes.TPV_POR_INTERNET.intValue())) {
@ -651,8 +656,8 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
else {
receitaBPR = MoneyHelper.somar(receitaBPR, receitaItem);
BigDecimal bpr = calculoComisssaoBPR(isAltaTemporada, ptovtaComissao, receitaItem, BigDecimal.ZERO);
comissaoBPR = MoneyHelper.somar(comissaoBPR, bpr);
bpr = calculoComisssaoBPR(isAltaTemporada, ptovtaComissao, receitaItem, BigDecimal.ZERO);
comissaoBPR = MoneyHelper.somar(comissaoBPR, bpr, 4);
}
}
@ -664,19 +669,36 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
if (rcc.getTipoVenta().equals(Constantes.TPV_BOLETO_REMOTO.intValue())) {
// Impresso Venta de otro punto venta
if (!rcc.isPtoVtaOrigem()) {
if (!rcc.getPtoVtaOrigem()) {
devolvidosGAPOrigem = MoneyHelper.somar(devolvidosGAPOrigem, receitaDevItem);
}
/*
* Adiciona o valor nos devolvidos caso o bilhete seja do proprio ponto de venda,
* ou caso o parametro de considerar cancelamento/devolução no ponto de venda onde
* foi feita a operação esteja desmarcado
* Mantis #11015
*/
if(rcc.getPtoVtaOrigem() || !isConsideraBilhetesDevolvidosEmOutraAgencia) {
devolvidosGAP = MoneyHelper.somar(devolvidosGAP, receitaDevItem);
}
} else {
// Impresso Venta de otro punto venta
if (!rcc.isPtoVtaOrigem()) {
if (!rcc.getPtoVtaOrigem()) {
devolvidosOrigem = MoneyHelper.somar(devolvidosOrigem, receitaDevItem);
}
/*
* Adiciona o valor nos devolvidos caso o bilhete seja do proprio ponto de venda,
* ou caso o parametro de considerar cancelamento/devolução no ponto de venda onde
* foi feita a operação esteja desmarcado
* Mantis #11015
*/
if(rcc.getPtoVtaOrigem() || !isConsideraBilhetesDevolvidosEmOutraAgencia) {
devolvidos = MoneyHelper.somar(devolvidos, receitaDevItem);
}
}
}
@ -684,15 +706,66 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
else {
// Cancelamento Receita GAP
if (rcc.getTipoVenta().equals(Constantes.TPV_BOLETO_REMOTO.intValue())) {
if (!rcc.getPtoVtaOrigem()) {
canceladosGAPOrigem = MoneyHelper.somar(canceladosGAPOrigem, receitaDevItem);
}
/*
* Adiciona o valor nos devolvidos caso o bilhete seja do proprio ponto de venda,
* ou caso o parametro de considerar cancelamento/devolução no ponto de venda onde
* foi feita a operação esteja desmarcado
* Mantis #11015
*/
if(rcc.getPtoVtaOrigem() || !isConsideraBilhetesDevolvidosEmOutraAgencia) {
canceladosGAP = MoneyHelper.somar(canceladosGAP, receitaDevItem);
}
} else {
if (!rcc.getPtoVtaOrigem()) {
canceladosOrigem = MoneyHelper.somar(canceladosOrigem, receitaDevItem);
}
/*
* Adiciona o valor nos devolvidos caso o bilhete seja do proprio ponto de venda,
* ou caso o parametro de considerar cancelamento/devolução no ponto de venda onde
* foi feita a operação esteja desmarcado
* Mantis #11015
*/
if(rcc.getPtoVtaOrigem() || !isConsideraBilhetesDevolvidosEmOutraAgencia) {
cancelados = MoneyHelper.somar(cancelados, receitaDevItem);
}
}
BigDecimal bpr = calculoComisssaoBPR(isAltaTemporada, ptovtaComissao, receitaDevItem, BigDecimal.ZERO);
comissaoBPR = MoneyHelper.subtrair(comissaoBPR, bpr);
}
/*
* Calcula a comissão caso o bilhete seja do proprio ponto de venda,
* ou caso o parametro de considerar cancelamento/devolução no ponto de venda onde
* foi feita a operação esteja desmarcado
* Mantis #11015
*/
if(rcc.getPtoVtaOrigem() || !isConsideraBilhetesDevolvidosEmOutraAgencia) {
bpr = calculoComisssaoBPR(isAltaTemporada, ptovtaComissao, receitaDevItem, BigDecimal.ZERO);
comissaoBPR = MoneyHelper.subtrair(comissaoBPR, bpr, 4);
}
}
/*log.info("---------");
log.info("Total Bilhete: " + rcc.getTotal());
log.info("PtoVtaOrigem: " + rcc.getPtoVtaOrigem());
log.info("Status: " + rcc.getIndstatusboleto());
log.info("receitaItem: " + receitaItem);
log.info("receitaDevItem: " + receitaDevItem);
log.info("comissaoBPRItem: " + bpr);
log.info("receitaGAP: " + receitaGAP);
log.info("receitaBPR: " + receitaBPR);
log.info("ComissaoBPR: " + comissaoBPR);
log.info("cancelados: " + cancelados);
log.info("canceladosOrigem: " + canceladosOrigem);
log.info("devolvidos: " + devolvidos);
log.info("devolvidosOrigem: " + devolvidosOrigem);
log.info("canceladosGAP: " + canceladosGAP);
log.info("canceladosGAPOrigem: " + canceladosGAPOrigem);
log.info("devolvidosGAP: " + devolvidosGAP);
log.info("devolvidosGAPOrigem: " + devolvidosGAPOrigem);*/
}
/* Calculando comissão para os eventos extras */
@ -703,15 +776,15 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
if(TipoEventoExtra.EXCESSO_BAGAGEM.toString().equals(eventosFinanceiros.getCvetipoevento())) {
receitaExcessoBagagem = MoneyHelper.somar(receitaExcessoBagagem, eventosFinanceiros.getImpingreso());
BigDecimal excessoBagagem = calculoExcessoBagagem(isAltaTemporada, ptovtaComissao, eventosFinanceiros.getImpingreso());
comissaoExcessoBagagem = MoneyHelper.somar(comissaoExcessoBagagem, excessoBagagem);
comissaoExcessoBagagem = MoneyHelper.somar(comissaoExcessoBagagem, excessoBagagem, 4);
} else if(TipoEventoExtra.SEGURO_OPCIONAL.toString().equals(eventosFinanceiros.getCvetipoevento())) {
receitaSeguroOpcional = MoneyHelper.somar(receitaSeguroOpcional, eventosFinanceiros.getImpingreso());
BigDecimal segOpcional = calculoSeguroOpcional(isAltaTemporada, ptovtaComissao, eventosFinanceiros.getImpingreso());
comissaoSegOpcional = MoneyHelper.somar(comissaoSegOpcional, segOpcional);
comissaoSegOpcional = MoneyHelper.somar(comissaoSegOpcional, segOpcional, 4);
} else {
receitaSeguroOutros = MoneyHelper.somar(receitaSeguroOutros, eventosFinanceiros.getImpingreso());
BigDecimal outros = calculoOutros(isAltaTemporada, ptovtaComissao, eventosFinanceiros.getImpingreso());
comissaoOutros = MoneyHelper.somar(comissaoOutros, outros);
comissaoOutros = MoneyHelper.somar(comissaoOutros, outros, 4);
}
}

View File

@ -103,7 +103,7 @@ public class ComissaoReceitaServiceImpl implements ComissaoReceitaService {
comissaoReceitaVO.setDevolucoesOrigem(comissaoReceita.getDevolvidosOrigem());
comissaoReceitaVO.setDevolucoesOrigemGAP(comissaoReceita.getDevolvidosOrigemGap());
comissaoReceitaVO.setDevolvidos(comissaoReceita.getDevolvidos());
comissaoReceitaVO.setDevolvidosGAP(comissaoReceita.getDevolvidosOrigemGap());
comissaoReceitaVO.setDevolvidosGAP(comissaoReceita.getDevgap());
comissaoReceitaVO.setGapImpressa(comissaoReceita.getImpgap());
comissaoReceitaVO.setInternet(comissaoReceita.getInternet());
comissaoReceitaVO.setReceitaBPR(comissaoReceita.getBpr());

View File

@ -53,7 +53,7 @@ public class MoneyHelper {
BigDecimal fAmountOne = value == null ? BigDecimal.ZERO : arredondar(value, customScale);
total = total.add(fAmountOne);
}
return total.setScale(DECIMALS, ROUNDING_MODE);
return total.setScale(customScale, ROUNDING_MODE);
}
public static BigDecimal somar(BigDecimal aAmountOne, BigDecimal aAmountTwo) {
@ -67,7 +67,7 @@ public class MoneyHelper {
BigDecimal fAmountOne = aAmountOne == null ? BigDecimal.ZERO : arredondar(aAmountOne, customScale);
BigDecimal fAmountTwo = aAmountTwo == null ? BigDecimal.ZERO : arredondar(aAmountTwo, customScale);
return fAmountOne.add(fAmountTwo).setScale(DECIMALS, ROUNDING_MODE);
return fAmountOne.add(fAmountTwo).setScale(customScale, ROUNDING_MODE);
}
public static BigDecimal subtrair(BigDecimal aAmountOne, BigDecimal aAmountTwo) {
@ -81,7 +81,7 @@ public class MoneyHelper {
BigDecimal fAmountOne = arredondar(aAmountOne, customScale);
BigDecimal fAmountTwo = arredondar(aAmountTwo, customScale);
return fAmountOne.subtract(fAmountTwo).setScale(DECIMALS, ROUNDING_MODE);
return fAmountOne.subtract(fAmountTwo).setScale(customScale, ROUNDING_MODE);
}
public static BigDecimal dividir(BigDecimal aAmount, BigDecimal aDivisor) {

View File

@ -190,10 +190,6 @@ public class BoletoComissao {
this.seguroOutros = seguroOutros;
}
public Boolean isPtoVtaOrigem() {
return ptoVtaOrigem;
}
public void setPtoVtaOrigem(Boolean ptoVtaOrigem) {
this.ptoVtaOrigem = ptoVtaOrigem;
}
@ -306,7 +302,7 @@ public class BoletoComissao {
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((getBoletoId() == null) ? 0 : getBoletoId().hashCode());
result = prime * result + ((getCajaId() == null) ? 0 : getCajaId().hashCode());
return result;
}