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.Criteria;
import org.hibernate.Session; import org.hibernate.Session;
import org.hibernate.SessionFactory; import org.hibernate.SessionFactory;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions; import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; 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("puntoventa", puntoVentaBilhetes));
c.add(Restrictions.eq("activo", Boolean.TRUE)); c.add(Restrictions.eq("activo", Boolean.TRUE));
c.add(Restrictions.eq("estacion", origem)); c.add(Restrictions.eq("estacion", origem));
c.addOrder(Order.asc("numfoliopreimpreso"));
return (List<AbastoCentral>)c.list(); return (List<AbastoCentral>)c.list();
} }

View File

@ -4,7 +4,6 @@
*/ */
package com.rjconsultores.ventaboletos.dao.hibernate; package com.rjconsultores.ventaboletos.dao.hibernate;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.hibernate.Criteria; import org.hibernate.Criteria;
@ -52,15 +51,34 @@ public class PuntoVentaHibernateDAO extends GenericHibernateDAO<PuntoVenta, Inte
return c.list(); 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) { public List<PuntoVenta> buscaLike(String strEstacion) {
Criteria c = getSession().createCriteria(getPersistentClass()); 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(); return c.list();
} }
public List<PuntoVenta> busca(String nomPuntoVenta, String numPuntoVenta) { public List<PuntoVenta> busca(String nomPuntoVenta, String numPuntoVenta) {
Criteria c = getSession().createCriteria(getPersistentClass()); Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE)); c.add(Restrictions.eq("activo", Boolean.TRUE));

View File

