Verificando Estoque

Firebird

31/10/2012

Olá pessoal!
Estou desenvolvendo um projeto da faculdade usando Delphi7, Firebird 2.5, e ReportBuilder para os relatórios.
o projeto é um sistema de gerenciamento de estoques de laboratórios acadêmicos para a própria faculdade, então nele eu vou ter o cadastro dos laboratórios, e dos produtos de cada laboratório. Estou com dificuldade na elaboração do SQL que faz o cálculo de estoque, pois tenho uma tabela de Entradas e uma de Saidas. Quando o usuário for incluir uma Saida, é preciso verificar o estoque para ver se tem aquele produto em estoque naquele laboratório, passando como parâmetros o código do produto e do laboratório que está sendo dado baixa. Então, eu teria que fazer esta verificação antes de salvar a Saida. Da mesma forma, preciso gerar um relatório que liste os produtos do laboratório e seu estoque.
Alguém teria uma sugestão de como posso fazer esta consulta? teria que fazer isto por uma view, procedure??
Caso minha explicação tenha ficado confusa, posso passar mais detalhes...
Juliane Colling

Juliane Colling

Curtidas 0

Respostas

Juliane Colling

Juliane Colling

31/10/2012

Só para complementar, na consulta de estoque é preciso somar todas as entradas do produto naquele laboratório, e subtrair as saídas, para se ter o valor atual do estoque. Assim, se o valor de estoque for menor do que a quantidade informada no registro de saída, o sistema não deve permitir cadastrar esta saída, dando uma mensagem de alerta ao usuário.
GOSTEI 0
Claudia Nogueira

Claudia Nogueira

31/10/2012

SELECT SUM(CASE WHEN TIPO = 0 THEN QUANTIDADE ELSE QUANTIDADE * -1 END) AS ESTOQUE
  FROM iTEM_ENTRADA_SAIDA
 WHERE (ID_PRODUTO =:ID_PRODUTO)


Qual linguagem?

GOSTEI 0
Eduardo Richeli

Eduardo Richeli

31/10/2012

bem creio que uma Trigger em um evento insert resolve o problema
GOSTEI 0
Eduardo Richeli

Eduardo Richeli

31/10/2012

esqueci, quanto ao relatorio, você pode tanto usar SP quanto View, você tera que estudar a melhor forma conforme suas tabelas!
GOSTEI 0
Juliane Colling

Juliane Colling

31/10/2012

Muito obrigada pelas respostas, mas para facilitar essa questão eu criei uma tabela ESTOQUE. Quando for lançar uma entrada, o sistema verifica se já existe o registro do produto no laboratorio. Se sim, apenas atualiza a quantidade, se não, cria um novo registro de estoque com o codigo do produto, código do laboratório, e a quantidade. Ficou bem fácil, não acham? Muito obrigada pela ajuda de vocês :D
GOSTEI 0
Jonas Gama

Jonas Gama

31/10/2012

Vc pode fazer assim

Conecta

rsSQL.Open "Select Descricao From Estoque Where Descricao = '" & txtDescricao.Text & "'", cnSQL, adOpenKeyset, adLockOptimistic

If rsSQL.EOF = True Then

MsgBox "Produto não cadastrado", vbCritical, "Atenção"

Else

MsgBox "Produto cadastrado", vbCritical, "Atenção"

rsSQL.Close

cnSQL.Close

Set rsSQL = Nothing

Set cnSQL = Nothing

End If
GOSTEI 0
POSTAR