From 8cb8a21f356c9f2f3e2127e326edbd9b7454e663 Mon Sep 17 00:00:00 2001 From: vinicius Date: Thu, 5 Dec 2013 13:53:52 +0000 Subject: [PATCH] git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@32437 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../hibernate/AbastoCentralHibernateDAO.java | 2 + .../dao/hibernate/PuntoVentaHibernateDAO.java | 28 ++- .../ventaboletos/entidad/AbastoBoleto.java | 3 +- .../ventaboletos/entidad/AbastoCentral.java | 2 +- .../ventaboletos/entidad/Articulo.java | 167 +++++++++--------- .../ventaboletos/entidad/Clasificacion.java | 6 +- .../service/AutorizaFolioService.java | 4 +- .../impl/AutorizaFolioServiceImpl.java | 62 ++++--- .../MovimentacionBilhetesServiceImpl.java | 34 +++- 9 files changed, 184 insertions(+), 124 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/AbastoCentralHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/AbastoCentralHibernateDAO.java index 027e2cd12..8585aa58b 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/AbastoCentralHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/AbastoCentralHibernateDAO.java @@ -5,6 +5,7 @@ import java.util.List; import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.SessionFactory; +import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -125,6 +126,7 @@ public class AbastoCentralHibernateDAO extends GenericHibernateDAO)c.list(); } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/PuntoVentaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/PuntoVentaHibernateDAO.java index dc1c880bd..89723bd30 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/PuntoVentaHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/PuntoVentaHibernateDAO.java @@ -4,7 +4,6 @@ */ package com.rjconsultores.ventaboletos.dao.hibernate; -import java.util.ArrayList; import java.util.List; import org.hibernate.Criteria; @@ -52,15 +51,34 @@ public class PuntoVentaHibernateDAO extends GenericHibernateDAO buscaLike(String strEstacion) { +// Criteria c = getSession().createCriteria(getPersistentClass()); +// c.add(Restrictions.eq("activo", Boolean.TRUE)); +// c.add(Restrictions.like("nombpuntoventa", strEstacion, MatchMode.START)); +// +// return c.list(); +// } + public List buscaLike(String strEstacion) { Criteria c = getSession().createCriteria(getPersistentClass()); - c.add(Restrictions.eq("activo", Boolean.TRUE)); - - c.add(Restrictions.like("nombpuntoventa", strEstacion, MatchMode.START)); - + + Criterion cr1 = Restrictions.like("nombpuntoventa", strEstacion, MatchMode.START); + + Criterion crActivo = Restrictions.eq("activo", Boolean.TRUE); + + PtovtaTipoEstoque supr = ptovtaTipoEstoqueDAO.buscarTipoSuprimento(); + PtovtaTipoEstoque cont = ptovtaTipoEstoqueDAO.buscarTipoContabilidade(); + + Criterion suprCont = Restrictions.in("ptovtaTipoEstoque", new PtovtaTipoEstoque[]{ supr, cont}); + + Criterion pt2 = Restrictions.or(crActivo, suprCont); + + c.add(Restrictions.and(cr1, pt2)); + return c.list(); } + public List busca(String nomPuntoVenta, String numPuntoVenta) { Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); diff --git a/src/com/rjconsultores/ventaboletos/entidad/AbastoBoleto.java b/src/com/rjconsultores/ventaboletos/entidad/AbastoBoleto.java index 6c8815c83..8e9a0d4a3 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/AbastoBoleto.java +++ b/src/com/rjconsultores/ventaboletos/entidad/AbastoBoleto.java @@ -5,6 +5,7 @@ import java.util.Date; import java.util.List; import javax.persistence.Basic; +import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -77,7 +78,7 @@ public class AbastoBoleto implements Serializable { @JoinColumn(name = "ARTICULO_ID", referencedColumnName = "ARTICULO_ID") @ManyToOne private Articulo articulo; - @OneToMany(mappedBy = "abastoBoleto") + @OneToMany(mappedBy = "abastoBoleto", cascade = CascadeType.ALL) private List detAbastoBoletoList; public Integer getAbastoboletoId() { diff --git a/src/com/rjconsultores/ventaboletos/entidad/AbastoCentral.java b/src/com/rjconsultores/ventaboletos/entidad/AbastoCentral.java index 3974ccf55..12b2336b2 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/AbastoCentral.java +++ b/src/com/rjconsultores/ventaboletos/entidad/AbastoCentral.java @@ -62,7 +62,7 @@ public class AbastoCentral implements java.io.Serializable { this.abastocentralId = abastocentralId; } - @ManyToOne(fetch = FetchType.LAZY) + @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "AIDF_ID") public Aidf getAidf() { return this.aidf; diff --git a/src/com/rjconsultores/ventaboletos/entidad/Articulo.java b/src/com/rjconsultores/ventaboletos/entidad/Articulo.java index 1723d01c8..5e3c65b64 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/Articulo.java +++ b/src/com/rjconsultores/ventaboletos/entidad/Articulo.java @@ -22,7 +22,7 @@ import javax.persistence.Temporal; import javax.persistence.TemporalType; /** - * + * * @author Administrador */ @Entity @@ -33,85 +33,85 @@ public class Articulo implements Serializable { public static final Integer TIPO_VENDA = 1; public static final Integer TIPO_OUTRO = 2; public static final Integer TIPO_VENDA_MANUAL = 3; - - private static final long serialVersionUID = 1L; - @Id - @Basic(optional = false) - @GeneratedValue(strategy = GenerationType.AUTO, generator = "ARTICULO_SEQ") - @Column(name = "ARTICULO_ID") - private Integer articuloId; - @Column(name = "DESCARTICULO") - private String descarticulo; - @Column(name = "EQUIVALENCIA_ID") - private String equivalenciaId; - @Column(name = "ACTIVO") - private Boolean activo; - @Column(name = "FECMODIF") - @Temporal(TemporalType.TIMESTAMP) - private Date fecmodif; - @Column(name = "USUARIO_ID") - private Integer usuarioId; + + private static final long serialVersionUID = 1L; + @Id + @Basic(optional = false) + @GeneratedValue(strategy = GenerationType.AUTO, generator = "ARTICULO_SEQ") + @Column(name = "ARTICULO_ID") + private Integer articuloId; + @Column(name = "DESCARTICULO") + private String descarticulo; + @Column(name = "EQUIVALENCIA_ID") + private String equivalenciaId; + @Column(name = "ACTIVO") + private Boolean activo; + @Column(name = "FECMODIF") + @Temporal(TemporalType.TIMESTAMP) + private Date fecmodif; + @Column(name = "USUARIO_ID") + private Integer usuarioId; @OneToMany(mappedBy = "articulo") private List abastoBoletoList; @OneToMany(mappedBy = "articulo") private List requisicionBoletoList; - @OneToOne(mappedBy = "articulo") + @OneToOne(mappedBy = "articulo") private Clasificacion clasificacion; + + public Articulo() { + } - public Articulo() { - } + public Articulo(Integer articuloId) { + this.articuloId = articuloId; + } - public Articulo(Integer articuloId) { - this.articuloId = articuloId; - } + public Integer getArticuloId() { + return articuloId; + } - public Integer getArticuloId() { - return articuloId; - } + public void setArticuloId(Integer articuloId) { + this.articuloId = articuloId; + } - public void setArticuloId(Integer articuloId) { - this.articuloId = articuloId; - } + public String getDescarticulo() { + return descarticulo; + } - public String getDescarticulo() { - return descarticulo; - } + public void setDescarticulo(String descarticulo) { + this.descarticulo = descarticulo; + } - public void setDescarticulo(String descarticulo) { - this.descarticulo = descarticulo; - } + public String getEquivalenciaId() { + return equivalenciaId; + } - public String getEquivalenciaId() { - return equivalenciaId; - } + public void setEquivalenciaId(String equivalenciaId) { + this.equivalenciaId = equivalenciaId; + } - public void setEquivalenciaId(String equivalenciaId) { - this.equivalenciaId = equivalenciaId; - } + public Boolean getActivo() { + return activo; + } - public Boolean getActivo() { - return activo; - } + public void setActivo(Boolean activo) { + this.activo = activo; + } - public void setActivo(Boolean activo) { - this.activo = activo; - } + public Date getFecmodif() { + return fecmodif; + } - public Date getFecmodif() { - return fecmodif; - } + public void setFecmodif(Date fecmodif) { + this.fecmodif = fecmodif; + } - public void setFecmodif(Date fecmodif) { - this.fecmodif = fecmodif; - } + public Integer getUsuarioId() { + return usuarioId; + } - public Integer getUsuarioId() { - return usuarioId; - } - - public void setUsuarioId(Integer usuarioId) { - this.usuarioId = usuarioId; - } + public void setUsuarioId(Integer usuarioId) { + this.usuarioId = usuarioId; + } public List getAbastoBoletoList() { return abastoBoletoList; @@ -137,27 +137,28 @@ public class Articulo implements Serializable { this.clasificacion = clasificacion; } - @Override - public int hashCode() { - int hash = 0; - hash += (articuloId != null ? articuloId.hashCode() : 0); - return hash; - } + @Override + public int hashCode() { + int hash = 0; + hash += (articuloId != null ? articuloId.hashCode() : 0); + return hash; + } - @Override - public boolean equals(Object object) { - if (!(object instanceof Articulo)) { - return false; - } - Articulo other = (Articulo) object; - if ((this.articuloId == null && other.articuloId != null) || (this.articuloId != null && !this.articuloId.equals(other.articuloId))) { - return false; - } - return true; - } + @Override + public boolean equals(Object object) { + if (!(object instanceof Articulo)) { + return false; + } + Articulo other = (Articulo) object; + if ((this.articuloId == null && other.articuloId != null) || (this.articuloId != null && !this.articuloId.equals(other.articuloId))) { + return false; + } + return true; + } + + @Override + public String toString() { + return "com.rjconsultores.ventaboletos.entidad.Articulo[articuloId=" + articuloId + "]"; + } - @Override - public String toString() { - return "com.rjconsultores.ventaboletos.entidad.Articulo[articuloId=" + articuloId + "]"; - } } diff --git a/src/com/rjconsultores/ventaboletos/entidad/Clasificacion.java b/src/com/rjconsultores/ventaboletos/entidad/Clasificacion.java index b2849e3e8..597a47862 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/Clasificacion.java +++ b/src/com/rjconsultores/ventaboletos/entidad/Clasificacion.java @@ -5,12 +5,14 @@ import java.util.Date; import java.util.List; import javax.persistence.Basic; +import javax.persistence.CascadeType; 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.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.persistence.SequenceGenerator; @@ -43,9 +45,9 @@ public class Clasificacion implements Serializable { @JoinColumn(name = "ARTICULO_ID", referencedColumnName = "ARTICULO_ID") @OneToOne private Articulo articulo; - @OneToMany(mappedBy = "clasificacion") + @OneToMany(mappedBy = "clasificacion", cascade = CascadeType.ALL) private List abastoBoletoList; - @OneToMany(mappedBy = "clasificacion") + @OneToMany(mappedBy = "clasificacion", cascade = CascadeType.ALL) private List requisicionBoletoList; public Integer getClasificacionId() { diff --git a/src/com/rjconsultores/ventaboletos/service/AutorizaFolioService.java b/src/com/rjconsultores/ventaboletos/service/AutorizaFolioService.java index 4ed7b0c2b..a031d1bcc 100644 --- a/src/com/rjconsultores/ventaboletos/service/AutorizaFolioService.java +++ b/src/com/rjconsultores/ventaboletos/service/AutorizaFolioService.java @@ -1,9 +1,11 @@ package com.rjconsultores.ventaboletos.service; +import com.rjconsultores.ventaboletos.entidad.Aidf; +import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Estacion; public interface AutorizaFolioService { - public Boolean noChequeFolioPreimpresos(Estacion estacion); + public Boolean noChequeFolioPreimpresos(Aidf aidf, Estacion estacion, String numfolioinicial, String numfoliofinal, String numseriepreimpresa, Empresa empresaUsuario); } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/AutorizaFolioServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/AutorizaFolioServiceImpl.java index b941f49e1..38c48cdf4 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/AutorizaFolioServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/AutorizaFolioServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.rjconsultores.ventaboletos.entidad.AbastoBoleto; +import com.rjconsultores.ventaboletos.entidad.Aidf; import com.rjconsultores.ventaboletos.entidad.Articulo; import com.rjconsultores.ventaboletos.entidad.Clasificacion; import com.rjconsultores.ventaboletos.entidad.DetAbastoBoleto; @@ -39,38 +40,36 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService { @Autowired private FolioPreimpresoService folioPreimpresoService; - // Numero max de folios por estacion - public static final Integer MAX_CANT_FOLIOS = Integer.MAX_VALUE; - public static final Integer INICIO_FOLIO = 1; - @Override - public Boolean noChequeFolioPreimpresos(Estacion estacion) { + public Boolean noChequeFolioPreimpresos(Aidf aidf, Estacion estacion, String numfolioinicial, String numfoliofinal, String numseriepreimpresa, Empresa empresaUsuario) { - List empresasUsuario = UsuarioLogado.getUsuarioLogado().getEmpresa(); - for (Empresa empresa : empresasUsuario) { + FolioPreimpreso folio = folioPreimpresoService.buscaFolioPreImpressoEstacionImpresora(estacion, empresaUsuario); - FolioPreimpreso folio = folioPreimpresoService.buscaFolioPreImpressoEstacionImpresora(estacion, empresa); + RequisicionBoleto requisicionBoleto = geraRequisicionBoleto(aidf, estacion, empresaUsuario); + AbastoBoleto abastoBoleto = geraAbastoBoleto(requisicionBoleto); + DetAbastoBoleto detAbastoBoleto = geraDetAbastoBoleto(abastoBoleto, numfolioinicial, numfoliofinal, numseriepreimpresa); + actualizaStatusRequisicion(requisicionBoleto); + + if (folio == null) { + + FolioPreimpreso folioPreimpreso = geraFolioPreimpreso(detAbastoBoleto, numfolioinicial); - if (folio == null) { - - RequisicionBoleto requisicionBoleto = geraRequisicionBoleto(estacion, empresa); - AbastoBoleto abastoBoleto = geraAbastoBoleto(requisicionBoleto); - DetAbastoBoleto detAbastoBoleto = geraDetAbastoBoleto(abastoBoleto); - actualizaStatusRequisicion(requisicionBoleto); - FolioPreimpreso folioPreimpreso = geraFolioPreimpreso(detAbastoBoleto); - - if (folioPreimpreso.getFoliopreimpresoId() == null) { - return Boolean.FALSE; - } + if (folioPreimpreso.getFoliopreimpresoId() == null) { + return Boolean.FALSE; } + } else { + + actualizaFolioPreimpreso(folio, numseriepreimpresa, numfolioinicial); + } + return Boolean.TRUE; } - private RequisicionBoleto geraRequisicionBoleto(Estacion estacion, Empresa empresa) { + private RequisicionBoleto geraRequisicionBoleto(Aidf aidf, Estacion estacion, Empresa empresa) { - Articulo articulo = articuloService.obtenerID(Articulo.TIPO_VENDA); + Articulo articulo = articuloService.obtenerID(aidf.getAidfTipo().getAidftipoId()); Clasificacion clasificacion = articulo.getClasificacion(); PuntoVenta puntoVenta = estacion.getPuntoVenta(); @@ -116,12 +115,12 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService { return abastoBoletoService.suscribir(abastoboleto); } - private DetAbastoBoleto geraDetAbastoBoleto(AbastoBoleto abastoBoleto) { + private DetAbastoBoleto geraDetAbastoBoleto(AbastoBoleto abastoBoleto, String numfolioinicial, String numfoliofinal, String numseriepreimpresa) { Integer statusoperacion = 1; - String numseriepreimpresa = abastoBoleto.getEstacion().getEstacionId().toString() + abastoBoleto.getEmpresa().getEmpresaId().toString(); - String numfolioinicial = INICIO_FOLIO.toString(); - String numfoliofinal = MAX_CANT_FOLIOS.toString(); +// String numseriepreimpresa = abastoBoleto.getEstacion().getEstacionId().toString() + abastoBoleto.getEmpresa().getEmpresaId().toString(); +// String numfolioinicial = INICIO_FOLIO.toString(); +// String numfoliofinal = MAX_CANT_FOLIOS.toString(); Long nummovimiento = detAbastoBoletoService.getSecuencia(); @@ -143,14 +142,14 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService { requisicionBoletoService.actualizacion(requisicionBoleto); } - private FolioPreimpreso geraFolioPreimpreso(DetAbastoBoleto detAbastoBoleto) { + private FolioPreimpreso geraFolioPreimpreso(DetAbastoBoleto detAbastoBoleto, String numfoliopreimpreso) { AbastoBoleto abastoBoleto = detAbastoBoleto.getAbastoBoleto(); FolioPreimpreso folioPreimpreso = new FolioPreimpreso(); folioPreimpreso.setEmpresa(abastoBoleto.getEmpresa()); folioPreimpreso.setEstacion(abastoBoleto.getEstacion()); - folioPreimpreso.setFoliopreimpreso(INICIO_FOLIO.toString()); + folioPreimpreso.setFoliopreimpreso(numfoliopreimpreso); folioPreimpreso.setNodoId(1); folioPreimpreso.setNumeserie(detAbastoBoleto.getNumseriepreimpresa()); folioPreimpreso.setPuntoVenta(abastoBoleto.getPuntoventa()); @@ -158,4 +157,13 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService { return folioPreimpresoService.suscribir(folioPreimpreso); } + + private FolioPreimpreso actualizaFolioPreimpreso(FolioPreimpreso folioPreimpreso, String serieFoliopreimpreso, String numfoliopreimpreso) { + + folioPreimpreso.setFoliopreimpreso(numfoliopreimpreso); + folioPreimpreso.setNumeserie(serieFoliopreimpreso); + + return folioPreimpresoService.actualizacion(folioPreimpreso); + } + } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/MovimentacionBilhetesServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/MovimentacionBilhetesServiceImpl.java index 271cfcdaf..4596ee273 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/MovimentacionBilhetesServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/MovimentacionBilhetesServiceImpl.java @@ -22,6 +22,7 @@ import com.rjconsultores.ventaboletos.entidad.Estacion; import com.rjconsultores.ventaboletos.entidad.PtovtaTipoEstoque; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.TipoMovimentacion; +import com.rjconsultores.ventaboletos.service.AutorizaFolioService; import com.rjconsultores.ventaboletos.service.MovimentacionBilhetesService; import com.rjconsultores.ventaboletos.service.PuntoVentaService; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; @@ -47,10 +48,10 @@ public class MovimentacionBilhetesServiceImpl implements MovimentacionBilhetesSe @Autowired private PtovtaTipoEstoqueDAO ptovtaTipoEstoqueDAO; - public MovimentacionBilhetesServiceImpl() { - // TODO Auto-generated constructor stub - } - + @Autowired + private AutorizaFolioService autorizaFolioService; + + @Override public List obtenerHistoricoMovimetacion(String numBilhete) { @@ -164,6 +165,12 @@ public class MovimentacionBilhetesServiceImpl implements MovimentacionBilhetesSe public void realizaMovimentacionBilhetes(PuntoVenta puntoVentaBilhetes, Estacion origem, Estacion destino, TipoMovimentacion tipoMovimentacion) { List bilhetes = abastoCentralDAO.obtenerBilhetesPorPuntoVenta(puntoVentaBilhetes, origem); atualizaBilhetesEGrabaHistorico(bilhetes, destino, tipoMovimentacion); + + if(!bilhetes.isEmpty() && origem == null){//envio + String formInicial = bilhetes.get(0).getNumfoliopreimpreso(); + String formFinal = bilhetes.get(bilhetes.size() - 1).getNumfoliopreimpreso(); + geraRequisicionBilhetesEstacion(bilhetes, destino, formInicial, formFinal); + } } @Transactional @@ -180,6 +187,24 @@ public class MovimentacionBilhetesServiceImpl implements MovimentacionBilhetesSe List bilhetes = abastoCentralDAO.obtenerBilhetesPorPuntoVenta(formInicial, formFinal, puntoVentaBilhetes, origem); atualizaBilhetesEGrabaHistorico(bilhetes, destino, tipoMovimentacion); + + if(origem == null) //envio + geraRequisicionBilhetesEstacion(bilhetes, destino, formInicial, formFinal); + + } + + private void geraRequisicionBilhetesEstacion(List bilhetes, Estacion destino, String numfolioinicial, String numfoliofinal){ + + Aidf aidfCorrente = null; + + for(AbastoCentral bilhete : bilhetes){ + + if(aidfCorrente == null || (aidfCorrente != null && !aidfCorrente.equals(bilhete.getAidf()))){ + aidfCorrente = bilhete.getAidf(); + String numseriepreimpresa = aidfCorrente.getSerie(); + autorizaFolioService.noChequeFolioPreimpresos(aidfCorrente, destino, numfolioinicial, numfoliofinal, numseriepreimpresa, aidfCorrente.getEmpresa()); + } + } } private void atualizaBilhetesEGrabaHistorico(List bilhetes, Estacion destino, TipoMovimentacion tipoMovimentacion){ @@ -193,4 +218,5 @@ public class MovimentacionBilhetesServiceImpl implements MovimentacionBilhetesSe abastoCentralDAO.actualizaBilhetes(bilhetes, destino); abastoHistoDAO.grabaHistoricoBilhetes(bilhetes, tipoMovimentacion); } + }