178 lines
5.2 KiB
Java
178 lines
5.2 KiB
Java
/*
|
|
* 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<Parada> 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<Parada> buscar(String descparada, String cveparada, Ciudad ciudad,
|
|
TipoParada tipoParada, Nodo nodo) {
|
|
return paradaDAO.buscar(descparada, cveparada, ciudad, tipoParada, nodo);
|
|
}
|
|
|
|
public List<Parada> buscar(String descparada) {
|
|
return paradaDAO.buscar(descparada);
|
|
}
|
|
|
|
public List<Parada> buscarCVE(String cveparada) {
|
|
return paradaDAO.buscarCVE(StringUtils.trim(cveparada));
|
|
}
|
|
|
|
public List<Parada> buscaLike(String descparada) {
|
|
return paradaDAO.buscaLike(descparada);
|
|
}
|
|
|
|
public List<Parada> obtenerOrigenPorRuta(Ruta ruta) {
|
|
return paradaDAO.obtenerOrigenPorRuta(ruta);
|
|
}
|
|
|
|
@Override
|
|
public List<Parada> obtenerTodos() {
|
|
return paradaDAO.obtenerTodos();
|
|
}
|
|
|
|
@Override
|
|
public List<Parada> obterPossiveisDestinos(Parada origem) {
|
|
List<Parada> paradas;
|
|
paradas = paradaDAO.obterPossiveisDestinos(origem);
|
|
|
|
if (paradas != null) {
|
|
return paradas;
|
|
}
|
|
return new ArrayList<Parada>();
|
|
}
|
|
|
|
@Override
|
|
public List<Parada> buscaParadaRegionMetropolitana(RegionMetropolitana regionMetropolitana){
|
|
return paradaDAO.buscaParadaRegionMetropolitana(regionMetropolitana);
|
|
}
|
|
}
|