if (dec->retifica)
printf("retificadora\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);
- printf("restituicao: %lld.%02d\n", dec->restituicao / 100, dec->restituicao % 100);
+ if (dec->restituicao > 0)
+ printf("restituicao: %lld.%02d\n", dec->restituicao / 100, dec->restituicao % 100);
+ if (dec->pagar > 0)
+ printf("a pagar: %lld.%02d\n", dec->pagar / 100, dec->pagar % 100);
return 0;
}
return td;
}
-static long long total_pago(struct declaracao *dec)
+static void total_pago(struct declaracao *dec)
{
- long long tt = 0;
struct rendimento *rendimento;
int i;
+ dec->pago = dec->retido = 0;
for (i = 0; rendimento = list_get(dec->rendimento, i); i++) {
- tt += rendimento->imposto;
+ dec->pago += rendimento->imposto;
+ dec->retido += rendimento->imposto;
}
- return tt;
}
struct taxtable {
}
i_simples = imposto_simples(dec);
i_completa = imposto_completa(dec);
- dec->pago = total_pago(dec);
+ total_pago(dec);
if (i_simples > i_completa) {
dec->tipo = COMPLETA;
dec->devido = i_completa;
dec->tipo = SIMPLES;
dec->devido = i_simples;
}
- dec->restituicao = dec->pago - dec->devido;
+ if (dec->pago > dec->devido)
+ dec->restituicao = dec->pago - dec->devido;
+ else
+ dec->pagar = dec->devido - dec->pago;
return 0;
}