Validar Saldo Negativo do estoque

Delphi

27/05/2014

Pessoal preciso que ao inserir um produto na minha nota o sistema verifique se o estoque nao esta zerado ou negativo, e se a quantidade inserida for maior que a em estoque ele nao deixe inserir
para inserir esses itens antes de grava a venda no banco eu uso um Clientdataset em memoria ou seja isolado com Fields intercalc, agregadas ....
a minha rotina de inclusao temporaria antes de salvar é:
begin
cdsItens.Open;
cdsitens.Append; //criar um novo registro para se preenchido
cdsItensId_Produto.AsString:= edtcodpro.text;
cdsItensDescricao.Asstring:= edtdescpro.text;
cdsItensquantidade.Asstring:= edtquantpro.text;
cdsItenspreco.AsString:= edtPrecopro.text;
cdsItens.Post;

end;

aqui a rotina para gravar no banco
with dm do
begin
// cds_CadEntrega.Open;
cds_CadEntrega.Append;
cds_CadEntregaID_ESCOLA.Value:= DMPesq.cdsPesq_EntidadeID_Escola.Value;
cds_CadEntregaDATA_ENTREGA.Value:= strtodate(Edit5.Text);
cds_CadEntregaHORA_ENTREGA.Value:= strtotime(Edit6.Text);
cds_CadEntrega.Post;
cds_CadEntrega.ApplyUpdates(0);

cdsItens.First; //posiciona primeiro registro
while not cdsItens.eof do //enquanto nao chegar no final do meu cdsitens, faça isso
begin
cds_CadITEM_DA_ENTREGA.Append;// criar um novo registro para se preenchido
cds_cadITEM_DA_ENTREGAID_PRODUTO.Value:= cdsItensId_produto.Value;
cds_cadITEM_DA_ENTREGAPRECO_UNITARIO.AsFloat:= cdsItensPreco.AsFloat;
cds_CadITEM_DA_ENTREGAQTDADE.AsFloat:= cdsItensQuantidade.AsFloat;
cds_cadITEM_DA_ENTREGAVALOR_TOTAL.AsFloat:= cdsItensValorTotal.AsFloat;
cds_cadITEM_DA_ENTREGA.Post;
cdsItens.Next;
end;
cds_cadITEM_DA_ENTREGA.ApplyUpdates(0);
cdsItens.EmptyDataSet;
end;

na minha tabela de produto tem o campo ESTOQUE REAL onde fica a quantidade que se tem em estoque...
se alguem puder ajudar agradeço!!!
Fabio

Fabio

Curtidas 0

Respostas

Marisiana Battistella

Marisiana Battistella

27/05/2014

Você pode criar um procedimento no banco de dados que receba o ID do produto que será inserido na nota e verifique o estoque dele.
Esse procedimento deverá ser chamado antes de inserir o produto na nota e só poderá prosseguir a inclusão do mesmo se o estoque estiver OK.
GOSTEI 0
Fabio

Fabio

27/05/2014

Você pode criar um procedimento no banco de dados que receba o ID do produto que será inserido na nota e verifique o estoque dele.
Esse procedimento deverá ser chamado antes de inserir o produto na nota e só poderá prosseguir a inclusão do mesmo se o estoque estiver OK.


Ola Marisiane tambem pensei nisso, porem fica mais interessante eu validar antes de tentar a inserção no banco, tipo la no meu grid dos itens se estiver negativo ou a quantidade ultrapassar o estoque real, nem deixar inserir na minha lista entende?
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

27/05/2014

Sim, é isso que você vai fazer da forma como falei.
Antes de código que vai realizar a inserção, vc tem que executar o procedimento de verificação do estoque. Se tiver estoque suficiente, segue o processo de inserção, senão vc vai mostrar uma mensagem pro usuário informando q não há estoque suficiente.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

27/05/2014

Que banco de dados você está utilizando?
GOSTEI 0
Fabio

Fabio

27/05/2014

Eu uso o Firebird 2.5, no caso seria um procedimento no envento beforeinsert, poderia me dar um exemplo da estrutura do código levando em consideracao que tenho a tabela itens da entrega onde vai a quantidade a tabela produtos onde fica o estoque real e a tabela venda onde registra a venda...
GOSTEI 0
POSTAR