Deduções pode ser maiores que rendimentos tributáveis.
authorThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
Sun, 10 Apr 2016 19:32:57 +0000 (16:32 -0300)
committerThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
Sun, 10 Apr 2016 19:32:57 +0000 (16:32 -0300)
Base de cálculo deve ser zero nesses casos, não negativa.

lib/calcula.c

index fdf3b83..c928a02 100644 (file)
@@ -135,6 +135,8 @@ static long long imposto_simples(struct declaracao *dec)
                td = simples[ANO(dec->ano)];
        totais_add(dec, "DESCONTO", td);
        tr -= td;
+       if (tr < 0)
+               tr = 0;
        totais_add(dec, "BASESIMPLES", tr);
        if (dec->verbose) {
                printf("Desconto simplificado é "FMT_R"\n", R(td));
@@ -151,6 +153,8 @@ static long long imposto_completa(struct declaracao *dec)
        td = total_deducao(dec);
        totais_add(dec, "DEDUCOES", td);
        tr -= td;
+       if (tr < 0)
+               tr = 0;
        totais_add(dec, "BASECOMPLETA", tr);
        if (dec->verbose) {
                printf("Desconto completa é "FMT_R"\n", R(td));