From: Thadeu Lima de Souza Cascardo Date: Sat, 29 May 2021 02:24:06 +0000 (-0300) Subject: Arquivo DEC 2021 utiliza 20 caracteres para número da conta bancária. X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fdeclara.git;a=commitdiff_plain;h=a5b1b6551514ac3b013b48bce06578704ab89ccf Arquivo DEC 2021 utiliza 20 caracteres para número da conta bancária. 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 --- 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)