AdmMono/src/com/rjconsultores/ventaboletos/service/impl/AutorizaFolioServiceImpl.java

274 lines
11 KiB
Java
Raw Blame History

package com.rjconsultores.ventaboletos.service.impl;
import java.util.Calendar;
import java.util.Date;
import org.apache.commons.lang.math.NumberUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.rjconsultores.ventaboletos.entidad.AbastoBoleto;
import com.rjconsultores.ventaboletos.entidad.Aidf;
import com.rjconsultores.ventaboletos.entidad.Articulo;
import com.rjconsultores.ventaboletos.entidad.Clasificacion;
import com.rjconsultores.ventaboletos.entidad.DetAbastoBoleto;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.Estacion;
import com.rjconsultores.ventaboletos.entidad.EstacionImpresora;
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;
import com.rjconsultores.ventaboletos.service.DetAbastoBoletoService;
import com.rjconsultores.ventaboletos.service.FolioPreimpresoService;
import com.rjconsultores.ventaboletos.service.RequisicionBoletoService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
@Service("autorizaFolioService")
public class AutorizaFolioServiceImpl implements AutorizaFolioService {
// Numero max de folios por estacion
public static final Integer MAX_CANT_FOLIOS = Integer.MAX_VALUE;
public static final Integer INICIO_FOLIO = 1;
@Autowired
private ArticuloService articuloService;
@Autowired
private RequisicionBoletoService requisicionBoletoService;
@Autowired
private AbastoBoletoService abastoBoletoService;
@Autowired
private DetAbastoBoletoService detAbastoBoletoService;
@Autowired
private FolioPreimpresoService folioPreimpresoService;
@Override
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()){
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 {
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;
}
private RequisicionBoleto geraRequisicionBoleto(Aidf aidf, Estacion estacion, Empresa empresa) {
Articulo articulo = articuloService.obtenerID(aidf.getAidfTipo().getAidftipoId());
Clasificacion clasificacion = articulo.getClasificacion();
PuntoVenta puntoVenta = estacion.getPuntoVenta();
RequisicionBoleto requisicionBoleto = new RequisicionBoleto();
requisicionBoleto.setArticulo(articulo);
requisicionBoleto.setCantfajilla(1L);
requisicionBoleto.setClasificacion(clasificacion);
requisicionBoleto.setEstacion(estacion);
requisicionBoleto.setPuntoVenta(puntoVenta);
requisicionBoleto.setStatusenvio(Boolean.TRUE);
requisicionBoleto.setEmpresa(empresa);
return requisicionBoletoService.suscribir(requisicionBoleto);
}
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();
detAbastoBoleto.setAbastoBoleto(abastoBoleto);
detAbastoBoleto.setNummovimiento(nummovimiento);
detAbastoBoleto.setNumseriepreimpresa(numseriepreimpresa.trim());
detAbastoBoleto.setNumfolioinicial(numfolioinicial.trim());
detAbastoBoleto.setNumfoliofinal(numfoliofinal.trim());
detAbastoBoleto.setStatusfirma(Boolean.TRUE);
detAbastoBoleto.setStatusoperacion(statusoperacion);
detAbastoBoleto.setStatusenvio(Boolean.TRUE);
return detAbastoBoletoService.suscribir(detAbastoBoleto);
}
private void actualizaStatusRequisicion(RequisicionBoleto requisicionBoleto) {
requisicionBoleto.setStatusenvio(Boolean.FALSE);
requisicionBoletoService.actualizacion(requisicionBoleto);
}
private FolioPreimpreso geraFolioPreimpreso(DetAbastoBoleto detAbastoBoleto, String numfoliopreimpreso) {
AbastoBoleto abastoBoleto = detAbastoBoleto.getAbastoBoleto();
FolioPreimpreso folioPreimpreso = new FolioPreimpreso();
folioPreimpreso.setEmpresa(abastoBoleto.getEmpresa());
folioPreimpreso.setEstacion(abastoBoleto.getEstacion());
folioPreimpreso.setFoliopreimpreso(numfoliopreimpreso);
folioPreimpreso.setNodoId(1);
folioPreimpreso.setNumeserie(detAbastoBoleto.getNumseriepreimpresa());
folioPreimpreso.setPuntoVenta(abastoBoleto.getPuntoventa());
folioPreimpreso.setIndreplica(NumberUtils.LONG_ZERO);
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) {
for (EstacionImpresora estacionImpresora : estacion.getLsEstacionImpresora()) {
Empresa empresa = estacionImpresora .getEmpresa();
FolioPreimpreso folio = folioPreimpresoService.buscaFolioPreImpressoEstacionImpresora(estacion, empresa);
//condi<64><69>o para qd o folio foi gerado indevidamente pelo cliente de venda. Antes de a rotina abaixo ter sido executada
//se o numserie <20> 0, <20> um folio inv<6E>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;
}
}
}
return Boolean.TRUE;
}
private RequisicionBoleto geraRequisicionBoleto(Estacion estacion, Empresa empresa) {
Articulo articulo = articuloService.obtenerID(Articulo.TIPO_VENDA);
Clasificacion clasificacion = articulo.getClasificacion();
PuntoVenta puntoVenta = estacion.getPuntoVenta();
RequisicionBoleto requisicionBoleto = new RequisicionBoleto();
requisicionBoleto.setArticulo(articulo);
requisicionBoleto.setCantfajilla(1L);
requisicionBoleto.setClasificacion(clasificacion);
requisicionBoleto.setEstacion(estacion);
requisicionBoleto.setPuntoVenta(puntoVenta);
requisicionBoleto.setStatusenvio(Boolean.TRUE);
requisicionBoleto.setEmpresa(empresa);
return requisicionBoletoService.suscribir(requisicionBoleto);
}
private AbastoBoleto geraAbastoBoleto(RequisicionBoleto requisicionBoleto) {
Date fechaHrReq = requisicionBoleto.getFecmodif();
Date now = Calendar.getInstance().getTime();
Long numRequisicion = Long.parseLong(requisicionBoleto.getRequisicionboletoId().toString());
AbastoBoleto abastoboleto = new AbastoBoleto();
abastoboleto.setNumservidor(1);
abastoboleto.setNumrequisicion(numRequisicion);
abastoboleto.setCantfajilla(requisicionBoleto.getCantfajilla());
abastoboleto.setEstacion(requisicionBoleto.getEstacion());
abastoboleto.setArticulo(requisicionBoleto.getArticulo());
abastoboleto.setClasificacion(requisicionBoleto.getClasificacion());
abastoboleto.setPuntoventa(requisicionBoleto.getPuntoVenta());
abastoboleto.setPuntoventacentral(requisicionBoleto.getPuntoVenta());
abastoboleto.setEmpresa(requisicionBoleto.getEmpresa());
abastoboleto.setFechorreq(fechaHrReq);
abastoboleto.setStatusfirma(2);
abastoboleto.setStatusEnvio(1);
abastoboleto.setUsuarioreqId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
abastoboleto.setFechorfirma(now);
abastoboleto.setFechorgeneracion(now);
abastoboleto.setUsuariogeneracionId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
return abastoBoletoService.suscribir(abastoboleto);
}
private DetAbastoBoleto geraDetAbastoBoleto(AbastoBoleto abastoBoleto) {
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();
detAbastoBoleto.setAbastoBoleto(abastoBoleto);
detAbastoBoleto.setNummovimiento(nummovimiento);
detAbastoBoleto.setNumseriepreimpresa(numseriepreimpresa.trim());
detAbastoBoleto.setNumfolioinicial(numfolioinicial.trim());
detAbastoBoleto.setNumfoliofinal(numfoliofinal.trim());
detAbastoBoleto.setStatusfirma(Boolean.TRUE);
detAbastoBoleto.setStatusoperacion(statusoperacion);
detAbastoBoleto.setStatusenvio(Boolean.TRUE);
return detAbastoBoletoService.suscribir(detAbastoBoleto);
}
private FolioPreimpreso geraFolioPreimpreso(DetAbastoBoleto detAbastoBoleto) {
AbastoBoleto abastoBoleto = detAbastoBoleto.getAbastoBoleto();
FolioPreimpreso folioPreimpreso = new FolioPreimpreso();
folioPreimpreso.setEmpresa(abastoBoleto.getEmpresa());
folioPreimpreso.setEstacion(abastoBoleto.getEstacion());
folioPreimpreso.setFoliopreimpreso(INICIO_FOLIO.toString());
folioPreimpreso.setNodoId(1);
folioPreimpreso.setNumeserie(detAbastoBoleto.getNumseriepreimpresa());
folioPreimpreso.setPuntoVenta(abastoBoleto.getPuntoventa());
folioPreimpreso.setIndreplica(NumberUtils.LONG_ZERO);
return folioPreimpresoService.suscribir(folioPreimpreso);
}
}