fixes bug#23227

dev:wilian
qua:

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@108677 d1611594-4594-4d17-8e1d-87c2c4800839
master
wilian 2021-09-10 23:21:37 +00:00
parent 574935912c
commit e5e6708b7f
10 changed files with 613 additions and 13 deletions

View File

@ -0,0 +1,15 @@
package com.rjconsultores.ventaboletos.dao;
import java.util.Date;
import java.util.List;
import com.rjconsultores.ventaboletos.entidad.ComissaoLog;
import com.rjconsultores.ventaboletos.vo.comissao.ComissaoLogVO;
public interface ComissaoLogDAO extends GenericDAO<ComissaoLog, Integer> {
public void limparComissaoLog(Integer empresaId, Integer puntoVentaId, Date dataInicial, Date dataFinal);
public void suscribirTodos(List<ComissaoLogVO> lsComissaoLogVO);
}

View File

@ -0,0 +1,66 @@
package com.rjconsultores.ventaboletos.dao.hibernate;
import java.util.Date;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;
import com.rjconsultores.ventaboletos.dao.ComissaoLogDAO;
import com.rjconsultores.ventaboletos.entidad.ComissaoLog;
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
import com.rjconsultores.ventaboletos.vo.comissao.ComissaoLogVO;
@Repository("comissaoLogHibernateDAO")
public class ComissaoLogHibernateDAO extends GenericHibernateDAO<ComissaoLog, Integer> implements ComissaoLogDAO {
@Autowired
public ComissaoLogHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
setSessionFactory(factory);
}
@Override
public void limparComissaoLog(Integer empresaId, Integer puntoVentaId, Date dataInicial, Date dataFinal) {
StringBuilder hql = new StringBuilder();
hql.append("delete comissao_log ");
hql.append("where activo = 1 ");
hql.append(" AND puntoventa_id = :puntoventaId ");
hql.append(" AND empresa_id = :empresaId ");
hql.append(" AND feccorte between TO_DATE(:dataInicial,'DD/MM/YYYY hh24:mi') and TO_DATE(:dataFinal,'DD/MM/YYYY hh24:mi') ");
Query query = getSession().createSQLQuery(hql.toString());
query.setString("dataInicial", DateUtil.getStringDate(DateUtil.inicioFecha(dataInicial), "dd/MM/yyyy HH:mm"));
query.setString("dataFinal", DateUtil.getStringDate(DateUtil.inicioFecha(dataFinal), "dd/MM/yyyy HH:mm"));
query.setInteger("puntoventaId", puntoVentaId);
query.setInteger("empresaId", empresaId);
query.executeUpdate();
}
@Override
public void suscribirTodos(List<ComissaoLogVO> lsComissaoLogVO) {
for (ComissaoLogVO vo : lsComissaoLogVO) {
ComissaoLog comissaoLog = new ComissaoLog();
comissaoLog.setPuntoventaId(vo.getPuntoventaId());
comissaoLog.setEmpresaId(vo.getEmpresaId());
comissaoLog.setActivo(true);
comissaoLog.setFecmodif(new Date());
comissaoLog.setFeccorte(vo.getFeccorte());
comissaoLog.setUsuarioId(vo.getUsuarioId());
comissaoLog.setTurnoId(vo.getTurnoId());
comissaoLog.setCajaId(vo.getCajaId());
comissaoLog.setCajadiversosId(vo.getCajadiversosId());
comissaoLog.setPorcComissao(vo.getPorcComissao());
comissaoLog.setValorBase(vo.getValorBase());
comissaoLog.setValorComissao(vo.getValorComissao());
comissaoLog.setOrigem(vo.getOrigem());
comissaoLog.setTexto(vo.getTexto());
suscribir(comissaoLog);
}
}
}

View File

