/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.rjconsultores.ventaboletos.service.impl;

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.EsquemaAgrupacionDAO;
import com.rjconsultores.ventaboletos.entidad.EsquemaAgrupacion;
import com.rjconsultores.ventaboletos.service.EsquemaAgrupacionService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;

/**
 * 
 * @author RJ Consultores
 */
@Service("esquemaAgrupacionService")
public class EsquemaAgrupacionServiceImpl implements EsquemaAgrupacionService {

	@Autowired
	private EsquemaAgrupacionDAO esquemaAgrupacionDAO;

	public List<EsquemaAgrupacion> obtenerTodos() {
		return esquemaAgrupacionDAO.obtenerTodos();
	}

	public EsquemaAgrupacion obtenerID(Integer id) {
		return esquemaAgrupacionDAO.obtenerID(id);
	}

	@Transactional
	public EsquemaAgrupacion suscribir(EsquemaAgrupacion entidad) {
		entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
		entidad.setFecmodif(Calendar.getInstance().getTime());
		entidad.setActivo(Boolean.TRUE);

		return esquemaAgrupacionDAO.suscribir(entidad);
	}

	@Transactional
	public EsquemaAgrupacion actualizacion(EsquemaAgrupacion entidad) {
		entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
		entidad.setFecmodif(Calendar.getInstance().getTime());
		entidad.setActivo(Boolean.TRUE);

		return esquemaAgrupacionDAO.actualizacion(entidad);
	}

	@Transactional
	public void borrar(EsquemaAgrupacion entidad) {
		entidad = (entidad.getEsquemaagrupacionId() == null) ? entidad : esquemaAgrupacionDAO.obtenerID(entidad.getEsquemaagrupacionId());
		entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
		entidad.setFecmodif(Calendar.getInstance().getTime());
		entidad.setActivo(Boolean.FALSE);

		esquemaAgrupacionDAO.actualizacion(entidad);
	}

	public List<EsquemaAgrupacion> buscar(EsquemaAgrupacion esquemaAgrupacion) {
		return esquemaAgrupacionDAO.buscar(esquemaAgrupacion);
	}
	
	@Override
	public EsquemaAgrupacion obtenerByEsquemaAgrupacion(Integer id) {
		return esquemaAgrupacionDAO.obtenerByEsquemaAgrupacion(id);
	}
	
	public boolean buscarNumAgrupacion(Integer numAgrupacion) {
		return esquemaAgrupacionDAO.buscarNumAgrupacion(numAgrupacion);
	}
}