@ -5,6 +5,7 @@ import java.util.Date;
import java.util.List; import java.util.List;
import javax.persistence.Basic; import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.GeneratedValue; import javax.persistence.GeneratedValue;
@ -77,7 +78,7 @@ public class AbastoBoleto implements Serializable {
@JoinColumn(name = "ARTICULO_ID", referencedColumnName = "ARTICULO_ID") @JoinColumn(name = "ARTICULO_ID", referencedColumnName = "ARTICULO_ID")
@ManyToOne @ManyToOne
private Articulo articulo; private Articulo articulo;
@OneToMany(mappedBy = "abastoBoleto") @OneToMany(mappedBy = "abastoBoleto", cascade = CascadeType.ALL)
private List<DetAbastoBoleto> detAbastoBoletoList; private List<DetAbastoBoleto> detAbastoBoletoList;
public Integer getAbastoboletoId() { public Integer getAbastoboletoId() {

View File

@ -62,7 +62,7 @@ public class AbastoCentral implements java.io.Serializable {
this.abastocentralId = abastocentralId; this.abastocentralId = abastocentralId;
} }
@ManyToOne(fetch = FetchType.LAZY) @ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "AIDF_ID") @JoinColumn(name = "AIDF_ID")
public Aidf getAidf() { public Aidf getAidf() {
return this.aidf; return this.aidf;

View File

@ -160,4 +160,5 @@ public class Articulo implements Serializable {
public String toString() { public String toString() {
return "com.rjconsultores.ventaboletos.entidad.Articulo[articuloId=" + articuloId + "]"; return "com.rjconsultores.ventaboletos.entidad.Articulo[articuloId=" + articuloId + "]";
} }
} }

View File

@ -5,12 +5,14 @@ import java.util.Date;
import java.util.List; import java.util.List;
import javax.persistence.Basic; import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.GeneratedValue; import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType; import javax.persistence.GenerationType;
import javax.persistence.Id; import javax.persistence.Id;
import javax.persistence.JoinColumn; import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany; import javax.persistence.OneToMany;
import javax.persistence.OneToOne; import javax.persistence.OneToOne;
import javax.persistence.SequenceGenerator; import javax.persistence.SequenceGenerator;
@ -43,9 +45,9 @@ public class Clasificacion implements Serializable {
@JoinColumn(name = "ARTICULO_ID", referencedColumnName = "ARTICULO_ID") @JoinColumn(name = "ARTICULO_ID", referencedColumnName = "ARTICULO_ID")
@OneToOne @OneToOne
private Articulo articulo; private Articulo articulo;
@OneToMany(mappedBy = "clasificacion") @OneToMany(mappedBy = "clasificacion", cascade = CascadeType.ALL)
private List<AbastoBoleto> abastoBoletoList; private List<AbastoBoleto> abastoBoletoList;
@OneToMany(mappedBy = "clasificacion") @OneToMany(mappedBy = "clasificacion", cascade = CascadeType.ALL)
private List<RequisicionBoleto> requisicionBoletoList; private List<RequisicionBoleto> requisicionBoletoList;
public Integer getClasificacionId() { public Integer getClasificacionId() {

View File

@ -1,9 +1,11 @@
package com.rjconsultores.ventaboletos.service; package com.rjconsultores.ventaboletos.service;
import com.rjconsultores.ventaboletos.entidad.Aidf;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.Estacion; import com.rjconsultores.ventaboletos.entidad.Estacion;
public interface AutorizaFolioService { 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 org.springframework.stereotype.Service;
import com.rjconsultores.ventaboletos.entidad.AbastoBoleto; import com.rjconsultores.ventaboletos.entidad.AbastoBoleto;
import com.rjconsultores.ventaboletos.entidad.Aidf;
import com.rjconsultores.ventaboletos.entidad.Articulo; import com.rjconsultores.ventaboletos.entidad.Articulo;
import com.rjconsultores.ventaboletos.entidad.Clasificacion; import com.rjconsultores.ventaboletos.entidad.Clasificacion;
import com.rjconsultores.ventaboletos.entidad.DetAbastoBoleto; import com.rjconsultores.ventaboletos.entidad.DetAbastoBoleto;
@ -39,38 +40,36 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService {
@Autowired @Autowired
private FolioPreimpresoService folioPreimpresoService; 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 @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(); FolioPreimpreso folio = folioPreimpresoService.buscaFolioPreImpressoEstacionImpresora(estacion, empresaUsuario);
for (Empresa empresa : empresasUsuario) {
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) { if (folio == null) {
RequisicionBoleto requisicionBoleto = geraRequisicionBoleto(estacion, empresa); FolioPreimpreso folioPreimpreso = geraFolioPreimpreso(detAbastoBoleto, numfolioinicial);
AbastoBoleto abastoBoleto = geraAbastoBoleto(requisicionBoleto);
DetAbastoBoleto detAbastoBoleto = geraDetAbastoBoleto(abastoBoleto);
actualizaStatusRequisicion(requisicionBoleto);
FolioPreimpreso folioPreimpreso = geraFolioPreimpreso(detAbastoBoleto);
if (folioPreimpreso.getFoliopreimpresoId() == null) { if (folioPreimpreso.getFoliopreimpresoId() == null) {
return Boolean.FALSE; return Boolean.FALSE;
} }
} else {
actualizaFolioPreimpreso(folio, numseriepreimpresa, numfolioinicial);
} }
}
return Boolean.TRUE; 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(); Clasificacion clasificacion = articulo.getClasificacion();
PuntoVenta puntoVenta = estacion.getPuntoVenta(); PuntoVenta puntoVenta = estacion.getPuntoVenta();
@ -116,12 +115,12 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService {
return abastoBoletoService.suscribir(abastoboleto); return abastoBoletoService.suscribir(abastoboleto);
} }
private DetAbastoBoleto geraDetAbastoBoleto(AbastoBoleto abastoBoleto) { private DetAbastoBoleto geraDetAbastoBoleto(AbastoBoleto abastoBoleto, String numfolioinicial, String numfoliofinal, String numseriepreimpresa) {
Integer statusoperacion = 1; Integer statusoperacion = 1;
String numseriepreimpresa = abastoBoleto.getEstacion().getEstacionId().toString() + abastoBoleto.getEmpresa().getEmpresaId().toString(); // String numseriepreimpresa = abastoBoleto.getEstacion().getEstacionId().toString() + abastoBoleto.getEmpresa().getEmpresaId().toString();
String numfolioinicial = INICIO_FOLIO.toString(); // String numfolioinicial = INICIO_FOLIO.toString();
String numfoliofinal = MAX_CANT_FOLIOS.toString(); // String numfoliofinal = MAX_CANT_FOLIOS.toString();
Long nummovimiento = detAbastoBoletoService.getSecuencia(); Long nummovimiento = detAbastoBoletoService.getSecuencia();
@ -143,14 +142,14 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService {
requisicionBoletoService.actualizacion(requisicionBoleto); requisicionBoletoService.actualizacion(requisicionBoleto);
} }
private FolioPreimpreso geraFolioPreimpreso(DetAbastoBoleto detAbastoBoleto) { private FolioPreimpreso geraFolioPreimpreso(DetAbastoBoleto detAbastoBoleto, String numfoliopreimpreso) {
AbastoBoleto abastoBoleto = detAbastoBoleto.getAbastoBoleto(); AbastoBoleto abastoBoleto = detAbastoBoleto.getAbastoBoleto();
FolioPreimpreso folioPreimpreso = new FolioPreimpreso(); FolioPreimpreso folioPreimpreso = new FolioPreimpreso();
folioPreimpreso.setEmpresa(abastoBoleto.getEmpresa()); folioPreimpreso.setEmpresa(abastoBoleto.getEmpresa());
folioPreimpreso.setEstacion(abastoBoleto.getEstacion()); folioPreimpreso.setEstacion(abastoBoleto.getEstacion());
folioPreimpreso.setFoliopreimpreso(INICIO_FOLIO.toString()); folioPreimpreso.setFoliopreimpreso(numfoliopreimpreso);
folioPreimpreso.setNodoId(1); folioPreimpreso.setNodoId(1);
folioPreimpreso.setNumeserie(detAbastoBoleto.getNumseriepreimpresa()); folioPreimpreso.setNumeserie(detAbastoBoleto.getNumseriepreimpresa());
folioPreimpreso.setPuntoVenta(abastoBoleto.getPuntoventa()); folioPreimpreso.setPuntoVenta(abastoBoleto.getPuntoventa());
@ -158,4 +157,13 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService {
return folioPreimpresoService.suscribir(folioPreimpreso); 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.PtovtaTipoEstoque;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
import com.rjconsultores.ventaboletos.entidad.TipoMovimentacion; import com.rjconsultores.ventaboletos.entidad.TipoMovimentacion;
import com.rjconsultores.ventaboletos.service.AutorizaFolioService;
import com.rjconsultores.ventaboletos.service.MovimentacionBilhetesService; import com.rjconsultores.ventaboletos.service.MovimentacionBilhetesService;
import com.rjconsultores.ventaboletos.service.PuntoVentaService; import com.rjconsultores.ventaboletos.service.PuntoVentaService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
@ -47,9 +48,9 @@ public class MovimentacionBilhetesServiceImpl implements MovimentacionBilhetesSe
@Autowired @Autowired
private PtovtaTipoEstoqueDAO ptovtaTipoEstoqueDAO; private PtovtaTipoEstoqueDAO ptovtaTipoEstoqueDAO;
public MovimentacionBilhetesServiceImpl() { @Autowired
// TODO Auto-generated constructor stub private AutorizaFolioService autorizaFolioService;
}
@Override @Override
public List<AbastoHisto> obtenerHistoricoMovimetacion(String numBilhete) { 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) { public void realizaMovimentacionBilhetes(PuntoVenta puntoVentaBilhetes, Estacion origem, Estacion destino, TipoMovimentacion tipoMovimentacion) {
List<AbastoCentral> bilhetes = abastoCentralDAO.obtenerBilhetesPorPuntoVenta(puntoVentaBilhetes, origem); List<AbastoCentral> bilhetes = abastoCentralDAO.obtenerBilhetesPorPuntoVenta(puntoVentaBilhetes, origem);
atualizaBilhetesEGrabaHistorico(bilhetes, destino, tipoMovimentacion); 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 @Transactional
@ -180,6 +187,24 @@ public class MovimentacionBilhetesServiceImpl implements MovimentacionBilhetesSe
List<AbastoCentral> bilhetes = abastoCentralDAO.obtenerBilhetesPorPuntoVenta(formInicial, formFinal, puntoVentaBilhetes, origem); List<AbastoCentral> bilhetes = abastoCentralDAO.obtenerBilhetesPorPuntoVenta(formInicial, formFinal, puntoVentaBilhetes, origem);
atualizaBilhetesEGrabaHistorico(bilhetes, destino, tipoMovimentacion); 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){ private void atualizaBilhetesEGrabaHistorico(List<AbastoCentral> bilhetes, Estacion destino, TipoMovimentacion tipoMovimentacion){
@ -193,4 +218,5 @@ public class MovimentacionBilhetesServiceImpl implements MovimentacionBilhetesSe
abastoCentralDAO.actualizaBilhetes(bilhetes, destino); abastoCentralDAO.actualizaBilhetes(bilhetes, destino);
abastoHistoDAO.grabaHistoricoBilhetes(bilhetes, tipoMovimentacion); abastoHistoDAO.grabaHistoricoBilhetes(bilhetes, tipoMovimentacion);
} }
} }