From a5b1b6551514ac3b013b48bce06578704ab89ccf Mon Sep 17 00:00:00 2001 From: Thadeu Lima de Souza Cascardo Date: Fri, 28 May 2021 23:24:06 -0300 Subject: [PATCH] =?utf8?q?Arquivo=20DEC=202021=20utiliza=2020=20caracteres?= =?utf8?q?=20para=20n=C3=BAmero=20da=20conta=20banc=C3=A1ria.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Além disso, existe o tipo de conta, que pode ser corrente, poupança ou de pagamentos. Para suportar o maior número de caracteres, o campo anterior, com apenas 13 caracteres, foi convertido em FILLER. Signed-off-by: Thadeu Lima de Souza Cascardo --- lib/gera.c | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/lib/gera.c b/lib/gera.c index 2628aa7..1587268 100644 --- a/lib/gera.c +++ b/lib/gera.c @@ -163,7 +163,11 @@ static void gera_header(struct declaracao *dec, FILE *f) fprintf(f, "%013lld", totais_get(dec, "EXCLUSIVOS")); /* Total pagamentos */ fprintf(f, "%013lld", totais_get(dec, "PAGAMENTOS")); - fprintf(f, "%-13.13s", dec->contacorrente ? : ""); /* numero conta */ + if (dec->ano < 2021) { + fprintf(f, "%-13.13s", dec->contacorrente ? : ""); /* numero conta */ + } else { + fprintf(f, "%-13.13s", ""); /* FILLER */ + } fprintf(f, "%-2.2s", dec->dvconta ? : ""); /* DV conta */ fprintf(f, "0"); /* TODO: revalidar DV conta */ @@ -213,6 +217,12 @@ static void gera_header(struct declaracao *dec, FILE *f) if (dec->ano >= 2020) fprintf(f, "%-13.13s", dec->contribuinte.titulo_eleitor ?: ""); + if (dec->ano >= 2021) { + fprintf(f, "1"); /* TODO: Tipo conta */ + fprintf(f, "%-20.20s", dec->contacorrente ? : ""); /* conta */ + fprintf(f, "1"); /* TODO: indicador devolver auxílio emergencial */ + } + fprintf(f, " "); /* Teste PGD, FILLER2 */ } @@ -266,7 +276,11 @@ static void gera_contribuinte(struct declaracao *dec, FILE *f) fprintf(f, "%-4.4s", dec->agencia ? : "0000"); /* agência */ fprintf(f, "N"); /* TODO: deficiência */ fprintf(f, "0"); /* FILLER: pré-preenchida */ - fprintf(f, "%-13.13s", dec->contacorrente ? : ""); /* conta */ + if (dec->ano < 2021) { + fprintf(f, "%-13.13s", dec->contacorrente ? : ""); /* conta */ + } else { + fprintf(f, "%-13.13s", ""); /* FILLER */ + } fprintf(f, "%-2.2s", dec->dvconta ? : ""); /* DV conta */ fprintf(f, "N"); /* TODO: débito automático */ fprintf(f, "0"); /* TODO: débito primeira quota */ @@ -286,6 +300,10 @@ static void gera_contribuinte(struct declaracao *dec, FILE *f) } else if (dec->ano >= 2018) { fprintf(f, "%-2.2s%-9.9s", dec->contribuinte.ddd ?: "", dec->contribuinte.telefone ?: ""); } + if (dec->ano >= 2021) { + fprintf(f, "1"); /* TODO: Tipo conta */ + fprintf(f, "%-20.20s", dec->contacorrente ? : ""); /* conta */ + } } static void gera_simples(struct declaracao *dec, FILE *f) @@ -754,7 +772,11 @@ static void gera_recibodetalhe(struct declaracao *dec, FILE *f) 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", dec->contacorrente ? : ""); /* numero conta */ + if (dec->ano < 2021) { + fprintf(f, "%-13.13s", dec->contacorrente ? : ""); /* numero conta */ + } else { + fprintf(f, "%-13.13s", ""); /* FILLER */ + } fprintf(f, "%-2.2s", dec->dvconta ? : ""); /* DV conta */ fprintf(f, "%013lld", 0); /* TODO: imposto alienacao moeda estrangeira em especie */ if (dec->ano >= 2020) { @@ -762,6 +784,9 @@ static void gera_recibodetalhe(struct declaracao *dec, FILE *f) } else if (dec->ano >= 2018) { fprintf(f, "%-2.2s%-9.9s", dec->contribuinte.ddd ?: "", dec->contribuinte.telefone ?: ""); } + if (dec->ano >= 2021) { + fprintf(f, "%-20.20s", dec->contacorrente ? : ""); /* numero conta */ + } } static void gera_recibotrailler(struct declaracao *dec, FILE *f) -- 2.20.1