julio 2015-10-30 12:39:38 +00:00
parent 68d223d59f
commit 6487de1300
7 changed files with 135 additions and 8 deletions

View File

@ -5,6 +5,7 @@ import java.util.List;
import com.rjconsultores.ventaboletos.entidad.Comissao; import com.rjconsultores.ventaboletos.entidad.Comissao;
import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao; import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao;
import com.rjconsultores.ventaboletos.vo.comissao.HistoricoComissao;
public interface ComissaoDAO extends GenericDAO<Comissao, Integer> { public interface ComissaoDAO extends GenericDAO<Comissao, Integer> {
@ -12,4 +13,5 @@ public interface ComissaoDAO extends GenericDAO<Comissao, Integer> {
public Comissao buscaComissaoVigencia(Integer puntoVentaId, Integer empresaId, String competencia); public Comissao buscaComissaoVigencia(Integer puntoVentaId, Integer empresaId, String competencia);
public List<HistoricoComissao> buscaHistoricoComissao(Integer puntoVentaId, Integer empresaId, Date periodoInicio, Date periodoFim);
} }

View File

@ -8,6 +8,7 @@ import org.hibernate.SessionFactory;
import org.hibernate.transform.AliasToBeanResultTransformer; import org.hibernate.transform.AliasToBeanResultTransformer;
import org.hibernate.type.BigDecimalType; import org.hibernate.type.BigDecimalType;
import org.hibernate.type.BooleanType; import org.hibernate.type.BooleanType;
import org.hibernate.type.DateType;
import org.hibernate.type.IntegerType; import org.hibernate.type.IntegerType;
import org.hibernate.type.StringType; import org.hibernate.type.StringType;
import org.springframework.beans.factory.annotation.Autowired; 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.dao.ComissaoDAO;
import com.rjconsultores.ventaboletos.entidad.Comissao; 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.BoletoComissao;
import com.rjconsultores.ventaboletos.vo.comissao.HistoricoComissao;
@Repository("comissaoHibernateDAO") @Repository("comissaoHibernateDAO")
public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer> implements ComissaoDAO { public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer> implements ComissaoDAO {
@ -84,7 +87,6 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
return query.list(); return query.list();
} }
@Override @Override
public Comissao buscaComissaoVigencia(Integer puntoVentaId, Integer empresaId, String competencia) { public Comissao buscaComissaoVigencia(Integer puntoVentaId, Integer empresaId, String competencia) {
@ -102,4 +104,64 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
return (Comissao) query.uniqueResult(); return (Comissao) query.uniqueResult();
} }
@Override
@SuppressWarnings("unchecked")
public List<HistoricoComissao> 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();
}
} }

View File

@ -41,6 +41,8 @@ public class Comissao implements Serializable {
private BigDecimal receitaSeguroopcional; private BigDecimal receitaSeguroopcional;
@Column(name = "RECEITA_OUTROS") @Column(name = "RECEITA_OUTROS")
private BigDecimal receitaOutros; private BigDecimal receitaOutros;
@Column(name = "DESCONTOS_FIXOS")
private BigDecimal descontosFixos;
@Column(name = "DESCONTOS_EVENTUAIS") @Column(name = "DESCONTOS_EVENTUAIS")
private BigDecimal descontosEventuais; private BigDecimal descontosEventuais;
@Column(name = "ROYATIES") @Column(name = "ROYATIES")
@ -121,6 +123,14 @@ public class Comissao implements Serializable {
this.receitaSeguroopcional = receitaSeguroopcional; this.receitaSeguroopcional = receitaSeguroopcional;
} }
public BigDecimal getDescontosFixos() {
return descontosFixos;
}
public void setDescontosFixos(BigDecimal descontosFixos) {
this.descontosFixos = descontosFixos;
}
public BigDecimal getDescontosEventuais() { public BigDecimal getDescontosEventuais() {
return descontosEventuais; return descontosEventuais;
} }

View File

