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

import com.rjconsultores.ventaboletos.dao.EsquemaAsientoDAO;
import com.rjconsultores.ventaboletos.entidad.EsquemaAsiento;
import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;

/**
 * 
 * @author Rafius
 */
@Repository("esquemaAsientoHibernateDAO")
public class EsquemaAsientoHibernateDAO extends GenericHibernateDAO<EsquemaAsiento, Integer> implements EsquemaAsientoDAO {

	@Autowired
	public EsquemaAsientoHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
		setSessionFactory(factory);
	}

	public List<EsquemaAsiento> obtenerPorCorrida(EsquemaCorrida esquemaCorrida) {
		Criteria c = getSession().createCriteria(getPersistentClass());
		c.add(Restrictions.eq("esquemaCorrida", esquemaCorrida));
		c.add(Restrictions.eq(ACTIVO, Boolean.TRUE));

		return c.list();
	}

	public EsquemaAsiento obtenerPorCorridaeAsiento(EsquemaCorrida esquemaCorrida, String asiento) {
		Criteria c = getSession().createCriteria(getPersistentClass());
		c.add(Restrictions.eq("esquemaCorrida", esquemaCorrida));
		c.add(Restrictions.eq("numasiento", asiento));
		c.add(Restrictions.eq(ACTIVO, Boolean.TRUE));

		EsquemaAsiento ea = new EsquemaAsiento();

		List<EsquemaAsiento> lsAsientos = c.list();

		if (!lsAsientos.isEmpty()) {
			ea = lsAsientos.get(0);
		}

		return ea;
	}
}
