wilian 2017-10-02 22:03:54 +00:00
parent 341e8db44c
commit c97852cf1b
6 changed files with 50 additions and 30 deletions

View File

@ -38,7 +38,7 @@ public interface ConferenciaComissaoDAO extends GenericDAO<Conferencia, Long> {
public LogConferencia obtenerLogConferenciaID(Long logconferenciaId);
public List<BoletoComissao> carregarBilhetesComissao(Conferencia conferencia, boolean ehConsultaComissao) throws BusinessException;
public List<BoletoComissao> carregarBilhetesComissao(Conferencia conferencia, boolean isCalculoComissao, boolean ehConsultaComissao) throws BusinessException;
public List<OcdVO> carregarOcds(Conferencia conferencia) throws BusinessException;

View File

@ -798,7 +798,7 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
@Override
@SuppressWarnings("unchecked")
public List<BoletoComissao> carregarBilhetesComissao(Conferencia conferencia, boolean ehConsultaComissao)
public List<BoletoComissao> carregarBilhetesComissao(Conferencia conferencia, boolean isCalculoComissao, boolean isConsideraBilhetesDevolvidosEmOutraAgencia)
throws BusinessException {
try {
Map<String, Object> parametros = carregarParametros(null, null, conferencia.getCompetencia(), conferencia.getEmpresa(),
@ -807,7 +807,7 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
StringBuilder sQuery = new StringBuilder()
.append("SELECT C.CAJA_ID AS \"cajaId\", C.NUMASIENTO AS \"numAsiento\", C.NUMASIENTOVINCULADO AS \"numAsientoVinculado\", C.NUMOPERACION AS \"numoperacion\", C.NUMFOLIOSISTEMA AS \"numFolioSistema\", ")
.append("C.NUMSERIEPREIMPRESA AS \"numSeriePreimpresa\", C.NUMFOLIOPREIMPRESO AS \"numFolioPreImpreso\", EST.CVEESTADO AS \"uf\", CAT.DESCCATEGORIA AS \"desccategoria\", ")
.append("NVL(C.PRECIOPAGADO,0) AS \"valorpagado\", NVL(C.IMPORTEOUTROS,0) AS \"seguroOutros\", NVL(C.IMPORTEPEDAGIO,0) AS \"pedagio\", NVL(C.IMPORTESEGURO,0) AS \"seguro\", ")
.append("NVL(C.PRECIOBASE,0) AS \"valorbase\", NVL(C.PRECIOPAGADO,0) AS \"valorpagado\", NVL(C.IMPORTEOUTROS,0) AS \"seguroOutros\", NVL(C.IMPORTEPEDAGIO,0) AS \"pedagio\", NVL(C.IMPORTESEGURO,0) AS \"seguro\", ")
.append("NVL(C.IMPORTETAXAEMBARQUE,0) AS \"embarque\", C.TIPOVENTA_ID AS \"tipoVenta\", C.INDSTATUSBOLETO AS \"indstatusboleto\", LOG.STATUS AS \"status\", FP.FORMAPAGO_ID AS \"formapagoId\", ")
.append("FP.DESCPAGO AS \"descpago\", LOG.LOGCONFERENCIA_ID AS \"logconferenciaId\", MC.DESCMOTIVO AS \"descmotivocancelacion\", U.NOMBUSUARIO AS \"nombusuario\", C.MOTIVOCANCELACION_ID AS \"motivocancelacionId\", ")
.append("CF.IMPORTE AS \"importeFp\", COMFP.COMEMPFORMAPAGO_ID AS \"comempformapagoId\", ")
@ -816,7 +816,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\", ")
.append("EI.ICMS as \"icmsBase\", EST.ESTADO_ID as \"estadoId\", ")
.append("CASE WHEN C.PTOVTAVENTA_ID = C.PUNTOVENTA_ID THEN 1 ELSE 0 END AS ptoVtaOrigem ")
.append("CASE WHEN C.PTOVTAVENTA_ID = C.PUNTOVENTA_ID OR C.PTOVTAVENTA_ID IS NULL THEN 1 ELSE 0 END AS ptoVtaOrigem ")
.append("FROM CAJA C ")
.append("LEFT JOIN PARADA ORI ON ORI.PARADA_ID = C.ORIGEN_ID ")
.append("LEFT JOIN CIUDAD CID ON CID.CIUDAD_ID = ORI.CIUDAD_ID ")
@ -835,15 +835,26 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
.append("INNER JOIN VIGENCIA_TARIFA VT ON (VT.VIGENCIATARIFA_ID = T.VIGENCIATARIFA_ID) ")
.append("WHERE C.ACTIVO = 1 ")
.append("AND C.FECCORTE BETWEEN TO_DATE(:dataInicial, 'DD/MM/YYYY') AND TO_DATE(:dataFinal, 'DD/MM/YYYY') ")
.append("AND ( (C.INDSTATUSBOLETO = 'E' AND C.INDREIMPRESION = 1) OR (C.INDREIMPRESION = 0 )) ")
.append("AND C.FECHORVENTA BETWEEN VT.FECINICIOVIGENCIA AND VT.FECFINVIGENCIA ");
if(isCalculoComissao) {
sQuery.append("AND ((C.INDSTATUSBOLETO = 'E' AND C.INDREIMPRESION = 1) OR C.INDREIMPRESION = 0 OR C.MOTIVOCANCELACION_ID = 99) ");
} else {
sQuery.append("AND ((C.INDSTATUSBOLETO = 'E' AND C.INDREIMPRESION = 1) OR C.INDREIMPRESION = 0) ");
}
if (parametros.containsKey("empresaId")) {
sQuery.append("AND M.EMPRESA_ID = :empresaId ");
}
if (parametros.containsKey("puntoventaId")) {
if (ehConsultaComissao){
sQuery.append("AND (C.PUNTOVENTA_ID = :puntoventaId or (C.ptovtaventa_id =:puntoventaId and C.MOTIVOCANCELACION_ID IN (32,31,10) AND C.INDSTATUSOPERACION = 'F' ) )");
if (isConsideraBilhetesDevolvidosEmOutraAgencia){
sQuery.append("AND ( ")
.append(" C.PUNTOVENTA_ID = :puntoventaId AND C.PTOVTAVENTA_ID IS NULL ")
.append(" OR ")
.append(" (C.PTOVTAVENTA_ID = :puntoventaId) ")
.append(" OR ")
.append(" (C.PUNTOVENTA_ID = :puntoventaId AND C.INDSTATUSBOLETO = 'E' AND C.MOTIVOCANCELACION_ID IS NULL) ")
.append(" ) ");
}else{
sQuery.append("AND C.PUNTOVENTA_ID = :puntoventaId ");
}
@ -852,7 +863,7 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
sQuery.append("AND C.NUMFOLIOSISTEMA = :numfoliosistema ");
parametros.put("numfoliosistema", conferencia.getNumfoliosistema());
}
sQuery.append("ORDER BY C.CAJA_ID ");
sQuery.append("ORDER BY C.INDSTATUSBOLETO, C.MOTIVOCANCELACION_ID, C.CAJA_ID ");
@SuppressWarnings("deprecation")
Query qr = getSession().createSQLQuery(sQuery.toString())
@ -893,6 +904,7 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
.addScalar("icmsBase", Hibernate.BIG_DECIMAL)
.addScalar("estadoId", Hibernate.INTEGER)
.addScalar("ptoVtaOrigem", Hibernate.BOOLEAN)
.addScalar("valorbase", Hibernate.BIG_DECIMAL)
.setResultTransformer(Transformers.aliasToBean(BoletoComissao.class));
setParametros(qr, parametros);

View File

@ -2,7 +2,6 @@ package com.rjconsultores.ventaboletos.service.impl;
import java.io.ByteArrayOutputStream;
import java.math.BigDecimal;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
@ -305,11 +304,14 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
PtovtaComissao ptovtaComissao = ptovtaComissaoService.buscarPuntaVentaEmpresa(puntoVentaId, empresaId);
if (ptovtaComissao != null) {
//Abate no valor da comissão bpr as saídas de caixa
boolean consideraBilhetesDevolvidosEmOutraAgencia = (ptovtaComissao.getIndbilhetesdevcanorigem() == null)?false:ptovtaComissao.getIndbilhetesdevcanorigem();
Conferencia conferencia = new Conferencia();
conferencia.setPuntoVenta(new PuntoVenta(puntoVentaId));
conferencia.setEmpresa(new Empresa(empresaId));
conferencia.setCompetencia(DateUtil.getStringDate(periodo, "MM/yyyy"));
List<BoletoComissao> receitasBoleto = conferenciaComissaoDAO.carregarBilhetesComissao(conferencia, true);
List<BoletoComissao> receitasBoleto = conferenciaComissaoDAO.carregarBilhetesComissao(conferencia, true, consideraBilhetesDevolvidosEmOutraAgencia);
List<EventosFinanceirosVO> eventosFinanceirosVOs = conferenciaComissaoDAO.carregarEventosFinanceiros(conferencia);
Calendar calendario = Calendar.getInstance();
@ -486,12 +488,17 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
}
/* Calculando comissão para os boletos */
for (BoletoComissao rcc : list) {
boolean isAltaTemporada = validaAltaTemporada(impostos, mes, rcc.getEstadoId());
IndStatusBoleto statusBoleto = IndStatusBoleto.valueOf(rcc.getIndstatusboleto());
boolean isSaidaCaixa = (rcc.getMotivoCancelacionId() != null) && (rcc.getIndreimpresion() != null && !rcc.getIndreimpresion());
boolean isSaidaCaixa = rcc.getMotivoCancelacionId() != null;
boolean isEntregaPassagem = statusBoleto.equals(IndStatusBoleto.E) && (rcc.getMotivoCancelacionId() == null);
if(rcc.isMotivocancelacionTransferido() || rcc.isMotivocancelacionQuitacaoOcd()) {
continue;
}
BigDecimal receitaItem = BigDecimal.ZERO;
BigDecimal receitaDevItem = BigDecimal.ZERO;
@ -545,7 +552,7 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
}
// Boletos impressos no punto venta
if (statusBoleto.equals(IndStatusBoleto.E) && (rcc.getMotivoCancelacionId() == null)) {
if (isEntregaPassagem) {
contImpressa++;
gapImpressa = MoneyHelper.somar(gapImpressa, receitaItem);
@ -580,20 +587,20 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
if (isSaidaCaixa) {
// Devolução Receita
if (rcc.getMotivoCancelacionId().equals(Constantes.MVO_CANCEL_DEVOLUCAO.intValue()) || rcc.getMotivoCancelacionId().equals(Constantes.MVO_CANCEL_GERACAO_OCD.intValue())) {
if (rcc.isMotivocancelacionDevolvido() || rcc.isMotivocancelacionGeracaoOcd() || rcc.isMotivocancelacionTrocado() || rcc.isMotivocancelacionQuitacaoOcd()) {
// Devolução Receita GAP
if (rcc.getTipoVenta().equals(Constantes.TPV_BOLETO_REMOTO.intValue())) {
// Impresso Venta de otro punto venta
if (rcc.isPtoVtaOrigem()) {
if (!rcc.isPtoVtaOrigem()) {
devolvidosGAPOrigem = MoneyHelper.somar(devolvidosGAPOrigem, receitaDevItem);
}
devolvidosGAP = MoneyHelper.somar(devolvidosGAP, receitaDevItem);
} else {
// Impresso Venta de otro punto venta
if (rcc.isPtoVtaOrigem()) {
if (!rcc.isPtoVtaOrigem()) {
devolvidosOrigem = MoneyHelper.somar(devolvidosOrigem, receitaDevItem);
}
@ -612,13 +619,10 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
}
}
//Abate no valor da comissão bpr as saídas de caixa
boolean consideraBilhetesDevolvidosEmOutraAgencia = (ptovtaComissao.getIndbilhetesdevcanorigem() == null)?false:ptovtaComissao.getIndbilhetesdevcanorigem();
if (rcc.isPtoVtaOrigem() && consideraBilhetesDevolvidosEmOutraAgencia) {
/*if (!rcc.isPtoVtaOrigem() && consideraBilhetesDevolvidosEmOutraAgencia) {*/
BigDecimal bpr = calculoComisssaoBPR(isAltaTemporada, ptovtaComissao, receitaDevItem, BigDecimal.ZERO);
comissaoBPR = MoneyHelper.subtrair(comissaoBPR, bpr);
}
/*}*/
}
}
@ -664,7 +668,7 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
receitaComissao = MoneyHelper.somar(receitaComissao,receitaBPR);
receitaComissao = MoneyHelper.somar(receitaComissao,receitaGAP);
receitaComissao = MoneyHelper.subtrair(receitaComissao,gapImpressa);
//receitaComissao = MoneyHelper.subtrair(receitaComissao,gapImpressa);
receitaComissao = MoneyHelper.subtrair(receitaComissao,internet);
receitaComissao = MoneyHelper.subtrair(receitaComissao,cancelados);
receitaComissao = MoneyHelper.subtrair(receitaComissao,devolvidos);

View File

@ -192,7 +192,7 @@ public class ConferenciaComissaoServiceImpl implements ConferenciaComissaoServic
}
if (boletoComissaos == null || boletoComissaos.isEmpty()) {
boletoComissaos = conferenciaComissaoDAO.carregarBilhetesComissao(c, false);
boletoComissaos = conferenciaComissaoDAO.carregarBilhetesComissao(c, false, false);
}
if(boletoStatusComissao == null){
@ -242,7 +242,7 @@ public class ConferenciaComissaoServiceImpl implements ConferenciaComissaoServic
@Override
public List<BoletoComissao> carregarBilhetesComissao(List<BoletoComissao> boletoComissaos, Conferencia conferencia, BoletoStatusComissao boletoStatusComissao, boolean carregarDadosFaltantes) throws BusinessException {
if (boletoComissaos == null) {
boletoComissaos = conferenciaComissaoDAO.carregarBilhetesComissao(conferencia, false);
boletoComissaos = conferenciaComissaoDAO.carregarBilhetesComissao(conferencia, false, false);
}
if (boletoStatusComissao == null) {

View File

@ -26,6 +26,7 @@ public class BoletoComissao {
private Integer motivoCancelacionOriginal1;
private Integer motivoCancelacionOriginal2;
private String descmotivocancelacion;
private BigDecimal valorbase;
private BigDecimal valorpagado;
private BigDecimal valorTabela;
private BigDecimal seguro;
@ -1018,5 +1019,13 @@ public class BoletoComissao {
public void setFeccorte(Date feccorte) {
this.feccorte = feccorte;
}
public BigDecimal getValorbase() {
return valorbase;
}
public void setValorbase(BigDecimal valorbase) {
this.valorbase = valorbase;
}
}

View File

@ -127,16 +127,11 @@ public class ComissaoReceita {
}
public BigDecimal getDevolvidosRelatorio() {
BigDecimal devolvidos = BigDecimal.ZERO;
devolvidos = MoneyHelper.somar(getDevolvidos() != null ? getDevolvidos() : BigDecimal.ZERO,
getDevolucoesOrigem() != null ? getDevolucoesOrigem() : BigDecimal.ZERO);
return MoneyHelper.arredondar(devolvidos, 2);
return getDevolvidos();
}
public BigDecimal getDevolvidosGAPRelatorio() {
BigDecimal devolvidosGap = MoneyHelper.somar(getDevolvidosGAP() != null ? getDevolvidosGAP() : BigDecimal.ZERO,
getDevolucoesOrigemGAP() != null ? getDevolucoesOrigemGAP() : BigDecimal.ZERO);
return MoneyHelper.arredondar(devolvidosGap, 2);
return getDevolvidosGAP();
}
public BigDecimal getDevolvidosGAP() {