From fd57cfbb2953899dbb5e7ddb4c1aeea2bc461413 Mon Sep 17 00:00:00 2001 From: Fabio Date: Thu, 11 Jul 2024 14:47:52 -0300 Subject: [PATCH] Cadastro de convenio transportadora bug#AL-4246 --- pom.xml | 2 +- .../dao/ConvenioTransportadoraDAO.java | 11 +++ .../ConvenioTransportadoraHibernateDAO.java | 52 +++++++++++++ .../ventaboletos/entidad/CaixaContrato.java | 62 +++++++++++++++ .../entidad/ConvenioTransportadora.java | 68 +++++++++++++++++ .../entidad/TarifaConvenioTransport.java | 56 ++++++++++++++ .../entidad/TipoLancamentoCaixa.java | 48 ++++++++++++ .../ConvenioTransportadoraService.java | 14 ++++ .../ConvenioTransportadoraServiceImpl.java | 76 +++++++++++++++++++ 9 files changed, 388 insertions(+), 1 deletion(-) create mode 100644 src/com/rjconsultores/ventaboletos/dao/ConvenioTransportadoraDAO.java create mode 100644 src/com/rjconsultores/ventaboletos/dao/hibernate/ConvenioTransportadoraHibernateDAO.java create mode 100644 src/com/rjconsultores/ventaboletos/entidad/CaixaContrato.java create mode 100644 src/com/rjconsultores/ventaboletos/entidad/ConvenioTransportadora.java create mode 100644 src/com/rjconsultores/ventaboletos/entidad/TarifaConvenioTransport.java create mode 100644 src/com/rjconsultores/ventaboletos/entidad/TipoLancamentoCaixa.java create mode 100644 src/com/rjconsultores/ventaboletos/service/ConvenioTransportadoraService.java create mode 100644 src/com/rjconsultores/ventaboletos/service/impl/ConvenioTransportadoraServiceImpl.java diff --git a/pom.xml b/pom.xml index e5f3ef520..ebe7f57a5 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 br.com.rjconsultores ModelWeb - 1.77.2 + 1.77.3 diff --git a/src/com/rjconsultores/ventaboletos/dao/ConvenioTransportadoraDAO.java b/src/com/rjconsultores/ventaboletos/dao/ConvenioTransportadoraDAO.java new file mode 100644 index 000000000..7ee5b7800 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/dao/ConvenioTransportadoraDAO.java @@ -0,0 +1,11 @@ +package com.rjconsultores.ventaboletos.dao; + +import com.rjconsultores.ventaboletos.entidad.ConvenioTransportadora; + +public interface ConvenioTransportadoraDAO extends GenericDAO { + + ConvenioTransportadora buscarPelaTransportadoraId(Long transportadoraId); + + public boolean existe(ConvenioTransportadora convenio); + +} diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/ConvenioTransportadoraHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/ConvenioTransportadoraHibernateDAO.java new file mode 100644 index 000000000..198ebb7bc --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/ConvenioTransportadoraHibernateDAO.java @@ -0,0 +1,52 @@ +package com.rjconsultores.ventaboletos.dao.hibernate; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.SessionFactory; +import org.hibernate.criterion.Restrictions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Repository; + +import com.rjconsultores.ventaboletos.dao.ConvenioTransportadoraDAO; +import com.rjconsultores.ventaboletos.entidad.ConvenioTransportadora; + +@Repository("convenioTransportadoraDAO") +public class ConvenioTransportadoraHibernateDAO extends GenericHibernateDAO implements ConvenioTransportadoraDAO { + + @Autowired + public ConvenioTransportadoraHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { + setSessionFactory(factory); + } + + @Override + public List obtenerTodos() { + Criteria c = getSession().createCriteria(getPersistentClass()); + c.add(Restrictions.eq("activo", Boolean.TRUE)); + + return castList(ConvenioTransportadora.class, c.list()) ; + } + + @Override + public ConvenioTransportadora buscarPelaTransportadoraId(Long transportadoraId) { + Criteria c = getSession().createCriteria(getPersistentClass()); + c.add(Restrictions.eq("transportadoraId", transportadoraId)); + c.add(Restrictions.eq("activo", Boolean.TRUE)); + + return (ConvenioTransportadora)c.uniqueResult(); + } + + @Override + public boolean existe(ConvenioTransportadora convenio) { + Criteria c = getSession().createCriteria(getPersistentClass()); + c.add(Restrictions.eq("transportadoraId", convenio.getTransportadoraId())); + c.add(Restrictions.eq("numConvenio", convenio.getNumConvenio())); + c.add(Restrictions.eq("dataInicial", convenio.getDataInicial())); + c.add(Restrictions.eq("dataFinal", convenio.getDataFinal())); + c.add(Restrictions.eq("activo", Boolean.TRUE)); + + return c.uniqueResult()!=null; + } + +} diff --git a/src/com/rjconsultores/ventaboletos/entidad/CaixaContrato.java b/src/com/rjconsultores/ventaboletos/entidad/CaixaContrato.java new file mode 100644 index 000000000..d4ddfb8b6 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/entidad/CaixaContrato.java @@ -0,0 +1,62 @@ +package com.rjconsultores.ventaboletos.entidad; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.SequenceGenerator; +import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +@Entity +@Table(name = "CAIXA_CONTRATO") +@SequenceGenerator(name = "CAIXA_CONTRATO_SEQ", sequenceName = "CAIXA_CONTRATO_SEQ", allocationSize = 1) +public class CaixaContrato { + + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CAIXA_CONTRATO_SEQ") + @Column(name = "CAIXACONTRATO_ID") + private Long id; + + @Column(name = "CONTRATO_ID") + private Long contratoId; + + @Column(name = "DATA_LANCAMENTO") + @Temporal(TemporalType.TIMESTAMP) + private Date dataLancamento; + + @Column(name = "TIPO_LANCAMENTO_ID") + private Long tipoLancamentoId; + + @Column(name = "VALOR") + private BigDecimal valor; + + @Column(name = "CAJA_ID") + private Long cajaId; + + @Column(name = "EVENTOEXTRA_ID") + private Long eventoExtraId; + + @Column(name = "USUARIO_ID") + private Integer usuarioId; + + @Column(name = "ACTIVO") + private boolean activo; + + @Column(name = "FECMODIF") + @Temporal(TemporalType.TIMESTAMP) + private Date fecModif; + +} \ No newline at end of file diff --git a/src/com/rjconsultores/ventaboletos/entidad/ConvenioTransportadora.java b/src/com/rjconsultores/ventaboletos/entidad/ConvenioTransportadora.java new file mode 100644 index 000000000..289c248ac --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/entidad/ConvenioTransportadora.java @@ -0,0 +1,68 @@ +package com.rjconsultores.ventaboletos.entidad; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.SequenceGenerator; +import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +@Entity +@SequenceGenerator(name = "CONVENIO_TRANSPORTADORA_SEQ", sequenceName = "CONVENIO_TRANSPORTADORA_SEQ", allocationSize = 1) +@Table(name = "CONVENIO_TRANSPORTADORA") +public class ConvenioTransportadora { + + public ConvenioTransportadora(Long transportadoraId) { + this.transportadoraId = transportadoraId; + } + + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CONVENIO_TRANSPORTADORA_SEQ") + @Column(name = "CONVENIOTRANSPORTADORA_ID") + private Long convenioTransportadoraId; + + @Column(name = "TRANSPORTADORA_ID") + private Long transportadoraId; + + @Column(name = "NOME_CONVENIO") + private String nomeConvenio; + + @Column(name = "NUMCONVENIO") + private String numConvenio; + + @Column(name = "VALOR") + private BigDecimal valor; + + @Column(name = "TIPO_CONVENIO") + private Integer tipoConvenio; + + @Column(name = "DATA_INICIAL") + private Date dataInicial; + + @Column(name = "DATA_FINAL") + private Date dataFinal; + + @Column(name = "USUARIO_ID") + private Integer usuarioId; + + @Column(name = "ACTIVO") + private boolean activo; + + @Column(name = "FECMODIF") + @Temporal(TemporalType.TIMESTAMP) + private Date fecModif; + +} \ No newline at end of file diff --git a/src/com/rjconsultores/ventaboletos/entidad/TarifaConvenioTransport.java b/src/com/rjconsultores/ventaboletos/entidad/TarifaConvenioTransport.java new file mode 100644 index 000000000..e33a2df24 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/entidad/TarifaConvenioTransport.java @@ -0,0 +1,56 @@ +package com.rjconsultores.ventaboletos.entidad; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.SequenceGenerator; +import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@Entity +@Table(name = "TARIFA_CONVENIO_TRANSP") +public class TarifaConvenioTransport implements Serializable { + + private static final long serialVersionUID = 4117896818436639147L; + + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "TARIFA_GRUPO_CONTRATO_SEQ") + @SequenceGenerator(name = "TARIFA_GRUPO_CONTRATO_SEQ", sequenceName = "TARIFA_GRUPO_CONTRATO_SEQ", allocationSize = 1) + @Column(name = "TARIFACONVENIO_ID") + private Long tarifaConvenioId; + + @OneToOne + @JoinColumn(name = "CONVENIOTRANSPORTADORA_ID", referencedColumnName = "CONVENIOTRANSPORTADORA_ID", insertable = false, updatable = false) + private ConvenioTransportadora convenioTransportadora; + + @OneToOne + @JoinColumn(name = "ORIGEN_ID", referencedColumnName = "PARADA_ID", insertable = false, updatable = false) + private Parada origem; + + @OneToOne + @JoinColumn(name = "DESTINO_ID", referencedColumnName = "PARADA_ID", insertable = false, updatable = false) + private Parada destino; + + @Column(name = "TARIFA") + private BigDecimal tarifa; + + @Column(name = "USUARIO_ID") + private Integer usuarioId; + + @Column(name = "ACTIVO") + private boolean activo; + + @Column(name = "FECMODIF") + @Temporal(TemporalType.DATE) + private Date fecModif; + +} \ No newline at end of file diff --git a/src/com/rjconsultores/ventaboletos/entidad/TipoLancamentoCaixa.java b/src/com/rjconsultores/ventaboletos/entidad/TipoLancamentoCaixa.java new file mode 100644 index 000000000..d8255b170 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/entidad/TipoLancamentoCaixa.java @@ -0,0 +1,48 @@ +package com.rjconsultores.ventaboletos.entidad; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.SequenceGenerator; +import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +@Entity +@Table(name = "TIPO_LANCAMENTO_CAIXA") +@SequenceGenerator(name = "TIPO_LANCAMENTO_CAIXA_SEQ", sequenceName = "TIPO_LANCAMENTO_CAIXA_SEQ", allocationSize = 1) +public class TipoLancamentoCaixa { + + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "TIPO_LANCAMENTO_CAIXA_SEQ") + @Column(name = "TIPO_LANCAMENTO_ID") + private Long tipoLancamentoId; + + @Column(name = "NOME_LANCAMENTO") + private String nomeLancamento; + + @Column(name = "IND_ACRESCIMO") + private boolean indAcrescimo; + + @Column(name = "USUARIO_ID") + private Integer usuarioId; + + @Column(name = "ACTIVO") + private boolean activo; + + @Column(name = "FECMODIF") + @Temporal(TemporalType.TIMESTAMP) + private Date fecModif; + +} \ No newline at end of file diff --git a/src/com/rjconsultores/ventaboletos/service/ConvenioTransportadoraService.java b/src/com/rjconsultores/ventaboletos/service/ConvenioTransportadoraService.java new file mode 100644 index 000000000..f4b561e75 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/service/ConvenioTransportadoraService.java @@ -0,0 +1,14 @@ +package com.rjconsultores.ventaboletos.service; + +import com.rjconsultores.ventaboletos.entidad.ConvenioTransportadora; +import com.rjconsultores.ventaboletos.exception.BusinessException; + +public interface ConvenioTransportadoraService extends GenericService { + + ConvenioTransportadora buscarPelaTransportadoraId(Long transportadoraId); + + public ConvenioTransportadora suscribirActualizar(ConvenioTransportadora convenio) throws BusinessException; + + public boolean existe(ConvenioTransportadora convenio); + +} diff --git a/src/com/rjconsultores/ventaboletos/service/impl/ConvenioTransportadoraServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/ConvenioTransportadoraServiceImpl.java new file mode 100644 index 000000000..9a95f149a --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/service/impl/ConvenioTransportadoraServiceImpl.java @@ -0,0 +1,76 @@ +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.ConvenioTransportadoraDAO; +import com.rjconsultores.ventaboletos.entidad.ConvenioTransportadora; +import com.rjconsultores.ventaboletos.exception.BusinessException; +import com.rjconsultores.ventaboletos.service.ConvenioTransportadoraService; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; + +@Service("convenioTransportadoraService") +public class ConvenioTransportadoraServiceImpl implements ConvenioTransportadoraService { + + @Autowired + private ConvenioTransportadoraDAO convenioTransportadoraDAO; + + public List obtenerTodos() { + return convenioTransportadoraDAO.obtenerTodos(); + } + + public ConvenioTransportadora obtenerID(Long id) { + return convenioTransportadoraDAO.obtenerID(id); + } + + @Transactional + public ConvenioTransportadora suscribir(ConvenioTransportadora entidad) { + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecModif(Calendar.getInstance().getTime()); + entidad.setActivo(Boolean.TRUE); + + return convenioTransportadoraDAO.suscribir(entidad); + } + + @Transactional + public ConvenioTransportadora suscribirActualizar(ConvenioTransportadora entidad) throws BusinessException { + + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecModif(Calendar.getInstance().getTime()); + entidad.setActivo(Boolean.TRUE); + + if (entidad.getConvenioTransportadoraId() == null){ + return convenioTransportadoraDAO.suscribir(entidad); + }else{ + return convenioTransportadoraDAO.actualizacion(entidad); + } + } + + @Transactional + public ConvenioTransportadora actualizacion(ConvenioTransportadora entidad) { + return convenioTransportadoraDAO.actualizacion(entidad); + } + + @Transactional + public void borrar(ConvenioTransportadora entidad) { + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecModif(Calendar.getInstance().getTime()); + entidad.setActivo(Boolean.FALSE); + + convenioTransportadoraDAO.borrar(entidad); + } + + @Override + public ConvenioTransportadora buscarPelaTransportadoraId(Long transportadoraId) { + return convenioTransportadoraDAO.buscarPelaTransportadoraId(transportadoraId) ; + } + + @Override + public boolean existe(ConvenioTransportadora convenio) { + return convenioTransportadoraDAO.existe(convenio); + } +}