Suporte a outros rendimentos isentos para 2019
[cascardo/declara.git] / lib / gera.c
index 1781805..07692db 100644 (file)
@@ -115,7 +115,7 @@ static void gera_header(struct declaracao *dec, FILE *f)
        fprintf(f, "%-14.14s", rendimento_cnpj_ordenado(dec, 1)); /* CNPJ maior 2 */
        fprintf(f, "%-14.14s", rendimento_cnpj_ordenado(dec, 2)); /* CNPJ maior 3 */
        fprintf(f, "%-14.14s", rendimento_cnpj_ordenado(dec, 3)); /* CNPJ maior 4 */
-       if (dec->ano < 2017) {
+       if (dec->ano < 2017 || dec->ano >= 2019) {
                /* CPF e DN de dependentes 1 a 6 */
                for (i = 1; i <= 6; i++) {
                        struct dependente *dependente = list_get(dec->dependentes, i - 1);
@@ -579,6 +579,11 @@ static void gera_23_lucrome(struct declaracao *dec, FILE *f)
        gera_isentos2(dec, f, 13, "LUCROME");
 }
 
+static void gera_23_outrosisentos(struct declaracao *dec, FILE *f)
+{
+       gera_isentos2(dec, f, 26, "OUTROSISENTOS");
+}
+
 static void gera_exclusivos(struct declaracao *dec, FILE *f)
 {
        fprintf(f, "24");
@@ -867,6 +872,14 @@ static void gera_outrosisentos(struct declaracao *dec, FILE *f)
        fprintf(f, "%-60.60s", i->descricao);
 }
 
+static void gera_outrosisentos2(struct declaracao *dec, FILE *f)
+{
+       struct isento *i;
+       i = dec->ctx;
+       gera_isento2(dec, f, 26, 26, 86);
+       fprintf(f, "%-60.60s", i->descricao);
+}
+
 static void gera_poupanca(struct declaracao *dec, FILE *f)
 {
        gera_isento(dec, f, 98);
@@ -948,7 +961,7 @@ static void gera_bem(struct declaracao *dec, FILE *f)
        /* Mudanças 2018 */
        if (dec->ano >= 2018) {
                fprintf(f, "%-8.8s", "00000000"); /* TODO: Data de aquisição */
-               fprintf(f, "%-20.20s", ""); /* TODO: IPTU */
+               fprintf(f, "%-20.20s", ""); /* TODO: IPTU, 2019, filler */
                fprintf(f, "%-8.8s", "00000000"); /* TODO: NIRF */
                fprintf(f, "%-30.30s", ""); /* TODO: RENAVAN */
                fprintf(f, "%-30.30s", ""); /* TODO: Registro aviação civil */
@@ -957,6 +970,10 @@ static void gera_bem(struct declaracao *dec, FILE *f)
                fprintf(f, "%-15.15s", ""); /* TODO: Conta bancária e dígito verificador */
                fprintf(f, "%-14.14s", ""); /* TODO: CPF ou CNPJ */
        }
+
+       if (dec->ano >= 2019) {
+               fprintf(f, "%-30.30s", ""); /* TODO: IPTU */
+       }
 }
 
 static void gera_carne(struct declaracao *dec, FILE *f)
@@ -1109,6 +1126,7 @@ static int gera(struct declaracao *dec, char *filename)
        } else {
                W(gera_23_poupanca);
                W(gera_23_lucrome);
+               W(gera_23_outrosisentos);
                W(gera_24_decimoterceiro);
                W(gera_24_aplicacoes);
                W(gera_24_plr);
@@ -1148,6 +1166,7 @@ static int gera(struct declaracao *dec, char *filename)
                IW(gera_poupanca2, 12);
                //dec->linhas[12] = 0;
                IW(gera_lucrome2, 13);
+               IW(gera_outrosisentos2, 26);
                IW(gera_aplicacoes2, 6);
                //dec->linhas[99] = 0;
                IW(gera_plr2, 11);