CREATE OR ALTER VIEW TBPAGAMENTO_CONDICAO_PRAZO(
    CONDICAOPAGAMENTO_CODIGO,
    PRAZO,
    QUOTA)
AS
SELECT
    CONDICAOPAGAMENTO_CODIGO,
    PRAZO,
    iif(linha = 1, QUOTA - (sum(QUOTA) over(partition by CONDICAOPAGAMENTO_CODIGO) - 100), QUOTA) as QUOTA
FROM(
    SELECT
        CONDICAOPAGAMENTO_CODIGO,
        PRAZO,
        (trunc((100 / count(PRAZO) over(partition by CONDICAOPAGAMENTO_CODIGO)) * 100) / 100.00) QUOTA,
        row_number() over(partition by CONDICAOPAGAMENTO_CODIGO) as linha
    FROM(
        select
            CONDICAOPAGAMENTO_CODIGO,
            fn_array(b.PRAZO, a.LINHA_CORRENTE, ' ') PRAZO
        from(
            select
                g.id CONDICAOPAGAMENTO_CODIGO, g.descricao,
                fn_remover(fn_array(fn_remover_letra(fn_remove_acentos(g.descricao)), a.LINHA_CORRENTE, '/')) PRAZO,
                0 QUOTA,
                a.LINHA_CORRENTE
            from CONDICOES_PGTO g, (select LINHA_CORRENTE from SP_GERAR_LINHAS(20)) a
            where g.condicoes_pgto > 0
            and g.codigo IS NOT NULL
        ) b , (select LINHA_CORRENTE from SP_GERAR_LINHAS(3)) a
        where  PRAZO IS NOT NULL
    ) where PRAZO IS NOT NULL
)
;

