/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.rjconsultores.ventaboletos.service.impl; import java.util.ArrayList; 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.ParadaDAO; import com.rjconsultores.ventaboletos.dao.TramoDAO; import com.rjconsultores.ventaboletos.entidad.Ciudad; import com.rjconsultores.ventaboletos.entidad.Nodo; import com.rjconsultores.ventaboletos.entidad.Parada; import com.rjconsultores.ventaboletos.entidad.RegionMetropolitana; import com.rjconsultores.ventaboletos.entidad.Ruta; import com.rjconsultores.ventaboletos.entidad.TipoParada; import com.rjconsultores.ventaboletos.exception.BusinessException; import com.rjconsultores.ventaboletos.service.ParadaService; import com.rjconsultores.ventaboletos.utilerias.RegistroConDependenciaException; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; /** * * @author Administrador */ @Service("paradaService") public class ParadaServiceImpl implements ParadaService { private static final int MAX_ANTT = 99999; @Autowired private ParadaDAO paradaDAO; @Autowired private TramoDAO tramoDAO; public Parada obtenerID(Integer id) { return paradaDAO.obtenerID(id); } @Transactional public Parada suscribirActualizar(Parada entidad) throws BusinessException { Integer antt = entidad.getCodantt() != null ? entidad.getCodantt() : null; if (antt != null) { if (antt.equals(MAX_ANTT)) { throw new BusinessException("editarCatalogoDeParadaController.MSG.maxAntt"); } } List lsParadas = paradaDAO.buscar(entidad.getCodantt()); if (!lsParadas.isEmpty()) { if (entidad.getParadaId() == null) { throw new BusinessException("busquedaCatalogoDeParadaController.msg.codAnttJaExiste"); } else { if (!lsParadas.contains(entidad)) { throw new BusinessException("busquedaCatalogoDeParadaController.msg.codAnttJaExiste"); } } } lsParadas = paradaDAO.buscar(entidad.getDescparada(), entidad.getCveparada(), entidad.getCiudad(), entidad.getTipoParada(), entidad.getNodo()); if (!lsParadas.isEmpty()) { if (entidad.getParadaId() == null) { throw new BusinessException("MSG.Registro.Existe"); } else { if (!lsParadas.contains(entidad)) { throw new BusinessException("MSG.Registro.Existe"); } } } lsParadas = buscarCVE(entidad.getCveparada()); if (!lsParadas.isEmpty()) { if (entidad.getParadaId() == null) { throw new BusinessException("editarCatalogoDeParadaController.registroIATAExiste"); } else { if (!lsParadas.contains(entidad)) { throw new BusinessException("editarCatalogoDeParadaController.registroIATAExiste"); } } } entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); entidad.setFecmodif(Calendar.getInstance().getTime()); entidad.setActivo(Boolean.TRUE); if (entidad.getParadaId() == null) { return paradaDAO.suscribir(entidad); } return paradaDAO.actualizacion(entidad); } @Transactional public Parada suscribir(Parada entidad) { entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); entidad.setFecmodif(Calendar.getInstance().getTime()); entidad.setActivo(Boolean.TRUE); return paradaDAO.suscribir(entidad); } @Transactional public Parada actualizacion(Parada entidad) { entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); entidad.setFecmodif(Calendar.getInstance().getTime()); entidad.setActivo(Boolean.TRUE); return paradaDAO.actualizacion(entidad); } @Transactional public void borrar(Parada entidad) throws RegistroConDependenciaException { if ((tramoDAO.count("origem", entidad) > 0l) || (tramoDAO.count("destino", entidad) > 0l)) { throw new RegistroConDependenciaException(); } entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); entidad.setFecmodif(Calendar.getInstance().getTime()); entidad.setActivo(Boolean.FALSE); paradaDAO.actualizacion(entidad); } public List buscar(String descparada, String cveparada, Ciudad ciudad, TipoParada tipoParada, Nodo nodo) { return paradaDAO.buscar(descparada, cveparada, ciudad, tipoParada, nodo); } public List buscar(String descparada) { return paradaDAO.buscar(descparada); } public List buscarCVE(String cveparada) { return paradaDAO.buscarCVE(StringUtils.trim(cveparada)); } public List buscaLike(String descparada) { return paradaDAO.buscaLike(descparada); } public List obtenerOrigenPorRuta(Ruta ruta) { return paradaDAO.obtenerOrigenPorRuta(ruta); } @Override public List obtenerTodos() { return paradaDAO.obtenerTodos(); } @Override public List obterPossiveisDestinos(Parada origem) { List paradas; paradas = paradaDAO.obterPossiveisDestinos(origem); if (paradas != null) { return paradas; } return new ArrayList(); } @Override public List buscaParadaRegionMetropolitana(RegionMetropolitana regionMetropolitana){ return paradaDAO.buscaParadaRegionMetropolitana(regionMetropolitana); } }