Java tutorial
/* * 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; } }