Fórum Erro ao Tentar Fazer uma Procedure para execultar no delphi #506273
05/01/2015
0
Boa Tarde Pessoal, Estou tentando fazer uma procedure para obter estoque dos produtos com entradas de notas e inventario, e que os tatais das entradas diminuem com a saidas e perdas, so que e oseguinte, estou execultando essa procedure abaixo so que ela nao apresenta todos os lotes apenas uns, preciso muito dessas informacoes para concluir um sistema,
Banco Firebird 2.5 uso o componente no delphi ZEOS,
Sao as seguintes tabelas
SNGPC_INVENTARIO
SNGPC_PERDAS
FARMA_SNGPC TIPO_MOVIMENTO = 1 ENTRADAS 3 SAIDAS
ITENS_SNGPC QUE E LIGADA COM O COD_SNGPC DA TABELA FARMA_SNGPC
SEGUE A PROCEDURE
begin
total_entradas = 0;
total_saidas =0;
total_saldo =0;
total_inventario=0;
FOR select I.numero_lote, SUM( I.QUANT) from itens_sngpc I
inner join c000025 C
on (i.cod_barras = C.codbarra)
where C.codbarra = :COD_BARRA
GROUP BY I.numero_lote
into :num_lote, :total_entradas do
begin
select sum(QUANT) from sngpc_inventario
where COD_BARRAS = :cod_barra
INTO :total_inventario;
select sum(T.QUANT) from itens_sngpc T
inner join farma_sngpc S
on ( T.cod_sngpc = S.cod_sngpc )
WHERE S.tipo_movimento = 1 AND T.COD_BARRAS = :cod_barra
INTO :total_entradas;
select sum(T.QUANT) from itens_sngpc T
inner join farma_sngpc S
on ( T.cod_sngpc = S.cod_sngpc )
WHERE S.tipo_movimento = 3 AND T.COD_BARRAS = :cod_barra
INTO :total_saidas;
if (:total_inventario is null) then total_inventario = 0;
if (:total_entradas is null ) then total_entradas = 0;
total_entradas = total_entradas + total_inventario;
if (:total_saidas is null ) then total_saidas = 0;
total_saldo = ( :total_entradas - :total_saidas);
suspend;
end
end
de ja agradesco a ajuda
Banco Firebird 2.5 uso o componente no delphi ZEOS,
Sao as seguintes tabelas
SNGPC_INVENTARIO
SNGPC_PERDAS
FARMA_SNGPC TIPO_MOVIMENTO = 1 ENTRADAS 3 SAIDAS
ITENS_SNGPC QUE E LIGADA COM O COD_SNGPC DA TABELA FARMA_SNGPC
SEGUE A PROCEDURE
begin
total_entradas = 0;
total_saidas =0;
total_saldo =0;
total_inventario=0;
FOR select I.numero_lote, SUM( I.QUANT) from itens_sngpc I
inner join c000025 C
on (i.cod_barras = C.codbarra)
where C.codbarra = :COD_BARRA
GROUP BY I.numero_lote
into :num_lote, :total_entradas do
begin
select sum(QUANT) from sngpc_inventario
where COD_BARRAS = :cod_barra
INTO :total_inventario;
select sum(T.QUANT) from itens_sngpc T
inner join farma_sngpc S
on ( T.cod_sngpc = S.cod_sngpc )
WHERE S.tipo_movimento = 1 AND T.COD_BARRAS = :cod_barra
INTO :total_entradas;
select sum(T.QUANT) from itens_sngpc T
inner join farma_sngpc S
on ( T.cod_sngpc = S.cod_sngpc )
WHERE S.tipo_movimento = 3 AND T.COD_BARRAS = :cod_barra
INTO :total_saidas;
if (:total_inventario is null) then total_inventario = 0;
if (:total_entradas is null ) then total_entradas = 0;
total_entradas = total_entradas + total_inventario;
if (:total_saidas is null ) then total_saidas = 0;
total_saldo = ( :total_entradas - :total_saidas);
suspend;
end
end
de ja agradesco a ajuda
Cayro Rodrigo
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)