[firebase-br] PROCEDURE PARA GERAR PARCELAS ( COM OPÇÃO DE SOMENTE DIAS ÚTEIS)
Joao Marcos
unixkiller em gmail.com
Sáb Mar 31 01:20:22 -03 2012
Li outro dia alguém precisando, precisei hoje e fiz.
Resolvi compartilhar com os colegas..
Obs: É necessário ter a tbUdf.dll instalada.
os parâmetros são
DATA_INICIAL = DATA DA PRIMEIRA PARCELA
NUMERO_PARCELAS = QUANTAS PARCELAS GERAR
PRAZO_DIAS = INTERVALO EM DIAS ENTRE AS PARCELAS
APENAS_UTEIS = SE FOR =1 GERA APENAS EM DIAS ÚTEIS.
Usem da forma que for preciso.
Abraço,
SET TERM ^ ;
CREATE PROCEDURE GERA_PARCELAS (
DATA_INICIAL DATE,
NUMERO_PARCELAS INTEGER,
PRAZO_DIAS INTEGER,
APENAS_UTEIS SMALLINT)
RETURNS (
DATAVENCIMENTO DATE)
AS
DECLARE VARIABLE CTPARCELAS INTEGER;
begin
ctParcelas=0;
dataVencimento = :data_inicial;
suspend;
dataVencimento = :dataVencimento + :PRAZO_DIAS;
while (ctParcelas < :NUMERO_PARCELAS-1) do
begin
if (:apenas_uteis = 1) then --se forem apenas dias úteis...
begin
achouDiaUtil=0;
if ( (udf_weekday(:dataVencimento) = 0) or
(udf_weekday(:dataVencimento) = 6)) then
begin
achouDiaUtil=0;
dataVencimento=:dataVencimento + 1;
end
else
begin
suspend;
dataVencimento=:dataVencimento + :PRAZO_DIAS;
ctParcelas = :ctParcelas+1;
end
end
else /* se não for dias úteis */
begin
suspend;
dataVencimento=:dataVencimento + :PRAZO_DIAS;
ctParcelas = :ctParcelas +1;
end
end
end
^
SET TERM ; ^
--
Real Softwares Tecnologia da Informação
João Marcos Santos da Silva - Software Engineer
(71) 9988-2928 , (71) 9267-9641, (71) 3313-8730
Mais detalhes sobre a lista de discussão lista