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

152 lines
5.1 KiB
Java

package com.rjconsultores.ventaboletos.service.impl;
import java.sql.Connection;
import java.util.Calendar;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.rjconsultores.ventaboletos.dao.AidfDAO;
import com.rjconsultores.ventaboletos.dao.AidfEspecieDAO;
import com.rjconsultores.ventaboletos.dao.AidfTipoDAO;
import com.rjconsultores.ventaboletos.entidad.Aidf;
import com.rjconsultores.ventaboletos.entidad.AidfEspecie;
import com.rjconsultores.ventaboletos.entidad.AidfTipo;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.Estado;
import com.rjconsultores.ventaboletos.service.AidfService;
import com.rjconsultores.ventaboletos.service.MovimentacionBilhetesService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
import com.rjconsultores.ventaboletos.vo.aidf.AidfVo;
@Service("aidfService")
public class AidfServiceImpl implements AidfService {
private static final Integer TIPO_FORMULARIO_CONTINUO = 1;
private static final Integer TIPO_VENDA_MANUAL = 2;
@Autowired
private AidfDAO aidfDAO;
@Autowired
private AidfEspecieDAO aidfEspecieDAO;
@Autowired
private AidfTipoDAO aidfTipoDAO;
@Autowired
private MovimentacionBilhetesService movimentacionBilhetesService;
public List<Aidf> obtenerTodos() {
return aidfDAO.obtenerTodos();
}
@Transactional
public Aidf obtenerID(Long id) {
return aidfDAO.obtenerID(id);
}
@Transactional
public Aidf suscribir(Aidf entidad) {
setUsuarioFecmodifActivo(entidad);
Aidf aidf = aidfDAO.suscribir(entidad);
/*
* Mantis #9124
* Desativado devido a lentidão ao criar o AbastoCentrol e AbastoHisto.
if (aidf != null)
movimentacionBilhetesService.realizaAdquisicionBilhetes(aidf);
*/
return aidf;
}
@Transactional
public Aidf actualizacion(Aidf entidad) {
setUsuarioFecmodifActivo(entidad);
return aidfDAO.actualizacion(entidad);
}
@Transactional
public void borrar(Aidf entidad) {
setUsuarioFecmodifActivo(entidad);
entidad.setActivo(Boolean.FALSE);
aidfDAO.borrar(entidad);
}
private void setUsuarioFecmodifActivo(Aidf entidad) {
entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
entidad.setFecmodif(Calendar.getInstance().getTime());
entidad.setActivo(Boolean.TRUE);
}
public List<AidfEspecie> obtenerTodosAdifEspecie() {
return aidfEspecieDAO.obtenerTodos();
}
public List<AidfTipo> obtenerTodosAdifTipo() {
return aidfTipoDAO.obtenerTodos();
}
public List<Aidf> buscaAidfsPorEmpresas(List<Empresa> empresas) {
List<Aidf> aidfs = aidfDAO.buscaAidfsPorEmpresas(empresas);
return aidfs;
}
public List<AidfVo> obtenerAidfFromSerieDocfiscal(String serie, String docfiscal, Connection conn) {
return aidfDAO.obtenerAidfFromSerieDocfiscal(serie, docfiscal, conn);
}
public Long validarDocFiscalSerieFormInicialFinal(Aidf entidad, Connection conn) {
List<AidfVo> list = obtenerAidfFromSerieDocfiscal(entidad.getSerie(), entidad.getDocfiscal().replaceAll("[^a-zA-Z0-9]+", ""), conn);
for (AidfVo aidf : list) {
// desconsiderar o próprio ID, caso contrário o erro de validação sempre acontece qdo o registro é editado.
if ((entidad.getAidfId() == null) || (aidf.getAidfId().compareTo(entidad.getAidfId()) != 0)) {
if (aidf.getDocfiscal().trim().equals(entidad.getDocfiscal().replaceAll("[^a-zA-Z0-9]+", "").trim())) {
if (aidf.getSerie().trim().equals(entidad.getSerie().trim())) {
if ((Long.parseLong(entidad.getForminicial()) >= Long.parseLong(aidf.getForminicial()) && Long.parseLong(entidad.getForminicial()) <= Long.parseLong(aidf.getFormfinal()))
|| (Long.parseLong(entidad.getFormfinal()) >= Long.parseLong(aidf.getForminicial()) && Long.parseLong(entidad.getFormfinal()) <= Long.parseLong(aidf.getFormfinal()))) {
return aidf.getAidfId();
}
}
}
}
}
return -1l;
}
public Boolean validarDocFiscalPorEstado(Long idAidf, Integer especieId, String docFiscal, Estado estado) {
return aidfDAO.existeAidfComCodFiscalEEstado(idAidf, especieId, docFiscal, estado);
}
public Boolean validarTipoVenda(String tipoVenda, String serie, Integer idTipo) {
return !("M".equals(tipoVenda)
&& ("UNIC".equals(serie) || TIPO_FORMULARIO_CONTINUO.equals(idTipo)));
}
public Boolean validarVendaManual(Integer idTipo, String serie) {
return !(TIPO_VENDA_MANUAL.equals(idTipo) && "UNIC".equals(serie));
}
@Override
public List<Aidf> buscaAidfRMD(Integer empresaId, Integer estadoId) {
return aidfDAO.buscaAidfRMD(empresaId, estadoId);
}
@Override
public String buscaUltimoAidfRMDUtilizado(Long idAidf, Integer empresaId, Integer estadoId) {
return aidfDAO.buscaUltimoAidfRMDUtilizado(idAidf, empresaId, estadoId);
}
@Override
public boolean vaidaRMDUtilizado(Long idAidf, Integer empresaId, Integer estadoId, String folio) {
return aidfDAO.vaidaRMDUtilizado(idAidf, empresaId, estadoId, folio);
}
}