Vraptor + hibernate com dar baixa no estoque?

0 respostas
B

Opa iai galera tudo bem? estou com uma duvida eu estou seguindo a apostila fj28 e fiz ela toda e esta tudo funcionando so q eu qro dar baixa no estoque qndo por exemplo tem 15 dvds ao comprar 1 ficaria 14 no banco e eu não estou conseguindo fazer tentei assim mais não consegui,obrigado…segue meu codigo

carrinhoController

package br.com.umc.get.controller;

import br.com.caelum.vraptor.Delete;

import br.com.caelum.vraptor.Get;

import br.com.caelum.vraptor.Path;

import br.com.caelum.vraptor.Post;

import br.com.caelum.vraptor.Resource;

import br.com.caelum.vraptor.Result;

import br.com.umc.get.dao.ProdutoDao;

import br.com.umc.get.modelo.Carrinho;

import br.com.umc.get.modelo.Item;

@Resource
public class CarrinhoController {

private final Carrinho carrinho;

private final ProdutoDao dao;

private final Result result;
public CarrinhoController(Carrinho carrinho, ProdutoDao dao, Result result) {

this.carrinho = carrinho;

this.dao = dao;

this.result = result;

}
@Post <a class="mention" href="/u/path">@Path</a>("/carrinho")

public void adiciona(Item item) {

dao.recarrega(item.getProduto());

dao.estoque(item.getProduto());

carrinho.adiciona(item);

carrinho.estoque(item);

result.redirectTo(this).visualiza();
}

public void visualiza() {
}

@Delete <a class="mention" href="/u/path">@Path</a>("/carrinho/{indiceItem}")

public void remove(int indiceItem) {

carrinho.remove(indiceItem);

result.redirectTo(this).visualiza();

}

}

Carrinho

package br.com.umc.get.modelo;

import java.util.ArrayList;
import java.util.List;

import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.ioc.SessionScoped;

@Component
@SessionScoped
public class Carrinho {

private List itens = new ArrayList();

private Double total = 0.0;

private Integer ItemEstoque;
public List getItens() {

return itens;

}
public void setItens(List itens) {

this.itens = itens;

}
public Double getTotal() {

return total;

}
public void setTotal(Double total) {

this.total = total;

}
public Integer getItemEstoque() {

return ItemEstoque;

}
public void setItemEstoque(Integer ItemEstoque) {

this.ItemEstoque = ItemEstoque;

}
public void adiciona(Item item) {

itens.add(item);

total += item.getProduto().getPreco() * item.getQuantidade();

}
public Integer getTotalDeItens() {

return itens.size();

}
public void remove(int indiceItem) {

Item removido = itens.remove(indiceItem);

total -= removido.getProduto().getPreco() * removido.getQuantidade();

}
// esse seria o metodo q estou tentando fazer para dar baixar no estoque

public void estoque(Item item) {

ItemEstoque = item.getProduto().getEstoque() - item.getQuantidade();

}

}

Dao

package br.com.umc.get.dao;

import java.util.List;

import org.hibernate.Session;

import org.hibernate.Transaction;

import org.hibernate.criterion.MatchMode;

import org.hibernate.criterion.Restrictions;
import br.com.caelum.vraptor.ioc.Component;

import br.com.umc.get.infra.CriadorDeSession;

import br.com.umc.get.modelo.Produto;

@Component
public class ProdutoDao {

private final Session session;

public ProdutoDao(Session session) {

this.session = session;

}
public void salva(Produto produto) {

Transaction tx = session.beginTransaction();

session.save(produto);

tx.commit();

}
public List listaTudo() {

return this.session.createCriteria(Produto.class).list();

}
public Produto carrega(Long id) {

return (Produto) this.session.load(Produto.class, id);

}
public void atualiza (Produto produto) {

Transaction tx = session.beginTransaction();

this.session.update(produto);

tx.commit();

}
public void remove(Produto produto) {

Transaction tx = session.beginTransaction();

this.session.delete(produto);

tx.commit();

}
public List busca(String nome) {

return session.createCriteria(Produto.class)

.add(Restrictions.ilike(nome,nome, MatchMode.ANYWHERE))

.list();

}
public void recarrega(Produto produto) {

session.refresh(produto);

}
// junto com esse metodo q iria atualizar no banco

public void estoque(Produto produto) {

Transaction tx = session.beginTransaction();

this.session.update(produto);

tx.commit();

}

}

Criado 24 de novembro de 2011
Respostas 0
Participantes 1