fixes bug #8826
git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@67335 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
332dec1021
commit
81680bfb81
|
@ -707,9 +707,7 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
|
|||
.append("BO1.MOTIVOCANCELACION_ID \"motivoCancelacionOriginal1\", BO2.MOTIVOCANCELACION_ID \"motivoCancelacionOriginal2\", ")
|
||||
.append("NVL(tarifa.PRECIO,0) + NVL(tarifa.IMPORTEPEDAGIO,0) + NVL(tarifa.IMPORTETAXAEMBARQUE,0) + NVL(tarifa.IMPORTESEGURO,0) + NVL(tarifa.IMPORTEOUTROS,0) AS \"valorTabela\", ")
|
||||
.append("NVL(OCD.VALOR_PAGAR,0) AS \"valorPagarOcd\", NVL(OCD.VALOR_TARJETA,0) AS \"valorTarjetaOcd\", ")
|
||||
.append("B.INDCANCELACION AS \"indCancelacion\", ")
|
||||
.append("BA.TIPOVENTA_ID AS \"tipoventaAnteriorId\", ")
|
||||
.append("BA.BOLETO_ID AS \"boletoAnteriorId\" ")
|
||||
.append("B.INDCANCELACION AS \"indCancelacion\", BA.TIPOVENTA_ID AS \"tipoventaAnteriorId\", B.INDREIMPRESION AS \"indreimpresion\" ")
|
||||
.append("FROM BOLETO B ")
|
||||
.append("LEFT JOIN BOLETO BO1 ON BO1.BOLETO_ID = B.BOLETOORIGINAL_ID ")
|
||||
.append("LEFT JOIN BOLETO BO2 ON BO2.BOLETO_ID = BO1.BOLETOORIGINAL_ID ")
|
||||
|
@ -789,7 +787,7 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
|
|||
.addScalar("valorTarjetaOcd", Hibernate.BIG_DECIMAL)
|
||||
.addScalar("indCancelacion", Hibernate.BOOLEAN)
|
||||
.addScalar("tipoventaAnteriorId", Hibernate.INTEGER)
|
||||
.addScalar("boletoAnteriorId", Hibernate.LONG)
|
||||
.addScalar("indreimpresion", Hibernate.BOOLEAN)
|
||||
.setResultTransformer(Transformers.aliasToBean(BoletoComissao.class));
|
||||
setParametros(qr, parametros);
|
||||
|
||||
|
@ -848,7 +846,8 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
|
|||
.append("SELECT DISTINCT O.OCD_ID AS \"ocdId\", O.NUMOPERACION AS \"numoperacion\", O.FECINC AS \"fecinc\", O.FECPAGAR AS \"fecpagar\", O.FECPAGO AS \"fecpago\", ")
|
||||
.append("O.INDPAGO AS \"indpago\", O.VALOR_PAGAR AS \"valorPagar\", (B.PRECIOPAGADO * (O.PENALIZACION / 100)) AS \"penalizacion\", LOG.STATUS AS \"status\", ")
|
||||
.append("U.NOMBUSUARIO AS \"nombusuario\", LOG.LOGCONFERENCIA_ID AS \"logconferenciaId\", U.CVEUSUARIO AS \"login\", B.NUMFOLIOSISTEMA AS \"numFolioSistema\", ")
|
||||
.append("CEC.INDOCD AS \"exigeConferenciaAba\" ").append("FROM OCD O ")
|
||||
.append("CEC.INDOCD AS \"exigeConferenciaAba\" ")
|
||||
.append("FROM OCD O ")
|
||||
.append("INNER JOIN BOLETO B ON B.BOLETO_ID = O.BOLETO_ID ")
|
||||
.append("INNER JOIN MARCA M ON B.MARCA_ID = M.MARCA_ID ")
|
||||
.append("LEFT JOIN LOG_CONFERENCIA LOG ON LOG.OCD_ID = O.OCD_ID AND LOG.ACTIVO = 1 ")
|
||||
|
|
|
@ -55,7 +55,7 @@ public interface ConferenciaComissaoService extends GenericService<Conferencia,
|
|||
|
||||
public boolean isOcdSemConferencia(List<OcdVO> lsOcd) throws BusinessException;
|
||||
|
||||
public BigDecimal totalizarBoletoComissao(List<BoletoComissao> lsBoletoComissao, IndStatusBoleto... statusBilhete) throws BusinessException;
|
||||
public BigDecimal totalizarBoletoComissao(List<BoletoComissao> lsBoletoComissao, Boolean indreimpression, IndStatusBoleto... statusBilhete) throws BusinessException;
|
||||
|
||||
public BigDecimal totalizarEventosFinanceiros(List<EventosFinanceirosVO> lsEventosFinanceiros) throws BusinessException;
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@ import org.springframework.transaction.annotation.Propagation;
|
|||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.zkoss.util.resource.Labels;
|
||||
|
||||
import com.rjconsultores.ventaboletos.constantes.Constantes;
|
||||
import com.rjconsultores.ventaboletos.dao.ConferenciaComissaoDAO;
|
||||
import com.rjconsultores.ventaboletos.dao.EmpresaDAO;
|
||||
import com.rjconsultores.ventaboletos.dao.PuntoVentaDAO;
|
||||
|
@ -374,7 +375,7 @@ public class ConferenciaComissaoServiceImpl implements ConferenciaComissaoServic
|
|||
}
|
||||
|
||||
@Override
|
||||
public BigDecimal totalizarBoletoComissao(List<BoletoComissao> lsBoletoComissao, IndStatusBoleto... statusBilhete) throws BusinessException {
|
||||
public BigDecimal totalizarBoletoComissao(List<BoletoComissao> lsBoletoComissao, Boolean indreimpression, IndStatusBoleto... statusBilhete) throws BusinessException {
|
||||
List<IndStatusBoleto> lStatusBilhete = null;
|
||||
if (statusBilhete != null && statusBilhete.length > 0) {
|
||||
lStatusBilhete = Arrays.asList(statusBilhete);
|
||||
|
@ -383,6 +384,10 @@ public class ConferenciaComissaoServiceImpl implements ConferenciaComissaoServic
|
|||
BigDecimal total = BigDecimal.ZERO;
|
||||
if (lsBoletoComissao != null) {
|
||||
for (BoletoComissao boletoComissao : lsBoletoComissao) {
|
||||
if(indreimpression != null && !indreimpression.equals(boletoComissao.getIndreimpresion())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((lStatusBilhete == null || lStatusBilhete.contains(boletoComissao.getIndstatusboletoEnum())) &&
|
||||
!boletoComissao.isVendaBilheteConfirmaAberto(boletoComissao.getTipoVenta())) {
|
||||
total = total.add(boletoComissao.getTotal());
|
||||
|
@ -399,7 +404,7 @@ public class ConferenciaComissaoServiceImpl implements ConferenciaComissaoServic
|
|||
BigDecimal totalOcd = BigDecimal.ZERO;
|
||||
if (lsBoletoComissao != null) {
|
||||
for (BoletoComissao boletoComissao : lsBoletoComissao) {
|
||||
if (boletoComissao.isMotivocancelacionGeracaoOcd()) {
|
||||
if (boletoComissao.isOcd()) {
|
||||
totalOcd = totalOcd.add(boletoComissao.getTotal());
|
||||
} else if (boletoComissao.isMotivocancelacionDevolvido()) {
|
||||
totalDevolvidos = totalDevolvidos.add(boletoComissao.getTotal());
|
||||
|
@ -453,13 +458,63 @@ public class ConferenciaComissaoServiceImpl implements ConferenciaComissaoServic
|
|||
resumoComissao.setTotalOcd(totalOcd);
|
||||
|
||||
carregarTotalFormapago(resumoComissao, boletoComissaos, lsEventosFinanceiros);
|
||||
|
||||
subtrairOcdFormapagoDinheiro(totalOcd, resumoComissao);
|
||||
|
||||
resumoComissao.setValorDeposito(conferenciaComissaoDAO.carregarValorDepositoContaCorrente(conferencia.getEmpresa().getEmpresaId(), conferencia.getPuntoVenta().getPuntoventaId(), conferencia.getDatamovimento()));
|
||||
resumoComissao.setValorDeposito(carregarTotalFormapagoDinheiro(resumoComissao));
|
||||
resumoComissao.setQuantidadeEcf(puntoVentaDAO.quantidadeECFPorPuntoVenta(conferencia.getEmpresa().getEmpresaId(), conferencia.getPuntoVenta().getPuntoventaId()));
|
||||
|
||||
return resumoComissao;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retorna o valor total de forma pago do tipo DINHEIRO
|
||||
* @param resumoComissao
|
||||
* @return
|
||||
*/
|
||||
private BigDecimal carregarTotalFormapagoDinheiro(ResumoComissao resumoComissao) {
|
||||
for (FormapagoVO formapagoVO : resumoComissao.getTotalFormapago()) {
|
||||
if(formapagoVO.getFormapagoId().equals(Constantes.FORMA_PAGO_DINHEIRO.intValue())) {
|
||||
return formapagoVO.getImporte();
|
||||
}
|
||||
}
|
||||
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
|
||||
/**
|
||||
* Subtrai do total de forma pago o total pago das ocds.
|
||||
* @param totalOcd
|
||||
* @param resumoComissao
|
||||
*/
|
||||
private void subtrairOcdFormapagoDinheiro(OcdVO totalOcd, ResumoComissao resumoComissao) {
|
||||
FormapagoVO formapagoDinheiro = null;
|
||||
for (FormapagoVO formapagoVO : resumoComissao.getTotalFormapago()) {
|
||||
if(formapagoVO.getFormapagoId().equals(Constantes.FORMA_PAGO_DINHEIRO.intValue())) {
|
||||
formapagoDinheiro = formapagoVO;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(formapagoDinheiro == null) {
|
||||
formapagoDinheiro = new FormapagoVO(Constantes.FORMA_PAGO_DINHEIRO.intValue(), "DINHEIRO", null, BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
formapagoDinheiro.subtract(totalOcd.getValorPagar());
|
||||
|
||||
if(!resumoComissao.getTotalFormapago().contains(formapagoDinheiro)) {
|
||||
resumoComissao.getTotalFormapago().add(formapagoDinheiro);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Totaliza os valores conforme o forma pago, apenas do bilhetes que geraram registros em caixa
|
||||
* (+) Abas: Bilhetes Manual, Bilhetes, Gap Venda
|
||||
* (-) Abas: Bilhetes Cancelados, Bilhetes Devolvidos, Gap Cancelados, Gap Devolvidos
|
||||
* @param resumoComissao
|
||||
* @param boletoComissaos
|
||||
* @param lsEventosFinanceiros
|
||||
*/
|
||||
private void carregarTotalFormapago(ResumoComissao resumoComissao, List<BoletoComissao> boletoComissaos, List<EventosFinanceirosVO> lsEventosFinanceiros) {
|
||||
List<FormapagoVO> totalFormapagos = new ArrayList<FormapagoVO>();
|
||||
for (BoletoComissao boletoComissao : boletoComissaos) {
|
||||
|
@ -473,9 +528,9 @@ public class ConferenciaComissaoServiceImpl implements ConferenciaComissaoServic
|
|||
totalFormapagos.add(formapago);
|
||||
}
|
||||
|
||||
if (boletoComissao.isStatusVendido() || boletoComissao.isStatusTroca()) {
|
||||
if (boletoComissao.isAbaBilheteVendido() || boletoComissao.isAbaGapVendido() || boletoComissao.isAbaBilheteManual()) {
|
||||
formapago.add(formapagoBoleto.getImporte());
|
||||
} else if (boletoComissao.isAbaBilheteCancelado() || boletoComissao.isAbaBilheteDevolvido() || boletoComissao.isAbaGapCancelado() || boletoComissao.isAbaGapDevolvido()) {
|
||||
} else if ((boletoComissao.isAbaBilheteCancelado() || boletoComissao.isAbaBilheteDevolvido() || boletoComissao.isAbaGapCancelado() || boletoComissao.isAbaGapDevolvido())) {
|
||||
formapago.subtract(formapagoBoleto.getImporte());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -75,9 +75,10 @@ public class BoletoComissao {
|
|||
private Integer corridaId;
|
||||
|
||||
private Boolean indCancelacion;
|
||||
|
||||
private Boolean indreimpresion;
|
||||
|
||||
private Integer tipoventaAnteriorId;
|
||||
private Long boletoAnteriorId;
|
||||
|
||||
public Integer getEmpresaId() {
|
||||
return empresaId;
|
||||
|
@ -389,17 +390,25 @@ public class BoletoComissao {
|
|||
public String getSituacaoBilhete() {
|
||||
if (isOcd()) {
|
||||
return "OCD";
|
||||
} else if ((isStatusCancelado()) && (isMotivocancelacionDevolvido() || isMotivocancelacionCancelado())
|
||||
}
|
||||
|
||||
if(isStatusVendido()) {
|
||||
return IndStatusBoleto.getIndStatusBoleto(getIndstatusboleto()).getValue();
|
||||
}
|
||||
|
||||
if ((isStatusCancelado()) && (isMotivocancelacionDevolvido() || isMotivocancelacionCancelado())
|
||||
&& StringUtils.isNotBlank(getDescmotivocancelacion())) {
|
||||
return getDescmotivocancelacion();
|
||||
} else if ((isStatusVendido() || isStatusCancelado())
|
||||
&& !isMotivocancelacionDevolvido() && !isMotivocancelacionCancelado()) {
|
||||
if (isStatusCancelado() && isMotivocancelacionTrocado()) {
|
||||
return "B. VENDIDO TROCADO";
|
||||
} else if (isStatusVendido() && isMotivocancelacionTransferido()) {
|
||||
return "B. VENDIDO TRANSFERIDO";
|
||||
}
|
||||
|
||||
if (isStatusCancelado()) {
|
||||
if (isMotivocancelacionTrocado() || (isMotivocancelacionGeracaoOcd() && isFormapagoTrocaPassagem())) {
|
||||
return "TROCADO";
|
||||
} else if (isMotivocancelacionTransferido()) {
|
||||
return "TRANSFERIDO";
|
||||
}
|
||||
} else if (isStatusTroca()) {
|
||||
}
|
||||
if (isStatusTroca()) {
|
||||
if (isVendaBilheteTroca(getTipoVenta()) || isVendaGap(getTipoVenta())) {
|
||||
return "B. DA TROCA";
|
||||
} else if (isVendaBilheteTransferencia(getTipoVenta()) || isVendaGap(getTipoVenta())) {
|
||||
|
@ -413,8 +422,16 @@ public class BoletoComissao {
|
|||
return indStatusBoleto != null ? indStatusBoleto.getValue() : "";
|
||||
}
|
||||
|
||||
public boolean isFormapagoTrocaPassagem() {
|
||||
boolean fpTrocapassagem = false;
|
||||
for (FormapagoVO formapagoVO : formapagos) {
|
||||
fpTrocapassagem = formapagoVO.getFormapagoId().equals(Constantes.FORMA_PAGO_TROCA_PASSAGEM.intValue());
|
||||
}
|
||||
return fpTrocapassagem;
|
||||
}
|
||||
|
||||
public boolean isOcd() {
|
||||
return getOcdId() != null && isStatusCancelado();
|
||||
return getOcdId() != null && isStatusCancelado() && !isFormapagoTrocaPassagem();
|
||||
}
|
||||
|
||||
public String getNombusuario() {
|
||||
|
@ -742,21 +759,19 @@ public class BoletoComissao {
|
|||
|
||||
public boolean isTotalizarFormapago() {
|
||||
boolean totalizar = isTotalizarTipovenda();
|
||||
if (totalizar) {
|
||||
totalizar = !isOcd();
|
||||
}
|
||||
|
||||
totalizar = !isOcd();
|
||||
totalizar = !getIndreimpresion();
|
||||
return totalizar;
|
||||
}
|
||||
|
||||
private boolean isTotalizarTipovenda() {
|
||||
return isAbaBilheteCancelado() ||
|
||||
return isAbaBilheteManual() ||
|
||||
isAbaBilheteVendido() ||
|
||||
isAbaBilheteCancelado() ||
|
||||
isAbaBilheteDevolvido() ||
|
||||
isAbaGapCancelado() ||
|
||||
isAbaGapDevolvido() ||
|
||||
isAbaBilheteManual() ||
|
||||
isAbaGapVendido() ||
|
||||
isAbaBilheteVendido();
|
||||
isAbaGapCancelado() ||
|
||||
isAbaGapDevolvido();
|
||||
}
|
||||
|
||||
public String getOrderExigeConferencia() {
|
||||
|
@ -786,15 +801,15 @@ public class BoletoComissao {
|
|||
return false;
|
||||
}
|
||||
|
||||
if(isMotivocancelacionTransferido()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(isVendaGap(getTipoVenta()) && !isStatusEntregue()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return isStatusVendido() || isStatusEntregue() || isStatusTroca();
|
||||
if((isVendaBilheteTransferencia(getTipoVenta())) && isVendaGap(getTipoVentaOriginal())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return isStatusVendido() || isStatusTroca() || isStatusEntregue();
|
||||
}
|
||||
|
||||
/** Define bilhete na aba de venda cancelada */
|
||||
|
@ -837,11 +852,11 @@ public class BoletoComissao {
|
|||
return false;
|
||||
}
|
||||
|
||||
if(isMotivocancelacionTransferido()) {
|
||||
if(!isVendaGap(getTipoVenta()) && !isVendaBilheteTransferencia(getTipoVenta())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!isVendaGap(getTipoVenta())) {
|
||||
|
||||
if((isVendaBilheteTransferencia(getTipoVenta())) && !isVendaGap(getTipoVentaOriginal())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -905,17 +920,17 @@ public class BoletoComissao {
|
|||
public void setTipoventaAnteriorId(Integer tipoventaAnteriorId) {
|
||||
this.tipoventaAnteriorId = tipoventaAnteriorId;
|
||||
}
|
||||
|
||||
public Long getBoletoAnteriorId() {
|
||||
return boletoAnteriorId;
|
||||
}
|
||||
|
||||
public void setBoletoAnteriorId(Long boletoAnteriorId) {
|
||||
this.boletoAnteriorId = boletoAnteriorId;
|
||||
}
|
||||
|
||||
private boolean isNotNumFolioPreImpressoGerado() {
|
||||
return StringUtils.isBlank(getNumFolioPreImpreso());
|
||||
}
|
||||
|
||||
public Boolean getIndreimpresion() {
|
||||
return indreimpresion;
|
||||
}
|
||||
|
||||
public void setIndreimpresion(Boolean indreimpresion) {
|
||||
this.indreimpresion = indreimpresion;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import java.math.BigDecimal;
|
|||
|
||||
import com.rjconsultores.ventaboletos.utilerias.BigDecimalUtil;
|
||||
import com.rjconsultores.ventaboletos.utilerias.LocaleUtil;
|
||||
import com.rjconsultores.ventaboletos.utilerias.MoneyHelper;
|
||||
|
||||
public class FormapagoVO {
|
||||
|
||||
|
@ -89,11 +90,11 @@ public class FormapagoVO {
|
|||
}
|
||||
|
||||
public void add(BigDecimal importe) {
|
||||
this.importe = this.importe.add(importe != null ? importe : BigDecimal.ZERO);
|
||||
this.importe = MoneyHelper.somar(this.importe, (importe != null ? importe : BigDecimal.ZERO));
|
||||
}
|
||||
|
||||
public void subtract(BigDecimal importe) {
|
||||
this.importe = this.importe.subtract(importe != null ? importe : BigDecimal.ZERO);
|
||||
this.importe = MoneyHelper.subtrair(this.importe,(importe != null ? importe : BigDecimal.ZERO));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue