/*
 * 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.MotivoCancelVendaPacoteDAO;
import com.rjconsultores.ventaboletos.entidad.MotivoCancelVendaPacote;
import com.rjconsultores.ventaboletos.service.MotivoCancelVendaPacoteService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;

/**
 * 
 * @author Bruno
 */
@Service("motivoCancelVendaPacoteService")
public class MotivoCancelVendaPacoteServiceImpl implements MotivoCancelVendaPacoteService {

	@Autowired
	private MotivoCancelVendaPacoteDAO motivoCancelVendaPacoteDAO;
	public static final Integer MAX_CONS_MOV_CANCEL = Integer.valueOf(35);

	public List<MotivoCancelVendaPacote> obtenerTodos() {
		return motivoCancelVendaPacoteDAO.obtenerTodos();
	}

	public MotivoCancelVendaPacote obtenerID(Integer id) {
		return motivoCancelVendaPacoteDAO.obtenerID(id);
	}

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

		return motivoCancelVendaPacoteDAO.suscribir(entidad);
	}

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

		return motivoCancelVendaPacoteDAO.actualizacion(entidad);
	}

	@Transactional
	public void borrar(MotivoCancelVendaPacote entidad) {
		entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
		entidad.setFecmodif(Calendar.getInstance().getTime());
		entidad.setActivo(Boolean.FALSE);

		motivoCancelVendaPacoteDAO.actualizacion(entidad);
	}

	public List<MotivoCancelVendaPacote> buscar(String descmotivocancel, String tipomotivocancel) {
		return motivoCancelVendaPacoteDAO.buscar(descmotivocancel, tipomotivocancel);
	}

	public List<MotivoCancelVendaPacote> obtenerTodosTipoMotivoCancel() {
		return motivoCancelVendaPacoteDAO.obtenerTodosTipoMotivoCancel();
	}

	public List<MotivoCancelVendaPacote> obtenerTodosEspecificos(Integer[] motivos) {
		return motivoCancelVendaPacoteDAO.obtenerTodosEspecificos(motivos);
	}

	public boolean validaMotivoCancelVendaPacoteConstante(MotivoCancelVendaPacote motivoCancelVendaPacote) {
		if (motivoCancelVendaPacote.getMotivocancelvendapacoteId() <= MAX_CONS_MOV_CANCEL)
			return false;
		else
			return true;
	}

}
