br.os.rh.lotacaodisciplinahorario.LotacaoDisciplinaHorarioDAO.java Source code

Java tutorial

Introduction

Here is the source code for br.os.rh.lotacaodisciplinahorario.LotacaoDisciplinaHorarioDAO.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package br.os.rh.lotacaodisciplinahorario;

import br.os.rh.funcionario.Funcionario;
import br.os.rh.horario.Horario;
import br.os.rh.lotacao.Lotacao;
import br.os.rh.periodo.Periodo;
import br.os.rh.salario.Salario;
import br.os.rh.lotacaodiscplinas.LotacaoDisciplina;
import br.os.rh.util.Ativo;
import br.os.rh.util.GenericDAO;
import br.os.rh.util.HibernateUtil;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import org.hibernate.criterion.Restrictions;

/**
 *
 * @author 'Pedro
 */
public class LotacaoDisciplinaHorarioDAO extends GenericDAO<LotacaoDisciplinaHorario> {

    public LotacaoDisciplinaHorarioDAO() {
        super(LotacaoDisciplinaHorario.class);
    }

    public void salvar(LotacaoDisciplinaHorario get) {
        if (get.getId() == 0) {
            adicionar(get);
        } else {
            atualizar(get);
        }
    }

    public boolean pesquisaChoqueHorario(Funcionario f, Horario h, String ds, Periodo p) {
        setSessao(HibernateUtil.getSessionFactory().openSession());
        setTransacao(getSessao().beginTransaction());

        List<Salario> salarios = (List<Salario>) getSessao().createCriteria(Salario.class)
                .add(Restrictions.eq("funcionario", f)).add(Restrictions.eq("periodo", p)).list();

        List<LotacaoDisciplina> sdLista = new ArrayList<LotacaoDisciplina>(new HashSet(getSessao()
                .createCriteria(LotacaoDisciplina.class).add(Restrictions.in("salario", salarios)).list()));

        List<LotacaoDisciplinaHorario> sdhLista = (List<LotacaoDisciplinaHorario>) getSessao()
                .createCriteria(LotacaoDisciplina.class).add(Restrictions.in("salarioDisciplina", sdLista))
                .add(Restrictions.eq("horario", h)).add(Restrictions.eq("diaSemana", ds)).list();

        getSessao().close();
        return sdhLista.size() > 0;
    }

    public List<LotacaoDisciplinaHorario> pesquisaDisciplinasFuncionario(Funcionario f, String ds, Periodo p) {
        setSessao(HibernateUtil.getSessionFactory().openSession());
        setTransacao(getSessao().beginTransaction());

        List<Lotacao> lotacoes = (List<Lotacao>) getSessao().createCriteria(Lotacao.class)
                .add(Restrictions.eq("professor", f)).add(Restrictions.eq("periodo", p)).list();

        List<LotacaoDisciplina> sdLista = new ArrayList<LotacaoDisciplina>(new HashSet(getSessao()
                .createCriteria(LotacaoDisciplina.class).add(Restrictions.in("lotacao", lotacoes)).list()));

        List<LotacaoDisciplinaHorario> sdhLista = (List<LotacaoDisciplinaHorario>) getSessao()
                .createCriteria(LotacaoDisciplinaHorario.class).add(Restrictions.in("salarioDisciplina", sdLista))
                .add(Restrictions.eq("diaSemana", ds)).list();

        getSessao().close();
        return sdhLista;
    }

}