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-87c2c4800839master
parent
54ecf74e15
commit
c40fd0a8b7
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
@ -45,38 +46,36 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService {
|
|||
private FolioPreimpresoService folioPreimpresoService;
|
||||
|
||||
@Override
|
||||
public Boolean noChequeFolioPreimpresos(Aidf aidf, Estacion origem, Estacion destino, String numfolioinicial, String numfoliofinal, String numseriepreimpresa,
|
||||
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);
|
||||
|
||||
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 {
|
||||
|
||||
} else {
|
||||
actualizaFolioPreimpreso(folio, numseriepreimpresa, numfolioinicial);
|
||||
}
|
||||
}
|
||||
|
||||
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();
|
||||
|
@ -121,7 +116,7 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService {
|
|||
|
||||
return detAbastoBoletoService.suscribir(detAbastoBoleto);
|
||||
}
|
||||
|
||||
|
||||
private void actualizaStatusRequisicion(RequisicionBoleto requisicionBoleto) {
|
||||
requisicionBoleto.setStatusenvio(Boolean.FALSE);
|
||||
requisicionBoletoService.actualizacion(requisicionBoleto);
|
||||
|
@ -142,47 +137,45 @@ public class AutorizaFolioServiceImpl implements AutorizaFolioService {
|
|||
|
||||
return folioPreimpresoService.suscribir(folioPreimpreso);
|
||||
}
|
||||
|
||||
|
||||
private FolioPreimpreso actualizaFolioPreimpreso(FolioPreimpreso folioPreimpreso, String serieFoliopreimpreso, String numfoliopreimpreso) {
|
||||
|
||||
|
||||
folioPreimpreso.setFoliopreimpreso(numfoliopreimpreso);
|
||||
folioPreimpreso.setNumeserie(serieFoliopreimpreso);
|
||||
|
||||
return folioPreimpresoService.actualizacion(folioPreimpreso);
|
||||
}
|
||||
|
||||
|
||||
@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);
|
||||
|
||||
// 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) && isImpressoraFiscal) {
|
||||
return "estacionServiceImpl.msg.noChequeFolioPreimpresos";
|
||||
}
|
||||
|
||||
if (folio == null) {
|
||||
RequisicionBoleto requisicionBoleto = geraRequisicionBoleto(estacionImpresora.getEstacion(), empresa);
|
||||
AbastoBoleto abastoBoleto = geraAbastoBoleto(requisicionBoleto);
|
||||
DetAbastoBoleto detAbastoBoleto = geraDetAbastoBoleto(abastoBoleto);
|
||||
actualizaStatusRequisicion(requisicionBoleto);
|
||||
|
||||
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
|
||||
if ( (folio != null) && (folio.getNumeserie().equals("0"))) {
|
||||
folioPreimpresoService.borrar(folio);
|
||||
folio = null;
|
||||
}
|
||||
|
||||
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) {
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in New Issue