package com.rjconsultores.ventaboletos.dao.hibernate;

import java.util.Date;

import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;

import com.rjconsultores.ventaboletos.dao.CtrlFechamentoCaixaDAO;
import com.rjconsultores.ventaboletos.entidad.CtrlFechamentoCaixa;
import com.rjconsultores.ventaboletos.utilerias.DateUtil;

@Repository("ctrlFechamentoCaixaDAO")
public class CtrlFechamentoCaixaHibernateDAO extends GenericHibernateDAO<CtrlFechamentoCaixa, Long> implements CtrlFechamentoCaixaDAO {
	
    @Autowired
    public CtrlFechamentoCaixaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
        setSessionFactory(factory);
    }

	@Override
	public CtrlFechamentoCaixa obtenerFeccorte(Date feccorte) {
		StringBuilder hql = new StringBuilder();
		hql.append(" from CtrlFechamentoCaixa c ")
		   .append(" where c.activo = 1 ")
		   .append(" and c.feccorte = TO_DATE(:feccorte,'DD/MM/YYYY') ");
		
		Query qr = getSession().createQuery(hql.toString());
		qr.setParameter("feccorte", DateUtil.getStringDate(feccorte, "dd/MM/yyyy"));
		qr.setMaxResults(1);
		
		return (CtrlFechamentoCaixa) qr.uniqueResult();
	}

}
