[firebase-br] Procedure linha de saldo do caixa por dia
Alexandre Mello
alexandre.rmello em gmail.com
Sex Jan 30 11:06:31 -03 2009
eu fiz uma procedure que faz isso... está um pouco bagunçada, pois
estou fazendo algumas alteracoes nela e ainda preciso terminá-la. Mas
ela calcula o saldo de cada linha, com base na data e na hora do
lançamento.
segue abaixo:
CREATE OR ALTER PROCEDURE EXTRATO (
dt1 timestamp,
saidaanterior numeric(9,0),
entradaanterior numeric(9,0))
returns (
saldo numeric(18,2))
as
declare variable saldo_ant_credito numeric(18,2);
declare variable saldo_ant_debito numeric(18,2);
declare variable saida numeric(18,2);
declare variable entrada numeric(18,2);
declare variable dt2 timestamp;
begin
select
first 1
livro_caixa.DATA
from
livro_caixa
where
livro_CAIXA.DATA<:DT1
order by
livro_caixa.DATA desc into :dt2;
select
sum(livro_CAIXA.SAIDA)
from
livro_CAIXA
where livro_caixa.data < :dt1
into :SALDO_ANT_DEBITO;
select
sum(livro_CAIXA.ENTRADA)
from
livro_CAIXA
where
livro_CAIXA.DATA<:DT1
into :SALDO_ANT_CREDITO;
if (:SALDO_ANT_CREDITO is null) then SALDO_ANT_CREDITO = 0.00;
if (:SALDO_ANT_DEBITO is null) then SALDO_ANT_DEBITO = 0.00;
SALDO = (saldo_ant_credito - saldo_ant_debito);
SUSPEND;
for
select
livro_CAIXA.ENTRADA,
livro_CAIXA.SAIDA
from
livro_CAIXA
where
(livro_CAIXA.DATA between :DT1 and :DT2)
order by
livro_CAIXA.DATA
into :ENTRADA, :SAIDA
do begin
saldo = saldo + ENTRADA - SAIDA - saidaanterior + entradaanterior;
SUSPEND;
END
END
Mais detalhes sobre a lista de discussão lista