Imposto retido é aquele retido na fonte. Imposto pago é o retido e o
pago por outros meios, como carnê-leão. Ainda a confirmar através de um
teste com o IRPF privativo. No momento, todos os impostos suportados são
aqueles declarados em rendimento de PJ e, portanto, são retidos na
fonte.
Se o imposto devido é maior que o pago, calcula-se o imposto a pagar,
caso contrário, o imposto a restituir.
if (dec->retifica)
printf("retificadora\n");
printf("pago: %lld.%02d\n", dec->pago / 100, dec->pago % 100);
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("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);
-static long long total_pago(struct declaracao *dec)
+static void total_pago(struct declaracao *dec)
struct rendimento *rendimento;
int i;
struct rendimento *rendimento;
int i;
+ dec->pago = dec->retido = 0;
for (i = 0; rendimento = list_get(dec->rendimento, i); i++) {
for (i = 0; rendimento = list_get(dec->rendimento, i); i++) {
- tt += rendimento->imposto;
+ dec->pago += rendimento->imposto;
+ dec->retido += rendimento->imposto;
}
i_simples = imposto_simples(dec);
i_completa = imposto_completa(dec);
}
i_simples = imposto_simples(dec);
i_completa = imposto_completa(dec);
- dec->pago = total_pago(dec);
if (i_simples > i_completa) {
dec->tipo = COMPLETA;
dec->devido = i_completa;
if (i_simples > i_completa) {
dec->tipo = COMPLETA;
dec->devido = i_completa;
dec->tipo = SIMPLES;
dec->devido = i_simples;
}
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;
struct contribuinte contribuinte;
long long totalrendimento;
long long pago;
struct contribuinte contribuinte;
long long totalrendimento;
long long pago;
long long restituicao;
int tipo;
char *recibo;
long long restituicao;
int tipo;
char *recibo;