[firebase-br] Procedures só retorna um produto

Paulo Sérgo Feix paulinhofeix em gmail.com
Sáb Ago 26 12:25:41 -03 2006


Bom Dia

Alguém pode me ajudar,  tenho uma procedure que deve me retornar o
saldo total de produto, o fornecedor vende para a empresa tipo vários
produtos vamos supor que o fornecedor venda 200 tipo de produtos, bem
o que eu quero que esta procedure me traga todos os produtos deste
determinado fornecedor quanto tem de saldo cada produto individual
tipo assim:
Fornecedor 1 – Empresa de Cereais
Cód	Produto	Saldo
1- 	Café		10
2-	Arroz		5
10-	Maçarão	9
15-	Farinha 	0
Bem o que acontece para eu ter este saldo devo verificar 4 tabelas assim:
1º Tabela cadastro de produtos
2º Tabela Compra de Produtos
3º Tabela Venda de Produtos
4º Tabela de atualização de produtos

Aqui esta a procedure só que me retorna um produto só enquanto deveria
retornar todos os produtos deste fornecedor indiferente se tive se
saldo ou não.
---------------------------------------------------------

CREATE PROCEDURE SALDO_PRODUTO_PROVEEDOR_01 (EMPRESA   INTEGER,
     PROVEEDOR INTEGER)
returns (PCOD_PRODUTO   DOUBLE PRECISION,
     PPRODUTO_TEXT  VARCHAR(60),
     PUNIDAD        CHAR(3),
     PSALDO         NUMERIC(15,2),
     PPRECIO_COMPRA NUMERIC(15,2),
     PPRECIO_VENDA  NUMERIC(15,2))
AS
     declare variable vSaldo_Inicial Numeric(15,2);
     declare variable vCompra Numeric(15,2);
     declare variable vVenta Numeric(15,2);
     declare variable vSaldo_Entrada Numeric(15,2);
     declare variable vSaldo_Saida Numeric(15,2);
begin
vSaldo_Inicial =0;
vCompra = 0;
vVenta = 0;
vSaldo_Entrada = 0;
vSaldo_Saida = 0;
/*-----Tabela de Produtos e pega saldo Inicial----*/
For Select
a.COD_BARRAS, a.PRODUTO_TEXT, a.Unidad, a.PRE_COMPRA, a.PRE_VENTA,
Coalesce(Sum(a.QUANTIDAD),0)
>From Produtos a
Where a.PROVEEDOR = :PROVEEDOR
Group by a.COD_BARRAS, a.PRODUTO_TEXT, a.Unidad, a.PRE_COMPRA, a.PRE_VENTA
Into : PCOD_PRODUTO, :PPRODUTO_TEXT, :PUNIDAD, :PPRECIO_COMPRA,
:PPRECIO_VENDA, :vSaldo_Inicial do

/*-----Consulta Tabela de Compras de Produtos----*/

For Select
Coalesce(Sum(a.CANTIDAD_COMPRA),0)
>From Sub_Compra a
Where a.ANULA = 1 and a.Empresa = :EMPRESA and a.Proveedor = :PROVEEDOR
Group By a.CODIGO_PRODUTO
Into : vCompra do
/*begin
/*vCompra01 = vCompra01;*/
/*end
/*-----Consulta Tabela de Venda de Produtos----*/
For Select
Coalesce(Sum(CANTIDAD),0)
>From Sub_Factura b
Where b.ANULA = 1 and b.Empresa = :EMPRESA and b.Proveedor = :PROVEEDOR
Group By b.CODIGO_PRODUTO
Into : vVenta  do
/*begin
/*vVenda01 = vVenda01 + pCANTIDAD_SAIDA01;*/
/*end
/*-----Consulta Tabela de Atualizacion de Produtos de Produtos----*/
For Select
Coalesce(Sum(c.ENTRADA),0),
Coalesce(Sum(c.SAIDA),0)
>From ATUALIZACION_PRODUTOS c
Where c.Empresa = :EMPRESA and c.Proveedor = :PROVEEDOR
Group By c.PRODUTOS
Into : vSaldo_Entrada, :vSaldo_Saida  do
begin
/*vAtualisa_Entrada = vAtualisa_Entrada + pATUALIZA_ENTRADA;
vAtualisa_Saida = vAtualisa_Saida + pATUALIZA_SAIDA;*/
PSALDO = ((vSaldo_Inicial + vCompra + vSaldo_Entrada ) - (vVenta +
vSaldo_Saida ));
end
suspend;
end

Paulinho....




Mais detalhes sobre a lista de discussão lista