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

import com.rjconsultores.ventaboletos.dao.MotivoDevolucaoBilheteDAO;
import com.rjconsultores.ventaboletos.entidad.MotivoDevolucaoBilhete;
import com.rjconsultores.ventaboletos.service.MotivoDevolucaoBilheteService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
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;

/**
 * 
 * @author Bruno Neves
 */
@Service("motivoDevolucaoBilheteService")
public class MotivoDevolucaoBilheteServiceImpl implements MotivoDevolucaoBilheteService {

	@Autowired
	private MotivoDevolucaoBilheteDAO motivoDevolucaoBilheteDAO;
	public static final Integer MAX_CONS_MOV_CANCEL = Integer.valueOf(35);

	public List<MotivoDevolucaoBilhete> obtenerTodos() {
		return motivoDevolucaoBilheteDAO.obtenerTodos();
	}

	public MotivoDevolucaoBilhete obtenerID(Integer id) {
		return motivoDevolucaoBilheteDAO.obtenerID(id);
	}

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

		return motivoDevolucaoBilheteDAO.suscribir(entidad);
	}

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

		return motivoDevolucaoBilheteDAO.actualizacion(entidad);
	}

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

		motivoDevolucaoBilheteDAO.actualizacion(entidad);
	}

	public List<MotivoDevolucaoBilhete> buscar(String descmotivo, String tipomotivo) {
		return motivoDevolucaoBilheteDAO.buscar(descmotivo, tipomotivo);
	}

	public List<MotivoDevolucaoBilhete> obtenerTodosTipoMotivoB() {
		return motivoDevolucaoBilheteDAO.obtenerTodosTipoMotivoB();
	}

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

	public boolean validaMotivoDevolucaoBilheteConstante(MotivoDevolucaoBilhete motivoDevolucaoBilhete) {
		if (motivoDevolucaoBilhete.getMotivodevolucaobilheteId() <= MAX_CONS_MOV_CANCEL)
			return false;
		else
			return true;
	}

}
