Dar baixa no Estoque

8 respostas
Lags

Fala ai galera,

Estou com uma dúvida referente a baixa no estoque.
Seguinte, eu tenho no meu formulário de venda uma Jtable que recebe todos os produtos que o cliente deseja comprar, por fim salvo todos os dados no banco. Com isso gostaria que cada produto vendido, que dê uma baixa direto na tabela de produto especificamente na quantidade. Estou usando hibernate, só que estou com dúvida como fazer este upadete no hibernate.
Espero que fui claro na minha explicação, mas qualquer coisa estou a deposição e desde já agradeço pela atenção.

8 Respostas

Lags

Alguém pode-me ajudar, estou precisando muito galera.
vlw

H

Uma possibilidade...

public void saveVenda(VendaJB venda){
		this.manager = MeuEntityManager.getEntityManager();
		ProdutoJB baixar;	
		List<ItemJB> litens = venda.getItens(); // minha lista de itens		
		this.manager.getTransaction().begin();
		try {
			
			for(ItemJB item : litens) {				
						
				baixar = this.manager.find(ProdutoJB.class, item.getProduto().getCodProduto()); // faço uma busca pelo id do produto que será alterado.
				baixar.setQuantidadeLoja(baixar.getQuantidadeLoja() - item.getQuantidadeItem()); // faço a subtração				
				this.manager.merge(baixar);				
			}
			
			this.manager.merge(venda);
			
			this.manager.getTransaction().commit();
		} catch (Exception e) {
			this.manager.getTransaction().rollback();
			e.printStackTrace();
		}
	}
Lags

henriquejhc,

O que vai fazer this.manager = MeuEntityManager.getEntityManager();
Sabe sou iniciante em java, porém tem algumas coisas que não conheço ainda, mesmo assim pesquisei não achei nada que explica ele.

H

Você ustá usando hibernate ou jpa?

Esse MeuEntityManager.getEntityManager(); é onde estou pegando uma instância do meu Singleton.
Exemplo simples:

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class MeuEntityManager {
	
    public static String DEFAULT_UNIT_NAME = "NomeDoSeuPersistenceUnit";
    
    private static EntityManagerFactory emf = null;
    
    public static EntityManager getEntityManager() {
        if( emf == null ){
        	System.out.println("Criando o EntityManagerFactory");
        	init();
        	System.out.println("EntityManagerFactory Criado");
        }
        return emf.createEntityManager();
    }   
    
    private static void init() {
       emf = Persistence.createEntityManagerFactory(DEFAULT_UNIT_NAME);
    }
    .....
    .....
}

Para você utilizar…

public void save(Object object){
    EntityManager manager = MeuEntityManage.getEntityManager(); // pego a instância do meu EntityManager
    manager.getTransaction().begin(); // abro a transação
    try{
        manager.persist(object); // persisto o objeto
        manager.getTransaction().commit(); // comito 
    } catch  (Exception e) {  
        manager.getTransaction().rollback(); // caso ocorra algum erro faço o rollback   
        e.printStackTrace();  
     }
}
Lags

Estou usando a Hibernate!

R

Lags:
henriquejhc,

O que vai fazer this.manager = MeuEntityManager.getEntityManager();
Sabe sou iniciante em java, porém tem algumas coisas que não conheço ainda, mesmo assim pesquisei não achei nada que explica ele.

Sinceramente,

Como você está fazendo JDBC, Hibernate?

-> Quando você realizar a venda vai ter quantos produtos de cada foram vendidos
-> Então você abre conexão com o banco e vai retirar essas quantidades do estoque

Apenas isso.

Agora saber como ir até o banco e retirar essas quantidades já é outra história (JDBC ou Hibernate)

H

Te aconselharia dar uma estuda sobre jpa.
Tem algum conhecimento em abrir uma session no hibernate? As configurações estão prontas?

Lags

Já tenho toda configuração da Hibernate e DAO, só é como usar método UPdate da Hibernate

Criado 3 de fevereiro de 2010
Ultima resposta 3 de fev. de 2010
Respostas 8
Participantes 3