From 5f8fa3a8782d5027c29e41ae7ba840608ac23079 Mon Sep 17 00:00:00 2001 From: julio Date: Mon, 26 Oct 2015 13:06:03 +0000 Subject: [PATCH] bug #6669 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@49434 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/dao/ComissaoDAO.java | 5 +- .../dao/hibernate/ComissaoHibernateDAO.java | 38 +- .../ventaboletos/entidad/PtovtaComissao.java | 402 +++++++++--------- .../ventaboletos/service/ComissaoService.java | 7 + .../impl/CalculoComissaoServiceImpl.java | 370 +++++++++++----- .../service/impl/ComissaoServiceImpl.java | 62 +++ .../vo/comissao/BoletoComissao.java | 9 + .../vo/comissao/ComissaoReceita.java | 26 ++ 8 files changed, 602 insertions(+), 317 deletions(-) create mode 100644 src/com/rjconsultores/ventaboletos/service/ComissaoService.java create mode 100644 src/com/rjconsultores/ventaboletos/service/impl/ComissaoServiceImpl.java diff --git a/src/com/rjconsultores/ventaboletos/dao/ComissaoDAO.java b/src/com/rjconsultores/ventaboletos/dao/ComissaoDAO.java index 1117997b4..a65c5e9c2 100644 --- a/src/com/rjconsultores/ventaboletos/dao/ComissaoDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/ComissaoDAO.java @@ -3,10 +3,13 @@ package com.rjconsultores.ventaboletos.dao; import java.util.Date; import java.util.List; +import com.rjconsultores.ventaboletos.entidad.Comissao; import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao; -public interface ComissaoDAO { +public interface ComissaoDAO extends GenericDAO { public List buscarReceitasComissoes(Integer puntoVentaId, Integer empresaId, Date periodo); + public List buscaComissaoVigencia(Integer puntoVentaId, Integer empresaId, Date periodo); + } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/ComissaoHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/ComissaoHibernateDAO.java index bbfdf4e0c..78d506ea1 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/ComissaoHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/ComissaoHibernateDAO.java @@ -16,6 +16,7 @@ import org.springframework.stereotype.Repository; import com.rjconsultores.ventaboletos.dao.ComissaoDAO; import com.rjconsultores.ventaboletos.entidad.Comissao; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao; @Repository("comissaoHibernateDAO") @@ -39,17 +40,24 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO 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 ee.tipoeventoextra_id = 21 then ee.impingreso else 0 end), 0) as seguroOpcional, "); - sql.append("coalesce(sum(case when ee.tipoeventoextra_id <> 21 or ee.tipoeventoextra_id <> 1 then ee.impingreso else 0 end), 0) as seguroOutros, "); - sql.append("case when c.ptovtaventa_id = b.puntoventa_id then 1 else 0 end as ptoVtaOrigem "); + sql.append("coalesce(sum(case when ee.tipoeventoextra_id <> 21 "); + sql.append(" or ee.tipoeventoextra_id <> 1 then ee.impingreso else 0 end), 0) as seguroOutros, "); + sql.append("case when c.ptovtaventa_id = b.puntoventa_id then 1 else 0 end as ptoVtaOrigem, "); + sql.append("ei.icms as icmsBase "); sql.append("from boleto b "); + sql.append("inner join parada origen on origen.parada_id = b.origen_id "); + sql.append("inner join ciudad ci on origen.ciudad_id = ci.ciudad_id "); + sql.append("inner join estado e on ci.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("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("where "); sql.append("to_char(b.fechorventa, 'mmyyyy') = to_char(:periodo, 'mmyyyy') "); sql.append("and b.marca_id = :empresaId and b.puntoventa_id = :puntoventaId "); 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 "); + sql.append("b.indstatusboleto, b.tipoventa_id, b.motivocancelacion_id, c.ptovtaventa_id, ei.icms "); sql.append("order by datavenda "); Query query = getSession().createSQLQuery(sql.toString()) @@ -67,7 +75,7 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO .addScalar("seguroOpcional", BigDecimalType.INSTANCE) .addScalar("seguroOutros", BigDecimalType.INSTANCE) .addScalar("ptoVtaOrigem", BooleanType.INSTANCE) - + .addScalar("icmsBase", BigDecimalType.INSTANCE) .setResultTransformer(new AliasToBeanResultTransformer(BoletoComissao.class)); query.setTimestamp("periodo", periodo); @@ -76,4 +84,24 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO return query.list(); } + + @SuppressWarnings("unchecked") + @Override + public List buscaComissaoVigencia(Integer puntoVentaId, Integer empresaId, Date periodo) { + + StringBuilder hql = new StringBuilder(); + hql.append(" from Comissao c "); + hql.append(" where c.activo = 1 "); + hql.append(" AND c.puntoVentaId = :puntoventaId "); + hql.append(" AND c.empresaId = :empresaId "); + hql.append(" AND c.competencia = :periodo "); + + Query query = getSession().createQuery(hql.toString()); + query.setString("periodo", DateUtil.getStringDate(periodo, "MM/yyyy")); + query.setInteger("puntoventaId", puntoVentaId); + query.setInteger("empresaId", empresaId); + + return query.list(); + + } } diff --git a/src/com/rjconsultores/ventaboletos/entidad/PtovtaComissao.java b/src/com/rjconsultores/ventaboletos/entidad/PtovtaComissao.java index e3e0c7f93..522fb0d4d 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/PtovtaComissao.java +++ b/src/com/rjconsultores/ventaboletos/entidad/PtovtaComissao.java @@ -30,136 +30,148 @@ import javax.persistence.TemporalType; @SequenceGenerator(name = "PTOVTA_COMISSAO_SEQ", sequenceName = "PTOVTA_COMISSAO_SEQ", allocationSize = 1) @Table(name = "PTOVTA_COMISSAO") public class PtovtaComissao implements Serializable { - private static final long serialVersionUID = 1L; - @Id - @Basic(optional = false) - @GeneratedValue(strategy = GenerationType.AUTO, generator = "PTOVTA_COMISSAO_SEQ") - @Column(name = "PTOVTACOMISSAO_ID") - private Integer ptovtaComissaoId; - - @Column(name = "ISSRETIDO") - private BigDecimal issretido; - - @Column(name = "ROYALTIES") - private BigDecimal royalties; - - @Column(name = "ENVIARRECIBO") - private Boolean enviarRecibo; - - @Column(name = "RECEITA") - private String receita; - - @OneToOne - @JoinColumn(name = "PTOVTADESCOMISSAO_ID") - private PuntoVenta descComissaoId; - - @Column(name = "PASSAGEMALTA") - private BigDecimal passagemAlta; - - @Column(name = "PASSAGEMBAIXA") - private BigDecimal passagemBaixa; - - @Column(name = "SEGUROALTA") - private BigDecimal seguroAlta; - - @Column(name = "SEGUROBAIXA") - private BigDecimal seguroBaixa; - - @Column(name = "OUTROSBAIXA") - private BigDecimal outrosBaixa; - - @Column(name = " OUTROSALTA") - private BigDecimal outrosAlta; - - @Column(name = "EXCESSOALTA") - private BigDecimal excessoAlta; - - @Column(name = "EXCESSOBAIXA") - private BigDecimal excessoBaixa; - - @Column(name = "TARIFARECEITA") - private Boolean tarifaReceita; - - @Column(name = " SEGURORECEITA") - private Boolean seguroReceita; - - @Column(name = "TAXARECEITA") - private Boolean taxaReceita; - - @Column(name = "PEDAGIORECEITA") - private Boolean pedagioReceita; - - @Column(name = " TARIFADEV") - private Boolean tarifaDev; - - @Column(name = " SEGURO_DEV") - private Boolean seguroDev; - - @Column(name = "TAXADEV") - private Boolean taxaDev; - - @Column(name = "PEDAGIODEV") - private Boolean pedagioDev; - - @Column(name = "ACTIVO") - private Boolean activo; - - @Column(name = "FECMODIF") - @Temporal(TemporalType.TIMESTAMP) - private Date fecmodif; - - @Column(name = "USUARIO_ID") - private int usuarioId; - - @Column(name = "INDDESCONTOPORC") - private Boolean inddescontoporc; - - @Column(name = "DESCONTO") - private BigDecimal desconto; - - @JoinColumn(name = "PUNTOVENTA_ID", referencedColumnName = "PUNTOVENTA_ID") - @ManyToOne - private PuntoVenta puntoventaId; - - @JoinColumn(name = "EMPRESA_ID", referencedColumnName = "EMPRESA_ID") - @ManyToOne - private Empresa empresaId; + private static final long serialVersionUID = 1L; + @Id + @Basic(optional = false) + @GeneratedValue(strategy = GenerationType.AUTO, generator = "PTOVTA_COMISSAO_SEQ") + @Column(name = "PTOVTACOMISSAO_ID") + private Integer ptovtaComissaoId; - public PtovtaComissao() { - } - - public enum enumReceita { - // Declaração dos enum - RECEITABRUTA ("RECEITA BRUTA", "RB"), - - RECEITALIQUIDA ("RECEITA LÍQUIDA ", "RL"); - - - - // Definição das constantes - public final String valor; - public final String descricao; - - - public String valor() { + @Column(name = "ISSRETIDO") + private BigDecimal issretido; + + @Column(name = "ROYALTIES") + private BigDecimal royalties; + + @Column(name = "ENVIARRECIBO") + private Boolean enviarRecibo; + + @Column(name = "RECEITA") + private String receita; + + @OneToOne + @JoinColumn(name = "PTOVTADESCOMISSAO_ID") + private PuntoVenta descComissaoId; + + @Column(name = "PASSAGEMALTA") + private BigDecimal passagemAlta; + + @Column(name = "PASSAGEMBAIXA") + private BigDecimal passagemBaixa; + + @Column(name = "SEGUROALTA") + private BigDecimal seguroAlta; + + @Column(name = "SEGUROBAIXA") + private BigDecimal seguroBaixa; + + @Column(name = "OUTROSBAIXA") + private BigDecimal outrosBaixa; + + @Column(name = " OUTROSALTA") + private BigDecimal outrosAlta; + + @Column(name = "EXCESSOALTA") + private BigDecimal excessoAlta; + + @Column(name = "EXCESSOBAIXA") + private BigDecimal excessoBaixa; + + @Column(name = "TARIFARECEITA") + private Boolean tarifaReceita; + + @Column(name = " SEGURORECEITA") + private Boolean seguroReceita; + + @Column(name = "TAXARECEITA") + private Boolean taxaReceita; + + @Column(name = "PEDAGIORECEITA") + private Boolean pedagioReceita; + + @Column(name = " TARIFADEV") + private Boolean tarifaDev; + + @Column(name = " SEGURO_DEV") + private Boolean seguroDev; + + @Column(name = "TAXADEV") + private Boolean taxaDev; + + @Column(name = "PEDAGIODEV") + private Boolean pedagioDev; + + @Column(name = "ACTIVO") + private Boolean activo; + + @Column(name = "FECMODIF") + @Temporal(TemporalType.TIMESTAMP) + private Date fecmodif; + + @Column(name = "USUARIO_ID") + private int usuarioId; + + @Column(name = "INDDESCONTOPORC") + private Boolean inddescontoporc; + + @Column(name = "DESCONTO") + private BigDecimal desconto; + + @JoinColumn(name = "PUNTOVENTA_ID", referencedColumnName = "PUNTOVENTA_ID") + @ManyToOne + private PuntoVenta puntoventaId; + + @JoinColumn(name = "EMPRESA_ID", referencedColumnName = "EMPRESA_ID") + @ManyToOne + private Empresa empresaId; + + public PtovtaComissao() { + } + + public enum Receita { + // Declaração dos enum + RECEITABRUTA("RECEITA BRUTA", "RB"), + + RECEITALIQUIDA("RECEITA LÍQUIDA ", "RL"); + + // Definição das constantes + public final String valor; + public final String descricao; + + public String valor() { return this.valor; } - public String descricao() { + + public String descricao() { return this.descricao; } - private enumReceita( String descricao, String valor) { + + private Receita(String descricao, String valor) { this.descricao = descricao; this.valor = valor; } - - - } - public PtovtaComissao(Integer ptovtaComissaoId) { - this.ptovtaComissaoId = ptovtaComissaoId; - } - - public PtovtaComissao(Integer ptovtaComissaoId, BigDecimal issretido, BigDecimal royalties, Boolean enviarrecibo, String receita, BigDecimal passagemAlta, BigDecimal passagemBaixa, BigDecimal seguroAlta, BigDecimal seguroBaixa, BigDecimal outrosBaixa, BigDecimal outrosAlta, BigDecimal excessoAlta, BigDecimal excessoBaixa, Boolean tarifaReceita, Boolean seguroReceita, Boolean taxaReceita, Boolean pedagioReceita, Boolean tarifaDev, Boolean seguroDev, Boolean taxaDev, Boolean pegagioDev, Boolean activo, Date fecmodif, int usuarioId, Boolean inddescontoporc, BigDecimal desconto) { + public static Receita getByValor(String valor) { + if (valor == null) { + return Receita.RECEITABRUTA; + } else { + if (valor.equals("RB")) + return Receita.RECEITABRUTA; + if (valor.equals("RL")) + return Receita.RECEITALIQUIDA; + } + + return null; + + } + + } + + public PtovtaComissao(Integer ptovtaComissaoId) { + this.ptovtaComissaoId = ptovtaComissaoId; + } + + public PtovtaComissao(Integer ptovtaComissaoId, BigDecimal issretido, BigDecimal royalties, Boolean enviarrecibo, String receita, BigDecimal passagemAlta, BigDecimal passagemBaixa, BigDecimal seguroAlta, BigDecimal seguroBaixa, BigDecimal outrosBaixa, BigDecimal outrosAlta, BigDecimal excessoAlta, BigDecimal excessoBaixa, Boolean tarifaReceita, Boolean seguroReceita, Boolean taxaReceita, Boolean pedagioReceita, Boolean tarifaDev, Boolean seguroDev, Boolean taxaDev, Boolean pegagioDev, Boolean activo, Date fecmodif, int usuarioId, Boolean inddescontoporc, BigDecimal desconto) { super(); this.ptovtaComissaoId = ptovtaComissaoId; this.issretido = issretido; @@ -206,38 +218,38 @@ public class PtovtaComissao implements Serializable { } public BigDecimal getIssretido() { - return issretido; - } + return issretido; + } - public void setIssretido(BigDecimal issretido) { - this.issretido = issretido; - } + public void setIssretido(BigDecimal issretido) { + this.issretido = issretido; + } - public BigDecimal getRoyalties() { - return royalties; - } + public BigDecimal getRoyalties() { + return royalties; + } - public void setRoyalties(BigDecimal royalties) { - this.royalties = royalties; - } + public void setRoyalties(BigDecimal royalties) { + this.royalties = royalties; + } - public Boolean getEnviarrecibo() { - return enviarRecibo; - } + public Boolean getEnviarrecibo() { + return enviarRecibo; + } - public void setEnviarrecibo(Boolean enviarRecibo) { - this.enviarRecibo = enviarRecibo; - } + public void setEnviarrecibo(Boolean enviarRecibo) { + this.enviarRecibo = enviarRecibo; + } - public String getReceita() { - return receita; - } + public String getReceita() { + return receita; + } - public void setReceita(String receita) { - this.receita = receita; - } + public void setReceita(String receita) { + this.receita = receita; + } - public BigDecimal getPassagemAlta() { + public BigDecimal getPassagemAlta() { return passagemAlta; } @@ -366,43 +378,40 @@ public class PtovtaComissao implements Serializable { } public Boolean getActivo() { - return activo; - } + return activo; + } - public void setActivo(Boolean activo) { - this.activo = activo; - } + public void setActivo(Boolean activo) { + this.activo = activo; + } - public Date getFecmodif() { - return fecmodif; - } + public Date getFecmodif() { + return fecmodif; + } - public void setFecmodif(Date fecmodif) { - this.fecmodif = fecmodif; - } + public void setFecmodif(Date fecmodif) { + this.fecmodif = fecmodif; + } - public int getUsuarioId() { - return usuarioId; - } + public int getUsuarioId() { + return usuarioId; + } - public void setUsuarioId(int usuarioId) { - this.usuarioId = usuarioId; - } + public void setUsuarioId(int usuarioId) { + this.usuarioId = usuarioId; + } - + public PuntoVenta getPuntoventaId() { + return puntoventaId; + } - public PuntoVenta getPuntoventaId() { - return puntoventaId; - } + public void setPuntoventaId(PuntoVenta puntoventaId) { + this.puntoventaId = puntoventaId; + } - public void setPuntoventaId(PuntoVenta puntoventaId) { - this.puntoventaId = puntoventaId; - } - - -// + // - /** + /** * @return the empresaId */ public Empresa getEmpresaId() { @@ -410,36 +419,37 @@ public class PtovtaComissao implements Serializable { } /** - * @param empresaId the empresaId to set + * @param empresaId + * the empresaId to set */ public void setEmpresaId(Empresa empresaId) { this.empresaId = empresaId; } @Override - public int hashCode() { - int hash = 0; - hash += (ptovtaComissaoId != null ? ptovtaComissaoId.hashCode() : 0); - return hash; - } + public int hashCode() { + int hash = 0; + hash += (ptovtaComissaoId != null ? ptovtaComissaoId.hashCode() : 0); + return hash; + } - @Override - public boolean equals(Object object) { - // TODO: Warning - this method won't work in the case the id fields are not set - if (!(object instanceof PtovtaComissao)) { - return false; - } - PtovtaComissao other = (PtovtaComissao) object; - if ((this.ptovtaComissaoId == null && other.ptovtaComissaoId != null) || (this.ptovtaComissaoId != null && !this.ptovtaComissaoId.equals(other.ptovtaComissaoId))) { - return false; - } - return true; - } + @Override + public boolean equals(Object object) { + // TODO: Warning - this method won't work in the case the id fields are not set + if (!(object instanceof PtovtaComissao)) { + return false; + } + PtovtaComissao other = (PtovtaComissao) object; + if ((this.ptovtaComissaoId == null && other.ptovtaComissaoId != null) || (this.ptovtaComissaoId != null && !this.ptovtaComissaoId.equals(other.ptovtaComissaoId))) { + return false; + } + return true; + } - @Override - public String toString() { - return "com.rjconsultores.ventaboletos.entidad.PtovtaComissao[ ptovtaComissaoId=" + ptovtaComissaoId + " ]"; - } + @Override + public String toString() { + return "com.rjconsultores.ventaboletos.entidad.PtovtaComissao[ ptovtaComissaoId=" + ptovtaComissaoId + " ]"; + } public Boolean getInddescontoporc() { return inddescontoporc; @@ -456,5 +466,5 @@ public class PtovtaComissao implements Serializable { public void setDesconto(BigDecimal desconto) { this.desconto = desconto; } - + } diff --git a/src/com/rjconsultores/ventaboletos/service/ComissaoService.java b/src/com/rjconsultores/ventaboletos/service/ComissaoService.java new file mode 100644 index 000000000..7bfff7af1 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/service/ComissaoService.java @@ -0,0 +1,7 @@ +package com.rjconsultores.ventaboletos.service; + +import com.rjconsultores.ventaboletos.entidad.Comissao; + +public interface ComissaoService extends GenericService { + +} diff --git a/src/com/rjconsultores/ventaboletos/service/impl/CalculoComissaoServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/CalculoComissaoServiceImpl.java index afbb2b1f3..7af3b3844 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/CalculoComissaoServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/CalculoComissaoServiceImpl.java @@ -5,7 +5,9 @@ import java.text.ParseException; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -14,27 +16,36 @@ import org.springframework.stereotype.Service; import com.rjconsultores.ventaboletos.constantes.Constantes; import com.rjconsultores.ventaboletos.dao.ComissaoDAO; +import com.rjconsultores.ventaboletos.entidad.Comissao; import com.rjconsultores.ventaboletos.entidad.DescontoComissao; import com.rjconsultores.ventaboletos.entidad.PtovtaComissao; +import com.rjconsultores.ventaboletos.entidad.PtovtaComissao.Receita; import com.rjconsultores.ventaboletos.enums.IndStatusBoleto; import com.rjconsultores.ventaboletos.service.CalculoComissaoService; +import com.rjconsultores.ventaboletos.service.ComissaoService; import com.rjconsultores.ventaboletos.service.DescontoComissaoService; import com.rjconsultores.ventaboletos.service.PtovtaComissaoService; import com.rjconsultores.ventaboletos.utilerias.DateUtil; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao; import com.rjconsultores.ventaboletos.vo.comissao.ComissaoDesconto; import com.rjconsultores.ventaboletos.vo.comissao.ComissaoDesconto.TipoDesconto; import com.rjconsultores.ventaboletos.vo.comissao.ComissaoReceita; +import com.rjconsultores.ventaboletos.vo.comissao.ComissaoReceita.TipoIcms; import com.rjconsultores.ventaboletos.vo.comissao.RegistroCalculo; @Service("calculoComissaoService") public class CalculoComissaoServiceImpl implements CalculoComissaoService { private static final Logger log = LoggerFactory.getLogger(CalculoComissaoServiceImpl.class); + BigDecimal CEM = BigDecimal.TEN.multiply(BigDecimal.TEN); @Autowired private PtovtaComissaoService ptovtaComissaoService; + @Autowired + private ComissaoService comissaoService; + @Autowired private ComissaoDAO comissaoDAO; @@ -43,7 +54,39 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService { @Override public void registrarCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo) { - RegistroCalculo rc = realizarCalculoComissao(puntoVentaId, empresaId, periodo); + + List comissoes = comissaoDAO.buscaComissaoVigencia(puntoVentaId, empresaId, periodo); + if (comissoes.isEmpty()) { + + RegistroCalculo rc = realizarCalculoComissao(puntoVentaId, empresaId, periodo); + + Comissao comissao = new Comissao(); + + String competencia = DateUtil.getStringDate(periodo, "MM/yyyy"); + comissao.setCompetencia(competencia); + comissao.setDataPagamento(Calendar.getInstance().getTime()); + + comissao.setEmpresaId(empresaId); + comissao.setPuntoVentaId(puntoVentaId); + + comissao.setBonificacaoMetas(rc.getComissaoBonificaoMetas()); + comissao.setComissaoBpr(rc.getComissaoBPR()); + comissao.setEntregasPassagem(rc.getComissaoEntregaPassagem()); + comissao.setReceitaExcessobagagem(rc.getComissaoExcessoBagagem()); + comissao.setReceitaSeguroopcional(rc.getComissaoSegOpcional()); + comissao.setRoyaties(rc.getRoyaties()); + comissao.setIssRetido(rc.getRetidoISS()); + comissao.setBonificacaoMetas(rc.getComissaoBonificaoMetas()); + comissao.setDescontosEventuais(rc.getDescontos()); + + comissao.setIndPago(true); + comissao.setUsuarioPagamentoId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + + comissao = comissaoService.suscribir(comissao); + } else { + + } + } @Override @@ -51,93 +94,75 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService { return realizarCalculoComissao(puntoVentaId, empresaId, periodo); } - public RegistroCalculo realizarCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo) { + private BigDecimal calculoComisssaoBPR(boolean isAltaTemporada, boolean isReceitaLiquida, PtovtaComissao ptovtaComissao, ComissaoReceita cr) { - PtovtaComissao ptovtaComissao = ptovtaComissaoService.buscarPuntaVentaEmpresa(puntoVentaId, empresaId); - - List receitasBoleto = comissaoDAO.buscarReceitasComissoes(puntoVentaId, empresaId, periodo); - - Calendar calendario = Calendar.getInstance(); - calendario.setTime(periodo); - - int ultimodia = calendario.getActualMaximum(Calendar.DAY_OF_MONTH); - int mes = calendario.get(Calendar.MONTH) + 1; - int ano = calendario.get(Calendar.YEAR); - - List receitas = calculaReceitaComissao(ptovtaComissao, receitasBoleto, ultimodia, mes, ano); - for (ComissaoReceita comissaoReceita : receitas) { - log.info("Item=" + comissaoReceita.toString()); + // Comissão BPR = Receita Comissão * (% Com BPR) + BigDecimal bpr = BigDecimal.ZERO; + BigDecimal receitaBPR = cr.getReceitaBPR().add(cr.getReceitaGAP()); + if (isReceitaLiquida) { + for (TipoIcms tipoIcms : cr.getDescontosIcms()) { + if (tipoIcms.equals(TipoIcms.BPR) || tipoIcms.equals(TipoIcms.GAP)) + receitaBPR = receitaBPR.add(tipoIcms.getValor().negate()); + } } - RegistroCalculo rc = new RegistroCalculo(); - - BigDecimal comissaoBPR = BigDecimal.ZERO; - BigDecimal comissaoExcessoBagagem = BigDecimal.ZERO; - BigDecimal comissaoSegOpcional = BigDecimal.ZERO; - BigDecimal comissaoEntregaPassagem = BigDecimal.ZERO; - - for (ComissaoReceita cr : receitas) { - - BigDecimal cem = BigDecimal.TEN.multiply(BigDecimal.TEN); - - // Está parte esta encapsulada, posteriormente será implementada a validação de alta e baixa temporada - // Inicialmente só será validado os calculos de comissão em baixa temporada - boolean isAltaTemporada = false; - - // Comissão BPR = Receita Comissão * (% Com BPR) - BigDecimal bpr = BigDecimal.ZERO; - if (isAltaTemporada) { - bpr = cr.getReceitaBPR().multiply(ptovtaComissao.getPassagemAlta().divide(cem)); - } else { - bpr = cr.getReceitaBPR().multiply(ptovtaComissao.getPassagemBaixa().divide(cem)); - } - cr.setComissaoBPRDiaria(bpr); - comissaoBPR = comissaoBPR.add(bpr); - - // Comissão Excesso = Receita Excesso Bagagem * (% Com. Exc. Bag) - BigDecimal excessoBagagem = BigDecimal.ZERO; - if (isAltaTemporada) { - excessoBagagem = cr.getReceitaExcessoBagagem().multiply(ptovtaComissao.getExcessoAlta().divide(cem)); - } else { - excessoBagagem = cr.getReceitaExcessoBagagem().multiply(ptovtaComissao.getExcessoBaixa().divide(cem)); - } - cr.setComissaoExcessoBagagemDiaria(excessoBagagem); - comissaoExcessoBagagem = comissaoExcessoBagagem.add(excessoBagagem); - - // Comissão Seg. Opcional = Receita Seguro Opcional * (% Com. Seg. Pol) - BigDecimal segOpcional = BigDecimal.ZERO; - if (isAltaTemporada) { - segOpcional = cr.getReceitaSeguroOpcional().multiply(ptovtaComissao.getSeguroAlta().divide(cem)); - } else { - segOpcional = cr.getReceitaSeguroOpcional().multiply(ptovtaComissao.getSeguroBaixa().divide(cem)); - } - cr.setComissaoSegOpcionalDiaria(segOpcional); - comissaoSegOpcional = comissaoSegOpcional.add(segOpcional); - - // EntregaPassagem (Internet/Venda Impressão Posterior/Outros) - BigDecimal entregaPassagem = BigDecimal.ZERO; - if (ptovtaComissao.getInddescontoporc()) { - entregaPassagem = cr.getGapImpressa().multiply(ptovtaComissao.getDesconto().divide(cem)); - } else { - entregaPassagem = ptovtaComissao.getDesconto().multiply(new BigDecimal(cr.getContImpressa())); - } - cr.setComissaoEntregaPassagemDiaria(entregaPassagem); - comissaoEntregaPassagem = comissaoEntregaPassagem.add(entregaPassagem); - + if (isAltaTemporada) { + bpr = receitaBPR.multiply(ptovtaComissao.getPassagemAlta().divide(CEM)); + } else { + bpr = receitaBPR.multiply(ptovtaComissao.getPassagemBaixa().divide(CEM)); } - rc.setLsReceitas(receitas); + return bpr; + } - rc.setComissaoBPR(comissaoBPR); - rc.setComissaoExcessoBagagem(comissaoExcessoBagagem); - rc.setComissaoSegOpcional(comissaoSegOpcional); - rc.setComissaoEntregaPassagem(comissaoEntregaPassagem); + private BigDecimal calculoEntregaPassagem(boolean isAltaTemporada, boolean isReceitaLiquida, PtovtaComissao ptovtaComissao, ComissaoReceita cr) { - // Bonificação Metas - BigDecimal comissaoBonificaoMetas = BigDecimal.ZERO; - rc.setComissaoBonificaoMetas(comissaoBonificaoMetas); + // EntregaPassagem (Internet/Venda Impressão Posterior/Outros) + BigDecimal entregaPassagem = BigDecimal.ZERO; + BigDecimal receitaEntrega = cr.getGapImpressa().add(cr.getInternet()); + if (isReceitaLiquida) { + for (TipoIcms tipoIcms : cr.getDescontosIcms()) { + if (tipoIcms.equals(TipoIcms.INTERNET) || tipoIcms.equals(TipoIcms.GAP_IMPRESSA)) + receitaEntrega = receitaEntrega.add(tipoIcms.getValor().negate()); + } + } + + if (ptovtaComissao.getInddescontoporc()) { + entregaPassagem = receitaEntrega.multiply(ptovtaComissao.getDesconto().divide(CEM)); + } else { + entregaPassagem = ptovtaComissao.getDesconto().multiply(new BigDecimal(cr.getContImpressa())); + } + + return entregaPassagem; + } + + private BigDecimal calculoExcessoBagagem(boolean isAltaTemporada, PtovtaComissao ptovtaComissao, ComissaoReceita cr) { + + // Comissão Excesso = Receita Excesso Bagagem * (% Com. Exc. Bag) + BigDecimal excessoBagagem = BigDecimal.ZERO; + if (isAltaTemporada) { + excessoBagagem = cr.getReceitaExcessoBagagem().multiply(ptovtaComissao.getExcessoAlta().divide(CEM)); + } else { + excessoBagagem = cr.getReceitaExcessoBagagem().multiply(ptovtaComissao.getExcessoBaixa().divide(CEM)); + } + + return excessoBagagem; + } + + private BigDecimal calculoSeguroOpcional(boolean isAltaTemporada, PtovtaComissao ptovtaComissao, ComissaoReceita cr) { + + // Comissão Seg. Opcional = Receita Seguro Opcional * (% Com. Seg. Pol) + BigDecimal segOpcional = BigDecimal.ZERO; + if (isAltaTemporada) { + segOpcional = cr.getReceitaSeguroOpcional().multiply(ptovtaComissao.getSeguroAlta().divide(CEM)); + } else { + segOpcional = cr.getReceitaSeguroOpcional().multiply(ptovtaComissao.getSeguroBaixa().divide(CEM)); + } + return segOpcional; + } + + private Map calculoDescontos(Integer puntoVentaId, Integer empresaId, Date periodo, PtovtaComissao ptovtaComissao) { - // Descontos (Fixos e Eventuais) List lsDescontos = new ArrayList(); BigDecimal valorDescontoTotal = BigDecimal.ZERO; @@ -161,24 +186,111 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService { lsDescontos.add(desconto); } - rc.setDescontos(valorDescontoTotal); - rc.setLsDescontos(lsDescontos); + + Map respDescontos = new HashMap(); + respDescontos.put("LISTA_DESCONTOS", lsDescontos); + respDescontos.put("VALOR_DESCONTOS", valorDescontoTotal); + + return respDescontos; + } + + @SuppressWarnings("unchecked") + public RegistroCalculo realizarCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo) { + + PtovtaComissao ptovtaComissao = ptovtaComissaoService.buscarPuntaVentaEmpresa(puntoVentaId, empresaId); + + List receitasBoleto = comissaoDAO.buscarReceitasComissoes(puntoVentaId, empresaId, periodo); + + Calendar calendario = Calendar.getInstance(); + calendario.setTime(periodo); + + int ultimodia = calendario.getActualMaximum(Calendar.DAY_OF_MONTH); + int mes = calendario.get(Calendar.MONTH) + 1; + int ano = calendario.get(Calendar.YEAR); + + List receitas = calculaReceitaComissao(ptovtaComissao, receitasBoleto, ultimodia, mes, ano); + + RegistroCalculo rc = new RegistroCalculo(); + + BigDecimal comissaoBPR = BigDecimal.ZERO; + BigDecimal comissaoExcessoBagagem = BigDecimal.ZERO; + BigDecimal comissaoSegOpcional = BigDecimal.ZERO; + BigDecimal comissaoEntregaPassagem = BigDecimal.ZERO; + + BigDecimal receitaTotal = BigDecimal.ZERO; + + for (ComissaoReceita cr : receitas) { + + // Está parte esta encapsulada, posteriormente será implementada a validação de alta e baixa temporada + // Inicialmente só será validado os calculos de comissão em baixa temporada + boolean isAltaTemporada = false; + + // Receita Total -- bruta/liquida - abatimento do valor do icms + boolean isReceitaLiquida = false; + Receita receita = Receita.getByValor(ptovtaComissao.getReceita()); + if (receita.equals(Receita.RECEITALIQUIDA)) { + isReceitaLiquida = true; + receitaTotal = receitaTotal.add(cr.getReceitaBPR()).add(cr.getGapImpressa()).add(cr.getInternet()).add(cr.getReceitaGAP()); + + for (TipoIcms tipoIcms : cr.getDescontosIcms()) { + receitaTotal = receitaTotal.add(tipoIcms.getValor().negate()); + } + + } else if (receita.equals(Receita.RECEITABRUTA)) { + receitaTotal = receitaTotal.add(cr.getReceitaBPR()).add(cr.getGapImpressa()).add(cr.getInternet()).add(cr.getReceitaGAP()); + } + + BigDecimal bpr = calculoComisssaoBPR(isAltaTemporada, isReceitaLiquida, ptovtaComissao, cr); + cr.setComissaoBPRDiaria(bpr); + comissaoBPR = comissaoBPR.add(bpr); + + BigDecimal entregaPassagem = calculoEntregaPassagem(isAltaTemporada, isReceitaLiquida, ptovtaComissao, cr); + cr.setComissaoEntregaPassagemDiaria(entregaPassagem); + comissaoEntregaPassagem = comissaoEntregaPassagem.add(entregaPassagem); + + BigDecimal excessoBagagem = calculoExcessoBagagem(isAltaTemporada, ptovtaComissao, cr); + cr.setComissaoExcessoBagagemDiaria(excessoBagagem); + comissaoExcessoBagagem = comissaoExcessoBagagem.add(excessoBagagem); + + BigDecimal segOpcional = calculoSeguroOpcional(isAltaTemporada, ptovtaComissao, cr); + cr.setComissaoSegOpcionalDiaria(segOpcional); + comissaoSegOpcional = comissaoSegOpcional.add(segOpcional); + + } + + rc.setLsReceitas(receitas); + + rc.setComissaoBPR(comissaoBPR); + rc.setComissaoExcessoBagagem(comissaoExcessoBagagem); + rc.setComissaoSegOpcional(comissaoSegOpcional); + rc.setComissaoEntregaPassagem(comissaoEntregaPassagem); + + // Descontos (Fixos e Eventuais) + Map respDescontos = calculoDescontos(puntoVentaId, empresaId, periodo, ptovtaComissao); + rc.setDescontos((BigDecimal) respDescontos.get("VALOR_DESCONTOS")); + rc.setLsDescontos((List) respDescontos.get("LISTA_DESCONTOS")); + + // Bonificação Metas + BigDecimal comissaoBonificaoMetas = BigDecimal.ZERO; + rc.setComissaoBonificaoMetas(comissaoBonificaoMetas); // Royaties BigDecimal royaties = BigDecimal.ZERO; + royaties = receitaTotal.multiply(ptovtaComissao.getRoyalties().divide(CEM)); rc.setRoyaties(royaties); // ISS retido BigDecimal issRetido = BigDecimal.ZERO; + issRetido = receitaTotal.multiply(ptovtaComissao.getIssretido().divide(CEM)); rc.setRetidoISS(issRetido); - // bruta/liquida - abatimento do valor do icms - - // Comissão à pagar = Comissão BPR + Comissão Excesso Bagagem + Comissão Seg. Opcional + Bonificação Metas + Internet(EntregaPassagem) - Descontos (Fixos e Eventuais) - Royaties - ISS retido + // Comissão à pagar = Comissão BPR + Comissão Excesso Bagagem + Comissão Seg. Opcional + Bonificação Metas + Internet(EntregaPassagem) BigDecimal comissaoPagar = BigDecimal.ZERO; - comissaoPagar = comissaoBPR.add(comissaoExcessoBagagem).add(comissaoSegOpcional).add(comissaoSegOpcional); + comissaoPagar = comissaoPagar.add(comissaoBPR).add(comissaoExcessoBagagem).add(comissaoSegOpcional); comissaoPagar = comissaoPagar.add(comissaoEntregaPassagem).add(comissaoBonificaoMetas); - comissaoPagar = comissaoPagar.add(valorDescontoTotal.negate()).add(royaties.negate()).add(issRetido.negate()); + + // Descontos // - Descontos (Fixos e Eventuais) - Royaties - ISS retido + comissaoPagar = comissaoPagar.add(rc.getDescontos().negate()).add(royaties.negate()).add(issRetido.negate()); rc.setComissaoPagar(comissaoPagar); return rc; @@ -217,8 +329,12 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService { BigDecimal gapImpressa = BigDecimal.ZERO; int contImpressa = 0; + List descontosIcms = new ArrayList(); + for (BoletoComissao rcc : list) { + IndStatusBoleto statusBoleto = IndStatusBoleto.valueOf(rcc.getIndstatusboleto()); + BigDecimal receitaItem = BigDecimal.ZERO; BigDecimal receitaDevItem = BigDecimal.ZERO; @@ -240,8 +356,8 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService { } // Totais de Devolução / Cancelamento + if (ptovtaComissao.getTarifaDev()) { receitaDevItem = receitaDevItem.add(rcc.getValorpagado()); - if (ptovtaComissao.getTarifaDev()) { } if (ptovtaComissao.getTaxaDev()) { @@ -256,36 +372,57 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService { receitaDevItem = receitaDevItem.add(rcc.getPedagio()); } - if (rcc.getMotivoCancelacionId() == null) { + // Boletos impressos no punto venta + if (statusBoleto.equals(IndStatusBoleto.E)) { + contImpressa++; - IndStatusBoleto statusBoleto = IndStatusBoleto.valueOf(rcc.getIndstatusboleto()); + // Calculo de ICMS sobre o valor do bilhete + TipoIcms icms = TipoIcms.GAP_IMPRESSA; + icms.setValor(receitaItem.multiply(rcc.getIcmsBase().divide(CEM))); + descontosIcms.add(icms); - // Boletos impressos no punto venta - if (statusBoleto.equals(IndStatusBoleto.E)) { - contImpressa++; - gapImpressa = gapImpressa.add(receitaItem); + gapImpressa = gapImpressa.add(receitaItem); - } else { - - // Receitas calculadas sempre - receitaExcessoBagagem = receitaExcessoBagagem.add(rcc.getExcessoBagagem()); - receitaSeguroOpcional = receitaSeguroOpcional.add(rcc.getSeguroOpcional()); - receitaSeguroOutros = receitaSeguroOutros.add(rcc.getSeguroOutros()); - - // Receita GAP - if (rcc.getTipoVenta().equals(Constantes.TPV_BOLETO_REMOTO.intValue())) { - receitaGAP = receitaGAP.add(receitaItem); - } - // Internet - else if (rcc.getTipoVenta().equals(Constantes.TPV_POR_INTERNET.intValue())) { - internet = internet.add(receitaItem); - } - // Receita BPR - else { - receitaBPR = receitaBPR.add(receitaItem); - } - } } else { + + // Receitas calculadas sempre + receitaExcessoBagagem = receitaExcessoBagagem.add(rcc.getExcessoBagagem()); + receitaSeguroOpcional = receitaSeguroOpcional.add(rcc.getSeguroOpcional()); + receitaSeguroOutros = receitaSeguroOutros.add(rcc.getSeguroOutros()); + + // Receita GAP + if (rcc.getTipoVenta().equals(Constantes.TPV_BOLETO_REMOTO.intValue())) { + + // Calculo de ICMS sobre o valor do bilhete + TipoIcms icms = TipoIcms.GAP; + icms.setValor(receitaItem.multiply(rcc.getIcmsBase().divide(CEM))); + descontosIcms.add(icms); + + receitaGAP = receitaGAP.add(receitaItem); + } + // Internet + else if (rcc.getTipoVenta().equals(Constantes.TPV_POR_INTERNET.intValue())) { + + // Calculo de ICMS sobre o valor do bilhete + TipoIcms icms = TipoIcms.INTERNET; + icms.setValor(receitaItem.multiply(rcc.getIcmsBase().divide(CEM))); + descontosIcms.add(icms); + + internet = internet.add(receitaItem); + } + + // Receita BPR + else { + // Calculo de ICMS sobre o valor do bilhete + TipoIcms icms = TipoIcms.BPR; + icms.setValor(receitaItem.multiply(rcc.getIcmsBase().divide(CEM))); + descontosIcms.add(icms); + + receitaBPR = receitaBPR.add(receitaItem); + } + } + + if (statusBoleto.equals(IndStatusBoleto.C)) { // Devolução Receita if (rcc.getMotivoCancelacionId().equals(Constantes.MVO_CANCEL_DEVOLUCAO)) { @@ -321,7 +458,6 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService { } } - } } @@ -341,6 +477,9 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService { cr.setGapImpressa(gapImpressa); cr.setContImpressa(contImpressa); + // cr.setCancelamentoICMS(cancelamentoICMS); + // cr.setReceitaICMS(receitaICMS); + // Receita Comissão = Receita BPR + Receita GAP - GapImpressa - Internet - Cancelados - Devoluções Origem - Cancelados GAP - Devoluções GAP Origem - Devoluções - Devoluções GAP receitaComissao = receitaComissao.add(receitaBPR).add(receitaGAP); receitaComissao = receitaComissao.add(gapImpressa.negate()).add(internet.negate()).add(cancelados.negate()); @@ -352,6 +491,7 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService { } return receitas; + } private List verificaCalculoComissaoProDia(List list, Integer dia, Integer mes) { diff --git a/src/com/rjconsultores/ventaboletos/service/impl/ComissaoServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/ComissaoServiceImpl.java new file mode 100644 index 000000000..7a69ffa14 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/service/impl/ComissaoServiceImpl.java @@ -0,0 +1,62 @@ +package com.rjconsultores.ventaboletos.service.impl; + +import java.util.Calendar; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.rjconsultores.ventaboletos.dao.ComissaoDAO; +import com.rjconsultores.ventaboletos.entidad.Comissao; +import com.rjconsultores.ventaboletos.service.ComissaoService; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; + +@Service("comissaoService") +public class ComissaoServiceImpl implements ComissaoService { + + @Autowired + private ComissaoDAO comissaoDAO; + + @Override + public List obtenerTodos() { + return comissaoDAO.obtenerTodos(); + } + + @Override + public Comissao obtenerID(Integer id) { + return comissaoDAO.obtenerID(id); + } + + @Override + @Transactional + public Comissao suscribir(Comissao entidad) { + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecmodif(Calendar.getInstance().getTime()); + entidad.setActivo(Boolean.TRUE); + + return comissaoDAO.suscribir(entidad); + } + + @Override + @Transactional + public Comissao actualizacion(Comissao entidad) { + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecmodif(Calendar.getInstance().getTime()); + entidad.setActivo(Boolean.TRUE); + + return comissaoDAO.actualizacion(entidad); + } + + @Override + @Transactional + public void borrar(Comissao entidad) { + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecmodif(Calendar.getInstance().getTime()); + entidad.setActivo(Boolean.FALSE); + + comissaoDAO.actualizacion(entidad); + + } + +} diff --git a/src/com/rjconsultores/ventaboletos/vo/comissao/BoletoComissao.java b/src/com/rjconsultores/ventaboletos/vo/comissao/BoletoComissao.java index fdad58f73..f23d3cc6f 100644 --- a/src/com/rjconsultores/ventaboletos/vo/comissao/BoletoComissao.java +++ b/src/com/rjconsultores/ventaboletos/vo/comissao/BoletoComissao.java @@ -28,6 +28,7 @@ public class BoletoComissao { private String uf; private String desccategoria; private Integer status; + private BigDecimal icmsBase; public Integer getEmpresaId() { return empresaId; @@ -217,4 +218,12 @@ public class BoletoComissao { return ""; } + public BigDecimal getIcmsBase() { + return icmsBase; + } + + public void setIcmsBase(BigDecimal icmsBase) { + this.icmsBase = icmsBase; + } + } \ No newline at end of file diff --git a/src/com/rjconsultores/ventaboletos/vo/comissao/ComissaoReceita.java b/src/com/rjconsultores/ventaboletos/vo/comissao/ComissaoReceita.java index 38a529a3c..ce656933c 100644 --- a/src/com/rjconsultores/ventaboletos/vo/comissao/ComissaoReceita.java +++ b/src/com/rjconsultores/ventaboletos/vo/comissao/ComissaoReceita.java @@ -2,9 +2,25 @@ package com.rjconsultores.ventaboletos.vo.comissao; import java.math.BigDecimal; import java.util.Date; +import java.util.List; public class ComissaoReceita { + public enum TipoIcms { + BPR, GAP, GAP_IMPRESSA, INTERNET; + + private BigDecimal valor; + + public BigDecimal getValor() { + return valor; + } + + public void setValor(BigDecimal valor) { + this.valor = valor; + } + + } + private Date data; private BigDecimal receitaComissao; private BigDecimal receitaBPR; @@ -26,6 +42,8 @@ public class ComissaoReceita { private BigDecimal comissaoSegOpcionalDiaria; private BigDecimal comissaoEntregaPassagemDiaria; + List descontosIcms; + public Date getData() { return data; } @@ -178,6 +196,14 @@ public class ComissaoReceita { this.comissaoEntregaPassagemDiaria = comissaoEntregaPassagemDiaria; } + public List getDescontosIcms() { + return descontosIcms; + } + + public void setDescontosIcms(List descontosIcms) { + this.descontosIcms = descontosIcms; + } + @Override public String toString() { return "ComissaoReceita [data=" + data + ", receitaComissao=" + receitaComissao + ", receitaBPR=" + receitaBPR + ", receitaGAP=" + receitaGAP + ", gapImpressa=" + gapImpressa + ", internet=" + internet + ", cancelados=" + cancelados + ", canceladosGAP=" + canceladosGAP + ", devolvidos=" + devolvidos + ", devolvidosGAP=" + devolvidosGAP + ", devolucoesOrigem=" + devolucoesOrigem + ", devolucoesOrigemGAP=" + devolucoesOrigemGAP + ", receitaExcessoBagagem=" + receitaExcessoBagagem + ", receitaSeguroOpcional=" + receitaSeguroOpcional + ", contImpressa=" + contImpressa + ", comissaoBPRDiaria=" + comissaoBPRDiaria + ", comissaoExcessoBagagemDiaria=" + comissaoExcessoBagagemDiaria + ", comissaoSegOpcionalDiaria=" + comissaoSegOpcionalDiaria + ", comissaoEntregaPassagemDiaria=" + comissaoEntregaPassagemDiaria + "]";