Calcula base de cálculo para declaração completa.
authorThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
Fri, 25 Sep 2015 10:47:00 +0000 (07:47 -0300)
committerThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
Sat, 12 Mar 2016 20:47:37 +0000 (17:47 -0300)
Como tentamos o cálculo de ambas as declarações, o valor da base de
cálculo deve ser calculado separadamente para cada tipo de declaração.

lib/calcula.c

index 9116868..e571f7b 100644 (file)
@@ -95,7 +95,7 @@ static long long imposto_simples(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);
 }
 
@@ -110,6 +110,7 @@ static long long imposto_completa(struct declaracao *dec)
        tr = totais_get(dec, "RENDPJ");
        td = total_deducao(dec);
        tr -= td;
+       totais_add(dec, "BASECOMPLETA", tr);
        return imposto(tt, tr);
 }
 
@@ -126,9 +127,11 @@ int calcula(struct declaracao *dec)
        total_pago(dec);
        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;
        }