#define _ANO_H
#define PRIMEIRO_ANO 2015
-#define ULTIMO_ANO 2018
+#define ULTIMO_ANO 2019
#define MAX_ANOS (ULTIMO_ANO + 1)
#define ANO(ano) (ano - PRIMEIRO_ANO)
#define ANO_VALIDO(ano) (ANO(ano) >= 0 && ANO(ano) < ANO(MAX_ANOS))
[ANO(2016)] = 227508,
[ANO(2017)] = 227508,
[ANO(2018)] = 227508,
+ [ANO(2019)] = 227508,
};
static const long long instrucao[ANO(MAX_ANOS)] = {
[ANO(2016)] = 356150,
[ANO(2017)] = 356150,
[ANO(2018)] = 356150,
+ [ANO(2019)] = 356150,
};
long long deducao_dependente(struct declaracao *dec)
[ANO(2016)] = table2016,
[ANO(2017)] = table2017,
[ANO(2018)] = table2017,
+ [ANO(2019)] = table2017,
};
static const long long simples[ANO(MAX_ANOS)] = {
[ANO(2016)] = 1675434,
[ANO(2017)] = 1675434,
[ANO(2018)] = 1675434,
+ [ANO(2019)] = 1675434,
};
static const long long obrigatoriedade[ANO(MAX_ANOS)] = {
[ANO(2016)] = 2812391,
[ANO(2017)] = 2855970, /* De acordo com IN 1671/2016 */
[ANO(2018)] = 2855970,
+ [ANO(2019)] = 2855970,
};
static long long imposto(struct taxtable *tt, long long tr, int verbose)
fprintf(f, "2700"); /* Código */
else if (dec->ano == 2018)
fprintf(f, "2800"); /* Código */
+ else if (dec->ano == 2019)
+ fprintf(f, "2900"); /* Código */
fprintf(f, "%s", dec->retifica ? "1" : "0"); /* Retificadora */
fprintf(f, "%s", dec->cpf); /* CPF: 11 dígitos */
fprintf(f, " "); /* Filler */
fprintf(f, "110"); /* Versão IRPF */
else if (dec->ano == 2018)
fprintf(f, "160"); /* Versão IRPF */
+ else if (dec->ano == 2019)
+ fprintf(f, "150"); /* Versão IRPF */
fprintf(f, "%-60.60s", dec->nome);
fprintf(f, "%-2.2s", dec->contribuinte.uf ?: "");
fprintf(f, "%s", "0000000000"); /* FIXME: hash */