From 982bc1996e2c3cf9e29ad7b75901c69e27db4769 Mon Sep 17 00:00:00 2001 From: Thadeu Lima de Souza Cascardo Date: Mon, 30 Apr 2018 17:37:40 -0300 Subject: [PATCH] =?utf8?q?Se=20total=20de=20rendimentos=20=C3=A9=20zero,?= =?utf8?q?=20n=C3=A3o=20gera=20linha.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Ao gerar a linha de um tipo de rendimento, se o seu total é zero, a linha não deve ser gerada. --- lib/gera.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/gera.c b/lib/gera.c index a07319d..5bc6075 100644 --- a/lib/gera.c +++ b/lib/gera.c @@ -556,10 +556,13 @@ static void gera_isentos(struct declaracao *dec, FILE *f) static void gera_isentos2(struct declaracao *dec, FILE *f, int codigo, char *nome) { + long long total = totais_get(dec, nome); + if (total == 0) + return; fprintf(f, "23"); fprintf(f, "%-11.11s", dec->cpf); fprintf(f, "%04d", codigo); - fprintf(f, "%013lld", totais_get(dec, nome)); /* TODO: retistuição imposto anos anteriores */ + fprintf(f, "%013lld", total); } static void gera_23_poupanca(struct declaracao *dec, FILE *f) @@ -985,8 +988,12 @@ static int wrap(gera_linha fn, struct declaracao *dec, struct list *l) return -errno; } fn(dec, m); - dec->linhas[0]++; fflush(m); + if (bsize == 0) { + fclose(m); + return 0; + } + dec->linhas[0]++; /* Calcula CRC32 para campo de controle dos registros. */ c = crc32(c, buf, bsize); -- 2.20.1