Exemplo controle de estoque?

3 respostas
programaçãojava
Dfodani

Ola tudo bem? gostaria de saber se alguem tem algum exemplo de controle de estoque eu queria que ao clicar no botao ao salvar venda diminuisse do estoque o produto alguem?

segue codigo botao

botao2.addActionListener(new ActionListener() {       
    public void actionPerformed(ActionEvent e) {       
		// TODO add your handling code here: 
        for (int i = 0; i < modelo.getRowCount(); i ++ )
        {
            VendaProduto it = new VendaProduto();
            it.setCodigo(Integer.parseInt(String.valueOf(modelo.getValueAt(i, 0))));
            it.setData(f.getSelectedDate());
            it.setNomevendedor(String.valueOf(modelo.getValueAt(i, 2)));
            it.setDescricao(String.valueOf(modelo.getValueAt( i ,3)));
            it.setQtde(Integer.parseInt(String.valueOf(modelo.getValueAt( i ,4))));
            it.setValor(Double.parseDouble(String.valueOf(modelo.getValueAt( i ,5))));
            it.setTotal(Double.parseDouble(String.valueOf(modelo.getValueAt( i ,6))));
            
			ListarVendas l = new ListarVendas(fabricaDeEntidades, gerenciador);

            gerenciador.getTransaction().begin();
            gerenciador.persist(it);
            gerenciador.getTransaction().commit();

        }

            }

});

segue tabela produto ira diminuir do estoque da variavel estoque

package Modelo;

import java.util.Calendar;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
public class Produto {
	@Id
	private int codproduto;
	
	private String fornecedor;
	
	private String descricao;
	
	private String referencia;
	
	private String  marca;
	
	private String categoria;
	
	private int estoque;
	@Temporal(TemporalType.DATE)
	private Calendar data;
	
	private Double valor;

	public String getCategoria() {
		return categoria;
	}

	public void setCategoria(String categoria) {
		this.categoria = categoria;
	}

	
	public int getCodproduto() {
		return codproduto;
	}

	public void setCodproduto(int codproduto) {
		this.codproduto = codproduto;
	}

	public Calendar getData() {
		return data;
	}

	public void setData(Calendar data) {
		this.data = data;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public int getEstoque() {
		return estoque;
	}

	public void setEstoque(int estoque) {
		this.estoque = estoque;
	}

	public String getMarca() {
		return marca;
	}

	public void setMarca(String marca) {
		this.marca = marca;
	}

	public String getReferencia() {
		return referencia;
	}

	public void setReferencia(String referencia) {
		this.referencia = referencia;
	}

	public Double getValor() {
		return valor;
	}

	public void setValor(Double valor) {
		this.valor = valor;
	}

	public String getFornecedor() {
		return fornecedor;
	}

	public void setFornecedor(String fornecedor) {
		this.fornecedor = fornecedor;
	}

}

3 Respostas

D

Se estiver usando banco de dados você poderia colocar na tabela produto uma coluna entrada_saida do tipo BIT que recebe um boolean. Toda vez que adicionar um produto ele recebe true e quando você vender o produto faz um update e seta um false e quando for listar os produtos em estoque defini isso no seu filtro.

OBS: Isso é uma solução simples, o ideal seria você ter tudo registrado em seu banco, como o dia que o produto entrou, o dia que foi vendido, quem vendeu e etc… Se você estiver fazendo algo muito elaborado tem que fazer isso de acordo com sua regra de negócio.

Dfodani

Acredito que eu esteja quase la rsrs

botao2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

// TODO add your handling code here:

Produto p = new Produto();

Connection conexao;

try {

conexao = DriverManager.getConnection(

jdbc:postgresql:TurmaN40,postgres, 33462634);

System.out.println(Conectado!);

conexao.close();

} catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}
for (int i = 0; i < modelo.getRowCount(); i ++ )
            {
                VendaProduto it = new VendaProduto();
                it.setCodigo(Integer.parseInt(String.valueOf(modelo.getValueAt(i, 0))));
                it.setData(f.getSelectedDate());
                it.setNomevendedor(String.valueOf(modelo.getValueAt(i, 2)));
                it.setDescricao(String.valueOf(modelo.getValueAt( i ,3)));
                it.setQtde(Integer.parseInt(String.valueOf(modelo.getValueAt( i ,4))));
                it.setValor(Double.parseDouble(String.valueOf(modelo.getValueAt( i ,5))));
                it.setTotal(Double.parseDouble(String.valueOf(modelo.getValueAt( i ,6))));
                
    			ListarVendas l = new ListarVendas(fabricaDeEntidades, gerenciador);

                gerenciador.getTransaction().begin();
                gerenciador.persist(it);
                gerenciador.getTransaction().commit();
                
                gerenciador = it.getQtde() - p.getEstoque();
                
                PreparedStatement psm = null;
            	psm = conexao.getConnection().prepareStatement(
						"UPDATE vendaproduto SET Codigo =? , Data =? , Nomevendedor =? , Descricao  =?,"
								+ " Qtde = ? , Valor = ?, Total = ? WHERE Codigo = ?");

            }

                }

});
Dfodani

mas ainda esta dando alguns erros

Criado 13 de maio de 2017
Ultima resposta 14 de mai. de 2017
Respostas 3
Participantes 2