SET TERM ^ ;

CREATE OR ALTER PROCEDURE SPC_NFS_PARCELAMENTO_SALDO11 (
    EMPRESA_1 INTEGER,
    NFS_CONTROLE_1 INTEGER)
RETURNS (
    LIMITE NUMERIC(10,4),
    SALDO NUMERIC(10,4))
AS
BEGIN
FOR  Select First 1 Coalesce(D.Limite_Credito,0) Limite,

(Coalesce((Select Cast(Sum(B.Valor * C.Quantidade) as Numeric(15,2))
 From TbPedido P, TbPedido_Item B, TbPedido_Item_Saldo C
 Where P.Estabelecimento_Codigo = B.Estabelecimento_Codigo
   and P.Pedido   = B.Pedido
   and B.Pedido   = C.Pedido
   and B.Controle = C.Pedido_Item_Controle
   and C.Quantidade > 0
   and P.Status   = '1'
   and B.Situacao = 1
   and P.Cliente_Codigo = :EMPRESA_1),0) +

Coalesce((Select Cast(Sum(A.Valor_Saldo) as Numeric(15,2))
 From TbNfs_Parcelamento A
 Where A.Valor_Saldo > 0
   and A.Aceite = 'S'
   and (A.Numero_NotaFiscal > 0 and A.Situacao < 3)
   and A.Nfs_Controle <> :Nfs_Controle_1
   and A.Empresa_Codigo = :EMPRESA_1),0) +

Coalesce((Select Cast(Sum(A.Valor_Total+A.Valor_Acrescimo-A.Valor_Desconto+A.Valor_Ipi) as Numeric(15,2))
From TbNfs_Item A, TbOperacao O
Where A.Operacao_Codigo = O.Codigo
  AND O.controle_faturamento = '1'
  and A.Nfs_Controle = :Nfs_Controle_1
  and A.Pedido = 0),0) ) Saldo

From TbCliente D
Where D.Codigo = :EMPRESA_1

INTO
:LIMITE,:SALDO
DO SUSPEND;
END^

SET TERM ; ^

