From cff268861f084a2d68a1dcf7370edf8c2c75c5eb Mon Sep 17 00:00:00 2001 From: Thadeu Lima de Souza Cascardo Date: Sat, 25 Jul 2015 22:37:59 -0300 Subject: [PATCH] =?utf8?q?Suporta=20dados=20de=20conta=20banc=C3=A1ria.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- base.c | 12 ++++++++++++ declaracao.c | 8 ++++++++ declaracao.h | 4 ++++ gera.c | 24 ++++++++++++------------ 4 files changed, 36 insertions(+), 12 deletions(-) diff --git a/base.c b/base.c index 0dfe02a..621ad08 100644 --- a/base.c +++ b/base.c @@ -30,6 +30,11 @@ SET_STRING(nome); SET_STRING(recibo); SET_STRING(retifica); +SET_STRING(banco); +SET_STRING(agencia); +SET_STRING(contacorrente); +SET_STRING(dvconta); + static int run_resumo(struct declaracao *dec, char **args, int argc) { if (dec->retifica) @@ -90,10 +95,17 @@ int base_cmd_init(void) { cmd_add(&cmd_salva); cmd_add(&cmd_resumo); + cmd_add(&cmd_ano); cmd_add(&cmd_cpf); cmd_add(&cmd_recibo); cmd_add(&cmd_retifica); cmd_add(&cmd_nome); + + cmd_add(&cmd_banco); + cmd_add(&cmd_agencia); + cmd_add(&cmd_contacorrente); + cmd_add(&cmd_dvconta); + return 0; } diff --git a/declaracao.c b/declaracao.c index d88c48d..2fc3f0a 100644 --- a/declaracao.c +++ b/declaracao.c @@ -53,6 +53,14 @@ void declaracao_free(struct declaracao *dec) free(dec->recibo); if (dec->retifica); free(dec->retifica); + if (dec->banco) + free(dec->banco); + if (dec->agencia) + free(dec->agencia); + if (dec->contacorrente) + free(dec->contacorrente); + if (dec->dvconta) + free(dec->dvconta); list_free(dec->rendimento, rendimento_free); free(dec); } diff --git a/declaracao.h b/declaracao.h index 47d8db9..ad28893 100644 --- a/declaracao.h +++ b/declaracao.h @@ -43,6 +43,10 @@ struct declaracao { int tipo; char *recibo; char *retifica; + char *banco; + char *agencia; + char *contacorrente; + char *dvconta; int linhas[100]; /* Número de linhas escritas de cada tipo. */ }; diff --git a/gera.c b/gera.c index ac4b1c2..c394fad 100644 --- a/gera.c +++ b/gera.c @@ -66,8 +66,8 @@ static void gera_header(struct declaracao *dec, FILE *f) fprintf(f, "0"); /* TODO: mudanca endereco */ fprintf(f, "%s", dec->contribuinte.cep); fprintf(f, "0"); /* TODO: debito 1a quota */ - fprintf(f, "000"); /* TODO: no banco */ - fprintf(f, "0000"); /* TODO: agencia */ + fprintf(f, "%-3.3s", dec->banco); /* no banco */ + fprintf(f, "%-4.4s", dec->agencia); /* agencia */ fprintf(f, " "); /* TODO: filler */ fprintf(f, "00000000"); /* transito julgado, gravado apenas se espolio */ fprintf(f, "%013lld", dec->pagar); /* imposto a pagar */ @@ -113,8 +113,8 @@ static void gera_header(struct declaracao *dec, FILE *f) fprintf(f, "%013lld", 0); /* TODO: Total isentos */ fprintf(f, "%013lld", 0); /* TODO: Total exclusivo */ fprintf(f, "%013lld", 0); /* TODO: Total pagamentos */ - fprintf(f, "%-13.13s", ""); /* TODO: numero conta */ - fprintf(f, "%-2.2s", ""); /* TODO: DV conta */ + fprintf(f, "%-13.13s", dec->contacorrente); /* numero conta */ + fprintf(f, "%-2.2s", dec->dvconta); /* DV conta */ fprintf(f, "0"); /* TODO: revalidar DV conta */ /* Mudanças de 2015 */ @@ -175,12 +175,12 @@ static void gera_contribuinte(struct declaracao *dec, FILE *f) fprintf(f, "S"); /* GERADO */ fprintf(f, "N"); /* TODO: mudança de endereço */ fprintf(f, "%-12.12s", dec->retifica ? : ""); /* Recibo declaração original */ - fprintf(f, "%-3.3s", "000"); /* TODO: banco */ - fprintf(f, "%-4.4s", "0000"); /* TODO: agência */ + fprintf(f, "%-3.3s", dec->banco); /* banco */ + fprintf(f, "%-4.4s", dec->agencia); /* agência */ fprintf(f, "N"); /* TODO: deficiência */ fprintf(f, "0"); /* FILLER: pré-preenchida */ - fprintf(f, "%-13.13s", ""); /* TODO: conta */ - fprintf(f, "%-2.2s", ""); /* TODO: DV conta */ + fprintf(f, "%-13.13s", dec->contacorrente); /* conta */ + fprintf(f, "%-2.2s", dec->dvconta); /* DV conta */ fprintf(f, "N"); /* TODO: débito automático */ fprintf(f, "0"); /* TODO: débito primeira quota */ fprintf(f, "%-14.14s", ""); /* TODO: CNPJ principal fonte */ @@ -360,13 +360,13 @@ static void gera_recibodetalhe(struct declaracao *dec, FILE *f) fprintf(f, "%013lld", dec->pagar); /* Imposto a pagar */ fprintf(f, "%d", 0); /* TODO: quotas */ fprintf(f, "%013lld", 0); /* TODO: valor quota */ - fprintf(f, "%03d", 0); /* TODO: numero banco */ - fprintf(f, "%04d", 0); /* TODO: numero agencia */ + fprintf(f, "%-3.3s", dec->banco); /* numero banco */ + fprintf(f, "%-4.4s", dec->agencia); /* numero agencia */ fprintf(f, " "); /* FILLER */ fprintf(f, "%d", 0); /* TODO: debito primeira quota */ fprintf(f, "%013lld", 0); /* TODO: imposto pago ganho de capital */ - fprintf(f, "%-13.13s", ""); /* TODO: numero conta */ - fprintf(f, "%-2.2s", ""); /* TODO: DV conta */ + fprintf(f, "%-13.13s", dec->contacorrente); /* numero conta */ + fprintf(f, "%-2.2s", dec->dvconta); /* DV conta */ fprintf(f, "%013lld", 0); /* TODO: imposto alienacao moeda estrangeira em especie */ fprintf(f, "%-10.10s", "0000000000"); /* FIXME: controle */ fprintf(f, "\r\n"); -- 2.20.1