Automatizar a checagem do folio para empresa que usa impressora fiscal (bug #5785)

Tempo: 05 horas

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@39309 d1611594-4594-4d17-8e1d-87c2c4800839
master
julio 2014-11-10 12:55:10 +00:00
parent 54ecf74e15
commit c40fd0a8b7
3 changed files with 63 additions and 50 deletions

View File

@ -3,12 +3,13 @@ package com.rjconsultores.ventaboletos.service;
import com.rjconsultores.ventaboletos.entidad.Aidf; import com.rjconsultores.ventaboletos.entidad.Aidf;
import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.Estacion; import com.rjconsultores.ventaboletos.entidad.Estacion;
import com.rjconsultores.ventaboletos.entidad.EstacionImpresora;
import com.rjconsultores.ventaboletos.entidad.TipoMovimentacion; import com.rjconsultores.ventaboletos.entidad.TipoMovimentacion;
public interface AutorizaFolioService { public interface AutorizaFolioService {
public Boolean noChequeFolioPreimpresos(Aidf aidf, Estacion origem, Estacion destino, String numfolioinicial, String numfoliofinal, String numseriepreimpresa, Empresa empresaUsuario, TipoMovimentacion tipoMovimentacion); public Boolean noChequeFolioPreimpresos(Aidf aidf, Estacion origem, Estacion destino, String numfolioinicial, String numfoliofinal, String numseriepreimpresa, Empresa empresaUsuario, TipoMovimentacion tipoMovimentacion);
public Boolean noChequeFolioPreimpresos(Estacion estacion); public String noChequeFolioPreimpresos(EstacionImpresora estacionImpresora, boolean isImpressoraFiscal);
} }

View File

@ -3,6 +3,7 @@ package com.rjconsultores.ventaboletos.service.impl;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils; import org.apache.commons.lang.math.NumberUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -59,7 +60,6 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService {
actualizaStatusRequisicion(requisicionBoleto); actualizaStatusRequisicion(requisicionBoleto);
if (folio == null) { if (folio == null) {
FolioPreimpreso folioPreimpreso = geraFolioPreimpreso(detAbastoBoleto, numfolioinicial); FolioPreimpreso folioPreimpreso = geraFolioPreimpreso(detAbastoBoleto, numfolioinicial);
if (folioPreimpreso.getFoliopreimpresoId() == null) if (folioPreimpreso.getFoliopreimpresoId() == null)
@ -76,7 +76,6 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService {
detAbastoBoletoService.desabilitaDetAbastos(origem, numfolioinicial, numfoliofinal, numseriepreimpresa); detAbastoBoletoService.desabilitaDetAbastos(origem, numfolioinicial, numfoliofinal, numseriepreimpresa);
return Boolean.TRUE; return Boolean.TRUE;
} }
@ -103,10 +102,6 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService {
private DetAbastoBoleto geraDetAbastoBoleto(AbastoBoleto abastoBoleto, String numfolioinicial, String numfoliofinal, String numseriepreimpresa) { 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 numfolioinicial = INICIO_FOLIO.toString();
// String numfoliofinal = MAX_CANT_FOLIOS.toString();
Long nummovimiento = detAbastoBoletoService.getSecuencia(); Long nummovimiento = detAbastoBoletoService.getSecuencia();
DetAbastoBoleto detAbastoBoleto = new DetAbastoBoleto(); DetAbastoBoleto detAbastoBoleto = new DetAbastoBoleto();
@ -151,38 +146,36 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService {
return folioPreimpresoService.actualizacion(folioPreimpreso); return folioPreimpresoService.actualizacion(folioPreimpreso);
} }
@Override @Override
public Boolean noChequeFolioPreimpresos(Estacion estacion) { public String noChequeFolioPreimpresos(EstacionImpresora estacionImpresora, boolean isImpressoraFiscal) {
for (EstacionImpresora estacionImpresora : estacion.getLsEstacionImpresora()) {
Empresa empresa = estacionImpresora.getEmpresa(); Empresa empresa = estacionImpresora.getEmpresa();
FolioPreimpreso folio = folioPreimpresoService.buscaFolioPreImpressoEstacionImpresora(estacionImpresora.getEstacion(), empresa);
FolioPreimpreso folio = folioPreimpresoService.buscaFolioPreImpressoEstacionImpresora(estacion, empresa); // condição para qd o folio foi gerado indevidamente pelo cliente de venda.
// antes de a rotina abaixo ter sido executada se o numserie é 0, é um folio inválido
//condição para qd o folio foi gerado indevidamente pelo cliente de venda. Antes de a rotina abaixo ter sido executada
//se o numserie é 0, é um folio inválido
if ((folio != null) && (folio.getNumeserie().equals("0"))) { if ((folio != null) && (folio.getNumeserie().equals("0"))) {
folioPreimpresoService.borrar(folio); folioPreimpresoService.borrar(folio);
folio = null; folio = null;
} }
if ( folio == null ) { if ((folio != null) && isImpressoraFiscal) {
return "estacionServiceImpl.msg.noChequeFolioPreimpresos";
}
RequisicionBoleto requisicionBoleto = geraRequisicionBoleto(estacion, empresa); if (folio == null) {
RequisicionBoleto requisicionBoleto = geraRequisicionBoleto(estacionImpresora.getEstacion(), empresa);
AbastoBoleto abastoBoleto = geraAbastoBoleto(requisicionBoleto); AbastoBoleto abastoBoleto = geraAbastoBoleto(requisicionBoleto);
DetAbastoBoleto detAbastoBoleto = geraDetAbastoBoleto(abastoBoleto); DetAbastoBoleto detAbastoBoleto = geraDetAbastoBoleto(abastoBoleto);
actualizaStatusRequisicion(requisicionBoleto); actualizaStatusRequisicion(requisicionBoleto);
FolioPreimpreso folioPreimpreso = geraFolioPreimpreso(detAbastoBoleto); FolioPreimpreso folioPreimpreso = geraFolioPreimpreso(detAbastoBoleto);
if (folioPreimpreso.getFoliopreimpresoId() == null) { if (folioPreimpreso.getFoliopreimpresoId() == null) {
return Boolean.FALSE; return "MSG.Error";
} }
} }
}
return Boolean.TRUE;
return StringUtils.EMPTY;
} }
private RequisicionBoleto geraRequisicionBoleto(Estacion estacion, Empresa empresa) { private RequisicionBoleto geraRequisicionBoleto(Estacion estacion, Empresa empresa) {

View File

@ -7,12 +7,14 @@ package com.rjconsultores.ventaboletos.service.impl;
import java.util.Calendar; import java.util.Calendar;
import java.util.List; import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import com.rjconsultores.ventaboletos.dao.EstacionDAO; import com.rjconsultores.ventaboletos.dao.EstacionDAO;
import com.rjconsultores.ventaboletos.entidad.Estacion; import com.rjconsultores.ventaboletos.entidad.Estacion;
import com.rjconsultores.ventaboletos.entidad.EstacionImpresora;
import com.rjconsultores.ventaboletos.entidad.EstacionSitef; import com.rjconsultores.ventaboletos.entidad.EstacionSitef;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
import com.rjconsultores.ventaboletos.exception.BusinessException; import com.rjconsultores.ventaboletos.exception.BusinessException;
@ -34,6 +36,8 @@ public class EstacionServiceImpl implements EstacionService {
@Autowired @Autowired
private AutorizaFolioService autorizaFolioService; private AutorizaFolioService autorizaFolioService;
public static final String BEMATECH_FISCAL = "BEMATECHFISCAL";
public List<Estacion> obtenerTodos() { public List<Estacion> obtenerTodos() {
return estacionDAO.obtenerTodos(); return estacionDAO.obtenerTodos();
} }
@ -79,18 +83,33 @@ public class EstacionServiceImpl implements EstacionService {
estacion.setFecmodif(Calendar.getInstance().getTime()); estacion.setFecmodif(Calendar.getInstance().getTime());
estacion.setActivo(Boolean.TRUE); estacion.setActivo(Boolean.TRUE);
String errorNoChequeFolio = null;
for (EstacionImpresora ei : estacion.getLsEstacionImpresora()) {
if (ApplicationProperties.getInstance().generarRotinaFolios())
errorNoChequeFolio = autorizaFolioService.noChequeFolioPreimpresos(ei, false);
if (validacionImpressoraFiscal(ei))
errorNoChequeFolio = autorizaFolioService.noChequeFolioPreimpresos(ei, true);
}
if (estacion.getEstacionId() == null) { if (estacion.getEstacionId() == null) {
estacion = estacionDAO.suscribir(estacion); estacion = estacionDAO.suscribir(estacion);
} else { } else {
estacion = estacionDAO.actualizacion(estacion); estacion = estacionDAO.actualizacion(estacion);
} }
if (ApplicationProperties.getInstance().generarRotinaFolios()) { if (StringUtils.isNotBlank(errorNoChequeFolio)) {
autorizaFolioService.noChequeFolioPreimpresos(estacion); throw new BusinessException(errorNoChequeFolio);
} }
return estacion; return estacion;
}
private boolean validacionImpressoraFiscal(final EstacionImpresora ei) {
if (ei.getNombImpresora().equals(BEMATECH_FISCAL))
return true;
else
return false;
} }
private void validarEstoqueUpdate(Estacion estacion) throws BusinessException { private void validarEstoqueUpdate(Estacion estacion) throws BusinessException {