Para contribuir.
Pelo que entendi você quer um reajuste anual dos valores de parcelas.
Isso geralmente acontece em imóveis, sendo considerado neste caso o CUB (imóveis em construção) ou IGP-M (já construídos), mas alguns banco usam TR.
A construção da regra de negócio deveria ser diferente, ao meu ponto de vista.
Você deveria ter um local para cadastrar/armazenar as variações mensais/anuais dos índices utilizados.
Então você cadastraria por exemplo:
INDICE | MES | ANO | % MES | % ACUMULADO | VALOR
IGP-M | MAI | 2019 | 0,45 | 7.5
IGP-M | JUN | 2019 | 0,80 | 6.5
CUB | ABR | 2019 | NULL | NULL | R$ 1.655,17
Com isso você poderia por parametrização, no momento de “faturar” indicar nestas parcelas, qual índice ou índices, ela irá utilizar.
Então a lógica é: A parcela é de MAIO de 2019, tem índice para MAIO cadastrado? Sim, calcula com base no cadastro. Não? Busca o ultimo válido. Neste caso você teria um índice em JAN/2019, JAN/2020, etc.
Tua regra de programação ficaria mais “lúcida”, do que esse monte de IF.
Para forçar, vale lembrar que a parcela em um momento pode ser por CUB, e por força de contrato ser alterada para IGP-M. E você precisará “refaturar” as parcelas. Neste caso como ficaria?
Enfim… apenas uma contribuição.