model.FuncionarioModel.java Source code

Java tutorial

Introduction

Here is the source code for model.FuncionarioModel.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 model;

import java.util.ArrayList;
import org.hibernate.ObjectNotFoundException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import sun.security.util.Password;

/**
 *
 * @author joao
 */
public class FuncionarioModel {
    private final SessionFactory objSessionFactory;
    //String para mensagem de erro
    String msg = "";

    public FuncionarioModel() {
        //Recebe o Session Factory do HIbernate
        this.objSessionFactory = sigos.SigosHibernateUtil.getSessionFactory();
    }

    public String insert(Funcionario obj) {
        //Abre um sesso
        Session objSession = this.objSessionFactory.openSession();
        //Inicia uma transao dentro da sesso aberta
        Transaction objTransaction = objSession.beginTransaction();

        try {
            //ADICIONA o objeto categoria, assim o hibernate persiste no bancoapagando o registro.
            objSession.save(obj);
            //Realiza um commit do INSERT
            objTransaction.commit();
        } catch (Exception e) {
            //Caso ocorrer algum erro, mostra uma mensagem
            this.msg = e.getMessage();
            //Realiza o Rollback, cancelando o INSERT no banco de dados.
            objTransaction.rollback();
        }

        //Fecha a sesso
        objSession.close();
        //Retorna a mensagem
        return this.msg;
    }

    public String update(Funcionario obj) {
        //Abre um sesso
        Session objSession = this.objSessionFactory.openSession();
        //Inicia uma transao dentro da sesso aberta
        Transaction objTransaction = objSession.beginTransaction();

        try {
            //ATUALIZA o objeto categoria, assim o hibernate persiste no bancoapagando o registro.
            objSession.merge(obj);
            //Realiza um commit do UPDATE
            objTransaction.commit();
        } catch (Exception e) {
            //Caso ocorrer algum erro, mostra uma mensagem
            msg = e.getMessage();
            //Realiza o Rollback, cancelando o UPDATE no banco de dados.
            objTransaction.rollback();
        }

        //Fecha a sesso
        objSession.close();
        //Retorna a mensagem
        return msg;
    }

    public String delete(Funcionario obj) {
        //Abre um sesso
        Session objSession = this.objSessionFactory.openSession();
        //Inicia uma transao dentro da sesso aberta
        Transaction objTransaction = objSession.beginTransaction();

        try {
            //ATUALIZA o objeto categoria, assim o hibernate persiste no bancoapagando o registro.
            objSession.delete(obj);
            //Realiza um commit do UPDATE
            objTransaction.commit();
        } catch (Exception e) {
            //Caso ocorrer algum erro, mostra uma mensagem
            msg = e.getMessage();
            //Realiza o Rollback, cancelando o UPDATE no banco de dados.
            objTransaction.rollback();
        }

        //Fecha a sesso
        objSession.close();
        //Retorna a mensagem
        return msg;
    }

    public ArrayList<Funcionario> findByAll() {
        //Cria lista de objetos
        ArrayList<Funcionario> lstFuncionario = null;
        //Abre um sesso
        Session objSession = this.objSessionFactory.openSession();

        try {
            Query objQuery = objSession.createQuery("from Funcionario");
            lstFuncionario = (ArrayList<Funcionario>) objQuery.list();
        } catch (ObjectNotFoundException e) {
            return null;
        }

        return lstFuncionario;
    }

    public ArrayList<Funcionario> findByLogin(String usuario) {
        ArrayList<Funcionario> lstFuncionarios = null;
        Session objSession = this.objSessionFactory.openSession();

        try {
            Query objQuery = objSession.createQuery("from Funcionario  where usuario = :usuario");
            objQuery.setParameter("usuario", usuario);
            lstFuncionarios = (ArrayList<Funcionario>) objQuery.list();
        } catch (ObjectNotFoundException e) {
            return null;
        }

        return lstFuncionarios;
    }

    public ArrayList<Funcionario> findByCpf(String cpf) {
        Session objSession = this.objSessionFactory.openSession();
        ArrayList<Funcionario> lstFuncionario = null;
        try {
            Query objQuery = objSession.createQuery("from Funcionario where cpf = :cpf");
            objQuery.setParameter("cpf", cpf);
            lstFuncionario = (ArrayList<Funcionario>) objQuery.list();
        } catch (Exception e) {
            System.out.println(e.toString());
            return null;
        }
        return lstFuncionario;
    }

    public ArrayList<Funcionario> findByEmpresa(Matriz m, Franquia f, int idFuncao) {
        Session objSession = this.objSessionFactory.openSession();
        ArrayList<Funcionario> lstFuncionario = null;
        int idMatriz = m.getIdmatriz();
        int idFranquia = f.getIdfranquia();
        try {
            Query objQuery = objSession.createQuery(
                    "from Funcionario where idmatriz = :matriz and idfranquia = :franquia and idfuncao = :funcao");
            objQuery.setParameter("franquia", idFranquia);
            objQuery.setParameter("matriz", idMatriz);
            objQuery.setParameter("funcao", idFuncao);
            lstFuncionario = (ArrayList<Funcionario>) objQuery.list();
        } catch (Exception e) {
            System.out.println(e.toString());
            return null;
        }
        return lstFuncionario;
    }

    public Object validaCPFeCNPJ(String texto) {
        Session objSession = this.objSessionFactory.openSession();
        try {
            Query q = objSession.createSQLQuery("select validaCPFeCNPJ(:texto)");
            q.setParameter("texto", texto);
            System.out.println(q.getQueryString());

            return q.uniqueResult();
        } catch (Exception e) {

        }
        return null;
    }

    public boolean fazLogin(String usuario, String senha) {
        Session objSession = this.objSessionFactory.openSession();
        try {
            Query q = objSession.createSQLQuery("select faz_login(:usuario, :senha)");
            q.setParameter("usuario", usuario);
            q.setParameter("senha", senha);

            return (boolean) q.uniqueResult();
        } catch (Exception e) {

        }
        return false;
    }

    public boolean validaLogin(String usuario, Integer idFuncionario) {
        Session objSession = this.objSessionFactory.openSession();
        try {
            Query q = objSession.createSQLQuery("select valida_login(:usuario, :id)");
            q.setParameter("usuario", usuario);
            q.setParameter("id", idFuncionario);

            return (boolean) q.uniqueResult();
        } catch (Exception e) {

        }
        return false;
    }

    public int retornaFuncionarioCombo(int Index, ArrayList<Funcionario> lstFuncionario) {
        Funcionario f;
        for (int i = 0; i < lstFuncionario.size(); i++) {
            if (i == Index) {
                f = (Funcionario) lstFuncionario.get(Index);
                return f.getIdfuncionario();
            }
        }
        return 0;
    }
}