Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

flavioavilela

[Resolvido] Atualizar qtde produtos qdo estiver dando entrada nos

Recommended Posts

Galera, eu novamente ai...

agora é o seguinte...

por exemplo: estou dando entrada nos produtos que chegou pra mim em uma nota fiscal... cada item que eu der entrada, eu queria automaticamente já ir lá na tabela de produtos e adicionar a quantidade que eu informei desse item na entrada ao estoque... tipo assim, cadastrei o item Parafuso, eu dei entrada em 30 parafusos, automaticamente quando eu der entrada nesses 30 parafusos lá na janela de Entradas, ele já vai na tabela de produtos e adiciona mais 30 lá, para quando abrir a janela de produtos está atualizado... e também estou tentando fazer uma query, para que, sempre q o usuário digitar o codigo do produto, ele busca somente aquele produto, por exemplo, se o usuário digitar o produto 123, jogar no dbgrid somente o produto 123... esse jeito q fiz ai, ele além de mostrar o 123, mostra todos que começam com 123........ ME AJUDEM POR FAVOR.....

 

eu tentei fazer dessa forma abaixo, mas não está dando certo, as vezes pode ser que estou colocando end ou end; ou begin ou algo assim no lugar onde não deve... me ajudem por favor...

 

if Key = #13 then
	if Application.MessageBox('Deseja inserir novos registros?', 'Escolha uma opção', MB_ICONQUESTION+MB_YESNO)=idyes then
	  begin
		with DM.SPItens_Compra do
		  begin
			try
			  Params[1].AsInteger:=1;
			  Params[3].AsString:= EdtN_Nota_Fiscal.Text;
			  Params[4].AsString:= EdtCodigo.Text;
			  Params[5].AsString:= EdtNome.Text;
			  Params[6].AsFloat:= StrtoFloat(EdtQuantidade.Text);
			  Params[7].AsFloat:= StrtoFloat(EdtValor_Unitario.Text);
			  Params[8].AsFloat:= StrtoFloat(EdtSub_Total.Text);
			  ExecProc;
			  DM.qry_itens.Close;
			  DM.qry_itens.SQL.Clear;
			  DM.qry_itens.SQL.Add ('select * from Itens_Compra where N_Nota_Fiscal like '''+ EdtN_Nota_Fiscal.Text +'%''');
			  DM.qry_itens.Open;
			  ShowMessage('Dados inseridos com sucesso.');

			  DM.qryprodutos.First;
			  while not DM.qryprodutos.Eof do begin
				if codigo = DM.qryprodutosCodigo_Registro.AsString then
				  begin
					with DM.SPProdutos do
					  try
						Params[1].AsInteger:= 2;
						Params[7].AsFloat:= DM.qryprodutosQtde_Estoque.AsFloat + StrToFloat(EdtQuantidade.Text);
						ExecProc;
						ShowMessage('Seu Estoque foi atualizado com sucesso');
					  except
						ShowMessage('Estoque não atualizado com sucesso. Verifique as informações e tente novamente');
					  end;
				  end
				else
				DM.qryprodutos.Next;
			  end;
			except
			  ShowMessage('Há dados incorretos.');
			end;

 

estou usando query da paleta bde para comunicação e sqlserver como banco....

 

alguém pode me socorrer????????

 

Desde já, agradeço a ajuda de todos...

 

Leia aqui a 9ª Regra do Fórum

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só!

Provavelmente você tem uma QueryItensNF que você usa pra gravar todos os itens que é composta a nota fiscal, certo?

Então, no clique do botão, savar entrada, você monta um laço while, percorrendo todos os registros desta QueryItensNF, e pra cada registro, você usa outra Query (QueryAtualizaEstoque) para atualizar a quantidade de estoque ....

 

{...}

UPDATE PRODUTOS SET QTDE = QTDE + :pNovaQtde WHERE ID_PRODUTO = :pIdProduto
{...}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.