package com.rjconsultores.ventaboletos.service.impl;

import java.util.ArrayList;
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.ExcepcionPeajeDAO;
import com.rjconsultores.ventaboletos.entidad.ExcepcionPeaje;
import com.rjconsultores.ventaboletos.entidad.ExcepcionPeajeVigencia;
import com.rjconsultores.ventaboletos.service.ExcepcionPeajeService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;

@Service("excepcionPeajeService")
public class ExcepcionPeajeServiceImpl implements ExcepcionPeajeService {
	
	@Autowired
    private ExcepcionPeajeDAO excepcionPeajeDAO;
	
	public ExcepcionPeaje obtenerID(Integer id) {
        return excepcionPeajeDAO.obtenerID(id);
    }

	public List<ExcepcionPeaje> obtenerTodos() {
        return excepcionPeajeDAO.obtenerTodos();
    }
	
	public List<ExcepcionPeaje> buscar(String descconvenio, String cveconvenio){
		return new ArrayList<ExcepcionPeaje>();
	}
	
	@Transactional
    public ExcepcionPeaje suscribir(ExcepcionPeaje entidad) {
        entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
        entidad.setFecmodif(Calendar.getInstance().getTime());
        entidad.setActivo(Boolean.TRUE);

        return excepcionPeajeDAO.suscribir(entidad);
    }
	
	@Transactional
    public ExcepcionPeaje actualizacion(ExcepcionPeaje entidad) {
        entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
        entidad.setFecmodif(Calendar.getInstance().getTime());
        entidad.setActivo(Boolean.TRUE);

        return excepcionPeajeDAO.actualizacion(entidad);
    }
	
	@Transactional
    public void borrar(ExcepcionPeaje entidad) {
        entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
        entidad.setFecmodif(Calendar.getInstance().getTime());
        entidad.setActivo(Boolean.FALSE);

//        for (ConvenioDet cd : entidad.getConvenioDetList()) {
//            cd.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
//            cd.setFecmodif(Calendar.getInstance().getTime());
//            cd.setActivo(Boolean.FALSE);
//        }
//        
//        for (ConvenioPuntoVenta cpv: entidad.getConvenioPuntoVentaList()) {
//        	cpv.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
//        	cpv.setFecmodif(Calendar.getInstance().getTime());
//        	cpv.setActivo(Boolean.FALSE);
//		}
//        
//        for (ConvenioUsuario cu : entidad.getConvenioUsuarioList()) {
//        	cu.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
//        	cu.setFecmodif(Calendar.getInstance().getTime());
//        	cu.setActivo(Boolean.FALSE);
//		}
//        
//        for (ConvenioTramo ct : entidad.getConvenioTramoList()) {
//        	ct.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
//        	ct.setFecmodif(Calendar.getInstance().getTime());
//        	ct.setActivo(Boolean.FALSE);
//		}
        
        excepcionPeajeDAO.actualizacion(entidad);
    }

	@Override
	public void deletarVigencias(List<ExcepcionPeajeVigencia> epv) {
		excepcionPeajeDAO.deletarVigencias(epv);
	}
	
}
