diff --git a/src/com/rjconsultores/ventaboletos/dao/CtrlSerieEmbarcadaDAO.java b/src/com/rjconsultores/ventaboletos/dao/CtrlSerieEmbarcadaDAO.java index 2319a6ec8..0cf42686d 100644 --- a/src/com/rjconsultores/ventaboletos/dao/CtrlSerieEmbarcadaDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/CtrlSerieEmbarcadaDAO.java @@ -1,9 +1,12 @@ package com.rjconsultores.ventaboletos.dao; +import java.util.List; + import com.rjconsultores.ventaboletos.entidad.CtrlSerieEmbarcada; import com.rjconsultores.ventaboletos.entidad.DispositivoEmbarcada; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Estado; +import com.rjconsultores.ventaboletos.vo.embarcada.SerieEmbarcada; public interface CtrlSerieEmbarcadaDAO extends GenericDAO { @@ -11,5 +14,6 @@ public interface CtrlSerieEmbarcadaDAO extends GenericDAO buscarSeriesReaproveitar(final Integer empresaId, final Integer estadoId); } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/CtrlSerieEmbarcadaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/CtrlSerieEmbarcadaHibernateDAO.java index ba7a6cfad..83c3a26a7 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/CtrlSerieEmbarcadaHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/CtrlSerieEmbarcadaHibernateDAO.java @@ -1,8 +1,13 @@ package com.rjconsultores.ventaboletos.dao.hibernate; +import java.util.List; + import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.SessionFactory; +import org.hibernate.transform.AliasToBeanResultTransformer; +import org.hibernate.type.LongType; +import org.hibernate.type.StringType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -15,6 +20,7 @@ import com.rjconsultores.ventaboletos.entidad.CtrlSerieEmbarcada; import com.rjconsultores.ventaboletos.entidad.DispositivoEmbarcada; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Estado; +import com.rjconsultores.ventaboletos.vo.embarcada.SerieEmbarcada; @Repository("ctrlSerieEmbarcadaDAO") public class CtrlSerieEmbarcadaHibernateDAO extends GenericHibernateDAO implements CtrlSerieEmbarcadaDAO { @@ -48,11 +54,11 @@ public class CtrlSerieEmbarcadaHibernateDAO extends GenericHibernateDAO 0; } + + @SuppressWarnings("unchecked") + public List buscarSeriesReaproveitar(final Integer empresaId, final Integer estadoId) { + StringBuilder sb = new StringBuilder(); + sb.append("select se.ctrlserieembarcada_id as ctrlSerieEmbarcadaId, se.serie as serie, se.numerocorrente + 1 as numero "); + sb.append("from ctrl_serie_embarcada se "); + sb.append("left join ctrl_serie_embarcada seq on seq.ctrlserieembarcadaseq_id = se.ctrlserieembarcada_id "); + sb.append("where se.activo = 1 and se.ind_baixado = 1 and seq.ctrlserieembarcada_id is null and se.empresa_id = :empresaId and se.estado_id = :estadoId "); + sb.append("order by se.serie "); + + Query query = getSession().createSQLQuery(sb.toString()) + .addScalar("ctrlSerieEmbarcadaId", LongType.INSTANCE) + .addScalar("serie", StringType.INSTANCE) + .addScalar("numero", StringType.INSTANCE) + .setResultTransformer(new AliasToBeanResultTransformer(SerieEmbarcada.class)); + + query.setInteger("empresaId", empresaId); + query.setInteger("estadoId", estadoId); + + return query.list(); + } } diff --git a/src/com/rjconsultores/ventaboletos/entidad/CtrlSerieEmbarcada.java b/src/com/rjconsultores/ventaboletos/entidad/CtrlSerieEmbarcada.java index 900b9526f..79995b7ba 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/CtrlSerieEmbarcada.java +++ b/src/com/rjconsultores/ventaboletos/entidad/CtrlSerieEmbarcada.java @@ -10,6 +10,7 @@ import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; +import javax.persistence.OneToOne; import javax.persistence.SequenceGenerator; import javax.persistence.Table; import javax.persistence.Temporal; @@ -27,8 +28,9 @@ public class CtrlSerieEmbarcada { @ManyToOne @JoinColumn(name = "DISPOSITIVOEMBARCADA_ID", referencedColumnName = "DISPOSITIVOEMBARCADA_ID") private DispositivoEmbarcada dispositivoEmbarcada; - @Column(name = "EMPRESA_ID") - private Long empresaId; + @OneToOne + @JoinColumn(name = "EMPRESA_ID") + private Empresa empresa; @ManyToOne @JoinColumn(name = "ESTADO_ID", referencedColumnName = "ESTADO_ID") private Estado estado; @@ -40,6 +42,8 @@ public class CtrlSerieEmbarcada { private String numeroCorrente; @Column(name = "IND_BAIXADO") private Boolean indBaixado; + @Column(name = "CTRLSERIEEMBARCADASEQ_ID") + private Long ctrlSerieEmbarcadaSeqId; @Column(name = "ACTIVO") private Boolean activo; @Basic(optional = false) @@ -49,69 +53,102 @@ public class CtrlSerieEmbarcada { @Column(name = "USUARIO_ID") private Integer usuarioId; + public CtrlSerieEmbarcada() { + + } + public Long getCtrlSerieEmbarcadaId() { return ctrlSerieEmbarcadaId; } + public void setCtrlSerieEmbarcadaId(Long ctrlSerieEmbarcadaId) { this.ctrlSerieEmbarcadaId = ctrlSerieEmbarcadaId; } - public DispositivoEmbarcada getDispositivoEmbarcadaId() { + + public DispositivoEmbarcada getDispositivoEmbarcada() { return dispositivoEmbarcada; } - public void setDispositivoEmbarcadaId(DispositivoEmbarcada dispositivoEmbarcadaId) { - this.dispositivoEmbarcada = dispositivoEmbarcadaId; + + public void setDispositivoEmbarcada(DispositivoEmbarcada dispositivoEmbarcada) { + this.dispositivoEmbarcada = dispositivoEmbarcada; } - public Long getEmpresaId() { - return empresaId; + + public Empresa getEmpresa() { + return empresa; } - public void setEmpresaId(Long empresaId) { - this.empresaId = empresaId; + + public void setEmpresa(Empresa empresa) { + this.empresa = empresa; } + public Estado getEstado() { return estado; } - public void setEstado(Estado estadoId) { - this.estado = estadoId; + + public void setEstado(Estado estado) { + this.estado = estado; } + public String getSerie() { return serie; } + public void setSerie(String serie) { this.serie = serie; } + public String getNumeroInicial() { return numeroInicial; } + public void setNumeroInicial(String numeroInicial) { this.numeroInicial = numeroInicial; } + public String getNumeroCorrente() { return numeroCorrente; } + public void setNumeroCorrente(String numeroCorrente) { this.numeroCorrente = numeroCorrente; } + public Boolean getIndBaixado() { return indBaixado; } + public void setIndBaixado(Boolean indBaixado) { this.indBaixado = indBaixado; } + + public Long getCtrlSerieEmbarcadaSeqId() { + return ctrlSerieEmbarcadaSeqId; + } + + public void setCtrlSerieEmbarcadaSeqId(Long ctrlSerieEmbarcadaSeqId) { + this.ctrlSerieEmbarcadaSeqId = ctrlSerieEmbarcadaSeqId; + } + public Boolean getActivo() { return activo; } + public void setActivo(Boolean activo) { this.activo = activo; } + public Date getFecmodif() { return fecmodif; } + public void setFecmodif(Date fecmodif) { this.fecmodif = fecmodif; } + public Integer getUsuarioId() { return usuarioId; } + public void setUsuarioId(Integer usuarioId) { this.usuarioId = usuarioId; } diff --git a/src/com/rjconsultores/ventaboletos/entidad/Usuario.java b/src/com/rjconsultores/ventaboletos/entidad/Usuario.java index 63a32b6a4..fce1eea6c 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/Usuario.java +++ b/src/com/rjconsultores/ventaboletos/entidad/Usuario.java @@ -48,7 +48,7 @@ import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext; @Entity @SequenceGenerator(name = "USUARIO_SEQ", sequenceName = "USUARIO_SEQ", allocationSize = 1) @Table(name = "USUARIO") -public class Usuario implements Serializable, Authentication, UserDetails { +public class Usuario implements Serializable, UserDetails/*, Authentication*/ { public final static int CANT_DIAS_CONTRASENA = 999; diff --git a/src/com/rjconsultores/ventaboletos/service/ControleSerieEmbarcadaService.java b/src/com/rjconsultores/ventaboletos/service/ControleSerieEmbarcadaService.java index d79b02628..149fd0e2e 100644 --- a/src/com/rjconsultores/ventaboletos/service/ControleSerieEmbarcadaService.java +++ b/src/com/rjconsultores/ventaboletos/service/ControleSerieEmbarcadaService.java @@ -4,7 +4,11 @@ */ package com.rjconsultores.ventaboletos.service; +import com.rjconsultores.ventaboletos.entidad.CtrlSerieEmbarcada; +import com.rjconsultores.ventaboletos.vo.embarcada.SerieEmbarcada; + public interface ControleSerieEmbarcadaService { + public SerieEmbarcada buscarSerieEmbarcada(CtrlSerieEmbarcada controleSerieEmbarcada); } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/ControleSerieEmbarcadaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/ControleSerieEmbarcadaServiceImpl.java index 7c849ff18..0cf23adba 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/ControleSerieEmbarcadaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/ControleSerieEmbarcadaServiceImpl.java @@ -1,15 +1,15 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ package com.rjconsultores.ventaboletos.service.impl; +import java.util.List; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.rjconsultores.ventaboletos.dao.CtrlSerieBPeDAO; import com.rjconsultores.ventaboletos.dao.CtrlSerieEmbarcadaDAO; +import com.rjconsultores.ventaboletos.entidad.CtrlSerieEmbarcada; import com.rjconsultores.ventaboletos.service.ControleSerieEmbarcadaService; +import com.rjconsultores.ventaboletos.vo.embarcada.SerieEmbarcada; @Service("controleSerieEmbarcadaService") public class ControleSerieEmbarcadaServiceImpl implements ControleSerieEmbarcadaService { @@ -18,6 +18,21 @@ public class ControleSerieEmbarcadaServiceImpl implements ControleSerieEmbarcada @Autowired private CtrlSerieBPeDAO ctrlSerieBPeDAO; - + @Override + public SerieEmbarcada buscarSerieEmbarcada(CtrlSerieEmbarcada controleSerieEmbarcada) { + SerieEmbarcada retorno = null; + + List listaSeries = ctrlSerieEmbarcadaDAO.buscarSeriesReaproveitar(controleSerieEmbarcada.getEmpresa().getEmpresaId(), + controleSerieEmbarcada.getEstado().getEstadoId()); + + for (SerieEmbarcada disponivel : listaSeries) { + if (retorno == null) { + retorno = disponivel; + break; + } + } + + return retorno; + } } diff --git a/src/com/rjconsultores/ventaboletos/vo/embarcada/SerieEmbarcada.java b/src/com/rjconsultores/ventaboletos/vo/embarcada/SerieEmbarcada.java new file mode 100644 index 000000000..1d6522faf --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/vo/embarcada/SerieEmbarcada.java @@ -0,0 +1,40 @@ +package com.rjconsultores.ventaboletos.vo.embarcada; + +public class SerieEmbarcada { + private Long ctrlSerieEmbarcadaId; + private String serie; + private String numero; + + public SerieEmbarcada() { + + } + + public Long getCtrlSerieEmbarcadaId() { + return ctrlSerieEmbarcadaId; + } + + public void setCtrlSerieEmbarcadaId(Long ctrlSerieEmbarcadaId) { + this.ctrlSerieEmbarcadaId = ctrlSerieEmbarcadaId; + } + + public String getSerie() { + return serie; + } + + public void setSerie(String serie) { + this.serie = serie; + } + + public String getNumero() { + return numero; + } + + public void setNumero(String numero) { + this.numero = numero; + } + + @Override + public String toString() { + return "SerieEmbarcada [ctrlSerieEmbarcadaId=" + ctrlSerieEmbarcadaId + ", serie=" + serie + ", numero=" + numero + "]"; + } +}