From cf539458e20b6bbd192b8a52dc9f2fc339726771 Mon Sep 17 00:00:00 2001 From: Fabio Date: Wed, 21 Aug 2024 14:57:02 -0300 Subject: [PATCH] Rotina de faturamento de voucher feat bug#AL-4356 --- pom.xml | 2 +- .../ventaboletos/dao/VoucherDAO.java | 2 +- .../dao/hibernate/VoucherHibernateDAO.java | 43 ++++++---- .../ventaboletos/entidad/Voucher.java | 6 +- .../ventaboletos/service/VoucherService.java | 8 +- .../service/impl/VoucherServiceImpl.java | 78 +++++++++++++++---- .../configuracioneccomerciales/VoucherVO.java | 12 +++ 7 files changed, 119 insertions(+), 32 deletions(-) diff --git a/pom.xml b/pom.xml index 30c80d26c..aee25422e 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 br.com.rjconsultores ModelWeb - 1.96.3 + 1.97.0 diff --git a/src/com/rjconsultores/ventaboletos/dao/VoucherDAO.java b/src/com/rjconsultores/ventaboletos/dao/VoucherDAO.java index 1912601c1..a2d922f63 100644 --- a/src/com/rjconsultores/ventaboletos/dao/VoucherDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/VoucherDAO.java @@ -9,6 +9,6 @@ public interface VoucherDAO extends GenericDAO { public List buscarConsulta(Long voucherId, String numContrato, String nit, String nomeTransportadora, Date dataInicial, Date dataFinal, Integer origemId, Integer destinoId); - public List buscarLegalizacao(Long numInicial, Long numFinal, String numContrato, Integer status, Integer origenId, Integer destinoId); + public List buscarListaVoucher(Long numInicial, Long numFinal, String numContrato, Long transportadora, Long grupoContratoId, Integer status, Integer origenId, Integer destinoId); } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/VoucherHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/VoucherHibernateDAO.java index a948e8214..1519f6d01 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/VoucherHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/VoucherHibernateDAO.java @@ -61,6 +61,7 @@ public class VoucherHibernateDAO extends GenericHibernateDAO impl null, null, null, + null, hql); hql.append("ORDER BY voucherId "); @@ -79,18 +80,21 @@ public class VoucherHibernateDAO extends GenericHibernateDAO impl null, null, null, + null, query); return query.list(); } @Override - public List buscarLegalizacao(Long numInicial, - Long numFinal, - String numContrato, - Integer status, - Integer origemId, - Integer destinoId) { + public List buscarListaVoucher(Long numInicial, + Long numFinal, + String numContrato, + Long transportadoraId, + Long grupoContratoId, + Integer status, + Integer origemId, + Integer destinoId) { StringBuilder hql = new StringBuilder(); @@ -104,11 +108,12 @@ public class VoucherHibernateDAO extends GenericHibernateDAO impl null, null, null, - null, + null, status, origemId, - destinoId, - null, + destinoId, + transportadoraId, + grupoContratoId, numInicial, numFinal, hql); @@ -122,11 +127,12 @@ public class VoucherHibernateDAO extends GenericHibernateDAO impl null, null, null, - null, + null, status, origemId, - destinoId, - null, + destinoId, + transportadoraId, + grupoContratoId, numInicial, numFinal, query); @@ -134,7 +140,6 @@ public class VoucherHibernateDAO extends GenericHibernateDAO impl return query.list(); } - private void setJoins(StringBuilder hql) { hql.append("LEFT JOIN com.rjconsultores.ventaboletos.entidad.Parada ori ON v.origenId = ori.paradaId "); hql.append("LEFT JOIN com.rjconsultores.ventaboletos.entidad.Parada des ON v.destinoId = des.paradaId "); @@ -145,11 +150,12 @@ public class VoucherHibernateDAO extends GenericHibernateDAO impl String nit, String nomeTransportadora, Date dataInicial, - Date dataFinal, + Date dataFinal, Integer status, Integer origemId, Integer destinoId, Long transportadoraId, + Long grupoContratoId, Long numInicial, Long numFinal, StringBuilder hql) { @@ -186,6 +192,10 @@ public class VoucherHibernateDAO extends GenericHibernateDAO impl hql.append(" AND v.transportadora.transportadoraId = :transportadoraId "); } + if(grupoContratoId != null ){ + hql.append(" AND v.contrato.grupoContratoId = :grupoContratoId "); + } + if(dataInicial != null ){ hql.append(" AND v.dataValidade >= :dataInicial "); } @@ -213,6 +223,7 @@ public class VoucherHibernateDAO extends GenericHibernateDAO impl Integer origemId, Integer destinoId, Long transportadoraId, + Long grupoContratoId, Long numInicial, Long numFinal, Query query) { @@ -245,6 +256,10 @@ public class VoucherHibernateDAO extends GenericHibernateDAO impl query.setLong("transportadoraId", transportadoraId); } + if(grupoContratoId != null ){ + query.setLong("grupoContratoId", grupoContratoId); + } + if(dataInicial != null ){ query.setDate("dataInicial", dataInicial); } diff --git a/src/com/rjconsultores/ventaboletos/entidad/Voucher.java b/src/com/rjconsultores/ventaboletos/entidad/Voucher.java index 805b1c325..e54b1d447 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/Voucher.java +++ b/src/com/rjconsultores/ventaboletos/entidad/Voucher.java @@ -94,7 +94,7 @@ public class Voucher implements Serializable { @Column(name = "GRUPOCONTRATO_ID") private Long grupoContratoId; - @OneToOne(fetch = FetchType.LAZY) + @OneToOne @JoinColumn(name = "TRANSPORTADORA_ID") private Transportadora transportadora; @@ -105,6 +105,10 @@ public class Voucher implements Serializable { @Column(name = "DATA_LEGALIZA") @Temporal(TemporalType.TIMESTAMP) private Date dataLegaliza; + + @Column(name = "DATA_CORTE") + @Temporal(TemporalType.TIMESTAMP) + private Date dataCorte; @Column(name = "ACTIVO") private boolean activo; diff --git a/src/com/rjconsultores/ventaboletos/service/VoucherService.java b/src/com/rjconsultores/ventaboletos/service/VoucherService.java index 9169a3897..fa3e92b20 100644 --- a/src/com/rjconsultores/ventaboletos/service/VoucherService.java +++ b/src/com/rjconsultores/ventaboletos/service/VoucherService.java @@ -11,8 +11,12 @@ import com.rjconsultores.ventaboletos.vo.configuracioneccomerciales.VoucherVO; public interface VoucherService extends GenericService { - List buscarConsulta(Long voucherId, String numContrato, String nit, String nomeTransportadora, Date dataInicial, Date dataFinal, Integer origemId, Integer destinoId); + public List buscarConsulta(Long voucherId, String numContrato, String nit, String nomeTransportadora, Date dataInicial, Date dataFinal, Integer origemId, Integer destinoId); - List legalizar(Long numInicial, Long numFinal, String numContrato, Transportadora transportadora, BigDecimal valor, Parada origem, Parada destino); + public List legalizar(Long numInicial, Long numFinal, String numContrato, Transportadora transportadora, BigDecimal valor, Parada origem, Parada destino); + + public List buscarListaVoucher(Long numInicial, Long numFinal, String numContrato, Long transportadora, Long grupoContratoId, Integer status, Integer origem, Integer destino); + + public List faturar(List lista, Long numFatura, Date datCorte); } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/VoucherServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/VoucherServiceImpl.java index d4a8bf8f2..c3dbc9022 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/VoucherServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/VoucherServiceImpl.java @@ -9,6 +9,7 @@ import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.zkoss.lang.Strings; import org.zkoss.util.resource.Labels; import com.rjconsultores.ventaboletos.dao.VoucherDAO; @@ -45,6 +46,8 @@ public class VoucherServiceImpl implements VoucherService { @Transactional public Voucher actualizacion(Voucher entidad) { + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecModif(Calendar.getInstance().getTime()); return voucherDAO.actualizacion(entidad); } @@ -67,13 +70,32 @@ public class VoucherServiceImpl implements VoucherService { Integer origemId, Integer destinoId) { return voucherDAO.buscarConsulta(voucherId, - numContrato, - nit, - nomeTransportadora, - dataInicial, - dataFinal, - origemId, - destinoId); + numContrato, + nit, + nomeTransportadora, + dataInicial, + dataFinal, + origemId, + destinoId); + } + + @Override + public List buscarListaVoucher(Long numInicial, + Long numFinal, + String numContrato, + Long transportadora, + Long grupoContratoId, + Integer status, + Integer origem, + Integer destino) { + return voucherDAO.buscarListaVoucher(numInicial, + numFinal, + numContrato, + transportadora, + grupoContratoId, + status, + origem, + destino); } @Override @@ -85,12 +107,14 @@ public class VoucherServiceImpl implements VoucherService { BigDecimal valor, Parada origem, Parada destino) { - List dados = voucherDAO.buscarLegalizacao(numInicial, - numFinal, - null, - null, - null, - null); + List dados = voucherDAO.buscarListaVoucher(numInicial, + numFinal, + null, + null, + null, + null, + null, + null); List retorno = new ArrayList(); for (Voucher vou : dados) { @@ -143,4 +167,32 @@ public class VoucherServiceImpl implements VoucherService { return retorno; } + + @Override + @Transactional + public List faturar(List lista, Long numFatura, Date datCorte) { + for (Voucher vou : lista) { + if( Strings.isBlank(vou.getNumFatura()) ) { + if(numFatura != null) { + vou.setNumFatura(numFatura.toString()); + }else { + continue; + } + } + + if( vou.getDataCorte() == null ) { + if(datCorte != null) { + vou.setDataCorte(datCorte); + }else { + continue; + } + } + + vou.setStatus(SituacaoVoucher.FATURADO.getValor()); + vou.setDataFatura(Calendar.getInstance().getTime()); + voucherDAO.actualizacion(vou); + } + + return lista; + } } diff --git a/src/com/rjconsultores/ventaboletos/vo/configuracioneccomerciales/VoucherVO.java b/src/com/rjconsultores/ventaboletos/vo/configuracioneccomerciales/VoucherVO.java index 946f5e704..c3793dae2 100644 --- a/src/com/rjconsultores/ventaboletos/vo/configuracioneccomerciales/VoucherVO.java +++ b/src/com/rjconsultores/ventaboletos/vo/configuracioneccomerciales/VoucherVO.java @@ -75,6 +75,15 @@ public class VoucherVO implements Serializable { @Renderizado( posicao = 8 ) private String mensagem; + @Temporal(TemporalType.TIMESTAMP) + private Date dataFatura; + + @Temporal(TemporalType.TIMESTAMP) + private Date dataLegaliza; + + @Temporal(TemporalType.TIMESTAMP) + private Date dataCorte; + public SituacaoVoucher getSituacaoVoucher() { return SituacaoVoucher.buscarPeloValor(status); } @@ -123,6 +132,9 @@ public class VoucherVO implements Serializable { this.transportadora = pai.getTransportadora(); this.valorLegalizado = pai.getValorLegalizado(); this.valorLicitado = pai.getValorLicitado(); + this.dataFatura = pai.getDataFatura(); + this.dataLegaliza = pai.getDataLegaliza(); + this.dataCorte = pai.getDataCorte(); } public static VoucherVO converteVoucher( Voucher pai ) {