diff --git a/src/com/rjconsultores/ventaboletos/dao/AbastoBoletoDAO.java b/src/com/rjconsultores/ventaboletos/dao/AbastoBoletoDAO.java index 1256ceab1..65cc0d810 100644 --- a/src/com/rjconsultores/ventaboletos/dao/AbastoBoletoDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/AbastoBoletoDAO.java @@ -1,7 +1,12 @@ package com.rjconsultores.ventaboletos.dao; +import java.util.List; + import com.rjconsultores.ventaboletos.entidad.AbastoBoleto; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; public interface AbastoBoletoDAO extends GenericDAO { + + public List buscaAbastoBoletoPorPuntoVenta(PuntoVenta puntoVenta); } diff --git a/src/com/rjconsultores/ventaboletos/dao/AbastoCentralDAO.java b/src/com/rjconsultores/ventaboletos/dao/AbastoCentralDAO.java index 7bd6ee0b0..3b663e6b0 100644 --- a/src/com/rjconsultores/ventaboletos/dao/AbastoCentralDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/AbastoCentralDAO.java @@ -1,5 +1,6 @@ package com.rjconsultores.ventaboletos.dao; +import java.util.Date; import java.util.List; import com.rjconsultores.ventaboletos.entidad.AbastoCentral; @@ -16,13 +17,15 @@ public interface AbastoCentralDAO extends GenericDAO { public List obtenerBilhetesPorPuntoVenta(PuntoVenta puntoVentaBilhetes); public List obtenerBilhetesPorPuntoVenta(PuntoVenta puntoVentaBilhetes, Estacion origem); public List obtenerBilhetesPorPuntoVenta(String formInicial, String formFinal, PuntoVenta puntoVentaBilhetes); - public List obtenerBilhetesPorPuntoVenta(String formInicial, String formFinal, PuntoVenta puntoVentaBilhetes, Estacion origem); + public List obtenerBilhetesPorPuntoVenta(String numSerie, String formInicial, String formFinal, PuntoVenta puntoVentaBilhetes, Estacion origem); public void actualizaBilhetes(List bilhetes, PuntoVenta destino); public void actualizaBilhetes(List bilhetes, Estacion destino); public void suscribirBilhetes(List bilhetes); public List buscaBilhetesPorAidf(Aidf aidf); + public void gravaControleEstoqueMigracao(PuntoVenta puntoVenta, Date fecmodif, Integer usuarioId); + } diff --git a/src/com/rjconsultores/ventaboletos/dao/DetAbastoBoletoDAO.java b/src/com/rjconsultores/ventaboletos/dao/DetAbastoBoletoDAO.java index b2a13badc..66bea16f4 100644 --- a/src/com/rjconsultores/ventaboletos/dao/DetAbastoBoletoDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/DetAbastoBoletoDAO.java @@ -1,9 +1,21 @@ package com.rjconsultores.ventaboletos.dao; +import java.util.List; + +import com.rjconsultores.ventaboletos.entidad.AbastoBoleto; +import com.rjconsultores.ventaboletos.entidad.AbastoCentral; import com.rjconsultores.ventaboletos.entidad.DetAbastoBoleto; +import com.rjconsultores.ventaboletos.entidad.Estacion; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; public interface DetAbastoBoletoDAO extends GenericDAO { public Long getSecuencia(); + + public List buscaDetAbastoBoletos(AbastoBoleto abastoBoleto); + + public List buscaDetAbastoBoletos(Estacion origem, String numfolioinicial, String numfoliofinal, String numseriepreimpresa); + + public void desativaDetAbastos(List detAbastoBoletos); } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/AbastoBoletoHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/AbastoBoletoHibernateDAO.java index 6605afc9c..58841771a 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/AbastoBoletoHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/AbastoBoletoHibernateDAO.java @@ -1,12 +1,17 @@ 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.AbastoBoletoDAO; import com.rjconsultores.ventaboletos.entidad.AbastoBoleto; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; @Repository("abastoBoletoDAO") public class AbastoBoletoHibernateDAO extends GenericHibernateDAO @@ -16,4 +21,11 @@ public class AbastoBoletoHibernateDAO extends GenericHibernateDAO buscaAbastoBoletoPorPuntoVenta(PuntoVenta puntoVenta) { + + List abastos = findByCriteria(Restrictions.eq("puntoventa", puntoVenta), Restrictions.eq("activo", Boolean.TRUE)); + return abastos; + } } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/AbastoCentralHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/AbastoCentralHibernateDAO.java index 8585aa58b..4241db00b 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/AbastoCentralHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/AbastoCentralHibernateDAO.java @@ -1,8 +1,10 @@ package com.rjconsultores.ventaboletos.dao.hibernate; +import java.util.Date; import java.util.List; import org.hibernate.Criteria; +import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.criterion.Order; @@ -15,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional; import com.rjconsultores.ventaboletos.dao.AbastoCentralDAO; import com.rjconsultores.ventaboletos.entidad.AbastoCentral; import com.rjconsultores.ventaboletos.entidad.Aidf; +import com.rjconsultores.ventaboletos.entidad.ControleEstoqueMigracao; import com.rjconsultores.ventaboletos.entidad.Estacion; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; @@ -46,13 +49,17 @@ public class AbastoCentralHibernateDAO extends GenericHibernateDAO obtenerBilhetes(Aidf aidf, String formInicial, String formFinal, PuntoVenta origem) { - Criteria c = getSession().createCriteria(getPersistentClass()); - c.add(Restrictions.eq("aidf", aidf)); - c.add(Restrictions.eq("puntoventa", origem)); - c.add(Restrictions.between("numfoliopreimpreso", formInicial, formFinal)); - c.add(Restrictions.eq("activo", Boolean.TRUE)); - return (List)c.list(); + String queryStr = "from AbastoCentral act where act.aidf = :aidf and act.puntoventa = :puntoventa and act.activo = true and act.numfoliopreimpreso between :folioinicial and :foliofinal"; + + Query query = getSession().createQuery(queryStr); + + query.setLong("aidf", aidf.getAidfId()); + query.setInteger("puntoventa", origem.getPuntoventaId()); + query.setLong("folioinicial", Long.valueOf(formInicial)); + query.setLong("foliofinal", Long.valueOf(formFinal)); + + return (List)query.list(); } @Transactional @@ -113,15 +120,19 @@ public class AbastoCentralHibernateDAO extends GenericHibernateDAO obtenerBilhetesPorPuntoVenta(String formInicial, String formFinal, PuntoVenta puntoVentaBilhetes) { - Criteria c = getSession().createCriteria(getPersistentClass()); - c.add(Restrictions.eq("puntoventa", puntoVentaBilhetes)); - c.add(Restrictions.between("numfoliopreimpreso", formInicial, formFinal)); - c.add(Restrictions.eq("activo", Boolean.TRUE)); + String queryStr = "from AbastoCentral act where act.puntoventa = :puntoventa and act.activo = true and act.numfoliopreimpreso between :folioinicial and :foliofinal"; - return (List)c.list(); + Query query = getSession().createQuery(queryStr); + + query.setInteger("puntoventa", puntoVentaBilhetes.getPuntoventaId()); + query.setLong("folioinicial", Long.valueOf(formInicial)); + query.setLong("foliofinal", Long.valueOf(formFinal)); + + return (List)query.list(); } public List obtenerBilhetesPorPuntoVenta(PuntoVenta puntoVentaBilhetes, Estacion origem) { + Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("puntoventa", puntoVentaBilhetes)); c.add(Restrictions.eq("activo", Boolean.TRUE)); @@ -131,17 +142,24 @@ public class AbastoCentralHibernateDAO extends GenericHibernateDAO)c.list(); } - public List obtenerBilhetesPorPuntoVenta(String formInicial, String formFinal, PuntoVenta puntoVentaBilhetes, Estacion origem) { + public List obtenerBilhetesPorPuntoVenta(String numSerie, String formInicial, String formFinal, PuntoVenta puntoVentaBilhetes, Estacion origem) { - Criteria c = getSession().createCriteria(getPersistentClass()); - c.add(Restrictions.eq("puntoventa", puntoVentaBilhetes)); - c.add(Restrictions.between("numfoliopreimpreso", formInicial, formFinal)); - c.add(Restrictions.eq("activo", Boolean.TRUE)); + String queryStr = "from AbastoCentral act where act.puntoventa = :puntoventa and act.numseriepreimpresa = :numseriepreimpresa and act.activo = true and act.numfoliopreimpreso between :folioinicial and :foliofinal"; if(origem != null) - c.add(Restrictions.eq("estacion", origem)); + queryStr += " and act.estacion = :estacion"; - return (List)c.list(); + Query query = getSession().createQuery(queryStr); + + query.setInteger("puntoventa", puntoVentaBilhetes.getPuntoventaId()); + query.setString("numseriepreimpresa", numSerie); + query.setLong("folioinicial", Long.valueOf(formInicial)); + query.setLong("foliofinal", Long.valueOf(formFinal)); + + if(origem != null) + query.setInteger("estacion", origem.getEstacionId()); + + return (List)query.list(); } @Transactional @@ -164,4 +182,13 @@ public class AbastoCentralHibernateDAO extends GenericHibernateDAO @@ -33,4 +42,55 @@ public class DetAbastoBoletoHibernateDAO extends GenericHibernateDAO buscaDetAbastoBoletos(AbastoBoleto abastoBoleto) { + + List detAbastoBoletos = findByCriteria(Restrictions.eq("abastoBoleto", abastoBoleto)); + return detAbastoBoletos; + } + + @Override + public List buscaDetAbastoBoletos(Estacion origem, String numfolioinicial, String numfoliofinal, String numseriepreimpresa) { + + + StringBuilder queryString = new StringBuilder("from DetAbastoBoleto det where ") + .append(" det.abastoBoleto.estacion.estacionId = :origem") + .append(" and det.numseriepreimpresa = :numseriepreimpresa") + .append(" and (det.numfolioinicial >= :numfolioinicial and det.numfoliofinal <= :numfoliofinal) ") + .append(" order by det.detabastoboletoId"); + + Query query = getSession().createQuery(queryString.toString()); + query.setInteger("origem", origem.getEstacionId()); + query.setString("numseriepreimpresa", numseriepreimpresa); + query.setString("numfolioinicial", numfolioinicial); + query.setString("numfoliofinal", numfoliofinal); + + List detAbastoBoletos = query.list(); + + return detAbastoBoletos; + } + + @Transactional + public void desativaDetAbastos(List detAbastoBoletos) { + Session session = getSessionFactory().getCurrentSession(); + + int count = 0; + + for(DetAbastoBoleto det : detAbastoBoletos){ + det.setActivo(Boolean.FALSE); + session.update(det); + + if(++count % 20 == 0){ + session.flush(); + session.clear(); + } + } + + session.flush(); + session.clear(); + + } + + + } diff --git a/src/com/rjconsultores/ventaboletos/entidad/ControleEstoqueMigracao.java b/src/com/rjconsultores/ventaboletos/entidad/ControleEstoqueMigracao.java new file mode 100644 index 000000000..12e8e5e28 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/entidad/ControleEstoqueMigracao.java @@ -0,0 +1,81 @@ +package com.rjconsultores.ventaboletos.entidad; + +// Generated 26/10/2013 14:51:58 by Hibernate Tools 3.4.0.CR1 + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.SequenceGenerator; +import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +/** + * AbastoCentral generated by hbm2java + */ +@Entity +@Table(name = "CTRL_EST_MIGRACAO") +public class ControleEstoqueMigracao implements java.io.Serializable { + + private Long ctrlestmigracaoId; + private PuntoVenta puntoventa; + private Date fecmodif; + private Integer usuarioId; + + public ControleEstoqueMigracao() { + } + + public ControleEstoqueMigracao(PuntoVenta _puntoventa, Date _fecmodif, Integer _usuarioId) { + puntoventa = _puntoventa; + fecmodif = _fecmodif; + usuarioId = _usuarioId; + } + + @JoinColumn(name = "PUNTOVENTA_ID") + @ManyToOne + public PuntoVenta getPuntoventa() { + return this.puntoventa; + } + + public void setPuntoventa(PuntoVenta puntoventa) { + this.puntoventa = puntoventa; + } + + @Temporal(TemporalType.DATE) + @Column(name = "FECMODIF", length = 7) + public Date getFecmodif() { + return this.fecmodif; + } + + public void setFecmodif(Date fecmodif) { + this.fecmodif = fecmodif; + } + + @Column(name = "USUARIO_ID", precision = 7, scale = 0) + public Integer getUsuarioId() { + return this.usuarioId; + } + + public void setUsuarioId(Integer usuarioId) { + this.usuarioId = usuarioId; + } + + @SequenceGenerator(name = "CTRL_EST_MIGRACAO_SEQ", sequenceName = "CTRL_EST_MIGRACAO_SEQ", allocationSize = 1) + @Id + @GeneratedValue(strategy = GenerationType.AUTO, generator = "CTRL_EST_MIGRACAO_SEQ") + @Column(name = "CTRLESTMIGRACAO_ID", unique = true, nullable = false, precision = 15, scale = 0) + public Long getCtrlestmigracaoId() { + return ctrlestmigracaoId; + } + + public void setCtrlestmigracaoId(Long ctrlestmigracaoId) { + this.ctrlestmigracaoId = ctrlestmigracaoId; + } +} diff --git a/src/com/rjconsultores/ventaboletos/entidad/PuntoVenta.java b/src/com/rjconsultores/ventaboletos/entidad/PuntoVenta.java index c0168d723..739224ba0 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/PuntoVenta.java +++ b/src/com/rjconsultores/ventaboletos/entidad/PuntoVenta.java @@ -143,6 +143,9 @@ public class PuntoVenta implements Serializable { @ManyToOne private PtovtaTipoEstoque ptovtaTipoEstoque; + @Column(name = "USA_CRTL_EST_CENTRAL") + private Boolean usaCrtlEstCentral; + public PtovtaTipoEstoque getPtovtaTipoEstoque() { return ptovtaTipoEstoque; } @@ -588,4 +591,12 @@ public class PuntoVenta implements Serializable { this.puntoVentaPadre = puntoVentaPadre; } + public Boolean isUsaCrtlEstCentral() { + return usaCrtlEstCentral; + } + + public void setUsaCrtlEstCentral(Boolean usaCrtlEstCentral) { + this.usaCrtlEstCentral = usaCrtlEstCentral; + } + } diff --git a/src/com/rjconsultores/ventaboletos/entidad/TipoMovimentacion.java b/src/com/rjconsultores/ventaboletos/entidad/TipoMovimentacion.java index f6aac9cc5..5017cbdec 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/TipoMovimentacion.java +++ b/src/com/rjconsultores/ventaboletos/entidad/TipoMovimentacion.java @@ -27,6 +27,7 @@ public class TipoMovimentacion implements java.io.Serializable { public static final int TIPO_TRANSFERENCIA = 4; public static final int TIPO_PERDIDO = 5; public static final int TIPO_AJUSTE = 6; + public static final int TIPO_MIGRACAO = 99; private Integer tipomovimentacionId; private String desctipomovimentacion; diff --git a/src/com/rjconsultores/ventaboletos/service/AutorizaFolioService.java b/src/com/rjconsultores/ventaboletos/service/AutorizaFolioService.java index 6db44453f..8b4227d56 100644 --- a/src/com/rjconsultores/ventaboletos/service/AutorizaFolioService.java +++ b/src/com/rjconsultores/ventaboletos/service/AutorizaFolioService.java @@ -3,10 +3,11 @@ 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.TipoMovimentacion; public interface AutorizaFolioService { - - public Boolean noChequeFolioPreimpresos(Aidf aidf, Estacion estacion, String numfolioinicial, String numfoliofinal, String numseriepreimpresa, Empresa empresaUsuario); + + public Boolean noChequeFolioPreimpresos(Aidf aidf, Estacion origem, Estacion destino, String numfolioinicial, String numfoliofinal, String numseriepreimpresa, Empresa empresaUsuario, TipoMovimentacion tipoMovimentacion); public Boolean noChequeFolioPreimpresos(Estacion estacion); diff --git a/src/com/rjconsultores/ventaboletos/service/DetAbastoBoletoService.java b/src/com/rjconsultores/ventaboletos/service/DetAbastoBoletoService.java index 175b9de5b..0d387cbd9 100644 --- a/src/com/rjconsultores/ventaboletos/service/DetAbastoBoletoService.java +++ b/src/com/rjconsultores/ventaboletos/service/DetAbastoBoletoService.java @@ -1,9 +1,14 @@ package com.rjconsultores.ventaboletos.service; import com.rjconsultores.ventaboletos.entidad.DetAbastoBoleto; +import com.rjconsultores.ventaboletos.entidad.Estacion; public interface DetAbastoBoletoService extends GenericService { public Long getSecuencia(); + public void desabilitaDetAbastos(Estacion origem, String numfolioinicial, String numfoliofinal, String numseriepreimpresa); + + + } diff --git a/src/com/rjconsultores/ventaboletos/service/MigracaoControleEstoqueService.java b/src/com/rjconsultores/ventaboletos/service/MigracaoControleEstoqueService.java new file mode 100644 index 000000000..f56264c9c --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/service/MigracaoControleEstoqueService.java @@ -0,0 +1,10 @@ +package com.rjconsultores.ventaboletos.service; + +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; + +public interface MigracaoControleEstoqueService { + + public void migraDadosBoletosPuntoVenta(PuntoVenta puntoVenta); + + +} diff --git a/src/com/rjconsultores/ventaboletos/service/MovimentacionBilhetesService.java b/src/com/rjconsultores/ventaboletos/service/MovimentacionBilhetesService.java index bbca26e46..e7e4a967d 100644 --- a/src/com/rjconsultores/ventaboletos/service/MovimentacionBilhetesService.java +++ b/src/com/rjconsultores/ventaboletos/service/MovimentacionBilhetesService.java @@ -26,8 +26,6 @@ public interface MovimentacionBilhetesService { public PuntoVenta buscarAgContabilidade(); public List obtenerTiposMovimetacionPuntoVenta(); - public void realizaMovimentacionBilhetes(PuntoVenta puntoVentaBilhetes, Estacion origem, Estacion destino, TipoMovimentacion tipoMovimentacion); - public void realizaMovimentacionBilhetes(PuntoVenta puntoVentaBilhetes, Estacion origem, Estacion destino, String formInicial, Long cantidad, TipoMovimentacion tipoMovimentacion); - public void realizaMovimentacionBilhetes(PuntoVenta puntoVentaBilhetes, Estacion origem, Estacion destino, String formInicial, String formFinal, TipoMovimentacion tipoMovimentacion); + public void realizaMovimentacionBilhetes(PuntoVenta puntoVentaBilhetes, Estacion origem, Estacion destino, String numSerie, String formInicial, String formFinal, TipoMovimentacion tipoMovimentacion); } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/AutorizaFolioServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/AutorizaFolioServiceImpl.java index 87d3bf72a..8793b3f38 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/AutorizaFolioServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/AutorizaFolioServiceImpl.java @@ -18,6 +18,7 @@ import com.rjconsultores.ventaboletos.entidad.Estacion; import com.rjconsultores.ventaboletos.entidad.FolioPreimpreso; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.RequisicionBoleto; +import com.rjconsultores.ventaboletos.entidad.TipoMovimentacion; import com.rjconsultores.ventaboletos.service.AbastoBoletoService; import com.rjconsultores.ventaboletos.service.ArticuloService; import com.rjconsultores.ventaboletos.service.AutorizaFolioService; @@ -41,28 +42,38 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService { private FolioPreimpresoService folioPreimpresoService; @Override - public Boolean noChequeFolioPreimpresos(Aidf aidf, Estacion estacion, String numfolioinicial, String numfoliofinal, String numseriepreimpresa, Empresa empresaUsuario) { + public Boolean noChequeFolioPreimpresos(Aidf aidf, Estacion origem, Estacion destino, String numfolioinicial, String numfoliofinal, String numseriepreimpresa, + Empresa empresaUsuario, TipoMovimentacion tipoMovimentacion) { - FolioPreimpreso folio = folioPreimpresoService.buscaFolioPreImpressoEstacionImpresora(estacion, empresaUsuario); - - RequisicionBoleto requisicionBoleto = geraRequisicionBoleto(aidf, estacion, empresaUsuario); - AbastoBoleto abastoBoleto = geraAbastoBoleto(requisicionBoleto); - DetAbastoBoleto detAbastoBoleto = geraDetAbastoBoleto(abastoBoleto, numfolioinicial, numfoliofinal, numseriepreimpresa); - actualizaStatusRequisicion(requisicionBoleto); - - if (folio == null) { + if(TipoMovimentacion.TIPO_ENVIO == tipoMovimentacion.getTipomovimentacionId() || + TipoMovimentacion.TIPO_TRANSFERENCIA == tipoMovimentacion.getTipomovimentacionId()){ - FolioPreimpreso folioPreimpreso = geraFolioPreimpreso(detAbastoBoleto, numfolioinicial); + FolioPreimpreso folio = folioPreimpresoService.buscaFolioPreImpressoEstacionImpresora(destino, empresaUsuario); - if (folioPreimpreso.getFoliopreimpresoId() == null) { - return Boolean.FALSE; + RequisicionBoleto requisicionBoleto = geraRequisicionBoleto(aidf, destino, empresaUsuario); + AbastoBoleto abastoBoleto = geraAbastoBoleto(requisicionBoleto); + DetAbastoBoleto detAbastoBoleto = geraDetAbastoBoleto(abastoBoleto, numfolioinicial, numfoliofinal, numseriepreimpresa); + actualizaStatusRequisicion(requisicionBoleto); + + if (folio == null) { + + FolioPreimpreso folioPreimpreso = geraFolioPreimpreso(detAbastoBoleto, numfolioinicial); + + if (folioPreimpreso.getFoliopreimpresoId() == null) + return Boolean.FALSE; + + } else { + actualizaFolioPreimpreso(folio, numseriepreimpresa, numfolioinicial); } - } else { - - actualizaFolioPreimpreso(folio, numseriepreimpresa, numfolioinicial); - } + if(TipoMovimentacion.TIPO_TRANSFERENCIA == tipoMovimentacion.getTipomovimentacionId() || + TipoMovimentacion.TIPO_VOLVER == tipoMovimentacion.getTipomovimentacionId() || + TipoMovimentacion.TIPO_PERDIDO == tipoMovimentacion.getTipomovimentacionId()) + + detAbastoBoletoService.desabilitaDetAbastos(origem, numfolioinicial, numfoliofinal, numseriepreimpresa); + + return Boolean.TRUE; } @@ -107,7 +118,7 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService { return detAbastoBoletoService.suscribir(detAbastoBoleto); } - + private void actualizaStatusRequisicion(RequisicionBoleto requisicionBoleto) { requisicionBoleto.setStatusenvio(Boolean.FALSE); requisicionBoletoService.actualizacion(requisicionBoleto); diff --git a/src/com/rjconsultores/ventaboletos/service/impl/DetAbastoBoletoServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/DetAbastoBoletoServiceImpl.java index 63cd5c4a9..eb44caff0 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/DetAbastoBoletoServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/DetAbastoBoletoServiceImpl.java @@ -3,12 +3,15 @@ package com.rjconsultores.ventaboletos.service.impl; import java.util.Calendar; import java.util.List; +import org.hibernate.Session; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.rjconsultores.ventaboletos.dao.DetAbastoBoletoDAO; +import com.rjconsultores.ventaboletos.entidad.AbastoCentral; import com.rjconsultores.ventaboletos.entidad.DetAbastoBoleto; +import com.rjconsultores.ventaboletos.entidad.Estacion; import com.rjconsultores.ventaboletos.service.DetAbastoBoletoService; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; @@ -60,4 +63,22 @@ public class DetAbastoBoletoServiceImpl implements DetAbastoBoletoService { return detAbastoBoletoDAO.getSecuencia(); } + @Override + public void desabilitaDetAbastos(Estacion origem, String numfolioinicial, String numfoliofinal, String numseriepreimpresa) { + + List detAbastoBoletos = detAbastoBoletoDAO.buscaDetAbastoBoletos(origem, numfolioinicial, numfoliofinal, numseriepreimpresa); + + detAbastoBoletoDAO.desativaDetAbastos(detAbastoBoletos); + + DetAbastoBoleto detAbastoBoletoInicial = detAbastoBoletos.get(0); + detAbastoBoletoInicial.setNumfoliofinal(numfolioinicial); + detAbastoBoletoInicial.setActivo(Boolean.TRUE); + detAbastoBoletoDAO.actualizacion(detAbastoBoletoInicial); + + DetAbastoBoleto detAbastoBoletoFinal = detAbastoBoletos.get(detAbastoBoletos.size() - 1); + detAbastoBoletoFinal.setNumfolioinicial(numfoliofinal); + detAbastoBoletoFinal.setActivo(Boolean.TRUE); + detAbastoBoletoDAO.actualizacion(detAbastoBoletoFinal); + } + } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/MigracaoControleEstoqueServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/MigracaoControleEstoqueServiceImpl.java new file mode 100644 index 000000000..1c6ab1107 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/service/impl/MigracaoControleEstoqueServiceImpl.java @@ -0,0 +1,155 @@ +package com.rjconsultores.ventaboletos.service.impl; + +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.rjconsultores.ventaboletos.dao.AbastoBoletoDAO; +import com.rjconsultores.ventaboletos.dao.AbastoCentralDAO; +import com.rjconsultores.ventaboletos.dao.AbastoHistoDAO; +import com.rjconsultores.ventaboletos.dao.AidfDAO; +import com.rjconsultores.ventaboletos.dao.DetAbastoBoletoDAO; +import com.rjconsultores.ventaboletos.dao.PuntoVentaDAO; +import com.rjconsultores.ventaboletos.dao.TipoMovimentacionDAO; +import com.rjconsultores.ventaboletos.entidad.AbastoBoleto; +import com.rjconsultores.ventaboletos.entidad.AbastoCentral; +import com.rjconsultores.ventaboletos.entidad.Aidf; +import com.rjconsultores.ventaboletos.entidad.ControleEstoqueMigracao; +import com.rjconsultores.ventaboletos.entidad.DetAbastoBoleto; +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; +import com.rjconsultores.ventaboletos.entidad.TipoMovimentacion; +import com.rjconsultores.ventaboletos.service.AbastoCentralService; +import com.rjconsultores.ventaboletos.service.MigracaoControleEstoqueService; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; + +@Service("migracaoControleEstoqueService") +public class MigracaoControleEstoqueServiceImpl implements MigracaoControleEstoqueService { + + + @Autowired + private AbastoBoletoDAO abastoBoletoDAO; + + @Autowired + private DetAbastoBoletoDAO detAbastoBoletoDAO; + + @Autowired + private AidfDAO aidfDAO; + + @Autowired + private AbastoCentralDAO abastoCentralDAO; + + @Autowired + private AbastoHistoDAO abastoHistoDAO; + + @Autowired + private TipoMovimentacionDAO tipoMovimentacionDAO; + + @Autowired + private PuntoVentaDAO puntoVentaDAO; + + public MigracaoControleEstoqueServiceImpl() { + } + + @Transactional + public void migraDadosBoletosPuntoVenta(PuntoVenta puntoVenta){ + puntoVentaDAO.actualizacion(puntoVenta); + } + + @Transactional + public void migraDadosBoletosPuntoVentaAutomatico(PuntoVenta puntoVenta){ + + List abastoBoletos = abastoBoletoDAO.buscaAbastoBoletoPorPuntoVenta(puntoVenta); + + List empresas = new ArrayList(); + empresas.add(puntoVenta.getEmpresa()); + + List aidfs = aidfDAO.buscaAidfsPorEmpresas(empresas); + + Map> abastoBoletosPorAidf = new HashMap>(); + + for(AbastoBoleto abastoBoleto: abastoBoletos){ + + List detAbastoBoletos = detAbastoBoletoDAO.buscaDetAbastoBoletos(abastoBoleto); + + for(Aidf aidf : aidfs){ + + if(!abastoBoletosPorAidf.containsKey(aidf)) + abastoBoletosPorAidf.put(aidf, new ArrayList()); + + for(DetAbastoBoleto detAbastoBoleto : detAbastoBoletos){ + + String serieDetAbastoBoleto = detAbastoBoleto.getNumseriepreimpresa(); + Long numFolioInicialDetAbastoBoleto = Long.valueOf(detAbastoBoleto.getNumfolioinicial()); + Long numFolioFinalDetAbastoBoleto = Long.valueOf(detAbastoBoleto.getNumfoliofinal()); + + Long numFolioInicialAidf = Long.valueOf(aidf.getForminicial()); + Long numFolioFinalAidf = Long.valueOf(aidf.getFormfinal()); + + if(serieDetAbastoBoleto.equals(aidf.getSerie()) + && numFolioInicialDetAbastoBoleto >= numFolioInicialAidf + && numFolioFinalDetAbastoBoleto <= numFolioFinalAidf){ + + abastoBoletosPorAidf.get(aidf).add(detAbastoBoleto); + } + } + } + } + + Iterator>> boletosIt = abastoBoletosPorAidf.entrySet().iterator(); + + List boletosAMigrar = new ArrayList(); + + Integer usuarioId = UsuarioLogado.getUsuarioLogado().getUsuarioId(); + Date fecmodif = new Date(); + + while(boletosIt.hasNext()){ + + Entry> boletosPorAidf = boletosIt.next(); + + Aidf aidf = boletosPorAidf.getKey(); + List detAbastoBoletos = boletosPorAidf.getValue(); + + for(DetAbastoBoleto detAbastoBoleto : detAbastoBoletos){ + + String serieDetAbastoBoleto = detAbastoBoleto.getNumseriepreimpresa(); + Long numFolioInicialDetAbastoBoleto = Long.valueOf(detAbastoBoleto.getNumfolioinicial()); + Long numFolioFinalDetAbastoBoleto = Long.valueOf(detAbastoBoleto.getNumfoliofinal()); + + int numBoletos = (int)(numFolioFinalDetAbastoBoleto - numFolioInicialDetAbastoBoleto); + + Boolean activo = detAbastoBoleto.getActivo(); + String numsubseriepreimpreso = ""; + + for(int contBoletos = 0 ; contBoletos < numBoletos; contBoletos++ ){ + + String numfoliopreimpreso = (numFolioInicialDetAbastoBoleto + contBoletos)+""; + + AbastoCentral boletoAMigrar = new AbastoCentral( + aidf, serieDetAbastoBoleto, numfoliopreimpreso, numsubseriepreimpreso, + puntoVenta, activo, fecmodif, usuarioId); + + boletosAMigrar.add(boletoAMigrar); + } + } + } + + abastoCentralDAO.suscribirBilhetes(boletosAMigrar); + + TipoMovimentacion tipoMovMigracao = tipoMovimentacionDAO.buscarTipoMovimentacio(TipoMovimentacion.TIPO_MIGRACAO); + abastoHistoDAO.grabaHistoricoBilhetes(boletosAMigrar, tipoMovMigracao); + + + abastoCentralDAO.gravaControleEstoqueMigracao(puntoVenta, fecmodif, usuarioId); + } + +} diff --git a/src/com/rjconsultores/ventaboletos/service/impl/MovimentacionBilhetesServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/MovimentacionBilhetesServiceImpl.java index 4596ee273..c73f9c417 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/MovimentacionBilhetesServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/MovimentacionBilhetesServiceImpl.java @@ -162,38 +162,14 @@ public class MovimentacionBilhetesServiceImpl implements MovimentacionBilhetesSe } @Transactional - public void realizaMovimentacionBilhetes(PuntoVenta puntoVentaBilhetes, Estacion origem, Estacion destino, TipoMovimentacion tipoMovimentacion) { - List bilhetes = abastoCentralDAO.obtenerBilhetesPorPuntoVenta(puntoVentaBilhetes, origem); + public void realizaMovimentacionBilhetes(PuntoVenta puntoVentaBilhetes, Estacion origem, Estacion destino, String numSerie, String formInicial, String formFinal, TipoMovimentacion tipoMovimentacion) { + + List bilhetes = abastoCentralDAO.obtenerBilhetesPorPuntoVenta(numSerie, formInicial, formFinal, 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 - public void realizaMovimentacionBilhetes(PuntoVenta puntoVentaBilhetes, Estacion origem, Estacion destino, String _formInicial, Long cantidad, TipoMovimentacion tipoMovimentacion) { - - Long formInicial = Long.valueOf(_formInicial); - Long formFinal = formInicial + cantidad.longValue(); - - realizaMovimentacionBilhetes(puntoVentaBilhetes, origem, destino, formInicial.toString(), formFinal.toString(), tipoMovimentacion); - } - - @Transactional - public void realizaMovimentacionBilhetes(PuntoVenta puntoVentaBilhetes, Estacion origem, Estacion destino, String formInicial, String formFinal, TipoMovimentacion tipoMovimentacion) { - - List bilhetes = abastoCentralDAO.obtenerBilhetesPorPuntoVenta(formInicial, formFinal, puntoVentaBilhetes, origem); - atualizaBilhetesEGrabaHistorico(bilhetes, destino, tipoMovimentacion); - - if(origem == null) //envio - geraRequisicionBilhetesEstacion(bilhetes, destino, formInicial, formFinal); - + trataRequisicionBilhetesEstacion(bilhetes, origem, destino, formInicial, formFinal, tipoMovimentacion); } - private void geraRequisicionBilhetesEstacion(List bilhetes, Estacion destino, String numfolioinicial, String numfoliofinal){ + private void trataRequisicionBilhetesEstacion(List bilhetes, Estacion origem, Estacion destino, String numfolioinicial, String numfoliofinal, TipoMovimentacion tipoMovimentacion){ Aidf aidfCorrente = null; @@ -202,7 +178,7 @@ public class MovimentacionBilhetesServiceImpl implements MovimentacionBilhetesSe 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()); + autorizaFolioService.noChequeFolioPreimpresos(aidfCorrente, origem, destino, numfolioinicial, numfoliofinal, numseriepreimpresa, aidfCorrente.getEmpresa(), tipoMovimentacion); } } }