Imprime lista de dependentes no cabeçalho do DEC.
authorThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
Sun, 10 Apr 2016 11:52:14 +0000 (08:52 -0300)
committerThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
Sun, 10 Apr 2016 11:52:14 +0000 (08:52 -0300)
O cabeçalho do arquivo contém campos para CPFs e datas de nascimento dos
dependentes. Estes valores não eram impressos. Agora, itera-se na lista
de dependentes e os valores são impressos.

lib/gera.c

index 93c30b9..dc5ca7e 100644 (file)
@@ -35,6 +35,8 @@
 
 static void gera_header(struct declaracao *dec, FILE *f)
 {
+       int i;
+
        fprintf(f, "IRPF    ");
        fprintf(f, "%04d", dec->ano); /* Exercício */
        fprintf(f, "%04d", dec->ano - 1); /* Ano base */
@@ -99,18 +101,20 @@ static void gera_header(struct declaracao *dec, FILE *f)
        fprintf(f, "%-14.14s", rendimento_cnpj_ordenado(dec, 1)); /* CNPJ maior 2 */
        fprintf(f, "%-14.14s", rendimento_cnpj_ordenado(dec, 2)); /* CNPJ maior 3 */
        fprintf(f, "%-14.14s", rendimento_cnpj_ordenado(dec, 3)); /* CNPJ maior 4 */
-       fprintf(f, "%-11.11s", ""); /* CPF Dependente 1 */
-       fprintf(f, "%-8.8s", ""); /* DN Dependente 1 */
-       fprintf(f, "%-11.11s", ""); /* CPF Dependente 2 */
-       fprintf(f, "%-8.8s", ""); /* DN Dependente 2 */
-       fprintf(f, "%-11.11s", ""); /* CPF Dependente 3 */
-       fprintf(f, "%-8.8s", ""); /* DN Dependente 3 */
-       fprintf(f, "%-11.11s", ""); /* CPF Dependente 4 */
-       fprintf(f, "%-8.8s", ""); /* DN Dependente 4 */
-       fprintf(f, "%-11.11s", ""); /* CPF Dependente 5 */
-       fprintf(f, "%-8.8s", ""); /* DN Dependente 5 */
-       fprintf(f, "%-11.11s", ""); /* CPF Dependente 6 */
-       fprintf(f, "%-8.8s", ""); /* DN Dependente 6 */
+       /* CPF e DN de dependentes 1 a 6 */
+       for (i = 1; i <= 6; i++) {
+               struct dependente *dependente = list_get(dec->dependentes, i - 1);
+               if (dependente && dependente->cpf && dependente->cpf[0]) {
+                       fprintf(f, "%-11.11s", dependente->cpf);
+               } else {
+                       fprintf(f, "%-11.11s", "");
+               }
+               if (dependente && dependente->dn && dependente->dn[0]) {
+                       fprintf(f, "%-8.8s", dependente->dn);
+               } else {
+                       fprintf(f, "%-8.8s", "");
+               }
+       }
        /* medico maior, TODO: outros códigos */
        fprintf(f, "%-14.14s", medico_cnpj_ordenado(dec, 0));
        /* medico maior 2, TODO: outros códigos */