*/
#include "gera.h"
-#include "declaracao.h"
-#include "cmd.h"
-#include "rendimento.h"
#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
+#include "declaracao.h"
+#include "cmd.h"
+#include "rendimento.h"
+#include "pagamento.h"
#include "totais.h"
static void gera_header(struct declaracao *dec, FILE *f)
fprintf(f, "\r\n");
}
+static void gera_pagamento(struct declaracao *dec, FILE *f)
+{
+ struct pagamento *p;
+ p = list_get(dec->pagamentos, dec->linhas[26]);
+ fprintf(f, "26");
+ fprintf(f, "%s", dec->cpf);
+ fprintf(f, "%02d", p->codigo);
+ fprintf(f, "%05d", 0); /* TODO: chave dependente */
+ fprintf(f, "%-14.14s", p->cnpj);
+ fprintf(f, "%-60.60s", p->nome);
+ fprintf(f, "%-11.11s", ""); /* TODO: NIT */
+ fprintf(f, "%013lld", p->pagamento);
+ fprintf(f, "%013lld", p->reembolso);
+ /* CPF (1?) ou CNPJ (2), FIXME */
+ fprintf(f, "2");
+ /* Titular (T), Dependente (D), Alimentando (A), FIXME */
+ fprintf(f, "T");
+ 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)
int r;
int i;
struct rendimento *rendimento;
+ struct pagamento *pagamento;
#define W(fn, dec, f) \
do { \
for (i = 0; rendimento = list_get(dec->rendimento, i); i++) {
W(gera_rendimento, dec, f);
}
+ for (i = 0; (pagamento = list_get(dec->pagamentos, i)); i++) {
+ W(gera_pagamento, dec, f);
+ }
W(gera_trailler, dec, f);
W(gera_reciboheader, dec, f);
W(gera_recibodetalhe, dec, f);