model.OrdemservicoModel.java Source code

Java tutorial

Introduction

Here is the source code for model.OrdemservicoModel.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.awt.Component;
import java.sql.Connection;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import org.hibernate.ObjectNotFoundException;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.transform.Transformers;

/**
 *
 * @author joao
 */
public class OrdemservicoModel {
    private final SessionFactory objSessionFactory;
    private Connection conexao = null;
    private final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
    private final SimpleDateFormat datahora = new SimpleDateFormat("yyyy-MM-dd hh:mm");
    String msg = "";

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

    public String insert(Ordemservico 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 Ordemservico update(Ordemservico 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.
            obj = (Ordemservico) objSession.merge(obj);
            //Realiza um commit do UPDATE
            objTransaction.commit();
        } catch (Exception e) {
            //Caso ocorrer algum erro, mostra uma mensagem
            obj = null;
            //Realiza o Rollback, cancelando o UPDATE no banco de dados.
            objTransaction.rollback();
        }

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

    public String delete(Ordemservico 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<Ordemservico> findByAll(Matriz m, Franquia f) {
        //Cria lista de objetos
        ArrayList<Ordemservico> lstOrdemservico = null;
        //Abre um sesso
        Session objSession = this.objSessionFactory.openSession();
        List<Object[]> objs = null;
        try {
            //Query objQuery = objSession.createQuery("FROM Ordemservico Where idmatriz = :matriz and idfranquia = :franquia");
            Query objQuery = objSession.createQuery("FROM Ordemservico");
            //objQuery.setParameter("idmatriz",m.getIdmatriz());
            //objQuery.setParameter("idfranquia", f.getIdfranquia());
            //objs = objQuery.list();   
            lstOrdemservico = (ArrayList<Ordemservico>) objQuery.list();
        } catch (ObjectNotFoundException e) {
            return null;
        }
        //return objs;
        return lstOrdemservico;
    }

    public ArrayList<Ordemservico> findByFinalizada(Matriz m, Franquia f, int idFuncionario, String dataInicial,
            String dataFinal) {
        //Cria lista de objetos
        ArrayList<Ordemservico> lstOrdemservico = null;
        //Abre um sesso
        Session objSession = this.objSessionFactory.openSession();
        List<Object[]> objs = null;
        try {
            Query objQuery = objSession
                    .createQuery("FROM Ordemservico Where idmatriz = :matriz and idfranquia = :franquia"
                            + " and idfuncionario = :idFuncionario");
            //Query objQuery = objSession.createQuery("FROM Ordemservico");
            //objQuery.setParameter("idmatriz",m.getIdmatriz());
            //objQuery.setParameter("idfranquia", f.getIdfranquia());
            //objs = objQuery.list();   
            lstOrdemservico = (ArrayList<Ordemservico>) objQuery.list();
        } catch (ObjectNotFoundException e) {
            return null;
        }
        //return objs;
        return lstOrdemservico;
    }

    public ArrayList<Ordemservico> findById(int idOS) {
        ArrayList<Ordemservico> lstOrdemservicos = null;
        Session objSession = this.objSessionFactory.openSession();
        try {
            Query objQuery = objSession.createQuery("FROM Ordemservico where idordemservico = :idos");
            objQuery.setParameter("idos", idOS);
            lstOrdemservicos = (ArrayList<Ordemservico>) objQuery.list();
        } catch (ObjectNotFoundException e) {
            return null;
        }

        return lstOrdemservicos;
    }

    public ArrayList<Object[]> findByFiltros(int idOS, String cliente, String status, String dataInicial,
            String dataFinal, Matriz m, Franquia f, int idFuncionario, String horaInicial, String horaFinal) {
        ArrayList<Object[]> lstOrdemservicos = null;
        Session objSession = this.objSessionFactory.openSession();
        Query objQuery;
        if (horaInicial == "") {
            horaInicial = "00:00";
        }
        if (horaFinal == "") {
            horaFinal = "23:59";
        }
        String filtro = " WHERE o.matriz = " + m.getIdmatriz();
        if (f.getPrestaservico()) {
            filtro += " AND o.franquia = " + f.getIdfranquia();
        }
        filtro += " AND o.datainicioagendada >= '" + dataInicial + " " + horaInicial + "' ";
        filtro += " AND o.datainicioagendada <= '" + dataFinal + " " + horaFinal + "' ";
        try {
            if (idOS != 0) {
                filtro += "AND o.idordemservico = " + idOS;
            }
            if (cliente.trim().length() > 0) {
                filtro += "AND p.nome like '%" + cliente + "%'";
            }
            if (status != "Todos") {
                filtro += "AND o.status = '" + status + "'";
            }
            if (idFuncionario != 0) {
                filtro += "AND f.idfuncionario = " + idFuncionario;
            }

            objQuery = objSession
                    .createQuery("FROM Ordemservico o INNER JOIN o.pessoa as p INNER JOIN o.funcionario as f"
                            + filtro + " ORDER BY datainicioagendada");

            lstOrdemservicos = (ArrayList<Object[]>) objQuery.list();
        } catch (ObjectNotFoundException e) {
            return null;
        }
        return lstOrdemservicos;
    }

    public ArrayList<Object[]> findbyData(Matriz m, Franquia f, Date data) {
        ArrayList<Object[]> lstOrdemservicos = null;
        Session objSession = this.objSessionFactory.openSession();
        SQLQuery objQuery;
        String filtroInicial = formatter.format(data);
        String filtroFinal = formatter.format(data);
        filtroInicial += " 00:00";
        filtroFinal += " 23:59";
        int idMatriz = m.getIdmatriz();
        int idFranquia = f.getIdfranquia();
        try {
            objQuery = objSession.createSQLQuery("SELECT * FROM Ordemservico where datainicioagendada => '"
                    + filtroInicial + "' AND datafimagendada <= '" + filtroFinal + "'");
            //objQuery.setParameter("matriz", idMatriz);
            //objQuery.setParameter("franquia", idFranquia);
            //AND idmatriz = :matriz AND idfranquia = :franquia");
            lstOrdemservicos = (ArrayList<Object[]>) objQuery.list();
        } catch (Exception e) {
            return null;
        }
        return lstOrdemservicos;
    }

    public int setaComboStatus(String status) {
        if (status == "Em aberto") {
            return 1;
        } else if (status == "Em andamento") {
            return 2;
        } else if (status == "Finalizada") {
            return 3;
        } else {
            return 0;
        }
    }

    public String retornaCampoCliente(int Cliente, String campo) {
        Session objSession = this.objSessionFactory.openSession();
        ArrayList<Pessoa> lstPessoa = null;
        Pessoa p;
        Query query;
        try {
            query = objSession.createQuery(campo + " FROM Pessoa where pessoa = :idpessoa");
            query.setParameter("idpessoa", Cliente);
            lstPessoa = (ArrayList<Pessoa>) query.list();
            p = (Pessoa) lstPessoa.get(0);
            return p.getNome();
        } catch (ObjectNotFoundException e) {
            return "";
        }
    }

    public String retornaComboStatus(int index) {
        if (index == 0) {
            return "Em aberto";
        } else if (index == 1) {
            return "Em andamento";
        } else if (index == 2) {
            return "Finalizada";
        }
        return "";
    }

    public String setaFuncionario(int idFuncionario, ArrayList<Funcionario> lstFuncionario) {
        Funcionario f;
        for (int i = 0; i < lstFuncionario.size(); i++) {
            f = (Funcionario) lstFuncionario.get(i);
            if (idFuncionario == f.getIdfuncionario()) {
                return f.getNome();
            }
        }
        return "";
    }

    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;
    }

    public boolean validaDataAgendada(Integer idfuncioario, Date inicio, Date fim, Integer idMatriz,
            Integer idFranquia, Integer idOS) {
        Session objSession = this.objSessionFactory.openSession();
        try {
            Query x = objSession.createSQLQuery(
                    "select valida_dataAgendada(:funcionario, :inicio, :fim, :matriz, :franquia, :idos)");
            x.setParameter("funcionario", idfuncioario);
            x.setParameter("inicio", datahora.format(inicio));
            x.setParameter("fim", datahora.format(fim));
            x.setParameter("matriz", idMatriz);
            x.setParameter("franquia", idFranquia);
            x.setParameter("idos", idOS);
            return (boolean) x.uniqueResult();
        } catch (Exception e) {

        }
        return false;
    }
}