#include "declaracao.h"
#include "cmd.h"
#include "rendimento.h"
-#include "dependente.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)
{
int i;
- long long dependentes = 0;
- struct dependente *dependente;
- for (i = 0; (dependente = list_get(dec->dependentes, i)); i++) {
- dependentes += dependente2015;
- }
- return dependentes +
+ return totais_get(dec, "DEPENDENTES") +
totais_get(dec, "INSS") +
- totais_get(dec, "PAGAMENTOS");
+ totais_get(dec, "PAGAMENTOS") -
+ totais_get(dec, "REEMBOLSOS");
}
static void total_pago(struct declaracao *dec)
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)) {
dec->tipo = COMPLETA;
dec->devido = i_completa;
} else {