#include "rendimento.h"
#include "totais.h"
+static const long long dependente2015 = 215652;
+
+long long deducao_dependente(struct declaracao *dec)
+{
+ if (dec->ano == 2015)
+ return dependente2015;
+ return 0;
+}
+
/* Alguns totais precisam ser limitados. Portanto, um total de decuções
* precisa ser ajustado para tais limites. Esta função considerará tais
* limites no futuro. */
static long long total_deducao(struct declaracao *dec)
{
- return totais_get(dec, "INSS") + totais_get(dec, "PAGAMENTOS");
+ int i;
+ return totais_get(dec, "DEPENDENTES") +
+ totais_get(dec, "INSS") +
+ totais_get(dec, "PAGAMENTOS") -
+ totais_get(dec, "REEMBOLSOS");
}
static void total_pago(struct declaracao *dec)
td = simples2015;
totais_add(dec, "DESCONTO", td);
tr -= td;
- totais_add(dec, "BASE", tr);
+ totais_add(dec, "BASESIMPLES", tr);
return imposto(tt, tr);
}
tr = totais_get(dec, "RENDPJ");
td = total_deducao(dec);
tr -= td;
+ totais_add(dec, "BASECOMPLETA", tr);
return imposto(tt, tr);
}
i_simples = imposto_simples(dec);
i_completa = imposto_completa(dec);
total_pago(dec);
- if (i_simples > i_completa) {
+ if (dec->tipo != FORCA_SIMPLES &&
+ (i_simples > i_completa || dec->tipo == FORCA_COMPLETA)) {
+ totais_add(dec, "BASE", totais_get(dec, "BASECOMPLETA"));
dec->tipo = COMPLETA;
dec->devido = i_completa;
} else {
+ totais_add(dec, "BASE", totais_get(dec, "BASESIMPLES"));
dec->tipo = SIMPLES;
dec->devido = i_simples;
}