vinicius 2013-12-05 13:53:52 +00:00
parent 01c442d10f
commit 8cb8a21f35
9 changed files with 184 additions and 124 deletions

View File

@ -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<AbastoCentral
c.add(Restrictions.eq("puntoventa", puntoVentaBilhetes));
c.add(Restrictions.eq("activo", Boolean.TRUE));
c.add(Restrictions.eq("estacion", origem));
c.addOrder(Order.asc("numfoliopreimpreso"));
return (List<AbastoCentral>)c.list();
}

View File

@ -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<PuntoVenta, Inte
return c.list();
}
// public List<PuntoVenta> 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<PuntoVenta> 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<PuntoVenta> busca(String nomPuntoVenta, String numPuntoVenta) {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));

View File

@ -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<DetAbastoBoleto> detAbastoBoletoList;
public Integer getAbastoboletoId() {

View File

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

View File

@ -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<AbastoBoleto> abastoBoletoList;
@OneToMany(mappedBy = "articulo")
private List<RequisicionBoleto> 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<AbastoBoleto> 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 + "]";
}
}

View File

@ -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<AbastoBoleto> abastoBoletoList;
@OneToMany(mappedBy = "clasificacion")
@OneToMany(mappedBy = "clasificacion", cascade = CascadeType.ALL)
private List<RequisicionBoleto> requisicionBoletoList;
public Integer getClasificacionId() {

View File

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

View File

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

View File

@ -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<AbastoHisto> obtenerHistoricoMovimetacion(String numBilhete) {
@ -164,6 +165,12 @@ public class MovimentacionBilhetesServiceImpl implements MovimentacionBilhetesSe
public void realizaMovimentacionBilhetes(PuntoVenta puntoVentaBilhetes, Estacion origem, Estacion destino, TipoMovimentacion tipoMovimentacion) {
List<AbastoCentral> 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<AbastoCentral> bilhetes = abastoCentralDAO.obtenerBilhetesPorPuntoVenta(formInicial, formFinal, puntoVentaBilhetes, origem);
atualizaBilhetesEGrabaHistorico(bilhetes, destino, tipoMovimentacion);
if(origem == null) //envio
geraRequisicionBilhetesEstacion(bilhetes, destino, formInicial, formFinal);
}
private void geraRequisicionBilhetesEstacion(List<AbastoCentral> 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<AbastoCentral> bilhetes, Estacion destino, TipoMovimentacion tipoMovimentacion){
@ -193,4 +218,5 @@ public class MovimentacionBilhetesServiceImpl implements MovimentacionBilhetesSe
abastoCentralDAO.actualizaBilhetes(bilhetes, destino);
abastoHistoDAO.grabaHistoricoBilhetes(bilhetes, tipoMovimentacion);
}
}