X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=lib%2Fbase.c;h=8007d123a4e8a1cd5ed8e3c08cab5a0c9eba13dc;hb=96e46c9b40cf9ebbc3bf615f1d76a639bf76a6ee;hp=b4bf17d9ac794bc08f94fcbd3766c272105a261f;hpb=891f35cb2686c8b6135b42621e4aab9ce6e64e53;p=cascardo%2Fdeclara.git diff --git a/lib/base.c b/lib/base.c index b4bf17d..8007d12 100644 --- a/lib/base.c +++ b/lib/base.c @@ -22,6 +22,14 @@ #include #include #include "rendimento.h" +#include "carne.h" +#include "pagamento.h" +#include "bem.h" +#include "isento.h" +#include "dependente.h" +#include "conjuge.h" +#include "sistema.h" +#include "totais.h" #include "util.h" SET_INT(ano); @@ -41,17 +49,42 @@ static int run_resumo(struct declaracao *dec, char **args, int argc) printf("retificadora\n"); if (dec->obrigatoria) printf("obrigatoria\n"); - printf("pago: %lld.%02d\n", reais(dec->pago), centavos(dec->pago)); - printf("retido: %lld.%02d\n", reais(dec->retido), - centavos(dec->retido)); - printf("devido: %lld.%02d\n", reais(dec->devido), - centavos(dec->devido)); + switch (dec->tipo) { + case SIMPLES: + printf("simples\n"); + break; + case COMPLETA: + printf("completa\n"); + break; + } + printf("pago: "FMT_R"\n", R(dec->pago)); + printf("retido: "FMT_R"\n", R(dec->retido)); + printf("devido: "FMT_R"\n", R(dec->devido)); if (dec->restituicao > 0) - printf("restituicao: %lld.%02d\n", reais(dec->restituicao), - centavos(dec->restituicao)); + printf("restituicao: "FMT_R"\n", R(dec->restituicao)); if (dec->pagar > 0) - printf("a pagar: %lld.%02d\n", reais(dec->pagar), - centavos(dec->pagar)); + printf("a pagar: "FMT_R"\n", R(dec->pagar)); + printf("base de cálculo: "FMT_R"\n", + R(totais_get(dec, "BASE"))); + printf("isentos: "FMT_R"\n", + R(totais_get(dec, "ISENTOS"))); + printf("exclusivos: "FMT_R"\n", + R(totais_get(dec, "EXCLUSIVOS"))); + printf("bens: "FMT_R"\n", + R(totais_get(dec, "BENS"))); + printf("bens: "FMT_R"\n", + R(totais_get(dec, "BENSANTERIOR"))); + printf("aliquota efetiva: "FMT_R"%%\n", + R(dec->aliquota_efetiva)); + printf("hash: %010ld\n", dec->hash); + return 0; +} + +static int run_verbose(struct declaracao *dec, char **args, int argc) +{ + if (argc != 1) + return -EINVAL; + dec->verbose = 1; return 0; } @@ -66,8 +99,23 @@ static void salva(struct declaracao *dec, FILE *f) fprintf(f, "recibo \"%s\"\n", dec->recibo); if (dec->retifica) fprintf(f, "retifica \"%s\"\n", dec->retifica); + if (dec->banco) + fprintf(f, "banco \"%s\"\n", dec->banco); + if (dec->agencia) + fprintf(f, "agencia \"%s\"\n", dec->agencia); + if (dec->contacorrente) + fprintf(f, "contacorrente \"%s\"\n", dec->contacorrente); + if (dec->dvconta) + fprintf(f, "dvconta \"%s\"\n", dec->dvconta); contribuinte_salva(dec, f); rendimento_salva(dec, f); + carne_salva(dec, f); + pagamento_salva(dec, f); + bem_salva(dec, f); + isento_salva(dec, f); + dependente_salva(dec, f); + conjuge_salva(dec, f); + sistema_salva(dec, f); } static int run_salva(struct declaracao *dec, char **args, int argc) @@ -85,6 +133,22 @@ static int run_salva(struct declaracao *dec, char **args, int argc) return 0; } +static int run_simples(struct declaracao *dec, char **args, int argc) +{ + if (argc != 1) + return -EINVAL; + dec->tipo = FORCA_SIMPLES; + return 0; +} + +static int run_completa(struct declaracao *dec, char **args, int argc) +{ + if (argc != 1) + return -EINVAL; + dec->tipo = FORCA_COMPLETA; + return 0; +} + static struct cmd cmd_salva = { .name = "salva", .run = run_salva, @@ -95,6 +159,21 @@ static struct cmd cmd_resumo = { .run = run_resumo, }; +static struct cmd cmd_verbose = { + .name = "verbose", + .run = run_verbose, +}; + +static struct cmd cmd_simples = { + .name = "simples", + .run = run_simples, +}; + +static struct cmd cmd_completa = { + .name = "completa", + .run = run_completa, +}; + int base_cmd_init(void) { cmd_add(&cmd_salva); @@ -111,5 +190,9 @@ int base_cmd_init(void) cmd_add(&cmd_contacorrente); cmd_add(&cmd_dvconta); + cmd_add(&cmd_verbose); + cmd_add(&cmd_simples); + cmd_add(&cmd_completa); + return 0; }