Advertisement
fahadkalil

plpgsql_funcao_atualiza_boleto

Mar 25th, 2021
1,085
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE OR REPLACE FUNCTION aula03.f_atualiza_boleto (
  2.     in_valor_boleto NUMERIC,
  3.     in_data_vencimento DATE,
  4.     in_data_pagamento DATE,
  5.     in_perc_multa NUMERIC,
  6.     in_perc_mora NUMERIC )
  7. RETURNS NUMERIC AS $$
  8. DECLARE
  9.     v_valor_atualizado NUMERIC := 0.0;
  10.     v_qtd_dias NUMERIC := 0.0;
  11.     v_total_mora NUMERIC := 0.0;
  12. BEGIN
  13.     IF in_data_pagamento <= in_data_vencimento THEN
  14.         v_valor_atualizado := in_valor_boleto;
  15.     ELSE
  16.         v_valor_atualizado := in_valor_boleto + ((in_valor_boleto * in_perc_multa) / 100);
  17.         v_qtd_dias := in_data_pagamento - in_data_vencimento;
  18.         v_total_mora := v_qtd_dias * in_perc_mora;
  19.         v_valor_atualizado := v_valor_atualizado + ((v_valor_atualizado * v_total_mora) / 100);
  20.     END IF;      
  21.     RETURN v_valor_atualizado;
  22. END;
  23. $$ LANGUAGE 'plpgsql';
  24.  
  25. /* Chamando a function */
  26. SELECT aula03.f_atualiza_boleto(
  27.   150.00,
  28.   to_date('25/08/2018', 'dd/mm/yyyy'),
  29.   to_date('28/08/2018', 'dd/mm/yyyy'),
  30.   1,
  31.   0.5
  32. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement