com.esteban.cmms.maven.model.Proveedores_Model.java Source code

Java tutorial

Introduction

Here is the source code for com.esteban.cmms.maven.model.Proveedores_Model.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 com.esteban.cmms.maven.model;

import com.esteban.cmms.maven.controller.beans.Proveedores;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

/**
 *
 * @author esteban
 */
public class Proveedores_Model {

    /**
     * Aade un nuevo proveedor a la tabla
     * @param obj un objeto de tipo Proveedores correctamente diligenciado, no es
     * necesario suministrar el id para este caso
     */
    public void addProveedor(Proveedores obj) {
        Transaction trns = null;
        Session session = HibernateUtil.getSessionFactory().openSession();
        try {
            trns = session.beginTransaction();
            session.save(obj);
            session.getTransaction().commit();
        } catch (RuntimeException e) {
            if (trns != null) {
                trns.rollback();
            }
            e.printStackTrace();
        } finally {
            session.flush();
            session.close();
        }
    }

    /**
     * Elimina un proveedor de forma definitiva de la tabla en la base de datos
     * @param objid entero que corresponde al registro que quiere eliminar
     */
    public void deleteProveedor(int objid) {
        Transaction trns = null;
        Session session = HibernateUtil.getSessionFactory().openSession();
        try {
            trns = session.beginTransaction();
            Proveedores obj = (Proveedores) session.load(Proveedores.class, new Integer(objid));
            session.delete(obj);
            session.getTransaction().commit();
        } catch (RuntimeException e) {
            if (trns != null) {
                trns.rollback();
            }
            e.printStackTrace();
        } finally {
            session.flush();
            session.close();
        }
    }

    /**
     * Actualiza un proveedor
     * @param obj Objeto de tipo proveedores, es necesario que el id este incluido
     *  en los datos del pojo para una correcta actualizacin
     */
    public void updateProveedor(Proveedores obj) {
        Transaction trns = null;
        Session session = HibernateUtil.getSessionFactory().openSession();
        try {
            trns = session.beginTransaction();
            session.update(obj);
            session.getTransaction().commit();
        } catch (RuntimeException e) {
            if (trns != null) {
                trns.rollback();
            }
            e.printStackTrace();
        } finally {
            session.flush();
            session.close();
        }
    }

    /**
     * Obtiene una lista de los proveedores con estado activo
     * @return lista de tipo Proveedores con los datos correspondientes
     */
    public List<Proveedores> getAllProveedores() {
        List<Proveedores> obj = new ArrayList<Proveedores>();
        Transaction trns = null;
        Session session = HibernateUtil.getSessionFactory().openSession();
        try {
            trns = session.beginTransaction();
            obj = session.createQuery("from Proveedores as pro " + "left join fetch pro.ciudades ci "
                    + "left join fetch ci.paises " + "where pro.estado = 'Activo' " + "order by pro.nombreCompania")
                    .list();
        } catch (RuntimeException e) {
            e.printStackTrace();
        } finally {
            session.flush();
            session.close();
        }
        return obj;
    }

    /**
     * Obtiene una lista de los proveedores con estado inactivo
     * @return lista de tipo Proveedores con los datos correspondientes
     */
    public List<Proveedores> listNoActive() {
        List<Proveedores> obj = new ArrayList<Proveedores>();
        Transaction trns = null;
        Session session = HibernateUtil.getSessionFactory().openSession();
        try {
            trns = session.beginTransaction();
            obj = session.createQuery(
                    "from Proveedores as pro " + "left join fetch pro.ciudades ci " + "left join fetch ci.paises "
                            + "where pro.estado = 'Inactivo' " + "order by pro.nombreCompania")
                    .list();
        } catch (RuntimeException e) {
            e.printStackTrace();
        } finally {
            session.flush();
            session.close();
        }
        return obj;
    }

    /**
     * Obtiene un nico registro de la base de datos en la tabla proveedores
     * @param objid entero correspondiente al id del registro en la base de datos
     * @return un nico resultado tipo Proveedores con los datos del registro.
     */
    public Proveedores getProveedorById(int objid) {
        Proveedores obj = null;
        Transaction trns = null;
        Session session = HibernateUtil.getSessionFactory().openSession();
        try {
            trns = session.beginTransaction();
            String queryString = "from Proveedores where id = :id";
            Query query = session.createQuery(queryString);
            query.setInteger("id", objid);
            obj = (Proveedores) query.uniqueResult();
        } catch (RuntimeException e) {
            e.printStackTrace();
        } finally {
            session.flush();
            session.close();
        }
        return obj;
    }

    /**
     * Actualiza los estados de los proveedores para que sigan o no disponibles en 
     * el funcionamiento del sistema
     * @param estado El estado al que se desea actualizar el registro, para este
     * sistema puede se 'Activo' o 'Inactivo'
     * @param id el entero (int) correspondiente al id del registro en la tabla 
     * de la base de datos
     * @param user el usuario que realiza la accin
     */
    public void estadoProveedor(String estado, Integer id, String user) {
        Transaction trns = null;
        Session session = HibernateUtil.getSessionFactory().openSession();
        try {
            trns = session.beginTransaction();
            Query query = session.createQuery(
                    "UPDATE Proveedores SET " + "Estado = :estado, " + "UserAction = :user " + "WHERE Id = :id");
            query.setString("estado", estado);
            query.setString("user", user);
            query.setInteger("id", id);
            query.executeUpdate();
            session.getTransaction().commit();
        } catch (RuntimeException e) {
            if (trns != null) {
                trns.rollback();
            }
            e.printStackTrace();
        } finally {
            session.flush();
            session.close();
        }
    }
}