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)
{
FILE *f;
int r;
+ int i;
+ struct rendimento *rendimento;
#define W(fn, dec, f) \
do { \
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);