@ -1,7 +1,13 @@
package com.rjconsultores.ventaboletos.service; package com.rjconsultores.ventaboletos.service;
import java.util.Date;
import java.util.List;
import com.rjconsultores.ventaboletos.entidad.Comissao; import com.rjconsultores.ventaboletos.entidad.Comissao;
import com.rjconsultores.ventaboletos.vo.comissao.HistoricoComissao;
public interface ComissaoService extends GenericService<Comissao, Integer> { public interface ComissaoService extends GenericService<Comissao, Integer> {
public List<HistoricoComissao> buscaHistoricoComissao(Integer puntoVentaId, Integer empresaId, Date periodoInicio, Date periodoFim);
} }

View File

@ -88,27 +88,31 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
RegistroCalculo rc = realizarCalculoComissao(puntoVentaId, empresaId, periodo); RegistroCalculo rc = realizarCalculoComissao(puntoVentaId, empresaId, periodo);
Comissao comissao = new Comissao(); Comissao comissao = new Comissao();
comissao.setCompetencia(competencia); comissao.setCompetencia(competencia);
comissao.setDataPagamento(Calendar.getInstance().getTime()); comissao.setDataPagamento(Calendar.getInstance().getTime());
comissao.setEmpresaId(empresaId); comissao.setEmpresaId(empresaId);
comissao.setPuntoVentaId(puntoVentaId); comissao.setPuntoVentaId(puntoVentaId);
comissao.setBonificacaoMetas(rc.getComissaoBonificaoMetas()); comissao.setBonificacaoMetas(rc.getComissaoBonificaoMetas());
comissao.setComissaoBpr(rc.getComissaoBPR()); comissao.setComissaoBpr(rc.getComissaoBPR());
comissao.setEntregasPassagem(rc.getComissaoEntregaPassagem()); comissao.setEntregasPassagem(rc.getComissaoEntregaPassagem());
comissao.setReceitaExcessobagagem(rc.getComissaoExcessoBagagem()); comissao.setReceitaExcessobagagem(rc.getComissaoExcessoBagagem());
comissao.setReceitaSeguroopcional(rc.getComissaoSegOpcional()); comissao.setReceitaSeguroopcional(rc.getComissaoSegOpcional());
comissao.setReceitaOutros(rc.getComissaoOutros()); comissao.setReceitaOutros(rc.getComissaoOutros());
comissao.setRoyaties(rc.getRoyaties()); comissao.setRoyaties(rc.getRoyaties());
comissao.setIssRetido(rc.getRetidoISS()); comissao.setIssRetido(rc.getRetidoISS());
comissao.setBonificacaoMetas(rc.getComissaoBonificaoMetas()); comissao.setBonificacaoMetas(rc.getComissaoBonificaoMetas());
comissao.setDescontosEventuais(rc.getDescontos());
comissao.setIndPago(true); comissao.setIndPago(false);
comissao.setUsuarioPagamentoId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); 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); comissao = comissaoService.suscribir(comissao);
} else { } else {

View File

@ -1,6 +1,7 @@
package com.rjconsultores.ventaboletos.service.impl; package com.rjconsultores.ventaboletos.service.impl;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date;
import java.util.List; import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; 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.entidad.Comissao;
import com.rjconsultores.ventaboletos.service.ComissaoService; import com.rjconsultores.ventaboletos.service.ComissaoService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
import com.rjconsultores.ventaboletos.vo.comissao.HistoricoComissao;
@Service("comissaoService") @Service("comissaoService")
public class ComissaoServiceImpl implements ComissaoService { public class ComissaoServiceImpl implements ComissaoService {
@ -56,7 +58,11 @@ public class ComissaoServiceImpl implements ComissaoService {
entidad.setActivo(Boolean.FALSE); entidad.setActivo(Boolean.FALSE);
comissaoDAO.actualizacion(entidad); comissaoDAO.actualizacion(entidad);
}
@Override
public List<HistoricoComissao> buscaHistoricoComissao(Integer puntoVentaId, Integer empresaId, Date periodoInicio, Date periodoFim) {
return comissaoDAO.buscaHistoricoComissao(puntoVentaId, empresaId, periodoInicio, periodoFim);
} }
} }

View File

@ -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;
}
}