From: Thadeu Lima de Souza Cascardo Date: Sat, 25 Jul 2015 20:08:02 +0000 (-0300) Subject: Imprime linha com rendimentos de PJ. X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fdeclara.git;a=commitdiff_plain;h=cfefd337c8dc174062ecfe8224c0242c43dcd7d4 Imprime linha com rendimentos de PJ. 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. --- 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);