br.com.cary.dao.ProdutoEstoqueDAO.java Source code

Java tutorial

Introduction

Here is the source code for br.com.cary.dao.ProdutoEstoqueDAO.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.com.cary.dao;

import br.com.cary.entity.Produto;
import br.com.cary.entity.ProdutoEstoque;
import br.com.cary.util.ConectaDB;
import br.com.cary.util.GenericDAO;
import cary.utility.Alertas;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

/**
 *
 * @author Reginaldo
 */
public class ProdutoEstoqueDAO extends GenericDAO {

    public static ProdutoEstoqueDAO getInstance() {
        return new ProdutoEstoqueDAO();
    }

    public void atualizarEstoque(ProdutoEstoque pe) {
        Session s = ConectaDB.getSessionFactory().openSession();
        try {
            s.beginTransaction();
            Query q = s.createQuery(
                    "update ProdutoEstoque set quantidade = quantidade + :qtde where produto = :prod and setor = :setor")
                    .setParameter("qtde", pe.getQuantidade()).setParameter("prod", pe.getProduto())
                    .setParameter("setor", pe.getSetor());
            q.executeUpdate();
            s.getTransaction().commit();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            s.close();
        }
    }

    public ProdutoEstoque verificaSeExiste(ProdutoEstoque prod) {
        Session s = ConectaDB.getSessionFactory().openSession();
        try {
            Criteria c = s.createCriteria(ProdutoEstoque.class);
            c.add(Restrictions.eq("produto", prod.getProduto())).add(Restrictions.eq("setor", prod.getSetor()));
            if (c.list().size() != 0) {
                return (ProdutoEstoque) c.uniqueResult();
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            s.close();
        }
        return null;
    }

    public List listar(Produto p) {
        List lista = null;
        Session s = null;
        try {
            s = ConectaDB.getSessionFactory().openSession();
            Criteria crit = s.createCriteria(ProdutoEstoque.class);
            crit.add(Restrictions.eq("produto", p));
            lista = crit.list();
        } catch (Exception e) {
            Alertas.mensagemErro(e.getMessage() + "\nErro ao tentar salvar os dados!");
        } finally {
            s.close();
        }
        return lista;
    }
}