From 1a6020d1c1b0f1058e2dce292bd51f9cc16f7d86 Mon Sep 17 00:00:00 2001 From: julio Date: Thu, 13 Nov 2014 18:45:25 +0000 Subject: [PATCH] =?UTF-8?q?baixa=20autom=C3=A1tica?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Automatizar a checagem do folio para empresa que usa impressora fiscal (fixes bug #5785) Tempo: 03 horas git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@39555 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/dao/DetAbastoBoletoDAO.java | 4 +- .../DetAbastoBoletoHibernateDAO.java | 59 +++++++++++-------- .../service/AutorizaFolioService.java | 2 + .../service/DetAbastoBoletoService.java | 5 +- .../ventaboletos/service/EstacionService.java | 3 + .../impl/AutorizaFolioServiceImpl.java | 22 ++++++- .../impl/DetAbastoBoletoServiceImpl.java | 21 ++++--- .../service/impl/EstacionServiceImpl.java | 8 +++ 8 files changed, 87 insertions(+), 37 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/dao/DetAbastoBoletoDAO.java b/src/com/rjconsultores/ventaboletos/dao/DetAbastoBoletoDAO.java index 66bea16f4..4a1724e59 100644 --- a/src/com/rjconsultores/ventaboletos/dao/DetAbastoBoletoDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/DetAbastoBoletoDAO.java @@ -3,10 +3,8 @@ 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 { @@ -17,5 +15,7 @@ public interface DetAbastoBoletoDAO extends GenericDAO public List buscaDetAbastoBoletos(Estacion origem, String numfolioinicial, String numfoliofinal, String numseriepreimpresa); public void desativaDetAbastos(List detAbastoBoletos); + + public List buscabDetAbastoBoletoAutomatico(Estacion estacion, String numseriepreimpresa); } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/DetAbastoBoletoHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/DetAbastoBoletoHibernateDAO.java index fba0f5d28..fd2fc88c4 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/DetAbastoBoletoHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/DetAbastoBoletoHibernateDAO.java @@ -3,8 +3,6 @@ package com.rjconsultores.ventaboletos.dao.hibernate; import java.math.BigDecimal; import java.util.List; -import javax.persistence.Column; - import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; @@ -16,7 +14,6 @@ import org.springframework.transaction.annotation.Transactional; import com.rjconsultores.ventaboletos.dao.DetAbastoBoletoDAO; import com.rjconsultores.ventaboletos.entidad.AbastoBoleto; -import com.rjconsultores.ventaboletos.entidad.AbastoCentral; import com.rjconsultores.ventaboletos.entidad.DetAbastoBoleto; import com.rjconsultores.ventaboletos.entidad.Estacion; @@ -44,53 +41,69 @@ 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"); - + .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(); - + Session session = getSessionFactory().getCurrentSession(); + int count = 0; - - for(DetAbastoBoleto det : detAbastoBoletos){ + + for (DetAbastoBoleto det : detAbastoBoletos) { det.setActivo(Boolean.FALSE); session.update(det); - - if(++count % 20 == 0){ + + if (++count % 20 == 0) { session.flush(); session.clear(); } } - + session.flush(); session.clear(); - + + } + + @Override + public List buscabDetAbastoBoletoAutomatico(Estacion estacion, String numseriepreimpresa) { + + StringBuilder qs = new StringBuilder(); + qs.append(" from DetAbastoBoleto det "); + qs.append(" where det.activo = 1 "); + qs.append(" and det.statusoperacion = 1 "); + qs.append(" and det.abastoBoleto.estacion.estacionId = :estacion "); + qs.append(" and det.numseriepreimpresa = :numseriepreimpresa "); + + Query query = getSession().createQuery(qs.toString()); + query.setInteger("estacion", estacion.getEstacionId()); + query.setString("numseriepreimpresa", numseriepreimpresa); + + List detAbastoBoletos = query.list(); + + return detAbastoBoletos; } - - } diff --git a/src/com/rjconsultores/ventaboletos/service/AutorizaFolioService.java b/src/com/rjconsultores/ventaboletos/service/AutorizaFolioService.java index 262d3d588..ac879b831 100644 --- a/src/com/rjconsultores/ventaboletos/service/AutorizaFolioService.java +++ b/src/com/rjconsultores/ventaboletos/service/AutorizaFolioService.java @@ -12,4 +12,6 @@ public interface AutorizaFolioService { public String noChequeFolioPreimpresos(EstacionImpresora estacionImpresora, boolean isImpressoraFiscal); + public void devolverFoliosAutomaticosImpressoraFiscal(EstacionImpresora ei); + } diff --git a/src/com/rjconsultores/ventaboletos/service/DetAbastoBoletoService.java b/src/com/rjconsultores/ventaboletos/service/DetAbastoBoletoService.java index 0d387cbd9..9ec775bca 100644 --- a/src/com/rjconsultores/ventaboletos/service/DetAbastoBoletoService.java +++ b/src/com/rjconsultores/ventaboletos/service/DetAbastoBoletoService.java @@ -1,5 +1,7 @@ package com.rjconsultores.ventaboletos.service; +import java.util.List; + import com.rjconsultores.ventaboletos.entidad.DetAbastoBoleto; import com.rjconsultores.ventaboletos.entidad.Estacion; @@ -8,7 +10,6 @@ public interface DetAbastoBoletoService extends GenericService buscabDetAbastoBoletoAutomatico(Estacion estacion, String numseriepreimpresa); } diff --git a/src/com/rjconsultores/ventaboletos/service/EstacionService.java b/src/com/rjconsultores/ventaboletos/service/EstacionService.java index 302d5a0c4..2f8f8a301 100644 --- a/src/com/rjconsultores/ventaboletos/service/EstacionService.java +++ b/src/com/rjconsultores/ventaboletos/service/EstacionService.java @@ -7,6 +7,7 @@ package com.rjconsultores.ventaboletos.service; import java.util.List; import com.rjconsultores.ventaboletos.entidad.Estacion; +import com.rjconsultores.ventaboletos.entidad.EstacionImpresora; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.exception.BusinessException; @@ -40,4 +41,6 @@ public interface EstacionService { public List buscarEstaciones(PuntoVenta puntoVenta); + public void devolverFoliosAutomaticosImpressoraFiscal(EstacionImpresora ei); + } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/AutorizaFolioServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/AutorizaFolioServiceImpl.java index 2e34e7324..85e94bf9e 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/AutorizaFolioServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/AutorizaFolioServiceImpl.java @@ -2,6 +2,7 @@ package com.rjconsultores.ventaboletos.service.impl; import java.util.Calendar; import java.util.Date; +import java.util.List; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; @@ -45,6 +46,25 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService { @Autowired private FolioPreimpresoService folioPreimpresoService; + @Override + public void devolverFoliosAutomaticosImpressoraFiscal(final EstacionImpresora ei) { + + Empresa empresa = ei.getEmpresa(); + FolioPreimpreso folio = folioPreimpresoService.buscaFolioPreImpressoEstacionImpresora(ei.getEstacion(), empresa); + + if (folio != null) { + List lsDetAbasto = detAbastoBoletoService.buscabDetAbastoBoletoAutomatico(ei.getEstacion(), folio.getNumeserie()); + if (!lsDetAbasto.isEmpty()) { + + DetAbastoBoleto dab = lsDetAbasto.get(0); + + abastoBoletoService.borrar(dab.getAbastoBoleto()); + detAbastoBoletoService.borrar(dab); + folioPreimpresoService.borrar(folio); + } + } + } + @Override public Boolean noChequeFolioPreimpresos(Aidf aidf, Estacion origem, Estacion destino, String numfolioinicial, String numfoliofinal, String numseriepreimpresa, Empresa empresaUsuario, TipoMovimentacion tipoMovimentacion) { @@ -168,7 +188,7 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService { AbastoBoleto abastoBoleto = geraAbastoBoleto(requisicionBoleto); DetAbastoBoleto detAbastoBoleto = geraDetAbastoBoleto(abastoBoleto); actualizaStatusRequisicion(requisicionBoleto); - + FolioPreimpreso folioPreimpreso = geraFolioPreimpreso(detAbastoBoleto); if (folioPreimpreso.getFoliopreimpresoId() == null) { return "MSG.Error"; diff --git a/src/com/rjconsultores/ventaboletos/service/impl/DetAbastoBoletoServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/DetAbastoBoletoServiceImpl.java index 9ef82feb6..4931c1827 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/DetAbastoBoletoServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/DetAbastoBoletoServiceImpl.java @@ -3,13 +3,11 @@ 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; @@ -65,22 +63,27 @@ public class DetAbastoBoletoServiceImpl implements DetAbastoBoletoService { @Override public void desabilitaDetAbastos(Estacion origem, String numfolioinicial, String numfoliofinal, String numseriepreimpresa) { - + List detAbastoBoletos = detAbastoBoletoDAO.buscaDetAbastoBoletos(origem, numfolioinicial, numfoliofinal, numseriepreimpresa); - - if(!detAbastoBoletos.isEmpty()){ + + if (!detAbastoBoletos.isEmpty()) { detAbastoBoletoDAO.desativaDetAbastos(detAbastoBoletos); - - DetAbastoBoleto detAbastoBoletoInicial = detAbastoBoletos.get(0); + + 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); - } + } + } + + @Override + public List buscabDetAbastoBoletoAutomatico(Estacion estacion, String numseriepreimpresa) { + return detAbastoBoletoDAO.buscabDetAbastoBoletoAutomatico(estacion, numseriepreimpresa); } } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/EstacionServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/EstacionServiceImpl.java index 644ed3d1e..05cbb1205 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/EstacionServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/EstacionServiceImpl.java @@ -111,6 +111,14 @@ public class EstacionServiceImpl implements EstacionService { else return false; } + + @Override + public void devolverFoliosAutomaticosImpressoraFiscal(final EstacionImpresora ei) { + + if (ei.getNombImpresora().equals(BEMATECH_FISCAL)) { + autorizaFolioService.devolverFoliosAutomaticosImpressoraFiscal(ei); + } + } private void validarEstoqueUpdate(Estacion estacion) throws BusinessException {