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.Empresa;
import com.rjconsultores.ventaboletos.entidad.Estacion;
import com.rjconsultores.ventaboletos.entidad.EstacionImpresora;
import com.rjconsultores.ventaboletos.entidad.TipoMovimentacion;
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(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.Date;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -48,8 +49,8 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService {
public Boolean noChequeFolioPreimpresos(Aidf aidf, Estacion origem, Estacion destino, String numfolioinicial, String numfoliofinal, String numseriepreimpresa,
Empresa empresaUsuario, TipoMovimentacion tipoMovimentacion) {
if(TipoMovimentacion.TIPO_ENVIO == tipoMovimentacion.getTipomovimentacionId() ||
TipoMovimentacion.TIPO_TRANSFERENCIA == tipoMovimentacion.getTipomovimentacionId()){
if (TipoMovimentacion.TIPO_ENVIO == tipoMovimentacion.getTipomovimentacionId() ||
TipoMovimentacion.TIPO_TRANSFERENCIA == tipoMovimentacion.getTipomovimentacionId()) {
FolioPreimpreso folio = folioPreimpresoService.buscaFolioPreImpressoEstacionImpresora(destino, empresaUsuario);
@ -59,7 +60,6 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService {
actualizaStatusRequisicion(requisicionBoleto);
if (folio == null) {
FolioPreimpreso folioPreimpreso = geraFolioPreimpreso(detAbastoBoleto, numfolioinicial);
if (folioPreimpreso.getFoliopreimpresoId() == null)
@ -70,13 +70,12 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService {
}
}
if(TipoMovimentacion.TIPO_TRANSFERENCIA == tipoMovimentacion.getTipomovimentacionId() ||
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;
}
@ -103,10 +102,6 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService {
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();
Long nummovimiento = detAbastoBoletoService.getSecuencia();
DetAbastoBoleto detAbastoBoleto = new DetAbastoBoleto();
@ -151,38 +146,36 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService {
return folioPreimpresoService.actualizacion(folioPreimpreso);
}
@Override
public Boolean noChequeFolioPreimpresos(Estacion estacion) {
public String noChequeFolioPreimpresos(EstacionImpresora estacionImpresora, boolean isImpressoraFiscal) {
Empresa empresa = estacionImpresora.getEmpresa();
FolioPreimpreso folio = folioPreimpresoService.buscaFolioPreImpressoEstacionImpresora(estacionImpresora.getEstacion(), empresa);
for (EstacionImpresora estacionImpresora : estacion.getLsEstacionImpresora()) {
Empresa empresa = estacionImpresora .getEmpresa();
// 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"))) {
folioPreimpresoService.borrar(folio);
folio = null;
}
FolioPreimpreso folio = folioPreimpresoService.buscaFolioPreImpressoEstacionImpresora(estacion, empresa);
if ((folio != null) && isImpressoraFiscal) {
return "estacionServiceImpl.msg.noChequeFolioPreimpresos";
}
//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"))) {
folioPreimpresoService.borrar(folio);
folio = null;
}
if (folio == null) {
RequisicionBoleto requisicionBoleto = geraRequisicionBoleto(estacionImpresora.getEstacion(), empresa);
AbastoBoleto abastoBoleto = geraAbastoBoleto(requisicionBoleto);
DetAbastoBoleto detAbastoBoleto = geraDetAbastoBoleto(abastoBoleto);
actualizaStatusRequisicion(requisicionBoleto);
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;
}
FolioPreimpreso folioPreimpreso = geraFolioPreimpreso(detAbastoBoleto);
if (folioPreimpreso.getFoliopreimpresoId() == null) {
return "MSG.Error";
}
}
return Boolean.TRUE;
return StringUtils.EMPTY;
}
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.List;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.rjconsultores.ventaboletos.dao.EstacionDAO;
import com.rjconsultores.ventaboletos.entidad.Estacion;
import com.rjconsultores.ventaboletos.entidad.EstacionImpresora;
import com.rjconsultores.ventaboletos.entidad.EstacionSitef;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
import com.rjconsultores.ventaboletos.exception.BusinessException;
@ -34,6 +36,8 @@ public class EstacionServiceImpl implements EstacionService {
@Autowired
private AutorizaFolioService autorizaFolioService;
public static final String BEMATECH_FISCAL = "BEMATECHFISCAL";
public List<Estacion> obtenerTodos() {
return estacionDAO.obtenerTodos();
}
@ -79,18 +83,33 @@ public class EstacionServiceImpl implements EstacionService {
estacion.setFecmodif(Calendar.getInstance().getTime());
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) {
estacion = estacionDAO.suscribir(estacion);
} else {
estacion = estacionDAO.actualizacion(estacion);
}
if (ApplicationProperties.getInstance().generarRotinaFolios()) {
autorizaFolioService.noChequeFolioPreimpresos(estacion);
if (StringUtils.isNotBlank(errorNoChequeFolio)) {
throw new BusinessException(errorNoChequeFolio);
}
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 {