From cfefd337c8dc174062ecfe8224c0242c43dcd7d4 Mon Sep 17 00:00:00 2001 From: Thadeu Lima de Souza Cascardo Date: Sat, 25 Jul 2015 17:08:02 -0300 Subject: [PATCH] Imprime linha com rendimentos de PJ. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Para utilizar o wrapper, considerando que o único argumento é a declaração, utiliza o número de linhas impressas para indexar o rendimento a ser impresso. --- gera.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gera.c b/gera.c index b5aa205..baf573e 100644 --- a/gera.c +++ b/gera.c @@ -377,6 +377,24 @@ static void gera_recibotrailler(struct declaracao *dec, FILE *f) fprintf(f, "\r\n"); } +static void gera_rendimento(struct declaracao *dec, FILE *f) +{ + struct rendimento *r; + r = list_get(dec->rendimento, dec->linhas[21]); + fprintf(f, "21"); + fprintf(f, "%s", dec->cpf); + fprintf(f, "%-14.14s", r->cnpj); + fprintf(f, "%-60.60s", r->nome); + fprintf(f, "%013lld", r->rendimento); + fprintf(f, "%013lld", r->previdencia); + fprintf(f, "%013lld", r->decimoterceiro); + fprintf(f, "%013lld", r->imposto); + fprintf(f, "%-8.8s", r->saida); + fprintf(f, "%013lld", r->imposto_13o); + fprintf(f, "%-10.10s", "0000000000"); /* FIXME: controle */ + fprintf(f, "\r\n"); +} + typedef void (gera_linha)(struct declaracao *dec, FILE *f); static int wrap(gera_linha fn, struct declaracao *dec, FILE *f) @@ -406,6 +424,8 @@ static int gera(struct declaracao *dec, char *filename) { FILE *f; int r; + int i; + struct rendimento *rendimento; #define W(fn, dec, f) \ do { \ @@ -427,6 +447,9 @@ static int gera(struct declaracao *dec, char *filename) W(gera_simples, dec, f); W(gera_totais_simples, dec, f); } + for (i = 0; rendimento = list_get(dec->rendimento, i); i++) { + W(gera_rendimento, dec, f); + } W(gera_trailler, dec, f); W(gera_reciboheader, dec, f); W(gera_recibodetalhe, dec, f); -- 2.20.1