Suporta carnê leão
[cascardo/declara.git] / lib / declaracao.c
index fd3c998..2fa6c4a 100644 (file)
 #include "conjuge.h"
 #include "sistema.h"
 #include "rendimento.h"
+#include "carne.h"
 #include "isento.h"
 #include "pagamento.h"
 #include "bem.h"
 #include "dependente.h"
 #include "pmhash.h"
 
+#include "base.h"
+#include "calcula.h"
+#include "gera.h"
+#include "help.h"
+
 struct declaracao * declaracao_new(int ano)
 {
        struct declaracao *dec;
@@ -43,6 +49,9 @@ struct declaracao * declaracao_new(int ano)
        dec->rendimento = list_new();
        if (!dec->rendimento)
                goto out_rendimento;
+       dec->carne = list_new();
+       if (!dec->carne)
+               goto out_carne;
        dec->isentos = list_new();
        if (!dec->isentos)
                goto out_isentos;
@@ -73,6 +82,8 @@ out_bens:
 out_pagamentos:
        list_free(dec->isentos, isento_free);
 out_isentos:
+       list_free(dec->carne, carne_free);
+out_carne:
        list_free(dec->rendimento, rendimento_free);
 out_rendimento:
        free(dec);
@@ -98,6 +109,7 @@ void declaracao_free(struct declaracao *dec)
        if (dec->dvconta)
                free(dec->dvconta);
        list_free(dec->rendimento, rendimento_free);
+       list_free(dec->carne, carne_free);
        list_free(dec->isentos, isento_free);
        list_free(dec->pagamentos, pagamento_free);
        list_free(dec->bens, bem_free);
@@ -120,3 +132,20 @@ void dec_set_error(struct declaracao *dec, char *fmt, ...)
        vasprintf(&dec->error, fmt, ap);
        va_end(ap);
 }
+
+void dec_cmd_init(void)
+{
+       base_cmd_init();
+       contribuinte_cmd_init();
+       conjuge_cmd_init();
+       rendimento_cmd_init();
+       carne_cmd_init();
+       isento_cmd_init();
+       pagamento_cmd_init();
+       bem_cmd_init();
+       dependente_cmd_init();
+       calcula_cmd_init();
+       gera_cmd_init();
+       sistema_cmd_init();
+       help_cmd_init();
+}