AdmMono/src/com/rjconsultores/ventaboletos/service/impl/ParadaServiceImpl.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);
}
}