wilian 2017-04-27 21:16:34 +00:00
parent 1404e43b8d
commit 4bef094c87
13 changed files with 357 additions and 118 deletions

View File

@ -0,0 +1,18 @@
package com.rjconsultores.ventaboletos.constantes;
public enum TipoEventoExtra {
OUTRO,
SEGURO_OPCIONAL,
EXCESSO_BAGAGEM,
TAXA_EMBARQUE,
SEGURO_RESSARCIMENTO,
TAXA_EMBARQUE_RESSARCIMENTO,
MULTA,
DIF_MAIOR,
DIF_MENOR,
SUPRIMENTO,
SANGRIA,
PACOTE;
}

View File

@ -4,6 +4,7 @@ import java.util.Date;
import java.util.List; import java.util.List;
import com.rjconsultores.ventaboletos.entidad.Comissao; import com.rjconsultores.ventaboletos.entidad.Comissao;
import com.rjconsultores.ventaboletos.entidad.PtovtaComissao;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao; import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao;
import com.rjconsultores.ventaboletos.vo.comissao.HistoricoComissao; import com.rjconsultores.ventaboletos.vo.comissao.HistoricoComissao;

View File

@ -15,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.rjconsultores.ventaboletos.constantes.TipoEventoExtra;
import com.rjconsultores.ventaboletos.dao.ComissaoDAO; import com.rjconsultores.ventaboletos.dao.ComissaoDAO;
import com.rjconsultores.ventaboletos.entidad.Comissao; import com.rjconsultores.ventaboletos.entidad.Comissao;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
@ -40,11 +41,10 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
sql.append("b.tipoventa_id as tipoVenta, b.motivocancelacion_id as motivoCancelacionId, "); sql.append("b.tipoventa_id as tipoVenta, b.motivocancelacion_id as motivoCancelacionId, ");
sql.append("coalesce(sum(b.preciopagado), 0) as valorpagado, coalesce(sum(b.importeseguro), 0) as seguro, "); sql.append("coalesce(sum(b.preciopagado), 0) as valorpagado, coalesce(sum(b.importeseguro), 0) as seguro, ");
sql.append("coalesce(sum(b.importepedagio), 0) as pedagio, coalesce(sum(b.importetaxaembarque), 0) as embarque, "); sql.append("coalesce(sum(b.importepedagio), 0) as pedagio, coalesce(sum(b.importetaxaembarque), 0) as embarque, ");
sql.append("coalesce(sum(case when ee.tipoeventoextra_id = 1 then ee.impingreso else 0 end), 0) as excessoBagagem, "); sql.append("coalesce(sum(case when tee.cvetipoevento = :teeexcbag then ee.impingreso else 0 end), 0) as excessoBagagem, ");
sql.append("coalesce(sum(case when ee.tipoeventoextra_id = 21 then ee.impingreso else 0 end), 0) as seguroOpcional, "); sql.append("coalesce(sum(case when tee.cvetipoevento = :teesegop then ee.impingreso else 0 end), 0) as seguroOpcional, ");
sql.append("coalesce(sum(case when ee.tipoeventoextra_id <> 21 "); sql.append("coalesce(sum(case when tee.cvetipoevento not in (:teesegop,:teeexcbag) then ee.impingreso else 0 end), 0) as seguroOutros, ");
sql.append(" or ee.tipoeventoextra_id <> 1 then ee.impingreso else 0 end), 0) as seguroOutros, "); sql.append("case when b.ptovtaventa_id = b.puntoventa_id then 1 else 0 end as ptoVtaOrigem, ");
sql.append("case when c.ptovtaventa_id = b.puntoventa_id then 1 else 0 end as ptoVtaOrigem, ");
sql.append("ei.icms as icmsBase, e.estado_id as estadoId "); sql.append("ei.icms as icmsBase, e.estado_id as estadoId ");
sql.append("from boleto b "); sql.append("from boleto b ");
sql.append("inner join parada origen on origen.parada_id = b.origen_id "); sql.append("inner join parada origen on origen.parada_id = b.origen_id ");
@ -53,14 +53,15 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
sql.append("inner join punto_venta p on b.puntoventa_id = p.puntoventa_id "); sql.append("inner join punto_venta p on b.puntoventa_id = p.puntoventa_id ");
sql.append("inner join empresa_imposto ei on (ei.estado_id = e.estado_id "); sql.append("inner join empresa_imposto ei on (ei.estado_id = e.estado_id ");
sql.append(" and ei.empresa_id = b.marca_id and ei.activo = 1) "); sql.append(" and ei.empresa_id = b.marca_id and ei.activo = 1) ");
sql.append("left join caja c on c.numoperacion = b.numoperacion and c.numfoliosistema = b.numfoliosistema "); /*sql.append("left join caja c on c.numoperacion = b.numoperacion and c.numfoliosistema = b.numfoliosistema ");
sql.append(" and c.numfoliopreimpreso = b.numfoliopreimpreso and c.numseriepreimpresa = b.numseriepreimpresa "); sql.append(" and c.numfoliopreimpreso = b.numfoliopreimpreso and c.numseriepreimpresa = b.numseriepreimpresa ");*/
sql.append("left join evento_extra ee on ee.boleto_id = b.boleto_id "); sql.append("left join evento_extra ee on ee.boleto_id = b.boleto_id ");
sql.append("where to_char(b.fechorventa, 'mmyyyy') = to_char(:periodo, 'mmyyyy') "); sql.append("left join tipo_evento_extra tee on tee.tipoeventoextra_id = ee.tipoeventoextra_id ");
sql.append("where b.fechorventa between TO_DATE(:dataInicial,'DD/MM/YYYY HH24:MI') and TO_DATE(:dataFinal,'DD/MM/YYYY HH24:MI') ");
sql.append("and b.marca_id = :empresaId "); sql.append("and b.marca_id = :empresaId ");
sql.append("and (p.puntoventa_id = :puntoventaId or p.puntoventapadre_id = :puntoventaId) "); sql.append("and (p.puntoventa_id = :puntoventaId or p.puntoventapadre_id = :puntoventaId) ");
sql.append("group by b.marca_id, b.puntoventa_id, to_char(b.fechorventa, 'dd-mm-yyyy'), "); sql.append("group by b.marca_id, b.puntoventa_id, to_char(b.fechorventa, 'dd-mm-yyyy'), ");
sql.append("b.indstatusboleto, b.tipoventa_id, b.motivocancelacion_id, c.ptovtaventa_id, ei.icms, e.estado_id "); sql.append("b.indstatusboleto, b.tipoventa_id, b.motivocancelacion_id, b.ptovtaventa_id, ei.icms, e.estado_id ");
sql.append("order by datavenda "); sql.append("order by datavenda ");
Query query = getSession().createSQLQuery(sql.toString()) Query query = getSession().createSQLQuery(sql.toString())
@ -82,9 +83,15 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
.addScalar("estadoId", IntegerType.INSTANCE) .addScalar("estadoId", IntegerType.INSTANCE)
.setResultTransformer(new AliasToBeanResultTransformer(BoletoComissao.class)); .setResultTransformer(new AliasToBeanResultTransformer(BoletoComissao.class));
query.setTimestamp("periodo", periodo); Date inicioPeriodo = DateUtil.inicioFechaPeriodoMeses(periodo);
Date fimPeriodo = DateUtil.fimFechaPeriodoMeses(periodo);
query.setString("dataInicial", DateUtil.getStringDate(inicioPeriodo, "dd/MM/yyyy HH:mm"));
query.setString("dataFinal", DateUtil.getStringDate(fimPeriodo, "dd/MM/yyyy HH:mm"));
query.setInteger("puntoventaId", puntoVentaId); query.setInteger("puntoventaId", puntoVentaId);
query.setInteger("empresaId", empresaId); query.setInteger("empresaId", empresaId);
query.setString("teeexcbag", TipoEventoExtra.EXCESSO_BAGAGEM.toString());
query.setString("teesegop", TipoEventoExtra.SEGURO_OPCIONAL.toString());
return query.list(); return query.list();
} }
@ -126,13 +133,17 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
sql.append(" c.bonificacao_metas AS bonificacaoMetas, "); sql.append(" c.bonificacao_metas AS bonificacaoMetas, ");
sql.append(" c.entregas_passagem AS entregasPassagem, "); sql.append(" c.entregas_passagem AS entregasPassagem, ");
sql.append(" c.receita_outros AS receitaOutros, "); sql.append(" c.receita_outros AS receitaOutros, ");
sql.append(" c.receita_bpr AS receitaBPR, ");
sql.append(" c.devolvidos AS devolvidos, ");
sql.append(" c.receita_bruta_excessobagagem AS receitaBrutaExcessoBagagem, ");
sql.append(" c.receita_bruta_seguroopcional AS receitaBrutaSeguroopcional, ");
sql.append(" c.indpago AS indPago, "); sql.append(" c.indpago AS indPago, ");
sql.append(" CASE WHEN c.indpago = 1 THEN 'PAGO' ELSE 'PENDENTE' END AS pagamento, "); sql.append(" CASE WHEN c.indpago = 1 THEN 'PAGO' ELSE 'PENDENTE' END AS pagamento, ");
sql.append(" up.nombusuario AS usuarioPagamento, "); sql.append(" up.nombusuario AS usuarioPagamento, ");
sql.append(" ul.nombusuario AS usuarioLancamento, "); sql.append(" ul.nombusuario AS usuarioLancamento, ");
sql.append(" e.nombempresa, e.cnpj, "); sql.append(" e.nombempresa, e.cnpj, ");
sql.append(" pa.numagencia as agencia, pa.numconta || '-' || pa.digito as conta, if.nome as banco, "); sql.append(" pa.numagencia as agencia, pa.numconta || '-' || pa.digito as conta, if.nome as banco, ");
sql.append(" ci.nombciudad as cidade, pv.descCorreo "); sql.append(" ci.nombciudad as cidade, pv.descCorreo, pv.razonsocial, pv.numdocpuntoventa as cnpjPuntoventa ");
/* /*
private String sigla; private String sigla;
private String nome; private String nome;
@ -181,6 +192,12 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
.addScalar("cidade", StringType.INSTANCE) .addScalar("cidade", StringType.INSTANCE)
.addScalar("agencia", StringType.INSTANCE) .addScalar("agencia", StringType.INSTANCE)
.addScalar("descCorreo", StringType.INSTANCE) .addScalar("descCorreo", StringType.INSTANCE)
.addScalar("razonsocial", StringType.INSTANCE)
.addScalar("cnpjPuntoventa", StringType.INSTANCE)
.addScalar("receitaBPR", BigDecimalType.INSTANCE)
.addScalar("devolvidos", BigDecimalType.INSTANCE)
.addScalar("receitaBrutaExcessoBagagem", BigDecimalType.INSTANCE)
.addScalar("receitaBrutaSeguroopcional", BigDecimalType.INSTANCE)
.setResultTransformer(new AliasToBeanResultTransformer(HistoricoComissao.class)); .setResultTransformer(new AliasToBeanResultTransformer(HistoricoComissao.class));
query.setString("periodoInicio", competenciaInicio); query.setString("periodoInicio", competenciaInicio);
@ -201,7 +218,8 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
.append("JOIN c.empresaId e ") .append("JOIN c.empresaId e ")
.append("WHERE pv.activo = 1 ") .append("WHERE pv.activo = 1 ")
.append("AND e.empresaId = :empresaId ") .append("AND e.empresaId = :empresaId ")
.append("AND c.activo = 1"); .append("AND c.activo = 1")
.append("AND pv.statusaprobacion = 'A'");
Query qr = getSession().createQuery(sQuery.toString()); Query qr = getSession().createQuery(sQuery.toString());
qr.setParameter("empresaId", empresaId); qr.setParameter("empresaId", empresaId);
return qr.list(); return qr.list();

View File

@ -11,6 +11,7 @@ import org.springframework.stereotype.Repository;
import com.rjconsultores.ventaboletos.dao.DescontoComissaoDAO; import com.rjconsultores.ventaboletos.dao.DescontoComissaoDAO;
import com.rjconsultores.ventaboletos.entidad.DescontoComissao; import com.rjconsultores.ventaboletos.entidad.DescontoComissao;
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
@Repository("descontoComissaoDAO") @Repository("descontoComissaoDAO")
public class DescontoComissaoHibernateDAO extends GenericHibernateDAO<DescontoComissao, Long> implements DescontoComissaoDAO { public class DescontoComissaoHibernateDAO extends GenericHibernateDAO<DescontoComissao, Long> implements DescontoComissaoDAO {
@ -29,14 +30,14 @@ public class DescontoComissaoHibernateDAO extends GenericHibernateDAO<DescontoCo
sql.append("where activo = 1 "); sql.append("where activo = 1 ");
sql.append(" and dc.puntoVenta.puntoventaId = :puntoventaId "); sql.append(" and dc.puntoVenta.puntoventaId = :puntoventaId ");
sql.append(" and dc.empresa.empresaId = :empresaId "); sql.append(" and dc.empresa.empresaId = :empresaId ");
sql.append(" and dc.datainicial >= :datainicial "); sql.append(" and dc.datainicial <= TO_DATE(:datainicial,'DD/MM/YYYY HH24:MI') ");
sql.append(" and (dc.datafinal <= :datafinal or dc.datafinal is null)"); sql.append(" and (dc.datafinal >= TO_DATE(:datafinal,'DD/MM/YYYY HH24:MI') or dc.datafinal is null)");
Query query = getSession().createQuery(sql.toString()); Query query = getSession().createQuery(sql.toString());
query.setInteger("puntoventaId", puntoVentaId); query.setInteger("puntoventaId", puntoVentaId);
query.setInteger("empresaId", empresaId); query.setInteger("empresaId", empresaId);
query.setTimestamp("datainicial", inicioPeriodo); query.setString("datainicial", DateUtil.getStringDate(inicioPeriodo, "dd/MM/yyyy HH:mm"));
query.setTimestamp("datafinal", fimPeriodo); query.setString("datafinal", DateUtil.getStringDate(fimPeriodo, "dd/MM/yyyy HH:mm"));
return query.list(); return query.list();
} }

View File

@ -12,6 +12,7 @@ import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.rjconsultores.ventaboletos.dao.PtovtaComissaoDAO; import com.rjconsultores.ventaboletos.dao.PtovtaComissaoDAO;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.PtovtaComissao; import com.rjconsultores.ventaboletos.entidad.PtovtaComissao;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
@ -53,18 +54,13 @@ public class PtovtaComissaoHibernateDAO extends GenericHibernateDAO<PtovtaComiss
@Override @Override
public PtovtaComissao buscarPuntaVentaEmpresa(Integer puntaVentaId, Integer empresaId) { public PtovtaComissao buscarPuntaVentaEmpresa(Integer puntaVentaId, Integer empresaId) {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));
c.add(Restrictions.eq("puntoventaId", new PuntoVenta(puntaVentaId)));
c.add(Restrictions.eq("empresaId", new Empresa(empresaId)));
c.setMaxResults(1);
StringBuilder sql = new StringBuilder(); return (PtovtaComissao) c.uniqueResult();
sql.append("from PtovtaComissao pc ");
sql.append("where pc.activo = 1 and pc.puntoventaId.puntoventaId = :puntoventaId ");
sql.append(" and pc.empresaId.empresaId = :empresaId ");
Query query = getSession().createQuery(sql.toString());
query.setInteger("puntoventaId", puntaVentaId);
query.setInteger("empresaId", empresaId);
query.setMaxResults(1);
return (PtovtaComissao) query.uniqueResult();
} }
} }

View File

@ -71,6 +71,18 @@ public class Comissao implements Serializable {
@Column(name = "EMPRESA_ID") @Column(name = "EMPRESA_ID")
private Integer empresaId; private Integer empresaId;
@Column(name = "RECEITA_BPR")
private BigDecimal receitaBPR;
@Column(name = "DEVOLVIDOS")
private BigDecimal devolvidos;
@Column(name = "RECEITA_BRUTA_EXCESSOBAGAGEM")
private BigDecimal receitaBrutaExcessoBagagem;
@Column(name = "RECEITA_BRUTA_SEGUROOPCIONAL")
private BigDecimal receitaBrutaSeguroopcional;
public Comissao() { public Comissao() {
super(); super();
setComissaoBpr(BigDecimal.ZERO); setComissaoBpr(BigDecimal.ZERO);
@ -83,6 +95,10 @@ public class Comissao implements Serializable {
setIssRetido(BigDecimal.ZERO); setIssRetido(BigDecimal.ZERO);
setBonificacaoMetas(BigDecimal.ZERO); setBonificacaoMetas(BigDecimal.ZERO);
setEntregasPassagem(BigDecimal.ZERO); setEntregasPassagem(BigDecimal.ZERO);
setReceitaBPR(BigDecimal.ZERO);
setDevolvidos(BigDecimal.ZERO);
setReceitaBrutaExcessoBagagem(BigDecimal.ZERO);
setReceitaBrutaSeguroopcional(BigDecimal.ZERO);
} }
public Integer getComissaoId() { public Integer getComissaoId() {
@ -245,4 +261,36 @@ public class Comissao implements Serializable {
this.puntoVenta = puntoVenta; this.puntoVenta = puntoVenta;
} }
public BigDecimal getReceitaBPR() {
return receitaBPR;
}
public void setReceitaBPR(BigDecimal receitaBPR) {
this.receitaBPR = receitaBPR;
}
public BigDecimal getDevolvidos() {
return devolvidos;
}
public void setDevolvidos(BigDecimal devolvidos) {
this.devolvidos = devolvidos;
}
public BigDecimal getReceitaBrutaExcessoBagagem() {
return receitaBrutaExcessoBagagem;
}
public void setReceitaBrutaExcessoBagagem(BigDecimal receitaBrutaExcessoBagagem) {
this.receitaBrutaExcessoBagagem = receitaBrutaExcessoBagagem;
}
public BigDecimal getReceitaBrutaSeguroopcional() {
return receitaBrutaSeguroopcional;
}
public void setReceitaBrutaSeguroopcional(BigDecimal receitaBrutaSeguroopcional) {
this.receitaBrutaSeguroopcional = receitaBrutaSeguroopcional;
}
} }

View File

@ -124,7 +124,7 @@ public class PtovtaComissao implements Serializable {
@JoinColumn(name = "EMPRESA_ID", referencedColumnName = "EMPRESA_ID") @JoinColumn(name = "EMPRESA_ID", referencedColumnName = "EMPRESA_ID")
@ManyToOne @ManyToOne
private Empresa empresaId; private Empresa empresaId;
public PtovtaComissao() { public PtovtaComissao() {
super(); super();
this.tarifaDev = Boolean.TRUE; this.tarifaDev = Boolean.TRUE;

View File

@ -15,6 +15,8 @@ import javax.persistence.Basic;
import javax.persistence.CascadeType; import javax.persistence.CascadeType;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue; import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType; import javax.persistence.GenerationType;
import javax.persistence.Id; import javax.persistence.Id;
@ -100,6 +102,10 @@ public class TipoEventoExtra implements Serializable {
private List<TipoEventoExtraEmpresa> empresas = new ArrayList<TipoEventoExtraEmpresa>(); private List<TipoEventoExtraEmpresa> empresas = new ArrayList<TipoEventoExtraEmpresa>();
@Column(name = "INDCONFERENCIAFISICACOMISSAO") @Column(name = "INDCONFERENCIAFISICACOMISSAO")
private Boolean indconferenciafisicacomissao; private Boolean indconferenciafisicacomissao;
@Enumerated(EnumType.STRING)
@Column(name = "CVETIPOEVENTO")
private com.rjconsultores.ventaboletos.constantes.TipoEventoExtra cvetipoevento;
public TipoEventoExtraEmpresa addEmpresa(Empresa e) { public TipoEventoExtraEmpresa addEmpresa(Empresa e) {
TipoEventoExtraEmpresa t = new TipoEventoExtraEmpresa(); TipoEventoExtraEmpresa t = new TipoEventoExtraEmpresa();
@ -371,5 +377,13 @@ public class TipoEventoExtra implements Serializable {
public void setEmpresas(List<TipoEventoExtraEmpresa> empresas) { public void setEmpresas(List<TipoEventoExtraEmpresa> empresas) {
this.empresas = empresas; this.empresas = empresas;
} }
public com.rjconsultores.ventaboletos.constantes.TipoEventoExtra getCvetipoevento() {
return cvetipoevento;
}
public void setCvetipoevento(com.rjconsultores.ventaboletos.constantes.TipoEventoExtra cvetipoevento) {
this.cvetipoevento = cvetipoevento;
}
} }

View File

@ -41,6 +41,7 @@ import com.rjconsultores.ventaboletos.service.DescontoComissaoService;
import com.rjconsultores.ventaboletos.service.EmpresaImpostoService; import com.rjconsultores.ventaboletos.service.EmpresaImpostoService;
import com.rjconsultores.ventaboletos.service.PtovtaComissaoService; import com.rjconsultores.ventaboletos.service.PtovtaComissaoService;
import com.rjconsultores.ventaboletos.utilerias.DateUtil; import com.rjconsultores.ventaboletos.utilerias.DateUtil;
import com.rjconsultores.ventaboletos.utilerias.MoneyHelper;
import com.rjconsultores.ventaboletos.utilerias.SendMail; import com.rjconsultores.ventaboletos.utilerias.SendMail;
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;
@ -140,6 +141,17 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
comissao.setDescontosFixos(cd.getValorDesconto()); comissao.setDescontosFixos(cd.getValorDesconto());
} }
} }
for (ComissaoReceita comissaoReceita : rc.getLsReceitas()) {
comissao.setReceitaBPR(MoneyHelper.somar(comissao.getReceitaBPR(), comissaoReceita.getReceitaBPR(), 2));
comissao.setDevolvidos(MoneyHelper.somar(comissao.getDevolvidos(), comissaoReceita.getDevolvidosRelatorio(), 2));
comissao.setDevolvidos(MoneyHelper.somar(comissao.getDevolvidos(), comissaoReceita.getDevolvidosGAPRelatorio(), 2));
comissao.setDevolvidos(MoneyHelper.somar(comissao.getDevolvidos(), comissaoReceita.getCancelados(), 2));
comissao.setDevolvidos(MoneyHelper.somar(comissao.getDevolvidos(), comissaoReceita.getCanceladosGAP(), 2));
comissao.setDevolvidos(MoneyHelper.somar(comissao.getDevolvidos(), comissaoReceita.getCanceladosGAP(), 2));
comissao.setReceitaBrutaExcessoBagagem(MoneyHelper.somar(comissao.getReceitaBrutaExcessoBagagem(), comissaoReceita.getReceitaExcessoBagagem(), 2));
comissao.setReceitaBrutaSeguroopcional(MoneyHelper.somar(comissao.getReceitaBrutaSeguroopcional(), comissaoReceita.getReceitaSeguroOpcional(), 2));
}
comissao = comissaoService.suscribir(comissao); comissao = comissaoService.suscribir(comissao);
} else if(!ignorarComissaoGerada){ } else if(!ignorarComissaoGerada){
@ -182,11 +194,11 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
// Comissão BPR = Receita Comissão * (% Com BPR) // Comissão BPR = Receita Comissão * (% Com BPR)
BigDecimal recbpr = BigDecimal.ZERO; BigDecimal recbpr = BigDecimal.ZERO;
BigDecimal receitaBPR = bpr.add(gap); BigDecimal receitaBPR = MoneyHelper.somar(bpr, gap, 2);
if (isAltaTemporada) { if (isAltaTemporada) {
recbpr = receitaBPR.multiply(ptovtaComissao.getPassagemAlta() != null ? ptovtaComissao.getPassagemAlta().divide(CEM) : BigDecimal.ZERO); recbpr = MoneyHelper.multiplicar(receitaBPR, ptovtaComissao.getPassagemAlta() != null ? MoneyHelper.dividir(ptovtaComissao.getPassagemAlta(), CEM) : BigDecimal.ZERO, 2);
} else { } else {
recbpr = receitaBPR.multiply(ptovtaComissao.getPassagemBaixa() != null ? ptovtaComissao.getPassagemBaixa().divide(CEM) : BigDecimal.ZERO); recbpr = MoneyHelper.multiplicar(receitaBPR, ptovtaComissao.getPassagemBaixa() != null ? MoneyHelper.dividir(ptovtaComissao.getPassagemBaixa(), CEM) : BigDecimal.ZERO, 2);
} }
return recbpr; return recbpr;
@ -196,12 +208,12 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
// EntregaPassagem (Internet/Venda Impressão Posterior/Outros) // EntregaPassagem (Internet/Venda Impressão Posterior/Outros)
BigDecimal entregaPassagem = BigDecimal.ZERO; BigDecimal entregaPassagem = BigDecimal.ZERO;
BigDecimal receitaEntrega = gapImpressa.add(internet); BigDecimal receitaEntrega = MoneyHelper.somar(gapImpressa, internet, 2);
if(ptovtaComissao.getValorImpressaoGap() != null) { if(ptovtaComissao.getValorImpressaoGap() != null) {
if (BooleanUtils.toBoolean(ptovtaComissao.getIndimpressaogapporc())) { if (BooleanUtils.toBoolean(ptovtaComissao.getIndimpressaogapporc())) {
entregaPassagem = receitaEntrega.multiply(ptovtaComissao.getValorImpressaoGap() != null ? ptovtaComissao.getValorImpressaoGap().divide(CEM) : BigDecimal.ZERO); entregaPassagem = MoneyHelper.multiplicar(receitaEntrega, ptovtaComissao.getValorImpressaoGap() != null ? MoneyHelper.dividir(ptovtaComissao.getValorImpressaoGap(),CEM) : BigDecimal.ZERO, 2);
} else { } else {
entregaPassagem = ptovtaComissao.getValorImpressaoGap() != null ? ptovtaComissao.getValorImpressaoGap().multiply(new BigDecimal(contImpressa)) : BigDecimal.ZERO; entregaPassagem = ptovtaComissao.getValorImpressaoGap() != null ? MoneyHelper.multiplicar(ptovtaComissao.getValorImpressaoGap(),new BigDecimal(contImpressa), 2) : BigDecimal.ZERO;
} }
} }
@ -213,9 +225,9 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
// 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) {
excessoBagagem = excBag.multiply(ptovtaComissao.getExcessoAlta() != null ? ptovtaComissao.getExcessoAlta().divide(CEM) : BigDecimal.ZERO); excessoBagagem = MoneyHelper.multiplicar(excBag, ptovtaComissao.getExcessoAlta() != null ? MoneyHelper.dividir(ptovtaComissao.getExcessoAlta(), CEM) : BigDecimal.ZERO, 2);
} else { } else {
excessoBagagem = excBag.multiply(ptovtaComissao.getExcessoBaixa() != null ? ptovtaComissao.getExcessoBaixa().divide(CEM) : BigDecimal.ZERO); excessoBagagem = MoneyHelper.multiplicar(excBag, ptovtaComissao.getExcessoBaixa() != null ? MoneyHelper.dividir(ptovtaComissao.getExcessoBaixa(), CEM) : BigDecimal.ZERO, 2);
} }
return excessoBagagem; return excessoBagagem;
@ -226,9 +238,9 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
// 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) {
recsegOpcional = segOpcional.multiply(ptovtaComissao.getSeguroAlta() != null ? ptovtaComissao.getSeguroAlta().divide(CEM) : BigDecimal.ZERO); recsegOpcional = MoneyHelper.multiplicar(segOpcional, ptovtaComissao.getSeguroAlta() != null ? MoneyHelper.dividir(ptovtaComissao.getSeguroAlta(), CEM) : BigDecimal.ZERO, 2);
} else { } else {
recsegOpcional = segOpcional.multiply(ptovtaComissao.getSeguroBaixa() != null ? ptovtaComissao.getSeguroBaixa().divide(CEM) : BigDecimal.ZERO); recsegOpcional = MoneyHelper.multiplicar(segOpcional, ptovtaComissao.getSeguroBaixa() != null ? MoneyHelper.dividir(ptovtaComissao.getSeguroBaixa(), CEM) : BigDecimal.ZERO, 2);
} }
return recsegOpcional; return recsegOpcional;
} }
@ -238,9 +250,9 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
// 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) {
recoutros = outros.multiply(ptovtaComissao.getOutrosAlta() != null ? ptovtaComissao.getOutrosAlta().divide(CEM) : BigDecimal.ZERO); recoutros = MoneyHelper.multiplicar(outros, ptovtaComissao.getOutrosAlta() != null ? MoneyHelper.dividir(ptovtaComissao.getOutrosAlta(), CEM) : BigDecimal.ZERO, 2);
} else { } else {
recoutros = outros.multiply(ptovtaComissao.getOutrosBaixa() != null ? ptovtaComissao.getOutrosBaixa().divide(CEM) : BigDecimal.ZERO); recoutros = MoneyHelper.multiplicar(outros, ptovtaComissao.getOutrosBaixa() != null ? MoneyHelper.dividir(ptovtaComissao.getOutrosBaixa(), CEM) : BigDecimal.ZERO, 2);
} }
return recoutros; return recoutros;
} }
@ -257,7 +269,7 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
for (DescontoComissao dc : itensDescontos) { for (DescontoComissao dc : itensDescontos) {
BigDecimal valorDesconto = dc.getPreco(); BigDecimal valorDesconto = dc.getPreco();
valorDescontoTotal = valorDescontoTotal.add(valorDesconto); valorDescontoTotal = MoneyHelper.somar(valorDescontoTotal, valorDesconto, 2);
ComissaoDesconto desconto = new ComissaoDesconto(); ComissaoDesconto desconto = new ComissaoDesconto();
if (dc.getDatafinal() == null) { if (dc.getDatafinal() == null) {
@ -305,14 +317,16 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
BigDecimal comissaoEntregaPassagem = BigDecimal.ZERO; BigDecimal comissaoEntregaPassagem = BigDecimal.ZERO;
BigDecimal comissaoOutros = BigDecimal.ZERO; BigDecimal comissaoOutros = BigDecimal.ZERO;
BigDecimal receitaTotal = BigDecimal.ZERO; BigDecimal receitaTotal = BigDecimal.ZERO;
BigDecimal comissaoTotal = BigDecimal.ZERO;
for (ComissaoReceita cr : receitas) { for (ComissaoReceita cr : receitas) {
receitaTotal = receitaTotal.add(cr.getReceitaComissao()); receitaTotal = MoneyHelper.somar(receitaTotal, cr.getReceitaComissao());
comissaoBPR = comissaoBPR.add(cr.getComissaoBPRDiaria()); comissaoBPR = MoneyHelper.somar(comissaoBPR, cr.getComissaoBPRDiaria());
comissaoEntregaPassagem = comissaoEntregaPassagem.add(cr.getComissaoEntregaPassagemDiaria()); comissaoEntregaPassagem = MoneyHelper.somar(comissaoEntregaPassagem, cr.getComissaoEntregaPassagemDiaria());
comissaoExcessoBagagem = comissaoExcessoBagagem.add(cr.getComissaoExcessoBagagemDiaria()); comissaoExcessoBagagem = MoneyHelper.somar(comissaoExcessoBagagem, cr.getComissaoExcessoBagagemDiaria());
comissaoSegOpcional = comissaoSegOpcional.add(cr.getComissaoSegOpcionalDiaria()); comissaoSegOpcional = MoneyHelper.somar(comissaoSegOpcional, cr.getComissaoSegOpcionalDiaria());
comissaoOutros = comissaoOutros.add(cr.getComissaoOutrosDiaria()); comissaoOutros = MoneyHelper.somar(comissaoOutros, cr.getComissaoOutrosDiaria());
comissaoTotal = MoneyHelper.somar(comissaoTotal, cr.getTotalComissao());
} }
rc.setLsReceitas(receitas); rc.setLsReceitas(receitas);
@ -337,25 +351,30 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
// Royaties // Royaties
BigDecimal royaties = BigDecimal.ZERO; BigDecimal royaties = BigDecimal.ZERO;
if(ptovtaComissao.getRoyalties() != null) { if(ptovtaComissao.getRoyalties() != null) {
royaties = receitaTotal.multiply(ptovtaComissao.getRoyalties().divide(CEM)); royaties = MoneyHelper.multiplicar(receitaTotal, MoneyHelper.dividir(ptovtaComissao.getRoyalties(), CEM));
} }
rc.setRoyaties(royaties); rc.setRoyaties(royaties);
// ISS retido // ISS retido
BigDecimal issRetido = BigDecimal.ZERO; BigDecimal issRetido = BigDecimal.ZERO;
if(ptovtaComissao.getIssretido() != null) { if(ptovtaComissao.getIssretido() != null) {
issRetido = receitaTotal.multiply(ptovtaComissao.getIssretido().divide(CEM)); issRetido = MoneyHelper.multiplicar(comissaoTotal, MoneyHelper.dividir(ptovtaComissao.getIssretido(), CEM));
} }
rc.setRetidoISS(issRetido); rc.setRetidoISS(issRetido);
// Comissão à pagar = Comissão BPR + Comissão Excesso Bagagem + Comissão Seg. Opcional + Bonificação Metas + Internet(EntregaPassagem) // Comissão à pagar = Comissão BPR + Comissão Excesso Bagagem + Comissão Seg. Opcional + Bonificação Metas + Internet(EntregaPassagem)
BigDecimal comissaoPagar = BigDecimal.ZERO; BigDecimal comissaoPagar = BigDecimal.ZERO;
comissaoPagar = comissaoPagar.add(comissaoBPR).add(comissaoExcessoBagagem).add(comissaoSegOpcional); comissaoPagar = MoneyHelper.somar(comissaoPagar,comissaoBPR);
comissaoPagar = comissaoPagar.add(comissaoEntregaPassagem).add(comissaoOutros); comissaoPagar = MoneyHelper.somar(comissaoPagar,comissaoExcessoBagagem);
comissaoPagar = comissaoPagar.add(comissaoBonificaoMetas); comissaoPagar = MoneyHelper.somar(comissaoPagar,comissaoSegOpcional);
comissaoPagar = MoneyHelper.somar(comissaoPagar,comissaoEntregaPassagem);
comissaoPagar = MoneyHelper.somar(comissaoPagar,comissaoOutros);
comissaoPagar = MoneyHelper.somar(comissaoPagar,comissaoBonificaoMetas);
// - Descontos (Fixos e Eventuais) - Royaties - ISS retido // - Descontos (Fixos e Eventuais) - Royaties - ISS retido
comissaoPagar = comissaoPagar.subtract(rc.getDescontos()).subtract(royaties).subtract(issRetido); comissaoPagar = MoneyHelper.subtrair(comissaoPagar,rc.getDescontos());
comissaoPagar = MoneyHelper.subtrair(comissaoPagar,royaties);
comissaoPagar = MoneyHelper.subtrair(comissaoPagar,issRetido);
rc.setComissaoPagar(comissaoPagar); rc.setComissaoPagar(comissaoPagar);
return rc; return rc;
@ -463,117 +482,117 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
// Totais // Totais
if (BooleanUtils.toBoolean(ptovtaComissao.getTarifaReceita())) { if (BooleanUtils.toBoolean(ptovtaComissao.getTarifaReceita())) {
receitaItem = receitaItem.add(rcc.getValorpagado()); receitaItem = MoneyHelper.somar(receitaItem, rcc.getValorpagado());
} }
if (BooleanUtils.toBoolean(ptovtaComissao.getTaxaReceita())) { if (BooleanUtils.toBoolean(ptovtaComissao.getTaxaReceita())) {
receitaItem = receitaItem.add(rcc.getEmbarque()); receitaItem = MoneyHelper.somar(receitaItem, rcc.getEmbarque());
} }
if (BooleanUtils.toBoolean(ptovtaComissao.getSeguroReceita())) { if (BooleanUtils.toBoolean(ptovtaComissao.getSeguroReceita())) {
receitaItem = receitaItem.add(rcc.getSeguro()); receitaItem = MoneyHelper.somar(receitaItem, rcc.getSeguro());
} }
if (BooleanUtils.toBoolean(ptovtaComissao.getPedagioReceita())) { if (BooleanUtils.toBoolean(ptovtaComissao.getPedagioReceita())) {
receitaItem = receitaItem.add(rcc.getPedagio()); receitaItem = MoneyHelper.somar(receitaItem, rcc.getPedagio());
} }
// Totais de Devolução / Cancelamento // Totais de Devolução / Cancelamento
if (BooleanUtils.toBoolean(ptovtaComissao.getTarifaDev())) { if (BooleanUtils.toBoolean(ptovtaComissao.getTarifaDev())) {
receitaDevItem = receitaDevItem.add(rcc.getValorpagado()); receitaDevItem = MoneyHelper.somar(receitaDevItem, rcc.getValorpagado());
} }
if (BooleanUtils.toBoolean(ptovtaComissao.getTaxaDev())) { if (BooleanUtils.toBoolean(ptovtaComissao.getTaxaDev())) {
receitaDevItem = receitaDevItem.add(rcc.getEmbarque()); receitaDevItem = MoneyHelper.somar(receitaDevItem, rcc.getEmbarque());
} }
if (BooleanUtils.toBoolean(ptovtaComissao.getSeguroDev())) { if (BooleanUtils.toBoolean(ptovtaComissao.getSeguroDev())) {
receitaDevItem = receitaDevItem.add(rcc.getSeguro()); receitaDevItem = MoneyHelper.somar(receitaDevItem, rcc.getSeguro());
} }
if (BooleanUtils.toBoolean(ptovtaComissao.getPedagioDev())) { if (BooleanUtils.toBoolean(ptovtaComissao.getPedagioDev())) {
receitaDevItem = receitaDevItem.add(rcc.getPedagio()); receitaDevItem = MoneyHelper.somar(receitaDevItem, rcc.getPedagio());
} }
// Calculo de ICMS sobre o valor do bilhete // Calculo de ICMS sobre o valor do bilhete
if (isReceitaLiquida) { if (isReceitaLiquida) {
BigDecimal icsm = BigDecimal.ZERO; BigDecimal icsm = BigDecimal.ZERO;
icsm = receitaItem.multiply(rcc.getIcmsBase().divide(CEM)); icsm = MoneyHelper.multiplicar(receitaItem, MoneyHelper.dividir(rcc.getIcmsBase(), CEM));
receitaItem = receitaItem.subtract(icsm); receitaItem = MoneyHelper.subtrair(receitaItem, icsm);
BigDecimal icsmDev = BigDecimal.ZERO; BigDecimal icsmDev = BigDecimal.ZERO;
icsmDev = receitaDevItem.multiply(rcc.getIcmsBase().divide(CEM)); icsmDev = MoneyHelper.multiplicar(receitaDevItem, MoneyHelper.dividir(rcc.getIcmsBase(), CEM));
receitaDevItem = receitaDevItem.subtract(icsmDev); receitaDevItem = MoneyHelper.subtrair(receitaDevItem,icsmDev);
} }
// Boletos impressos no punto venta // Boletos impressos no punto venta
if (statusBoleto.equals(IndStatusBoleto.E)) { if (statusBoleto.equals(IndStatusBoleto.E)) {
contImpressa++; contImpressa++;
gapImpressa = gapImpressa.add(receitaItem); gapImpressa = MoneyHelper.somar(gapImpressa, receitaItem);
BigDecimal entregaPassagem = calculoEntregaPassagem(isAltaTemporada, ptovtaComissao, receitaItem, BigDecimal.ZERO, contImpressa); BigDecimal entregaPassagem = calculoEntregaPassagem(isAltaTemporada, ptovtaComissao, receitaItem, BigDecimal.ZERO, contImpressa);
comissaoEntregaPassagem = comissaoEntregaPassagem.add(entregaPassagem); comissaoEntregaPassagem = MoneyHelper.somar(comissaoEntregaPassagem, entregaPassagem);
} else { } else {
// Receitas calculadas sempre // Receitas calculadas sempre
receitaExcessoBagagem = receitaExcessoBagagem.add(rcc.getExcessoBagagem()); receitaExcessoBagagem = MoneyHelper.somar(receitaExcessoBagagem, rcc.getExcessoBagagem());
BigDecimal excessoBagagem = calculoExcessoBagagem(isAltaTemporada, ptovtaComissao, rcc.getExcessoBagagem()); BigDecimal excessoBagagem = calculoExcessoBagagem(isAltaTemporada, ptovtaComissao, rcc.getExcessoBagagem());
comissaoExcessoBagagem = comissaoExcessoBagagem.add(excessoBagagem); comissaoExcessoBagagem = MoneyHelper.somar(comissaoExcessoBagagem, excessoBagagem);
receitaSeguroOpcional = receitaSeguroOpcional.add(rcc.getSeguroOpcional()); receitaSeguroOpcional = MoneyHelper.somar(receitaSeguroOpcional, rcc.getSeguroOpcional());
BigDecimal segOpcional = calculoSeguroOpcional(isAltaTemporada, ptovtaComissao, rcc.getSeguroOpcional()); BigDecimal segOpcional = calculoSeguroOpcional(isAltaTemporada, ptovtaComissao, rcc.getSeguroOpcional());
comissaoSegOpcional = comissaoSegOpcional.add(segOpcional); comissaoSegOpcional = MoneyHelper.somar(comissaoSegOpcional, segOpcional);
receitaSeguroOutros = receitaSeguroOutros.add(rcc.getSeguroOutros()); receitaSeguroOutros = MoneyHelper.somar(receitaSeguroOutros, rcc.getSeguroOutros());
BigDecimal outros = calculoOutros(isAltaTemporada, ptovtaComissao, rcc.getSeguroOutros()); BigDecimal outros = calculoOutros(isAltaTemporada, ptovtaComissao, rcc.getSeguroOutros());
comissaoOutros = comissaoOutros.add(outros); comissaoOutros = MoneyHelper.somar(comissaoOutros, outros);
// Receita GAP // Receita GAP
if (rcc.getTipoVenta().equals(Constantes.TPV_BOLETO_REMOTO.intValue())) { if (rcc.getTipoVenta().equals(Constantes.TPV_BOLETO_REMOTO.intValue())) {
receitaGAP = receitaGAP.add(receitaItem); receitaGAP = MoneyHelper.somar(receitaGAP, receitaItem);
BigDecimal bpr = calculoComisssaoBPR(isAltaTemporada, ptovtaComissao, BigDecimal.ZERO, receitaItem); BigDecimal bpr = calculoComisssaoBPR(isAltaTemporada, ptovtaComissao, BigDecimal.ZERO, receitaItem);
comissaoBPR = comissaoBPR.add(bpr); comissaoBPR = MoneyHelper.somar(comissaoBPR, bpr);
} }
// Internet // Internet
else if (rcc.getTipoVenta().equals(Constantes.TPV_POR_INTERNET.intValue())) { else if (rcc.getTipoVenta().equals(Constantes.TPV_POR_INTERNET.intValue())) {
internet = internet.add(receitaItem); internet = MoneyHelper.somar(internet, receitaItem);
BigDecimal entregaPassagem = calculoEntregaPassagem(isAltaTemporada, ptovtaComissao, BigDecimal.ZERO, receitaItem, contImpressa); BigDecimal entregaPassagem = calculoEntregaPassagem(isAltaTemporada, ptovtaComissao, BigDecimal.ZERO, receitaItem, contImpressa);
comissaoEntregaPassagem = comissaoEntregaPassagem.add(entregaPassagem); comissaoEntregaPassagem = MoneyHelper.somar(comissaoEntregaPassagem, entregaPassagem);
} }
// Receita BPR // Receita BPR
else { else {
receitaBPR = receitaBPR.add(receitaItem); receitaBPR = MoneyHelper.somar(receitaBPR, receitaItem);
BigDecimal bpr = calculoComisssaoBPR(isAltaTemporada, ptovtaComissao, receitaItem, BigDecimal.ZERO); BigDecimal bpr = calculoComisssaoBPR(isAltaTemporada, ptovtaComissao, receitaItem, BigDecimal.ZERO);
comissaoBPR = comissaoBPR.add(bpr); comissaoBPR = MoneyHelper.somar(comissaoBPR, bpr);
} }
} }
if (statusBoleto.equals(IndStatusBoleto.C)) { if (statusBoleto.equals(IndStatusBoleto.C)) {
// Devolução Receita // Devolução Receita
if (rcc.getMotivoCancelacionId().equals(Constantes.MVO_CANCEL_DEVOLUCAO)) { if (rcc.getMotivoCancelacionId().equals(Constantes.MVO_CANCEL_DEVOLUCAO) || rcc.getMotivoCancelacionId().equals(Constantes.MVO_CANCEL_GERACAO_OCD)) {
// Devolução Receita GAP // Devolução Receita GAP
if (rcc.getTipoVenta().equals(Constantes.TPV_BOLETO_REMOTO.intValue())) { if (rcc.getTipoVenta().equals(Constantes.TPV_BOLETO_REMOTO.intValue())) {
// Impresso Venta de otro punto venta // Impresso Venta de otro punto venta
if (rcc.isPtoVtaOrigem()) { if (rcc.isPtoVtaOrigem()) {
devolvidosGAPOrigem = devolvidosGAPOrigem.add(receitaDevItem); devolvidosGAPOrigem = MoneyHelper.somar(devolvidosGAPOrigem, receitaDevItem);
} }
devolvidosGAP = devolvidosGAP.add(receitaDevItem); devolvidosGAP = MoneyHelper.somar(devolvidosGAP, receitaDevItem);
} else { } else {
// Impresso Venta de otro punto venta // Impresso Venta de otro punto venta
if (rcc.isPtoVtaOrigem()) { if (rcc.isPtoVtaOrigem()) {
devolvidosOrigem = devolvidosOrigem.add(receitaDevItem); devolvidosOrigem = MoneyHelper.somar(devolvidosOrigem, receitaDevItem);
} }
devolvidos = devolvidos.add(receitaDevItem); devolvidos = MoneyHelper.somar(devolvidos, receitaDevItem);
} }
} }
@ -582,9 +601,9 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
else { else {
// Cancelamento Receita GAP // Cancelamento Receita GAP
if (rcc.getTipoVenta().equals(Constantes.TPV_BOLETO_REMOTO.intValue())) { if (rcc.getTipoVenta().equals(Constantes.TPV_BOLETO_REMOTO.intValue())) {
canceladosGAP = canceladosGAP.add(receitaDevItem); canceladosGAP = MoneyHelper.somar(canceladosGAP, receitaDevItem);
} else { } else {
cancelados = cancelados.add(receitaDevItem); cancelados = MoneyHelper.somar(cancelados, receitaDevItem);
} }
} }
} }
@ -609,11 +628,19 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
// Receita Comissão = Receita BPR + Receita GAP - GapImpressa - Internet // Receita Comissão = Receita BPR + Receita GAP - GapImpressa - Internet
// - Cancelados - Devoluções Origem - Cancelados GAP - Devoluções GAP Origem - Devoluções - Devoluções GAP // - Cancelados - Devoluções Origem - Cancelados GAP - Devoluções GAP Origem - Devoluções - Devoluções GAP
receitaComissao = receitaComissao.add(receitaBPR).add(receitaGAP); receitaComissao = MoneyHelper.somar(receitaComissao,receitaBPR);
receitaComissao = MoneyHelper.somar(receitaComissao,receitaGAP);
receitaComissao = receitaComissao.subtract(gapImpressa).subtract(internet).subtract(cancelados); receitaComissao = MoneyHelper.subtrair(receitaComissao,gapImpressa);
receitaComissao = receitaComissao.subtract(devolvidosOrigem).subtract(devolvidos).subtract(canceladosGAP); receitaComissao = MoneyHelper.subtrair(receitaComissao,internet);
receitaComissao = receitaComissao.subtract(devolvidosGAPOrigem).subtract(devolvidosGAP); receitaComissao = MoneyHelper.subtrair(receitaComissao,cancelados);
receitaComissao = MoneyHelper.subtrair(receitaComissao,devolvidos);
receitaComissao = MoneyHelper.subtrair(receitaComissao,devolvidosGAP);
receitaComissao = MoneyHelper.subtrair(receitaComissao,devolvidosOrigem);
receitaComissao = MoneyHelper.subtrair(receitaComissao,devolvidosGAPOrigem);
receitaComissao = MoneyHelper.subtrair(receitaComissao,cancelados);
receitaComissao = MoneyHelper.subtrair(receitaComissao,canceladosGAP);
cr.setReceitaComissao(receitaComissao); cr.setReceitaComissao(receitaComissao);
cr.setComissaoBPRDiaria(comissaoBPR); cr.setComissaoBPRDiaria(comissaoBPR);

View File

@ -0,0 +1,42 @@
package com.rjconsultores.ventaboletos.utilerias;
import java.text.ParseException;
import javax.swing.text.MaskFormatter;
import org.apache.commons.lang.StringUtils;
public class DocumentosUtil {
private static final String CPF_MASK = "###.###.###-##";
private static final String CNPJ_MASK = "##.###.###/####-##";
public static String formataCpf(String cpf) {
try {
if(StringUtils.isNotBlank(cpf)) {
cpf = StringHelper.preencherZeroEsquerda(cpf.replace("[^0-9]", ""), 11);
MaskFormatter mask = new MaskFormatter(CPF_MASK);
mask.setValueContainsLiteralCharacters(false);
return mask.valueToString(cpf);
}
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
public static String formataCnpj(String cnpj) {
try {
if(StringUtils.isNotBlank(cnpj)) {
cnpj = StringHelper.preencherZeroEsquerda(cnpj.replace("[^0-9]", ""), 14);
MaskFormatter mask = new MaskFormatter(CNPJ_MASK);
mask.setValueContainsLiteralCharacters(false);
return mask.valueToString(cnpj);
}
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}

View File

@ -37,7 +37,7 @@ public class MoneyHelper {
public static BigDecimal instanciar(BigDecimal aValor) { public static BigDecimal instanciar(BigDecimal aValor) {
return arredondar(aValor); return arredondar(aValor);
} }
public static BigDecimal somar(BigDecimal ... aAmount) { public static BigDecimal somar(BigDecimal ... aAmount) {
BigDecimal total = BigDecimal.ZERO; BigDecimal total = BigDecimal.ZERO;
for(BigDecimal value : aAmount){ for(BigDecimal value : aAmount){
@ -46,12 +46,29 @@ public class MoneyHelper {
} }
return total; return total;
} }
public static BigDecimal somar(int customScale, BigDecimal ... aAmount) {
BigDecimal total = BigDecimal.ZERO;
for(BigDecimal value : aAmount){
BigDecimal fAmountOne = value == null ? BigDecimal.ZERO:arredondar(value, customScale);
total = total.add(fAmountOne);
}
return total;
}
public static BigDecimal somar(BigDecimal aAmountOne, BigDecimal aAmountTwo) { public static BigDecimal somar(BigDecimal aAmountOne, BigDecimal aAmountTwo) {
BigDecimal fAmountOne = aAmountOne == null ? BigDecimal.ZERO:arredondar(aAmountOne); BigDecimal fAmountOne = aAmountOne == null ? BigDecimal.ZERO:arredondar(aAmountOne);
BigDecimal fAmountTwo =aAmountTwo == null ? BigDecimal.ZERO: arredondar(aAmountTwo); BigDecimal fAmountTwo =aAmountTwo == null ? BigDecimal.ZERO: arredondar(aAmountTwo);
return fAmountOne.add(fAmountTwo); return fAmountOne.add(fAmountTwo);
} }
public static BigDecimal somar(BigDecimal aAmountOne, BigDecimal aAmountTwo, int customScale) {
BigDecimal fAmountOne = aAmountOne == null ? BigDecimal.ZERO:arredondar(aAmountOne, customScale);
BigDecimal fAmountTwo =aAmountTwo == null ? BigDecimal.ZERO: arredondar(aAmountTwo, customScale);
return fAmountOne.add(fAmountTwo);
}
public static BigDecimal subtrair(BigDecimal aAmountOne, BigDecimal aAmountTwo) { public static BigDecimal subtrair(BigDecimal aAmountOne, BigDecimal aAmountTwo) {
BigDecimal fAmountOne = arredondar(aAmountOne); BigDecimal fAmountOne = arredondar(aAmountOne);
@ -59,6 +76,13 @@ public class MoneyHelper {
return fAmountOne.subtract(fAmountTwo); return fAmountOne.subtract(fAmountTwo);
} }
public static BigDecimal subtrair(BigDecimal aAmountOne, BigDecimal aAmountTwo, int customScale) {
BigDecimal fAmountOne = arredondar(aAmountOne, customScale);
BigDecimal fAmountTwo = arredondar(aAmountTwo, customScale);
return fAmountOne.subtract(fAmountTwo);
}
public static BigDecimal dividir(BigDecimal aAmount, BigDecimal aDivisor) { public static BigDecimal dividir(BigDecimal aAmount, BigDecimal aDivisor) {
BigDecimal fAmount = arredondar(aAmount); BigDecimal fAmount = arredondar(aAmount);
@ -66,6 +90,13 @@ public class MoneyHelper {
return fAmount.divide(fDivisor, DECIMALS, ROUNDING_MODE); return fAmount.divide(fDivisor, DECIMALS, ROUNDING_MODE);
} }
public static BigDecimal dividir(BigDecimal aAmount, BigDecimal aDivisor, int customScale) {
BigDecimal fAmount = arredondar(aAmount, customScale);
BigDecimal fDivisor = arredondar(aDivisor, customScale);
return fAmount.divide(fDivisor, DECIMALS, ROUNDING_MODE);
}
public static BigDecimal multiplicar(BigDecimal aAmount, BigDecimal aMultiplicand) { public static BigDecimal multiplicar(BigDecimal aAmount, BigDecimal aMultiplicand) {
BigDecimal fAmount = arredondar(aAmount); BigDecimal fAmount = arredondar(aAmount);
@ -74,6 +105,13 @@ public class MoneyHelper {
return fAmount.multiply(fMultiplicand, new MathContext(ROUNDING_MODE)); return fAmount.multiply(fMultiplicand, new MathContext(ROUNDING_MODE));
} }
public static BigDecimal multiplicar(BigDecimal aAmount, BigDecimal aMultiplicand, int customScale) {
BigDecimal fAmount = arredondar(aAmount, customScale);
BigDecimal fMultiplicand = arredondar(aMultiplicand, customScale);
return fAmount.multiply(fMultiplicand, new MathContext(ROUNDING_MODE));
}
public static BigDecimal arredondar(BigDecimal aNumber) { public static BigDecimal arredondar(BigDecimal aNumber) {
if (aNumber != null) { if (aNumber != null) {
return aNumber.setScale(DECIMALS, ROUNDING_MODE); return aNumber.setScale(DECIMALS, ROUNDING_MODE);
@ -175,4 +213,8 @@ public class MoneyHelper {
return null; return null;
} }
public static BigDecimal arredondar(BigDecimal aNumber, int customScale) {
return aNumber.setScale(customScale, ROUNDING_MODE);
}
} }

View File

@ -3,6 +3,8 @@ package com.rjconsultores.ventaboletos.vo.comissao;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import com.rjconsultores.ventaboletos.utilerias.MoneyHelper;
public class ComissaoReceita { public class ComissaoReceita {
private Date data; private Date data;
@ -126,16 +128,15 @@ public class ComissaoReceita {
public BigDecimal getDevolvidosRelatorio() { public BigDecimal getDevolvidosRelatorio() {
BigDecimal devolvidos = BigDecimal.ZERO; BigDecimal devolvidos = BigDecimal.ZERO;
devolvidos = devolvidos.add(getDevolvidos() != null ? getDevolvidos() : BigDecimal.ZERO) devolvidos = MoneyHelper.somar(getDevolvidos() != null ? getDevolvidos() : BigDecimal.ZERO,
.add(getDevolucoesOrigem() != null ? getDevolucoesOrigem() : BigDecimal.ZERO); getDevolucoesOrigem() != null ? getDevolucoesOrigem() : BigDecimal.ZERO);
return devolvidos; return MoneyHelper.arredondar(devolvidos, 2);
} }
public BigDecimal getDevolvidosGAPRelatorio() { public BigDecimal getDevolvidosGAPRelatorio() {
BigDecimal devolvidosGap = BigDecimal.ZERO; BigDecimal devolvidosGap = MoneyHelper.somar(getDevolvidosGAP() != null ? getDevolvidosGAP() : BigDecimal.ZERO,
devolvidosGap = devolvidosGap.add(getDevolvidosGAP() != null ? getDevolvidosGAP() : BigDecimal.ZERO) getDevolucoesOrigemGAP() != null ? getDevolucoesOrigemGAP() : BigDecimal.ZERO);
.add(getDevolucoesOrigemGAP() != null ? getDevolucoesOrigemGAP() : BigDecimal.ZERO); return MoneyHelper.arredondar(devolvidosGap, 2);
return devolvidos;
} }
public BigDecimal getDevolvidosGAP() { public BigDecimal getDevolvidosGAP() {

View File

@ -1,7 +1,6 @@
package com.rjconsultores.ventaboletos.vo.comissao; package com.rjconsultores.ventaboletos.vo.comissao;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.NumberFormat; import java.text.NumberFormat;
import java.text.ParseException; import java.text.ParseException;
@ -12,7 +11,9 @@ import org.zkoss.util.resource.Labels;
import com.rjconsultores.ventaboletos.entidad.Comissao; import com.rjconsultores.ventaboletos.entidad.Comissao;
import com.rjconsultores.ventaboletos.utilerias.DateUtil; import com.rjconsultores.ventaboletos.utilerias.DateUtil;
import com.rjconsultores.ventaboletos.utilerias.DocumentosUtil;
import com.rjconsultores.ventaboletos.utilerias.LocaleUtil; import com.rjconsultores.ventaboletos.utilerias.LocaleUtil;
import com.rjconsultores.ventaboletos.utilerias.MoneyHelper;
public class HistoricoComissao extends Comissao { public class HistoricoComissao extends Comissao {
@ -36,6 +37,8 @@ public class HistoricoComissao extends Comissao {
private String nombempresa; private String nombempresa;
private String cnpj; private String cnpj;
private String descCorreo; private String descCorreo;
private String razonsocial;
private String cnpjPuntoventa;
public HistoricoComissao() { public HistoricoComissao() {
super(); super();
@ -49,6 +52,8 @@ public class HistoricoComissao extends Comissao {
setIssRetido(BigDecimal.ZERO); setIssRetido(BigDecimal.ZERO);
setBonificacaoMetas(BigDecimal.ZERO); setBonificacaoMetas(BigDecimal.ZERO);
setEntregasPassagem(BigDecimal.ZERO); setEntregasPassagem(BigDecimal.ZERO);
setReceitaBPR(BigDecimal.ZERO);
setDevolvidos(BigDecimal.ZERO);
} }
public String getPagamento() { public String getPagamento() {
@ -92,29 +97,31 @@ public class HistoricoComissao extends Comissao {
} }
public BigDecimal getTotal() { public BigDecimal getTotal() {
BigDecimal total = BigDecimal.ZERO; BigDecimal total = MoneyHelper.somar((getComissaoBpr() != null ? getComissaoBpr() : BigDecimal.ZERO),
total = total.add(getComissaoBpr() != null ? getComissaoBpr() : BigDecimal.ZERO) (getReceitaExcessobagagem() != null ? getReceitaExcessobagagem() : BigDecimal.ZERO),
.add(getReceitaExcessobagagem() != null ? getReceitaExcessobagagem() : BigDecimal.ZERO) (getReceitaSeguroopcional() != null ? getReceitaSeguroopcional() : BigDecimal.ZERO),
.add(getReceitaSeguroopcional() != null ? getReceitaSeguroopcional() : BigDecimal.ZERO) (getReceitaOutros() != null ? getReceitaOutros() : BigDecimal.ZERO),
.add(getReceitaOutros() != null ? getReceitaOutros() : BigDecimal.ZERO) (getBonificacaoMetas() != null ? getBonificacaoMetas() : BigDecimal.ZERO),
.add(getBonificacaoMetas() != null ? getBonificacaoMetas() : BigDecimal.ZERO) (getEntregasPassagem() != null ? getEntregasPassagem() : BigDecimal.ZERO));
.add(getEntregasPassagem() != null ? getEntregasPassagem() : BigDecimal.ZERO);
total = total.setScale(2, RoundingMode.HALF_UP); return MoneyHelper.arredondar(total, 2);
return total;
} }
public BigDecimal getTotalLiquido() { public BigDecimal getTotalLiquido() {
BigDecimal totalLiquido = getTotal(); BigDecimal totalLiquido = getTotal();
totalLiquido = totalLiquido.subtract(getDescontosEventuais() != null ? getDescontosEventuais() : BigDecimal.ZERO) totalLiquido = MoneyHelper.subtrair(totalLiquido, getDescontosEventuais() != null ? getDescontosEventuais() : BigDecimal.ZERO);
.subtract(getDescontosFixos() != null ? getDescontosFixos() : BigDecimal.ZERO) totalLiquido = MoneyHelper.subtrair(totalLiquido, getDescontosFixos() != null ? getDescontosFixos() : BigDecimal.ZERO);
.subtract(getIssRetido() != null ? getIssRetido() : BigDecimal.ZERO) totalLiquido = MoneyHelper.subtrair(totalLiquido, getIssRetido() != null ? getIssRetido() : BigDecimal.ZERO);
.subtract(getRoyaties() != null ? getRoyaties() : BigDecimal.ZERO); totalLiquido = MoneyHelper.subtrair(totalLiquido, getRoyaties() != null ? getRoyaties() : BigDecimal.ZERO);
totalLiquido = totalLiquido.setScale(2, RoundingMode.HALF_UP); return MoneyHelper.arredondar(totalLiquido, 2);
}
return totalLiquido;
public BigDecimal getReceitaBaseComissao() {
BigDecimal receitaBaseComissao = BigDecimal.ZERO;
receitaBaseComissao = MoneyHelper.somar((getReceitaBPR() != null ? getReceitaBPR() : BigDecimal.ZERO));
receitaBaseComissao = MoneyHelper.subtrair(receitaBaseComissao,(getDevolvidos() != null ? getDevolvidos() : BigDecimal.ZERO));
return MoneyHelper.arredondar(receitaBaseComissao, 2);
} }
public String getSigla() { public String getSigla() {
@ -168,7 +175,7 @@ public class HistoricoComissao extends Comissao {
public String getTexto() { public String getTexto() {
return Labels.getLabel("busquedaCalculoComissaoController.recibo.texto", return Labels.getLabel("busquedaCalculoComissaoController.recibo.texto",
new String[]{getNombempresa(), new String[]{getNombempresa(),
getCnpj(), getCnpjFormatado(),
getTextoValor()}); getTextoValor()});
} }
@ -207,6 +214,10 @@ public class HistoricoComissao extends Comissao {
public String getCnpj() { public String getCnpj() {
return cnpj; return cnpj;
} }
public String getCnpjFormatado() {
return DocumentosUtil.formataCnpj(getCnpj());
}
public void setCnpj(String cnpj) { public void setCnpj(String cnpj) {
this.cnpj = cnpj; this.cnpj = cnpj;
@ -277,5 +288,25 @@ public class HistoricoComissao extends Comissao {
public BigDecimal getReceitaOutros() { public BigDecimal getReceitaOutros() {
return super.getReceitaOutros() != null ? super.getReceitaOutros() : BigDecimal.ZERO; return super.getReceitaOutros() != null ? super.getReceitaOutros() : BigDecimal.ZERO;
} }
public String getCnpjPuntoventaFormatado() {
return DocumentosUtil.formataCnpj(getCnpjPuntoventa());
}
public String getCnpjPuntoventa() {
return cnpjPuntoventa;
}
public void setCnpjPuntoventa(String cnpjPuntoventa) {
this.cnpjPuntoventa = cnpjPuntoventa;
}
public String getRazonsocial() {
return razonsocial;
}
public void setRazonsocial(String razonsocial) {
this.razonsocial = razonsocial;
}
} }