From 82e0442a7a3c23e6ae3aa640cd346d27b936992c Mon Sep 17 00:00:00 2001 From: Thadeu Lima de Souza Cascardo Date: Sat, 25 Jul 2015 17:34:56 -0300 Subject: [PATCH] =?utf8?q?Calcula=20e=20imprime=20se=20declara=C3=A7=C3=A3?= =?utf8?q?o=20=C3=A9=20obrigat=C3=B3ria.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Existem vários critérios e o único observado no momento é o montante de rendimentos tributáveis. --- base.c | 2 ++ calcula.c | 4 ++++ declaracao.h | 1 + gera.c | 2 +- 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/base.c b/base.c index 52d8c31..0dfe02a 100644 --- a/base.c +++ b/base.c @@ -34,6 +34,8 @@ static int run_resumo(struct declaracao *dec, char **args, int argc) { if (dec->retifica) printf("retificadora\n"); + if (dec->obrigatoria) + printf("obrigatoria\n"); printf("pago: %lld.%02d\n", dec->pago / 100, dec->pago % 100); printf("retido: %lld.%02d\n", dec->retido / 100, dec->retido % 100); printf("devido: %lld.%02d\n", dec->devido / 100, dec->devido % 100); diff --git a/calcula.c b/calcula.c index a8accc3..80f6c6d 100644 --- a/calcula.c +++ b/calcula.c @@ -73,6 +73,8 @@ static struct taxtable table2015[] = { static const long long simples2015 = 1588089; +static const long long obrigatoriedade2015 = 2681655; + static long long imposto(struct taxtable *tt, long long tr) { int i; @@ -117,6 +119,8 @@ int calcula(struct declaracao *dec) return -EINVAL; } total_rendimento(dec); + if (dec->totalrendimento > obrigatoriedade2015) + dec->obrigatoria = 1; i_simples = imposto_simples(dec); i_completa = imposto_completa(dec); total_pago(dec); diff --git a/declaracao.h b/declaracao.h index 834e4cc..47d8db9 100644 --- a/declaracao.h +++ b/declaracao.h @@ -39,6 +39,7 @@ struct declaracao { long long devido; long long pagar; long long restituicao; + int obrigatoria; int tipo; char *recibo; char *retifica; diff --git a/gera.c b/gera.c index 32d9ea9..9129148 100644 --- a/gera.c +++ b/gera.c @@ -52,7 +52,7 @@ static void gera_header(struct declaracao *dec, FILE *f) fprintf(f, "%-10.10s", ""); /* TODO: última declaração transmitida (pode ser vazio?) */ fprintf(f, "%04d", dec->contribuinte.cd_municipio); fprintf(f, " "); /* TODO: CPF conjuge */ - fprintf(f, "0"); /* TODO: obrigatoria entrega */ + fprintf(f, "%d", dec->obrigatoria); /* TODO: obrigatoria entrega */ fprintf(f, "%013lld", dec->devido); /* imposto devido, carne-leao, complementar dos dependentes */ fprintf(f, "%-10.10s", dec->recibo ?: ""); /* recibo ex. anterior */ fprintf(f, "2"); /* TODO: indicador seguranca */ -- 2.20.1