Implementa opção verbose.
[cascardo/declara.git] / lib / base.c
index 4f5c5fd..3db915e 100644 (file)
 #include "rendimento.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"
 
@@ -76,6 +80,14 @@ static int run_resumo(struct declaracao *dec, char **args, int argc)
        return 0;
 }
 
+static int run_verbose(struct declaracao *dec, char **args, int argc)
+{
+       if (argc != 1)
+               return -EINVAL;
+       dec->verbose = 1;
+       return 0;
+}
+
 static void salva(struct declaracao *dec, FILE *f)
 {
        fprintf(f, "ano %d\n", dec->ano);
@@ -99,6 +111,10 @@ static void salva(struct declaracao *dec, FILE *f)
        rendimento_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)
@@ -116,6 +132,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,
@@ -126,6 +158,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);
@@ -142,5 +189,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;
 }