@ -618,7 +618,8 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
.append("COALESCE(CEC.INDTIPO_DEB_CRED, 0) AS \"tipoeventoextradebcred\", ") .append("COALESCE(CEC.INDTIPO_DEB_CRED, 0) AS \"tipoeventoextradebcred\", ")
.append("CEC.INDEVENTOSFINANCEIROS AS \"exigeConferenciaAba\", B.NUMFOLIOSISTEMA \"numFolioSistema\", ") .append("CEC.INDEVENTOSFINANCEIROS AS \"exigeConferenciaAba\", B.NUMFOLIOSISTEMA \"numFolioSistema\", ")
.append("TEE.CVETIPOEVENTO AS \"cvetipoevento\", CD.FECCORTE AS \"feccorte\", ") .append("TEE.CVETIPOEVENTO AS \"cvetipoevento\", CD.FECCORTE AS \"feccorte\", ")
.append("EI.ICMS as \"icmsBase\", NVL(EST.ESTADO_ID,0) as \"estadoId\" ") .append("EI.ICMS as \"icmsBase\", NVL(EST.ESTADO_ID,0) as \"estadoId\", CD.CAJADIVERSOS_ID as cajaDiversosId, U.USUARIO_ID as usuarioId, ")
.append("CD.TURNO_ID as turnoId ")
.append("FROM EVENTO_EXTRA EE ") .append("FROM EVENTO_EXTRA EE ")
.append("JOIN TIPO_EVENTO_EXTRA TEE ON EE.TIPOEVENTOEXTRA_ID = TEE.TIPOEVENTOEXTRA_ID ") .append("JOIN TIPO_EVENTO_EXTRA TEE ON EE.TIPOEVENTOEXTRA_ID = TEE.TIPOEVENTOEXTRA_ID ")
.append("JOIN CAJA_DIVERSOS CD ON CD.EVENTOEXTRA_ID = EE.EVENTOEXTRA_ID ") .append("JOIN CAJA_DIVERSOS CD ON CD.EVENTOEXTRA_ID = EE.EVENTOEXTRA_ID ")
@ -676,6 +677,9 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
eventosFinanceiros.setFeccorte(rSet.getDate("feccorte")); eventosFinanceiros.setFeccorte(rSet.getDate("feccorte"));
eventosFinanceiros.setIcmsBase(rSet.getBigDecimal("icmsBase")); eventosFinanceiros.setIcmsBase(rSet.getBigDecimal("icmsBase"));
eventosFinanceiros.setEstadoId(rSet.getInt("estadoId") > 0 ? rSet.getInt("estadoId") : null); eventosFinanceiros.setEstadoId(rSet.getInt("estadoId") > 0 ? rSet.getInt("estadoId") : null);
eventosFinanceiros.setCajaDiversosId(rSet.getLong("cajaDiversosId"));
eventosFinanceiros.setUsuarioId(rSet.getInt("usuarioId"));
eventosFinanceiros.setTurnoId(rSet.getInt("turnoId"));
eventosFinanceiros.setConferencia(conferencia); eventosFinanceiros.setConferencia(conferencia);
@ -860,7 +864,7 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
.append(" THEN 1 ELSE 0 END AS \"conferidoEntrega\", ") .append(" THEN 1 ELSE 0 END AS \"conferidoEntrega\", ")
.append("C.PTOVTAVENTA_ID AS ptovtaventaId, ") .append("C.PTOVTAVENTA_ID AS ptovtaventaId, ")
.append("C.PUNTOVENTA_ID AS puntoventaId ") .append("C.PUNTOVENTA_ID AS puntoventaId ")
.append(", CF.cajaformapago_id ") //Mantis 17018 .append(", CF.cajaformapago_id, U.USUARIO_ID usuarioId, C.TURNO_ID as turnoId ") //Mantis 17018
.append("FROM CAJA C ") .append("FROM CAJA C ")
.append("LEFT JOIN PARADA ORI ON ORI.PARADA_ID = C.ORIGEN_ID ") .append("LEFT JOIN PARADA ORI ON ORI.PARADA_ID = C.ORIGEN_ID ")
.append("LEFT JOIN CIUDAD CID ON CID.CIUDAD_ID = ORI.CIUDAD_ID ") .append("LEFT JOIN CIUDAD CID ON CID.CIUDAD_ID = ORI.CIUDAD_ID ")
@ -978,6 +982,8 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
boletoComissao.setPtovtaventaId(rSet.getInt("ptovtaventaId")); boletoComissao.setPtovtaventaId(rSet.getInt("ptovtaventaId"));
boletoComissao.setPuntoVentaId(rSet.getInt("puntoventaId")); boletoComissao.setPuntoVentaId(rSet.getInt("puntoventaId"));
boletoComissao.setConferidoEntrega(rSet.getBoolean("conferidoEntrega")); boletoComissao.setConferidoEntrega(rSet.getBoolean("conferidoEntrega"));
boletoComissao.setUsuarioId(rSet.getInt("usuarioId"));
boletoComissao.setTurnoId(rSet.getInt("turnoId"));
if(boletoComissao.getStatus() == null && boletoComissao.getConferidoEntrega() != null && boletoComissao.getConferidoEntrega()) { if(boletoComissao.getStatus() == null && boletoComissao.getConferidoEntrega() != null && boletoComissao.getConferidoEntrega()) {
boletoComissao.setConferido(true); boletoComissao.setConferido(true);

View File

@ -0,0 +1,195 @@
package com.rjconsultores.ventaboletos.entidad;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
@SequenceGenerator(name = "COMISSAO_LOG_SEQ", sequenceName = "COMISSAO_LOG_SEQ", allocationSize = 1)
@Table(name = "COMISSAO_LOG")
public class ComissaoLog implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@GeneratedValue(strategy = GenerationType.AUTO, generator = "COMISSAO_LOG_SEQ")
@Column(name = "COMISSAOLOG_ID")
private Long comissaologId;
@Column(name = "PUNTOVENTA_ID")
private Integer puntoventaId;
@Column(name = "EMPRESA_ID")
private Integer empresaId;
@Column(name = "ACTIVO")
private Boolean activo;
@Column(name = "FECMODIF")
@Temporal(TemporalType.TIMESTAMP)
private Date fecmodif;
@Column(name = "FECCORTE")
@Temporal(TemporalType.DATE)
private Date feccorte;
@Column(name = "USUARIO_ID")
private Integer usuarioId;
@Column(name = "TURNO_ID")
private Integer turnoId;
@Column(name = "CAJA_ID")
private Long cajaId;
@Column(name = "CAJADIVERSOS_ID")
private Long cajadiversosId;
@Column(name = "PORC_COMISSAO")
private BigDecimal porcComissao;
@Column(name = "VALOR_BASE")
private BigDecimal valorBase;
@Column(name = "VALOR_COMISSAO")
private BigDecimal valorComissao;
@Column(name = "ORIGEM")
private String origem;
@Column(name = "TEXTO")
private String texto;
public Long getComissaologId() {
return comissaologId;
}
public void setComissaologId(Long comissaologId) {
this.comissaologId = comissaologId;
}
public Integer getPuntoventaId() {
return puntoventaId;
}
public void setPuntoventaId(Integer puntoventaId) {
this.puntoventaId = puntoventaId;
}
public Integer getEmpresaId() {
return empresaId;
}
public void setEmpresaId(Integer empresaId) {
this.empresaId = empresaId;
}
public Boolean getActivo() {
return activo;
}
public void setActivo(Boolean activo) {
this.activo = activo;
}
public Date getFecmodif() {
return fecmodif;
}
public void setFecmodif(Date fecmodif) {
this.fecmodif = fecmodif;
}
public Date getFeccorte() {
return feccorte;
}
public void setFeccorte(Date feccorte) {
this.feccorte = feccorte;
}
public Integer getUsuarioId() {
return usuarioId;
}
public void setUsuarioId(Integer usuarioId) {
this.usuarioId = usuarioId;
}
public Integer getTurnoId() {
return turnoId;
}
public void setTurnoId(Integer turnoId) {
this.turnoId = turnoId;
}
public Long getCajaId() {
return cajaId;
}
public void setCajaId(Long cajaId) {
this.cajaId = cajaId;
}
public Long getCajadiversosId() {
return cajadiversosId;
}
public void setCajadiversosId(Long cajadiversosId) {
this.cajadiversosId = cajadiversosId;
}
public BigDecimal getPorcComissao() {
return porcComissao;
}
public void setPorcComissao(BigDecimal porcComissao) {
this.porcComissao = porcComissao;
}
public BigDecimal getValorBase() {
return valorBase;
}
public void setValorBase(BigDecimal valorBase) {
this.valorBase = valorBase;
}
public BigDecimal getValorComissao() {
return valorComissao;
}
public void setValorComissao(BigDecimal valorComissao) {
this.valorComissao = valorComissao;
}
public String getOrigem() {
return origem;
}
public void setOrigem(String origem) {
this.origem = origem;
}
public String getTexto() {
return texto;
}
public void setTexto(String texto) {
this.texto = texto;
}
}

View File

@ -60,6 +60,7 @@ import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao; import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao;
import com.rjconsultores.ventaboletos.vo.comissao.ComissaoDesconto; import com.rjconsultores.ventaboletos.vo.comissao.ComissaoDesconto;
import com.rjconsultores.ventaboletos.vo.comissao.ComissaoDesconto.TipoDesconto; import com.rjconsultores.ventaboletos.vo.comissao.ComissaoDesconto.TipoDesconto;
import com.rjconsultores.ventaboletos.vo.comissao.ComissaoLogVO;
import com.rjconsultores.ventaboletos.vo.comissao.ComissaoReceita; import com.rjconsultores.ventaboletos.vo.comissao.ComissaoReceita;
import com.rjconsultores.ventaboletos.vo.comissao.EmailConfigVO; import com.rjconsultores.ventaboletos.vo.comissao.EmailConfigVO;
import com.rjconsultores.ventaboletos.vo.comissao.EventosFinanceirosVO; import com.rjconsultores.ventaboletos.vo.comissao.EventosFinanceirosVO;
@ -276,7 +277,7 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
return realizarCalculoComissao(puntoVentaId, empresaId, periodo, isRetencaoDiaria, usuarioId, isRefazerCalculo); return realizarCalculoComissao(puntoVentaId, empresaId, periodo, isRetencaoDiaria, usuarioId, isRefazerCalculo);
} }
private BigDecimal calculoComisssaoBPR(boolean isAltaTemporada, PtovtaComissao ptovtaComissao, BigDecimal bpr, BigDecimal gap, boolean isBilheteGap) { private BigDecimal calculoComisssaoBPR(boolean isAltaTemporada, PtovtaComissao ptovtaComissao, BigDecimal bpr, BigDecimal gap, boolean isBilheteGap, ComissaoLogVO comissaoLog) {
// Comissão BPR = Receita Comissão * (% Com BPR) // Comissão BPR = Receita Comissão * (% Com BPR)
BigDecimal recbpr = BigDecimal.ZERO; BigDecimal recbpr = BigDecimal.ZERO;
@ -300,6 +301,8 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
log.info(String.format(":: Comissao Compartilhada Configurada para Bilhetes Imp. Post. - Percentual Comissão Alterado para: %s ::", percentualComissao)); log.info(String.format(":: Comissao Compartilhada Configurada para Bilhetes Imp. Post. - Percentual Comissão Alterado para: %s ::", percentualComissao));
} }
comissaoLog.setPorcComissao(percentualComissao);
recbpr = MoneyHelper.multiplicar(receitaBPR, MoneyHelper.dividir(percentualComissao,CEM,4), 4); recbpr = MoneyHelper.multiplicar(receitaBPR, MoneyHelper.dividir(percentualComissao,CEM,4), 4);
return recbpr; return recbpr;
@ -341,13 +344,15 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
return entregaPassagem; return entregaPassagem;
} }
private BigDecimal calculoExcessoBagagem(boolean isAltaTemporada, PtovtaComissao ptovtaComissao, BigDecimal excBag) { private BigDecimal calculoExcessoBagagem(boolean isAltaTemporada, PtovtaComissao ptovtaComissao, BigDecimal excBag, ComissaoLogVO comissaoLog) {
// Comissão Excesso = Receita Excesso Bagagem * (% Com. Exc. Bag) // Comissão Excesso = Receita Excesso Bagagem * (% Com. Exc. Bag)
BigDecimal excessoBagagem = BigDecimal.ZERO; BigDecimal excessoBagagem = BigDecimal.ZERO;
if (isAltaTemporada) { if (isAltaTemporada) {
comissaoLog.setPorcComissao(ptovtaComissao.getExcessoAlta());
excessoBagagem = MoneyHelper.multiplicar(excBag, ptovtaComissao.getExcessoAlta() != null ? MoneyHelper.dividir(ptovtaComissao.getExcessoAlta(), CEM, 4) : BigDecimal.ZERO, 4); excessoBagagem = MoneyHelper.multiplicar(excBag, ptovtaComissao.getExcessoAlta() != null ? MoneyHelper.dividir(ptovtaComissao.getExcessoAlta(), CEM, 4) : BigDecimal.ZERO, 4);
} else { } else {
comissaoLog.setPorcComissao(ptovtaComissao.getExcessoBaixa());
excessoBagagem = MoneyHelper.multiplicar(excBag, ptovtaComissao.getExcessoBaixa() != null ? MoneyHelper.dividir(ptovtaComissao.getExcessoBaixa(), CEM, 4) : BigDecimal.ZERO, 4); excessoBagagem = MoneyHelper.multiplicar(excBag, ptovtaComissao.getExcessoBaixa() != null ? MoneyHelper.dividir(ptovtaComissao.getExcessoBaixa(), CEM, 4) : BigDecimal.ZERO, 4);
} }
@ -366,25 +371,29 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
return recSeguroObrigatorio; return recSeguroObrigatorio;
} }
private BigDecimal calculoSeguroOpcional(boolean isAltaTemporada, PtovtaComissao ptovtaComissao, BigDecimal segOpcional) { private BigDecimal calculoSeguroOpcional(boolean isAltaTemporada, PtovtaComissao ptovtaComissao, BigDecimal segOpcional, ComissaoLogVO comissaoLog) {
// Comissão Seg. Opcional = Receita Seguro Opcional * (% Com. Seg. Pol) // Comissão Seg. Opcional = Receita Seguro Opcional * (% Com. Seg. Pol)
BigDecimal recsegOpcional = BigDecimal.ZERO; BigDecimal recsegOpcional = BigDecimal.ZERO;
if (isAltaTemporada) { if (isAltaTemporada) {
comissaoLog.setPorcComissao(ptovtaComissao.getSeguroAlta());
recsegOpcional = MoneyHelper.multiplicar(segOpcional, ptovtaComissao.getSeguroAlta() != null ? MoneyHelper.dividir(ptovtaComissao.getSeguroAlta(), CEM, 4) : BigDecimal.ZERO, 4); recsegOpcional = MoneyHelper.multiplicar(segOpcional, ptovtaComissao.getSeguroAlta() != null ? MoneyHelper.dividir(ptovtaComissao.getSeguroAlta(), CEM, 4) : BigDecimal.ZERO, 4);
} else { } else {
comissaoLog.setPorcComissao(ptovtaComissao.getSeguroBaixa());
recsegOpcional = MoneyHelper.multiplicar(segOpcional, ptovtaComissao.getSeguroBaixa() != null ? MoneyHelper.dividir(ptovtaComissao.getSeguroBaixa(), CEM, 4) : BigDecimal.ZERO, 4); recsegOpcional = MoneyHelper.multiplicar(segOpcional, ptovtaComissao.getSeguroBaixa() != null ? MoneyHelper.dividir(ptovtaComissao.getSeguroBaixa(), CEM, 4) : BigDecimal.ZERO, 4);
} }
return recsegOpcional; return recsegOpcional;
} }
private BigDecimal calculoOutros(boolean isAltaTemporada, PtovtaComissao ptovtaComissao, BigDecimal outros) { private BigDecimal calculoOutros(boolean isAltaTemporada, PtovtaComissao ptovtaComissao, BigDecimal outros, ComissaoLogVO comissaoLog) {
// Comissão Seg. Opcional = Receita Seguro Opcional * (% Com. Seg. Pol) // Comissão Seg. Opcional = Receita Seguro Opcional * (% Com. Seg. Pol)
BigDecimal recoutros = BigDecimal.ZERO; BigDecimal recoutros = BigDecimal.ZERO;
if (isAltaTemporada) { if (isAltaTemporada) {
comissaoLog.setPorcComissao(ptovtaComissao.getOutrosAlta());
recoutros = MoneyHelper.multiplicar(outros, ptovtaComissao.getOutrosAlta() != null ? MoneyHelper.dividir(ptovtaComissao.getOutrosAlta(), CEM, 4) : BigDecimal.ZERO, 4); recoutros = MoneyHelper.multiplicar(outros, ptovtaComissao.getOutrosAlta() != null ? MoneyHelper.dividir(ptovtaComissao.getOutrosAlta(), CEM, 4) : BigDecimal.ZERO, 4);
} else { } else {
comissaoLog.setPorcComissao(ptovtaComissao.getOutrosBaixa());
recoutros = MoneyHelper.multiplicar(outros, ptovtaComissao.getOutrosBaixa() != null ? MoneyHelper.dividir(ptovtaComissao.getOutrosBaixa(), CEM, 4) : BigDecimal.ZERO, 4); recoutros = MoneyHelper.multiplicar(outros, ptovtaComissao.getOutrosBaixa() != null ? MoneyHelper.dividir(ptovtaComissao.getOutrosBaixa(), CEM, 4) : BigDecimal.ZERO, 4);
} }
return recoutros; return recoutros;
@ -762,6 +771,31 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
continue; continue;
} }
ComissaoLogVO comissaoLog = new ComissaoLogVO();
comissaoLog.setFeccorte(dataRegistro);
comissaoLog.setCajaId(rcc.getCajaId());
comissaoLog.setEmpresaId(empresaId);
comissaoLog.setPuntoventaId(rcc.getPuntoVentaId());
comissaoLog.setTurnoId(rcc.getTurnoId());
comissaoLog.setUsuarioId(rcc.getUsuarioId());
comissaoLog.setOrigem("ADM");
StringBuilder sTextoLog = new StringBuilder();
sTextoLog.append("[CAJA_ID: ")
.append(rcc.getCajaId())
.append("] ")
.append("[BILHETE: ")
.append(rcc.getNumFolioSistema())
.append("] ")
.append("[INDSTATUSBOLETO: ")
.append(rcc.getIndstatusboleto())
.append("] ")
.append("[MOTIVO_CANCELAMENTO: ")
.append(rcc.getMotivoCancelacionId() != null ? rcc.getMotivoCancelacionId() : "")
.append("] ")
.append("[TIPO_VENDA: ")
.append(rcc.getTipoVenta())
.append("] ");
BigDecimal receitaItem = BigDecimal.ZERO; BigDecimal receitaItem = BigDecimal.ZERO;
BigDecimal receitaDevItem = BigDecimal.ZERO; BigDecimal receitaDevItem = BigDecimal.ZERO;
@ -844,6 +878,13 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
BigDecimal entregaPassagem = calculoEntregaPassagem(isAltaTemporada, ptovtaComissao, receitaTotalPassagem, BigDecimal.ZERO, 1); BigDecimal entregaPassagem = calculoEntregaPassagem(isAltaTemporada, ptovtaComissao, receitaTotalPassagem, BigDecimal.ZERO, 1);
comissaoEntregaPassagem = MoneyHelper.somar(comissaoEntregaPassagem, entregaPassagem, 4); comissaoEntregaPassagem = MoneyHelper.somar(comissaoEntregaPassagem, entregaPassagem, 4);
sTextoLog.append("[RECEITA_IMPRESSAO_IMP_POS: ")
.append(receitaTotalPassagem)
.append("] ")
.append("[COMISSAO_IMPRESSAO_IMP_POS: ")
.append(comissaoEntregaPassagem)
.append("] ");
} else { } else {
// Receita GAP // Receita GAP
@ -851,7 +892,7 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
receitaGAP = MoneyHelper.somar(receitaGAP, receitaItem); receitaGAP = MoneyHelper.somar(receitaGAP, receitaItem);
receitaGAP = MoneyHelper.somar(receitaGAP, receitaSeguroObrigatorioItem); receitaGAP = MoneyHelper.somar(receitaGAP, receitaSeguroObrigatorioItem);
bpr = calculoComisssaoBPR(isAltaTemporada, ptovtaComissao, BigDecimal.ZERO, receitaItem, rcc.isBilheteGap()); bpr = calculoComisssaoBPR(isAltaTemporada, ptovtaComissao, BigDecimal.ZERO, receitaItem, rcc.isBilheteGap(), comissaoLog);
} }
// Internet // Internet
@ -859,7 +900,7 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
internet = MoneyHelper.somar(internet, receitaItem); internet = MoneyHelper.somar(internet, receitaItem);
internet = MoneyHelper.somar(internet, receitaSeguroObrigatorioItem); internet = MoneyHelper.somar(internet, receitaSeguroObrigatorioItem);
bpr = calculoComisssaoBPR(isAltaTemporada, ptovtaComissao, BigDecimal.ZERO, receitaItem, rcc.isBilheteGap()); bpr = calculoComisssaoBPR(isAltaTemporada, ptovtaComissao, BigDecimal.ZERO, receitaItem, rcc.isBilheteGap(), comissaoLog);
} }
@ -868,7 +909,7 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
receitaBPR = MoneyHelper.somar(receitaBPR, receitaItem); receitaBPR = MoneyHelper.somar(receitaBPR, receitaItem);
receitaSeguroObrigatorio = MoneyHelper.somar(receitaSeguroObrigatorio, receitaSeguroObrigatorioItem); receitaSeguroObrigatorio = MoneyHelper.somar(receitaSeguroObrigatorio, receitaSeguroObrigatorioItem);
bpr = calculoComisssaoBPR(isAltaTemporada, ptovtaComissao, receitaItem, BigDecimal.ZERO, rcc.isBilheteGap()); bpr = calculoComisssaoBPR(isAltaTemporada, ptovtaComissao, receitaItem, BigDecimal.ZERO, rcc.isBilheteGap(), comissaoLog);
} }
@ -876,6 +917,33 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
comissaoSeguroObrigatorio = MoneyHelper.somar(comissaoSeguroObrigatorio, tmpComissaoSeguroObrigatorio, 4); comissaoSeguroObrigatorio = MoneyHelper.somar(comissaoSeguroObrigatorio, tmpComissaoSeguroObrigatorio, 4);
comissaoBPR = MoneyHelper.somar(comissaoBPR, bpr, 4); comissaoBPR = MoneyHelper.somar(comissaoBPR, bpr, 4);
if(!isSaidaCaixa) {
BigDecimal valorBase = MoneyHelper.somar(receitaItem, receitaSeguroObrigatorioItem);
BigDecimal valorComissao = MoneyHelper.somar(bpr, tmpComissaoSeguroObrigatorio);
comissaoLog.setValorBase(valorBase);
comissaoLog.setValorComissao(valorComissao);
sTextoLog.append("[RECEITA_ITEM: ")
.append(receitaItem)
.append("] ")
.append("[COMISSAO_BPR: ")
.append(bpr)
.append("] ")
.append("[COMISSAO_BPR_ATUAL: ")
.append(comissaoBPR)
.append("] ")
.append("[RECEITA_SEGURO_OBRIGATORIO: ")
.append(receitaSeguroObrigatorioItem)
.append("] ")
.append("[COMISSAO_SEGURO_OBRIGATORIO: ")
.append(tmpComissaoSeguroObrigatorio)
.append("] ")
.append("[COMISSAO_SEGURO_OBRIGATORIO_ATUAL: ")
.append(comissaoSeguroObrigatorio)
.append("] ");
}
} }
if (isSaidaCaixa) { if (isSaidaCaixa) {
@ -969,7 +1037,7 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
* Mantis #11015 * Mantis #11015
*/ */
if(rcc.getPtoVtaOrigem() || !isConsideraBilhetesDevolvidosEmOutraAgencia) { if(rcc.getPtoVtaOrigem() || !isConsideraBilhetesDevolvidosEmOutraAgencia) {
bpr = calculoComisssaoBPR(isAltaTemporada, ptovtaComissao, receitaDevItem, BigDecimal.ZERO, rcc.isBilheteGap()); bpr = calculoComisssaoBPR(isAltaTemporada, ptovtaComissao, receitaDevItem, BigDecimal.ZERO, rcc.isBilheteGap(), comissaoLog);
tmpComissaoSeguroObrigatorio = calculoSeguroObrigatorio(isAltaTemporada, ptovtaComissao, receitaSeguroObrigatorioDevItem); tmpComissaoSeguroObrigatorio = calculoSeguroObrigatorio(isAltaTemporada, ptovtaComissao, receitaSeguroObrigatorioDevItem);
comissaoSeguroObrigatorio = MoneyHelper.somar(comissaoSeguroObrigatorio, tmpComissaoSeguroObrigatorio.negate(), 4); comissaoSeguroObrigatorio = MoneyHelper.somar(comissaoSeguroObrigatorio, tmpComissaoSeguroObrigatorio.negate(), 4);
@ -977,9 +1045,37 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
//bpr = MoneyHelper.somar(bpr, tmpComissaoSeguroObrigatorio, 4); //bpr = MoneyHelper.somar(bpr, tmpComissaoSeguroObrigatorio, 4);
comissaoBPR = MoneyHelper.somar(comissaoBPR, bpr.negate(), 4); comissaoBPR = MoneyHelper.somar(comissaoBPR, bpr.negate(), 4);
BigDecimal valorBase = MoneyHelper.somar(receitaDevItem.negate(), receitaSeguroObrigatorioDevItem.negate());
BigDecimal valorComissao = MoneyHelper.somar(bpr.negate(), tmpComissaoSeguroObrigatorio.negate());
comissaoLog.setValorBase(valorBase);
comissaoLog.setValorComissao(valorComissao);
sTextoLog.append("[RECEITA_DEV_ITEM: ")
.append(receitaDevItem.negate())
.append("] ")
.append("[COMISSAO_BPR_DEV: ")
.append(bpr.negate())
.append("] ")
.append("[COMISSAO_BPR_ATUAL: ")
.append(comissaoBPR)
.append("] ")
.append("[RECEITA_SEGURO_OBRIGATORIO_DEV: ")
.append(receitaSeguroObrigatorioDevItem.negate())
.append("] ")
.append("[COMISSAO_SEGURO_OBRIGATORIO_DEV: ")
.append(tmpComissaoSeguroObrigatorio.negate())
.append("] ")
.append("[COMISSAO_SEGURO_OBRIGATORIO_ATUAL: ")
.append(comissaoSeguroObrigatorio)
.append("] ");
} }
} }
comissaoLog.setTexto(sTextoLog.toString());
cr.getLsComissaoLog().add(comissaoLog);
/* /*
log.info("---------"); log.info("---------");
log.info("CajaId=" + rcc.getCajaId() + ", numFolioSistema=" + rcc.getNumFolioSistema() + ", nombpasajero=" + rcc.getNombpasajero() + ", indstatusboleto=" + rcc.getIndstatusboleto() + ", motivocancelacionId=" + rcc.getMotivoCancelacionId() + ", PuntoventaId=" + rcc.getPuntoVentaId() + ", PtovtaventaId=" + rcc.getPtovtaventaId()); log.info("CajaId=" + rcc.getCajaId() + ", numFolioSistema=" + rcc.getNumFolioSistema() + ", nombpasajero=" + rcc.getNombpasajero() + ", indstatusboleto=" + rcc.getIndstatusboleto() + ", motivocancelacionId=" + rcc.getMotivoCancelacionId() + ", PuntoventaId=" + rcc.getPuntoVentaId() + ", PtovtaventaId=" + rcc.getPtovtaventaId());
@ -1009,21 +1105,38 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
/* Calculando comissão para os eventos extras */ /* Calculando comissão para os eventos extras */
List<EventosFinanceirosVO> listEventosFinanceiros = verificaEventoFinanceiroProDia(eventosFinanceirosVOs, dataRegistro); List<EventosFinanceirosVO> listEventosFinanceiros = verificaEventoFinanceiroProDia(eventosFinanceirosVOs, dataRegistro);
for (EventosFinanceirosVO eventosFinanceiros : listEventosFinanceiros) { for (EventosFinanceirosVO eventosFinanceiros : listEventosFinanceiros) {
ComissaoLogVO comissaoLog = new ComissaoLogVO();
comissaoLog.setFeccorte(dataRegistro);
comissaoLog.setCajadiversosId(eventosFinanceiros.getCajaDiversosId());
comissaoLog.setEmpresaId(empresaId);
comissaoLog.setPuntoventaId(ptovtaComissao.getPuntoventaId().getPuntoventaId());
comissaoLog.setTurnoId(eventosFinanceiros.getTurnoId());
comissaoLog.setUsuarioId(eventosFinanceiros.getUsuarioId());
comissaoLog.setOrigem("ADM");
boolean isAltaTemporada = validaAltaTemporada(impostos, mes, eventosFinanceiros.getEstadoId()); boolean isAltaTemporada = validaAltaTemporada(impostos, mes, eventosFinanceiros.getEstadoId());
if(TipoEventoExtra.EXCESSO_BAGAGEM.toString().equals(eventosFinanceiros.getCvetipoevento())) { if(TipoEventoExtra.EXCESSO_BAGAGEM.toString().equals(eventosFinanceiros.getCvetipoevento())) {
receitaExcessoBagagem = MoneyHelper.somar(receitaExcessoBagagem, eventosFinanceiros.getImpingreso()); receitaExcessoBagagem = MoneyHelper.somar(receitaExcessoBagagem, eventosFinanceiros.getImpingreso());
BigDecimal excessoBagagem = calculoExcessoBagagem(isAltaTemporada, ptovtaComissao, eventosFinanceiros.getImpingreso()); BigDecimal excessoBagagem = calculoExcessoBagagem(isAltaTemporada, ptovtaComissao, eventosFinanceiros.getImpingreso(), comissaoLog);
comissaoExcessoBagagem = MoneyHelper.somar(comissaoExcessoBagagem, excessoBagagem, 4); comissaoExcessoBagagem = MoneyHelper.somar(comissaoExcessoBagagem, excessoBagagem, 4);
adicionarTextoComissaoLog(comissaoLog, TipoEventoExtra.EXCESSO_BAGAGEM.toString(), receitaExcessoBagagem, excessoBagagem);
} else if(TipoEventoExtra.SEGURO_OPCIONAL.toString().equals(eventosFinanceiros.getCvetipoevento())) { } else if(TipoEventoExtra.SEGURO_OPCIONAL.toString().equals(eventosFinanceiros.getCvetipoevento())) {
receitaSeguroOpcional = MoneyHelper.somar(receitaSeguroOpcional, eventosFinanceiros.getImpingreso()); receitaSeguroOpcional = MoneyHelper.somar(receitaSeguroOpcional, eventosFinanceiros.getImpingreso());
BigDecimal segOpcional = calculoSeguroOpcional(isAltaTemporada, ptovtaComissao, eventosFinanceiros.getImpingreso()); BigDecimal segOpcional = calculoSeguroOpcional(isAltaTemporada, ptovtaComissao, eventosFinanceiros.getImpingreso(), comissaoLog);
comissaoSegOpcional = MoneyHelper.somar(comissaoSegOpcional, segOpcional, 4); comissaoSegOpcional = MoneyHelper.somar(comissaoSegOpcional, segOpcional, 4);
adicionarTextoComissaoLog(comissaoLog, TipoEventoExtra.SEGURO_OPCIONAL.toString(), receitaSeguroOpcional, segOpcional);
} else { } else {
receitaSeguroOutros = MoneyHelper.somar(receitaSeguroOutros, eventosFinanceiros.getImpingreso()); receitaSeguroOutros = MoneyHelper.somar(receitaSeguroOutros, eventosFinanceiros.getImpingreso());
BigDecimal outros = calculoOutros(isAltaTemporada, ptovtaComissao, eventosFinanceiros.getImpingreso()); BigDecimal outros = calculoOutros(isAltaTemporada, ptovtaComissao, eventosFinanceiros.getImpingreso(), comissaoLog);
comissaoOutros = MoneyHelper.somar(comissaoOutros, outros, 4); comissaoOutros = MoneyHelper.somar(comissaoOutros, outros, 4);
adicionarTextoComissaoLog(comissaoLog, "OUTROS", receitaSeguroOutros, outros);
} }
cr.getLsComissaoLog().add(comissaoLog);
} }
cr.setCancelados(cancelados); cr.setCancelados(cancelados);
@ -1070,6 +1183,27 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
} }
private void adicionarTextoComissaoLog(ComissaoLogVO comissaoLog, String campo, BigDecimal receitaComissao, BigDecimal comissao) {
comissaoLog.setValorBase(receitaComissao);
comissaoLog.setValorComissao(comissao);
StringBuilder sTexto = new StringBuilder();
sTexto.append("[CAJADIVERSOS_ID: ")
.append(comissaoLog.getCajadiversosId())
.append(": ")
.append("[RECEITA_")
.append(campo)
.append(": ")
.append(receitaComissao)
.append("] [COMISSAO_")
.append(campo)
.append(": ")
.append(comissao)
.append("]");
comissaoLog.setTexto(sTexto.toString());
}
private boolean isBilheteDevolucao(BoletoComissao rcc, boolean isDevolucaoComissaoTransferenciaGeraCaja) { private boolean isBilheteDevolucao(BoletoComissao rcc, boolean isDevolucaoComissaoTransferenciaGeraCaja) {
return rcc.isMotivocancelacionDevolvido() || return rcc.isMotivocancelacionDevolvido() ||
rcc.isMotivocancelacionGeracaoOcd() || rcc.isMotivocancelacionGeracaoOcd() ||

View File

@ -12,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import com.rjconsultores.ventaboletos.dao.ComissaoLogDAO;
import com.rjconsultores.ventaboletos.dao.ComissaoReceitaDAO; import com.rjconsultores.ventaboletos.dao.ComissaoReceitaDAO;
import com.rjconsultores.ventaboletos.entidad.ComissaoReceita; import com.rjconsultores.ventaboletos.entidad.ComissaoReceita;
import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Empresa;
@ -28,6 +29,9 @@ public class ComissaoReceitaServiceImpl implements ComissaoReceitaService {
@Autowired @Autowired
private ComissaoReceitaDAO comissaoReceitaDAO; private ComissaoReceitaDAO comissaoReceitaDAO;
@Autowired
private ComissaoLogDAO comissaoLogDAO;
@Override @Override
public List<ComissaoReceita> obtenerTodos() { public List<ComissaoReceita> obtenerTodos() {
@ -77,6 +81,7 @@ public class ComissaoReceitaServiceImpl implements ComissaoReceitaService {
comissaoReceita.setPuntoVenta(puntoVenta); comissaoReceita.setPuntoVenta(puntoVenta);
comissaoReceita.setUsuarioId(usuarioId); comissaoReceita.setUsuarioId(usuarioId);
comissaoReceitaDAO.suscribir(comissaoReceita); comissaoReceitaDAO.suscribir(comissaoReceita);
comissaoLogDAO.suscribirTodos(comissaoReceitaVO.getLsComissaoLog());
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
@ -138,6 +143,7 @@ public class ComissaoReceitaServiceImpl implements ComissaoReceitaService {
public void limparComissaoReceita(Integer empresaId, Integer puntoVentaId, Date dataInicial, Date dataFinal) throws BusinessException { public void limparComissaoReceita(Integer empresaId, Integer puntoVentaId, Date dataInicial, Date dataFinal) throws BusinessException {
try { try {
comissaoReceitaDAO.limparComissaoReceita(empresaId, puntoVentaId, dataInicial, dataFinal); comissaoReceitaDAO.limparComissaoReceita(empresaId, puntoVentaId, dataInicial, dataFinal);
comissaoLogDAO.limparComissaoLog(empresaId, puntoVentaId, dataInicial, dataFinal);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
throw new BusinessException(e.getMessage(), e); throw new BusinessException(e.getMessage(), e);

View File

@ -95,6 +95,10 @@ public class BoletoComissao {
private Boolean conferidoEntrega; private Boolean conferidoEntrega;
private Integer ptovtaventaId; private Integer ptovtaventaId;
private Integer usuarioId;
private Integer turnoId;
public Integer getEmpresaId() { public Integer getEmpresaId() {
return empresaId; return empresaId;
@ -1069,4 +1073,20 @@ public class BoletoComissao {
this.ptovtaventaId = ptovtaventaId; this.ptovtaventaId = ptovtaventaId;
} }
public Integer getUsuarioId() {
return usuarioId;
}
public void setUsuarioId(Integer usuarioId) {
this.usuarioId = usuarioId;
}
public Integer getTurnoId() {
return turnoId;
}
public void setTurnoId(Integer turnoId) {
this.turnoId = turnoId;
}
} }

View File

@ -0,0 +1,117 @@
package com.rjconsultores.ventaboletos.vo.comissao;
import java.math.BigDecimal;
import java.util.Date;
public class ComissaoLogVO {
private Integer puntoventaId;
private Integer empresaId;
private Date feccorte;
private Integer usuarioId;
private Integer turnoId;
private Long cajaId;
private Long cajadiversosId;
private BigDecimal porcComissao;
private BigDecimal valorBase;
private BigDecimal valorComissao;
private String origem;
private String texto;
public Integer getPuntoventaId() {
return puntoventaId;
}
public void setPuntoventaId(Integer puntoventaId) {
this.puntoventaId = puntoventaId;
}
public Integer getEmpresaId() {
return empresaId;
}
public void setEmpresaId(Integer empresaId) {
this.empresaId = empresaId;
}
public Date getFeccorte() {
return feccorte;
}
public void setFeccorte(Date feccorte) {
this.feccorte = feccorte;
}
public Integer getUsuarioId() {
return usuarioId;
}
public void setUsuarioId(Integer usuarioId) {
this.usuarioId = usuarioId;
}
public Integer getTurnoId() {
return turnoId;
}
public void setTurnoId(Integer turnoId) {
this.turnoId = turnoId;
}
public Long getCajaId() {
return cajaId;
}
public void setCajaId(Long cajaId) {
this.cajaId = cajaId;
}
public Long getCajadiversosId() {
return cajadiversosId;
}
public void setCajadiversosId(Long cajadiversosId) {
this.cajadiversosId = cajadiversosId;
}
public BigDecimal getPorcComissao() {
return porcComissao;
}
public void setPorcComissao(BigDecimal porcComissao) {
this.porcComissao = porcComissao;
}
public BigDecimal getValorBase() {
return valorBase;
}
public void setValorBase(BigDecimal valorBase) {
this.valorBase = valorBase;
}
public BigDecimal getValorComissao() {
return valorComissao;
}
public void setValorComissao(BigDecimal valorComissao) {
this.valorComissao = valorComissao;
}
public String getOrigem() {
return origem;
}
public void setOrigem(String origem) {
this.origem = origem;
}
public String getTexto() {
return texto;
}
public void setTexto(String texto) {
this.texto = texto;
}
}

View File

@ -1,7 +1,9 @@
package com.rjconsultores.ventaboletos.vo.comissao; package com.rjconsultores.ventaboletos.vo.comissao;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
@ -35,6 +37,8 @@ public class ComissaoReceita {
private String nombpuntoventa; private String nombpuntoventa;
private String numPuntoVenta; private String numPuntoVenta;
private List<ComissaoLogVO> lsComissaoLog;
public ComissaoReceita() { public ComissaoReceita() {
super(); super();
this.receitaComissao = BigDecimal.ZERO; this.receitaComissao = BigDecimal.ZERO;
@ -59,6 +63,7 @@ public class ComissaoReceita {
this.comissaoEntregaPassagemDiaria = BigDecimal.ZERO; this.comissaoEntregaPassagemDiaria = BigDecimal.ZERO;
this.comissaoOutrosDiaria = BigDecimal.ZERO; this.comissaoOutrosDiaria = BigDecimal.ZERO;
this.comissaoSeguroObrigatorioDiaria = BigDecimal.ZERO; this.comissaoSeguroObrigatorioDiaria = BigDecimal.ZERO;
this.lsComissaoLog = new ArrayList<ComissaoLogVO>();
} }
public Date getData() { public Date getData() {
@ -310,4 +315,12 @@ public class ComissaoReceita {
this.receitaSeguro = receitaSeguro; this.receitaSeguro = receitaSeguro;
} }
public List<ComissaoLogVO> getLsComissaoLog() {
return lsComissaoLog;
}
public void setLsComissaoLog(List<ComissaoLogVO> lsComissaoLog) {
this.lsComissaoLog = lsComissaoLog;
}
} }

View File

@ -46,6 +46,10 @@ public class EventosFinanceirosVO {
private BigDecimal icmsBase; private BigDecimal icmsBase;
private Integer estadoId; private Integer estadoId;
private Long cajaDiversosId;
private Integer usuarioId;
private Integer turnoId;
public Long getEventoextraId() { public Long getEventoextraId() {
return eventoextraId; return eventoextraId;
} }
@ -297,5 +301,29 @@ public class EventosFinanceirosVO {
public void setEstadoId(Integer estadoId) { public void setEstadoId(Integer estadoId) {
this.estadoId = estadoId; this.estadoId = estadoId;
} }
public Long getCajaDiversosId() {
return cajaDiversosId;
}
public void setCajaDiversosId(Long cajaDiversosId) {
this.cajaDiversosId = cajaDiversosId;
}
public Integer getUsuarioId() {
return usuarioId;
}
public void setUsuarioId(Integer usuarioId) {
this.usuarioId = usuarioId;
}
public Integer getTurnoId() {
return turnoId;
}
public void setTurnoId(Integer turnoId) {
this.turnoId = turnoId;
}
} }