RELAÇÃO ENTRE TABELAS PARA DAR BAIXA NO ESTOQUE
04/04/2013
0
ESTOU DESENVOLVENDO UM SISTEMA EM DELPHI USANDO O INTERBASE 6.0 PARA BANCO DE DADOS SQL QUE CONTROLA A ENTRADA E SAIDA DE MERCADORIAS DE UMA PREFEITURA.
TENHO UMA TABELA CHAMADA PRODUTOS ONDE EU CADASTRO OS PRODUTOS COMPRADOS PELA PREFEITURA E TENHO UMA TABELA CHAMADA TRANSFERENCIA QUE SERVE PARA EU TRANSFERIR UM DETERMINADO PRODUTO PARA AS FILIAS QUE SÃO AS SECRETARIAS
COMO EU FAÇO PARA QUE QUANDO EU TRANSFERIR UMA CERTA QUANTIDADE DE PRODUTO PARA UMA FILIAL DESSE BAIXA NA TABELA PRODUTOS ??
VEJA COMO EU FIZ A TABELA PRODUTOS:
CREATE TABLE "PRODUTOS"
(
"COD" INTEGER NOT NULL,
"DESCRI" VARCHAR(50),
"GRUPO" VARCHAR(20),
"FORNECEDOR" VARCHAR(50),
"QUANTIDADE" VARCHAR(10),
"PRECOCOMPRA" DECIMAL(8, 2),
"DATACOMPRA" TIMESTAMP,
"DATACAD" TIMESTAMP,
"OBS" VARCHAR(100),
"PRECOUNI" DECIMAL(8, 2),
"QUANTI" DECIMAL(8, 2),
CONSTRAINT "PK_PRODUTOS" PRIMARY KEY ("COD")
);
E A TABELA TRANSFERECIA:
CREATE TABLE "TRANSFERENCIA"
(
"CODIGO" INTEGER NOT NULL,
"FILIAL" VARCHAR(50),
"PRODUTO" VARCHAR(50),
"DATA" TIMESTAMP,
"QUANTIDADE" DECIMAL(8, 2),
"OBS" VARCHAR(100),
"DATADIC" TIMESTAMP,
"QUANTADIC" DECIMAL(8, 2),
"CODIGOPRODUTO" INTEGER NOT NULL,
CONSTRAINT "TRANSFERENCIA_PK" PRIMARY KEY ("CODIGO")
);
ALTER TABLE "TRANSFERENCIA" ADD CONSTRAINT "SAIDAPRODUTO" FOREIGN KEY ("CODIGOPRODUTO") REFERENCES PRODUTOS ("COD");
DESDE JA AGRADEÇO A ATENÇÃO
Jean Carlos
Posts
04/04/2013
William
Segue link:
[url]https://www.devmedia.com.br/implementando-controle-de-estoque-no-mysql-com-triggers-e-procedures/26352[/url]
06/04/2013
Jean Carlos
Eu nao conheço nada sobre triggers por isso ficou dificel de eu entder a sua aula.
Mais depois de bater muito a cabeça consegui resolver meu problema de uma maneira mais simples.
Ex:
Criei uma tabela chamada PRODUTOS onde serão cadastrados todos os produtos que entra na prefeitura,
e criei uma tabela chamada SAIDAPRODUTOS, na tabela PRODUTO tem um campo chamado ENTRAQUANTIDADE
e na tabela SAIDAPRODUTO tem um campo chamado SAIQUANTIDADE ambas eu coloquei como numeric o valor do campo,
desta forma eu consegui fazer o seguinte:
no evento OnEnter do dbedit SAIQUANTIDADE eu coloquei o codigo "datamodulo.tblprodutos.edit"
no evendo OnExit de mesmo dbedit coloquei o codigo
datamodulo.tblprodutos.entraquantidade.value:=
datamodulo.tblprodutos.entraquantidade.value-
datamodulo.tblsaiprodutossaiquantidade.value
e desta forma consegui dar baixa no na tabela produtos que estou usando tmbém como controle de estoque
Eu ja tinha feito esta mesma forma antes, nao tinha dado certo porque o valor dos campos descritos a cima eu coloquei como inteiro então dava erro na hora de copilar.
O que você acha desta formula que eu fiz será viavel p mim ou irá me trazer algum problema no futuro ??
Desde ja le agradeço a atenção
06/04/2013
Jean Carlos
Eu nao conheço nada sobre triggers por isso ficou dificel de eu entder a sua aula.
Mais depois de bater muito a cabeça consegui resolver meu problema de uma maneira mais simples.
Ex:
Criei uma tabela chamada PRODUTOS onde serão cadastrados todos os produtos que entra na prefeitura,
e criei uma tabela chamada SAIDAPRODUTOS, na tabela PRODUTO tem um campo chamado ENTRAQUANTIDADE
e na tabela SAIDAPRODUTO tem um campo chamado SAIQUANTIDADE ambas eu coloquei como numeric o valor do campo,
desta forma eu consegui fazer o seguinte:
no evento OnEnter do dbedit SAIQUANTIDADE eu coloquei o codigo "datamodulo.tblprodutos.edit"
no evendo OnExit de mesmo dbedit coloquei o codigo
datamodulo.tblprodutos.entraquantidade.value:=
datamodulo.tblprodutos.entraquantidade.value-
datamodulo.tblsaiprodutossaiquantidade.value;
datamodulo.tblprodutos.Refresh;
e desta forma consegui dar baixa no na tabela produtos que estou usando tmbém como controle de estoque
Eu ja tinha feito esta mesma forma antes, nao tinha dado certo porque o valor dos campos descritos a cima eu coloquei como inteiro então dava erro na hora de copilar.
O que você acha desta formula que eu fiz será viavel p mim ou irá me trazer algum problema no futuro ??
Desde ja le agradeço a atenção
06/04/2013
William
Mas já vi casos em que após finalizar uma venda ou saída, o sistema executa um loop e vai baixando produto a produto, é outra forma!!
Só aconselho vc a baixar o estoque somente ao finalizar esse documento de saída, não usando evento dos DBEdits, fica mais legível também para futuras manutenções.
22/09/2015
Antony Moraes
Clique aqui para fazer login e interagir na Comunidade :)