diff --git a/src/com/rjconsultores/ventaboletos/dao/ComissaoDAO.java b/src/com/rjconsultores/ventaboletos/dao/ComissaoDAO.java index 921e0325d..43199ab35 100644 --- a/src/com/rjconsultores/ventaboletos/dao/ComissaoDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/ComissaoDAO.java @@ -5,6 +5,7 @@ import java.util.List; import com.rjconsultores.ventaboletos.entidad.Comissao; import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao; +import com.rjconsultores.ventaboletos.vo.comissao.HistoricoComissao; public interface ComissaoDAO extends GenericDAO { @@ -12,4 +13,5 @@ public interface ComissaoDAO extends GenericDAO { public Comissao buscaComissaoVigencia(Integer puntoVentaId, Integer empresaId, String competencia); + public List buscaHistoricoComissao(Integer puntoVentaId, Integer empresaId, Date periodoInicio, Date periodoFim); } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/ComissaoHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/ComissaoHibernateDAO.java index 6df64652a..5bada3db0 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/ComissaoHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/ComissaoHibernateDAO.java @@ -8,6 +8,7 @@ import org.hibernate.SessionFactory; import org.hibernate.transform.AliasToBeanResultTransformer; import org.hibernate.type.BigDecimalType; import org.hibernate.type.BooleanType; +import org.hibernate.type.DateType; import org.hibernate.type.IntegerType; import org.hibernate.type.StringType; import org.springframework.beans.factory.annotation.Autowired; @@ -16,7 +17,9 @@ 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; +import com.rjconsultores.ventaboletos.vo.comissao.HistoricoComissao; @Repository("comissaoHibernateDAO") public class ComissaoHibernateDAO extends GenericHibernateDAO implements ComissaoDAO { @@ -84,7 +87,6 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO return query.list(); } - @Override public Comissao buscaComissaoVigencia(Integer puntoVentaId, Integer empresaId, String competencia) { @@ -102,4 +104,64 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO return (Comissao) query.uniqueResult(); } + + @Override + @SuppressWarnings("unchecked") + public List buscaHistoricoComissao(Integer puntoVentaId, Integer empresaId, Date periodoInicio, Date periodoFim) { + + String competenciaInicio = DateUtil.getStringDate(periodoInicio, "MM/yyyy"); + String competenciaFim = DateUtil.getStringDate(periodoFim, "MM/yyyy"); + + StringBuilder sql = new StringBuilder(); + sql.append("SELECT c.competencia AS competencia, "); + sql.append(" c.datapagamento AS dataPagamento, "); + sql.append(" c.comissao_bpr AS comissaoBpr, "); + sql.append(" c.receita_excessobagagem AS receitaExcessobagagem, "); + sql.append(" c.receita_seguroopcional AS receitaSeguroopcional, "); + sql.append(" c.descontos_fixos AS descontosFixos, "); + sql.append(" c.descontos_eventuais AS descontosEventuais, "); + sql.append(" c.royaties AS royaties, "); + sql.append(" c.iss_retido AS issRetido, "); + sql.append(" c.bonificacao_metas AS bonificacaoMetas, "); + sql.append(" c.entregas_passagem AS entregasPassagem, "); + sql.append(" c.receita_outros AS receitaOutros, "); + sql.append(" c.indpago AS indPago, "); + sql.append(" CASE WHEN c.indpago = 1 THEN 'PAGO' ELSE 'PENDENTE' END AS pagamento, "); + sql.append(" up.nombusuario || ' ' || up.nombmaterno || ' ' || up.nombpaterno AS usuarioPagamento, "); + sql.append(" ul.nombusuario || ' ' || ul.nombmaterno || ' ' || ul.nombpaterno AS usuarioLancamento "); + sql.append("FROM comissao c "); + sql.append("LEFT JOIN usuario up ON up.usuario_id = c.usuariopagamento_id "); + sql.append("LEFT JOIN usuario ul ON ul.usuario_id = c.usuario_id "); + sql.append("WHERE c.activo = 1 "); + sql.append(" AND c.puntoventa_id = :puntoventaId "); + sql.append(" AND c.empresa_id = :empresaId "); + sql.append(" AND c.competencia BETWEEN :periodoInicio and :periodoFim "); + sql.append("ORDER BY c.competencia "); + + Query query = getSession().createSQLQuery(sql.toString()) + .addScalar("competencia", StringType.INSTANCE) + .addScalar("dataPagamento", DateType.INSTANCE) + .addScalar("comissaoBpr", BigDecimalType.INSTANCE) + .addScalar("receitaExcessobagagem", BigDecimalType.INSTANCE) + .addScalar("receitaSeguroopcional", BigDecimalType.INSTANCE) + .addScalar("descontosFixos", BigDecimalType.INSTANCE) + .addScalar("descontosEventuais", BigDecimalType.INSTANCE) + .addScalar("royaties", BigDecimalType.INSTANCE) + .addScalar("issRetido", BigDecimalType.INSTANCE) + .addScalar("bonificacaoMetas", BigDecimalType.INSTANCE) + .addScalar("entregasPassagem", BigDecimalType.INSTANCE) + .addScalar("receitaOutros", BigDecimalType.INSTANCE) + .addScalar("indPago", BooleanType.INSTANCE) + .addScalar("pagamento", StringType.INSTANCE) + .addScalar("usuarioPagamento", StringType.INSTANCE) + .addScalar("usuarioLancamento", StringType.INSTANCE) + .setResultTransformer(new AliasToBeanResultTransformer(HistoricoComissao.class)); + + query.setString("periodoInicio", competenciaInicio); + query.setString("periodoFim", competenciaFim); + query.setInteger("puntoventaId", puntoVentaId); + query.setInteger("empresaId", empresaId); + + return query.list(); + } } diff --git a/src/com/rjconsultores/ventaboletos/entidad/Comissao.java b/src/com/rjconsultores/ventaboletos/entidad/Comissao.java index cbf324b3a..4be4eba45 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/Comissao.java +++ b/src/com/rjconsultores/ventaboletos/entidad/Comissao.java @@ -41,6 +41,8 @@ public class Comissao implements Serializable { private BigDecimal receitaSeguroopcional; @Column(name = "RECEITA_OUTROS") private BigDecimal receitaOutros; + @Column(name = "DESCONTOS_FIXOS") + private BigDecimal descontosFixos; @Column(name = "DESCONTOS_EVENTUAIS") private BigDecimal descontosEventuais; @Column(name = "ROYATIES") @@ -121,6 +123,14 @@ public class Comissao implements Serializable { this.receitaSeguroopcional = receitaSeguroopcional; } + public BigDecimal getDescontosFixos() { + return descontosFixos; + } + + public void setDescontosFixos(BigDecimal descontosFixos) { + this.descontosFixos = descontosFixos; + } + public BigDecimal getDescontosEventuais() { return descontosEventuais; } diff --git a/src/com/rjconsultores/ventaboletos/service/ComissaoService.java b/src/com/rjconsultores/ventaboletos/service/ComissaoService.java index 7bfff7af1..ae66dd04a 100644 --- a/src/com/rjconsultores/ventaboletos/service/ComissaoService.java +++ b/src/com/rjconsultores/ventaboletos/service/ComissaoService.java @@ -1,7 +1,13 @@ package com.rjconsultores.ventaboletos.service; +import java.util.Date; +import java.util.List; + import com.rjconsultores.ventaboletos.entidad.Comissao; +import com.rjconsultores.ventaboletos.vo.comissao.HistoricoComissao; public interface ComissaoService extends GenericService { + public List buscaHistoricoComissao(Integer puntoVentaId, Integer empresaId, Date periodoInicio, Date periodoFim); + } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/CalculoComissaoServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/CalculoComissaoServiceImpl.java index 0228d6fad..b8390d0b5 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/CalculoComissaoServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/CalculoComissaoServiceImpl.java @@ -88,27 +88,31 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService { RegistroCalculo rc = realizarCalculoComissao(puntoVentaId, empresaId, periodo); Comissao comissao = new Comissao(); - 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.setReceitaOutros(rc.getComissaoOutros()); - 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.setIndPago(false); + comissao.setUsuarioPagamentoId(null); + + for (ComissaoDesconto cd : rc.getLsDescontos()) { + if (cd.getTipo().equals(TipoDesconto.EVENTUAL)) { + comissao.setDescontosEventuais(cd.getValorDesconto()); + + } else if (cd.getTipo().equals(TipoDesconto.FIXO)) { + comissao.setDescontosFixos(cd.getValorDesconto()); + } + } comissao = comissaoService.suscribir(comissao); } else { diff --git a/src/com/rjconsultores/ventaboletos/service/impl/ComissaoServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/ComissaoServiceImpl.java index 7a69ffa14..9f3bbf027 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/ComissaoServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/ComissaoServiceImpl.java @@ -1,6 +1,7 @@ package com.rjconsultores.ventaboletos.service.impl; import java.util.Calendar; +import java.util.Date; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; @@ -11,6 +12,7 @@ import com.rjconsultores.ventaboletos.dao.ComissaoDAO; import com.rjconsultores.ventaboletos.entidad.Comissao; import com.rjconsultores.ventaboletos.service.ComissaoService; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.vo.comissao.HistoricoComissao; @Service("comissaoService") public class ComissaoServiceImpl implements ComissaoService { @@ -56,7 +58,11 @@ public class ComissaoServiceImpl implements ComissaoService { entidad.setActivo(Boolean.FALSE); comissaoDAO.actualizacion(entidad); + } + @Override + public List buscaHistoricoComissao(Integer puntoVentaId, Integer empresaId, Date periodoInicio, Date periodoFim) { + return comissaoDAO.buscaHistoricoComissao(puntoVentaId, empresaId, periodoInicio, periodoFim); } } diff --git a/src/com/rjconsultores/ventaboletos/vo/comissao/HistoricoComissao.java b/src/com/rjconsultores/ventaboletos/vo/comissao/HistoricoComissao.java new file mode 100644 index 000000000..5599b3b9c --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/vo/comissao/HistoricoComissao.java @@ -0,0 +1,37 @@ +package com.rjconsultores.ventaboletos.vo.comissao; + +import com.rjconsultores.ventaboletos.entidad.Comissao; + +public class HistoricoComissao extends Comissao { + + private static final long serialVersionUID = 1L; + + private String pagamento; + private String usuarioPagamento; + private String usuarioLancamento; + + public String getPagamento() { + return pagamento; + } + + public void setPagamento(String pagamento) { + this.pagamento = pagamento; + } + + public String getUsuarioPagamento() { + return usuarioPagamento; + } + + public void setUsuarioPagamento(String usuarioPagamento) { + this.usuarioPagamento = usuarioPagamento; + } + + public String getUsuarioLancamento() { + return usuarioLancamento; + } + + public void setUsuarioLancamento(String usuarioLancamento) { + this.usuarioLancamento = usuarioLancamento; + } + +}