Suporta rendimentos isentos e exclusivos de dependentes.
[cascardo/declara.git] / lib / gera.c
index 69c4311..2d02d26 100644 (file)
@@ -675,13 +675,20 @@ static void gera_isento(struct declaracao *dec, FILE *f, int codigo)
        struct isento *i;
        i = isento_get(dec, codigo, dec->linhas[codigo]);
        fprintf(f, "%02d", codigo);
-       fprintf(f, "%-11.11s", dec->cpf); /* Titular, TODO: dependente */
+       fprintf(f, "%-11.11s", dec->cpf); /* Titular */
        fprintf(f, "%05d", dec->linhas[codigo] + 1); /* Chave */
-       fprintf(f, "%c", 'T'); /* FIXME: dependente */
+       /* Titular (T), Dependente (D), Alimentando (A), FIXME Alimentando */
+       fprintf(f, "%c", i->dependente ? 'D' : 'T');
        fprintf(f, "%-14.14s", i->cnpj);
        fprintf(f, "%-60.60s", i->nome);
        fprintf(f, "%013lld", i->valor);
-       fprintf(f, "%-11.11s", dec->cpf);
+       if (i->dependente) {
+               struct dependente *d;
+               d = list_get(dec->dependentes, i->dependente - 1);
+               fprintf(f, "%-11.11s", d ? d->cpf : "");
+       } else {
+               fprintf(f, "%-11.11s", dec->cpf);
+       }
 }
 
 static void gera_doacao(struct declaracao *dec, FILE *f)