Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE OR REPLACE FUNCTION aula03.f_atualiza_boleto (
- in_valor_boleto NUMERIC,
- in_data_vencimento DATE,
- in_data_pagamento DATE,
- in_perc_multa NUMERIC,
- in_perc_mora NUMERIC )
- RETURNS NUMERIC AS $$
- DECLARE
- v_valor_atualizado NUMERIC := 0.0;
- v_qtd_dias NUMERIC := 0.0;
- v_total_mora NUMERIC := 0.0;
- BEGIN
- IF in_data_pagamento <= in_data_vencimento THEN
- v_valor_atualizado := in_valor_boleto;
- ELSE
- v_valor_atualizado := in_valor_boleto + ((in_valor_boleto * in_perc_multa) / 100);
- v_qtd_dias := in_data_pagamento - in_data_vencimento;
- v_total_mora := v_qtd_dias * in_perc_mora;
- v_valor_atualizado := v_valor_atualizado + ((v_valor_atualizado * v_total_mora) / 100);
- END IF;
- RETURN v_valor_atualizado;
- END;
- $$ LANGUAGE 'plpgsql';
- /* Chamando a function */
- SELECT aula03.f_atualiza_boleto(
- 150.00,
- to_date('25/08/2018', 'dd/mm/yyyy'),
- to_date('28/08/2018', 'dd/mm/yyyy'),
- 1,
- 0.5
- );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement