fprintf(f, "\r\n");
}
+static void gera_simples(struct declaracao *dec, FILE *f)
+{
+ fprintf(f, "17");
+ fprintf(f, "%s", dec->cpf); /* CPF: 11 dígitos */
+ fprintf(f, "%013lld", 0); /* TODO: carnê leão */
+ fprintf(f, "%013lld", 0); /* TODO: lucros e dividendos */
+ fprintf(f, "%013lld", 0); /* TODO: isentos */
+ fprintf(f, "%013lld", 0); /* TODO: rendimentos tributação exclusiva */
+ fprintf(f, "%013lld", 0); /* TODO: 13o. */
+ fprintf(f, "%013lld", 0); /* TODO: retido na fonte */
+ fprintf(f, "%013lld", 0); /* TODO: 13o. dependentes */
+ fprintf(f, "%013lld", 0); /* TODO: lucros dependentes */
+ fprintf(f, "%013lld", 0); /* TODO: isentos dependentes */
+ fprintf(f, "%013lld", 0); /* TODO: exclusivos dependentes */
+ fprintf(f, "%-13.13s", ""); /* FILLER */
+ fprintf(f, "%-13.13s", ""); /* FILLER */
+ fprintf(f, "%013lld", 0); /* TODO: rendimentos PF */
+ fprintf(f, "%013lld", 0); /* TODO: rendimentos PF dependentes */
+ fprintf(f, "%013lld", 0); /* TODO: rendimentos PF exterior */
+ fprintf(f, "%013lld", 0); /* TODO: rendimentos PF ext. depend. */
+ fprintf(f, "%013lld", 0); /* TODO: carnê-leão PF? */
+ fprintf(f, "%013lld", 0); /* TODO: carnê-leão dependentes */
+ fprintf(f, "%013lld", 0); /* TODO: dedução dependentes */
+ fprintf(f, "%013lld", 0); /* TODO: previdência */
+ fprintf(f, "%013lld", 0); /* TODO: previdência dependentes */
+ fprintf(f, "%013lld", 0); /* TODO: pensão */
+ fprintf(f, "%013lld", 0); /* TODO: pensão dependentes*/
+ fprintf(f, "%013lld", 0); /* TODO: imposto pago exterior */
+ fprintf(f, "%013lld", 0); /* TODO: imposto devido sem rendimento exterior */
+ fprintf(f, "%013lld", 0); /* TODO: limite imposto pago exterior */
+ fprintf(f, "%-10.10s", "0000000000"); /* FIXME: controle */
+ fprintf(f, "\r\n");
+}
+
+static void gera_totais_simples(struct declaracao *dec, FILE *f)
+{
+ fprintf(f, "18");
+ fprintf(f, "%s", dec->cpf); /* CPF: 11 dígitos */
+ fprintf(f, "%013lld", 0); /* TODO: rendimentos tributáveis */
+ fprintf(f, "%013lld", 0); /* TODO: desconto simplificado */
+ fprintf(f, "%013lld", 0); /* TODO: base cálculo */
+ fprintf(f, "%013lld", 0); /* TODO: imposto devido */
+ fprintf(f, "%013lld", 0); /* TODO: imposto retido */
+ fprintf(f, "%013lld", 0); /* TODO: imposto complementar */
+ fprintf(f, "%013lld", 0); /* TODO: carnê-leão */
+ fprintf(f, "%013lld", 0); /* TODO: imposto retido Lei 11.033 */
+ fprintf(f, "%013lld", 0); /* TODO: imposto restituir */
+ fprintf(f, "%013lld", 0); /* TODO: imposto pagar */
+ fprintf(f, "%d", 0); /* TODO: quotas */
+ fprintf(f, "%013lld", 0); /* TODO: valor quota */
+ fprintf(f, "%013lld", 0); /* TODO: rendimentos isentos */
+ fprintf(f, "%013lld", 0); /* TODO: rendimentos tributação exclusiva */
+ fprintf(f, "%013lld", 0); /* TODO: conjuge */
+ fprintf(f, "%013lld", 0); /* TODO: rendimento PJ dependente */
+ fprintf(f, "%013lld", 0); /* TODO: imposto retido dependente */
+ fprintf(f, "%013lld", 0); /* TODO: imposto ganhos de capital */
+ fprintf(f, "%013lld", 0); /* TODO: rendimento tributável PJ titular */
+ fprintf(f, "%013lld", 0); /* TODO: total rural */
+ fprintf(f, "%013lld", 0); /* TODO: imposto retido titular */
+ fprintf(f, "%013lld", 0); /* TODO: total bens ano anterior */
+ fprintf(f, "%013lld", 0); /* TODO: total bens ano base */
+ fprintf(f, "%013lld", 0); /* TODO: rendimentos isentos titular */
+ fprintf(f, "%013lld", 0); /* TODO: rendimentos isentos dependentes */
+ fprintf(f, "%013lld", 0); /* TODO: tributação exclusiva titular */
+ fprintf(f, "%013lld", 0); /* TODO: tributação exclusiva dependentes */
+ fprintf(f, "%013lld", 0); /* TODO: total não tributável */
+ fprintf(f, "%013lld", 0); /* TODO: total dívidas ano anterior */
+ fprintf(f, "%013lld", 0); /* TODO: total dívidas ano base */
+ fprintf(f, "%013lld", 0); /* TODO: retido fonte Lei 11.033*/
+ fprintf(f, "%013lld", 0); /* TODO: isentos e não tributáveis */
+ fprintf(f, "%013lld", 0); /* TODO: tributação exclusiva */
+ fprintf(f, "%013lld", 0); /* TODO: ganhos líquidos renda variável */
+ fprintf(f, "%013lld", 0); /* TODO: parcela isenta ganhos capital */
+ fprintf(f, "%013lld", 0); /* TODO: rendimentos PF exterior titular */
+ fprintf(f, "%013lld", 0); /* TODO: rendimentos PF exterior dependentes */
+ fprintf(f, "%013lld", 0); /* TODO: doações campanha */
+ fprintf(f, "%013lld", 0); /* TODO: rendimentos PF exigibilidade suspensa titular */
+ fprintf(f, "%013lld", 0); /* TODO: rendimentos PF exigibilidade suspensa dependentes */
+ fprintf(f, "%013lld", 0); /* TODO: depósitos judiciais exigibilidade suspensa titular */
+ fprintf(f, "%013lld", 0); /* TODO: depósitos judiciais exigibilidade suspensa dependentes */
+ fprintf(f, "%013lld", 0); /* TODO: rendimentos RRA titular */
+ fprintf(f, "%013lld", 0); /* TODO: IRF RRA titular */
+ fprintf(f, "%013lld", 0); /* TODO: imposto RRA titular */
+ fprintf(f, "%013lld", 0); /* TODO: rendimentos RRA dependentes */
+ fprintf(f, "%013lld", 0); /* TODO: IRF RRA dependentes */
+ fprintf(f, "%013lld", 0); /* TODO: imposto RRA dependentes */
+ fprintf(f, "%013lld", 0); /* TODO: imposto devido */
+ fprintf(f, "%013lld", 0); /* TODO: imposto diferido ganho capital */
+ fprintf(f, "%013lld", 0); /* TODO: imposto devido ganho capital */
+ fprintf(f, "%013lld", 0); /* TODO: imposto ganho líquido renda variável */
+ fprintf(f, "%013lld", 0); /* TODO: imposto devido ganho capital moeda estrangeira */
+ fprintf(f, "%013lld", 0); /* TODO: imposto pago exterior*/
+ fprintf(f, "%-10.10s", "0000000000"); /* FIXME: controle */
+ fprintf(f, "\r\n");
+}
+
+static void gera_completa(struct declaracao *dec, FILE *f)
+{
+ fprintf(f, "19");
+ fprintf(f, "%s", dec->cpf); /* CPF: 11 dígitos */
+ fprintf(f, "%-14.14s", ""); /* TODO: CNPJ maior */
+ /* FIXME: completar campos */
+ fprintf(f, "%-10.10s", "0000000000"); /* FIXME: controle */
+ fprintf(f, "\r\n");
+}
+
+static void gera_totais_completa(struct declaracao *dec, FILE *f)
+{
+ fprintf(f, "20");
+ fprintf(f, "%s", dec->cpf); /* CPF: 11 dígitos */
+ /* FIXME: completar campos */
+ fprintf(f, "%-10.10s", "0000000000"); /* FIXME: controle */
+ fprintf(f, "\r\n");
+}
+
static int gera(struct declaracao *dec, char *filename)
{
FILE *f;
return -errno;
gera_header(dec, f);
gera_contribuinte(dec, f);
+ if (dec->tipo == COMPLETA) {
+ gera_completa(dec, f);
+ gera_totais_completa(dec, f);
+ } else {
+ gera_simples(dec, f);
+ gera_totais_simples(dec, f);
+ }
fclose(f);
return 0;
}