[grisbi-devel] [PATCH 1/2] update the anonymize module for the new data
pbiava
pierre.biava at nerim.net
Sun Apr 14 21:21:15 CEST 2013
---
src/bet_data.c | 43 +++++++++
src/bet_data.h | 1 +
src/file_obfuscate.c | 244 ++++++++++++++++++++++++++++++++-------------------
3 files changed, 199 insertions(+), 89 deletions(-)
diff --git a/src/bet_data.c b/src/bet_data.c
index 390708a..2c4d87f 100644
--- a/src/bet_data.c
+++ b/src/bet_data.c
@@ -2187,12 +2187,55 @@ void struct_free_bet_transaction_current_fyear ( TransactionCurrentFyear *self )
/**
+ * met à 0 tous les montants retenus pour les données historiques
+ *
+ * \param account_number
+ *
+ * \return
+ * */
+void bet_data_hist_set_all_retened_amount_null ( gint account_number )
+{
+ GHashTableIter iter;
+ gpointer key, value;
+
+ if ( g_hash_table_size ( bet_hist_div_list ) == 0 )
+ return;
+
+ g_hash_table_iter_init ( &iter, bet_hist_div_list );
+ while ( g_hash_table_iter_next ( &iter, &key, &value ) )
+ {
+ struct_hist_div *shd = ( struct_hist_div* ) value;
+
+ if ( g_hash_table_size ( shd -> sub_div_list ) == 0 )
+ {
+ if ( shd -> div_edited )
+ bet_data_set_div_amount ( account_number, shd -> div_number, 0, null_real );
+ }
+ else
+ {
+ GHashTableIter new_iter;
+
+ g_hash_table_iter_init ( &new_iter, shd -> sub_div_list );
+ while ( g_hash_table_iter_next ( &new_iter, &key, &value ) )
+ {
+ struct_hist_div *sub_shd = ( struct_hist_div* ) value;
+
+ if ( sub_shd->div_edited )
+ bet_data_set_div_amount ( account_number, shd->div_number, sub_shd->div_number, null_real );
+ }
+ }
+ }
+}
+
+
+/**
*
*
* \param
*
* \return
* */
+
/* Local Variables: */
/* c-basic-offset: 4 */
/* End: */
diff --git a/src/bet_data.h b/src/bet_data.h
index 57cc3b3..9447d8c 100644
--- a/src/bet_data.h
+++ b/src/bet_data.h
@@ -174,6 +174,7 @@ gboolean bet_data_hist_add_div ( gint account_number,
gint div_number,
gint sub_div_nb );
gsb_real bet_data_hist_get_div_amount ( gint account_nb, gint div_number, gint sub_div_nb );
+void bet_data_hist_set_all_retened_amount_null ( gint account_number );
gboolean bet_data_init_variables ( void );
void bet_data_insert_div_hist ( struct_hist_div *shd, struct_hist_div *sub_shd );
gboolean bet_data_populate_div ( gint transaction_number,
diff --git a/src/file_obfuscate.c b/src/file_obfuscate.c
index b62bbb6..6352ff3 100644
--- a/src/file_obfuscate.c
+++ b/src/file_obfuscate.c
@@ -35,12 +35,14 @@
/*START_INCLUDE*/
#include "file_obfuscate.h"
+#include "bet_data.h"
#include "dialog.h"
#include "gsb_assistant.h"
#include "gsb_data_account.h"
#include "gsb_data_bank.h"
#include "gsb_data_budget.h"
#include "gsb_data_category.h"
+#include "gsb_data_partial_balance.h"
#include "gsb_data_payee.h"
#include "gsb_data_reconcile.h"
#include "gsb_data_report.h"
@@ -125,30 +127,89 @@ gboolean file_obfuscate_run ( void )
/* remove the swp file */
gsb_file_util_modify_lock (FALSE);
- if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button_accounts_details)))
- {
- /* hide the details of account but not the names */
- tmp_list = gsb_data_account_get_list_accounts ();
- while (tmp_list)
- {
- gint account_number = gsb_data_account_get_no_account (tmp_list -> data);
-
- gsb_data_account_set_id (account_number,
- g_strdup_printf ("id account %d", account_number));
- gsb_data_account_set_comment (account_number, NULL);
- gsb_data_account_set_holder_name (account_number, NULL);
- gsb_data_account_set_holder_address (account_number, NULL);
- gsb_data_account_set_init_balance (account_number, null_real);
- gsb_data_account_set_mini_balance_wanted (account_number, null_real);
- gsb_data_account_set_mini_balance_authorized (account_number, null_real);
- gsb_data_account_set_bank_branch_code (account_number, NULL);
- gsb_data_account_set_bank_account_number (account_number, NULL);
- gsb_data_account_set_bank_account_key (account_number, NULL);
+ /* hide the accounts data */
+ tmp_list = gsb_data_account_get_list_accounts ();
+ while ( tmp_list )
+ {
+ gint account_number = gsb_data_account_get_no_account ( tmp_list -> data );
+
+ /* hide the IBAN number */
+ gsb_data_account_set_bank_account_iban ( account_number, NULL );
+
+ if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( button_accounts_details ) ) )
+ {
+ /* hide the details of account but not the names */
+ gchar *tmp_str;
+
+ tmp_str = g_strdup_printf ( "id account %d", account_number );
+ gsb_data_account_set_id ( account_number, tmp_str );
+ g_free ( tmp_str );
+
+ gsb_data_account_set_comment (account_number, NULL);
+ gsb_data_account_set_holder_name (account_number, NULL);
+ gsb_data_account_set_holder_address (account_number, NULL);
+ gsb_data_account_set_init_balance (account_number, null_real);
+ gsb_data_account_set_mini_balance_wanted (account_number, null_real);
+ gsb_data_account_set_mini_balance_authorized (account_number, null_real);
+ gsb_data_account_set_bank_branch_code (account_number, NULL);
+ gsb_data_account_set_bank_account_number (account_number, NULL);
+ gsb_data_account_set_bank_account_key (account_number, NULL);
+ }
+
+ if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( button_accounts_names ) ) )
+ {
+ /* hide the accounts names */
+ gchar *tmp_str;
+
+ tmp_str = g_strdup_printf ( "Account n°%d", account_number );
+ gsb_data_account_set_name ( account_number, tmp_str );
+ g_free ( tmp_str );
- tmp_list = tmp_list -> next;
}
+
+ /* hide the budgetary data */
+ if ( gsb_data_account_get_bet_use_budget ( account_number ) )
+ {
+ /* hide the historiques data */
+ gint bet_hist_data;
+
+ bet_hist_data = gsb_data_account_get_bet_hist_data ( account_number );
+
+ if ( bet_hist_data == 0 && gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( button_categories ) ) )
+ {
+ bet_data_hist_set_all_retened_amount_null ( account_number );
+ }
+ if ( bet_hist_data == 1 && gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( button_budgets ) ) )
+ {
+ bet_data_hist_set_all_retened_amount_null ( account_number );
+ }
+ gsb_data_account_set_bet_finance_capital ( account_number, 0.0 );
+ gsb_data_account_set_bet_finance_taux_annuel ( account_number, 0.0 );
+ gsb_data_account_set_bet_finance_frais ( account_number, 0.0 );
+ gsb_data_account_set_bet_finance_capital ( account_number, 0.0 );
+ gsb_data_account_set_bet_months ( account_number, 0 );
+ }
+
+ tmp_list = tmp_list -> next;
}
+ if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( button_accounts_names ) ) )
+ {
+ /* hide the partial balance accounts names */
+ tmp_list = gsb_data_partial_balance_get_list ();
+ while ( tmp_list )
+ {
+ gint partial_balance_number = gsb_data_partial_balance_get_number ( tmp_list->data );
+ gchar *tmp_str;
+
+ tmp_str = g_strdup_printf ( "Partial balance n°%d", partial_balance_number );
+ gsb_data_partial_balance_set_name ( partial_balance_number, tmp_str );
+ g_free ( tmp_str );
+
+ tmp_list = tmp_list->next;
+ }
+ }
+
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button_amount)))
{
/* hide the amounts of transactions */
@@ -175,32 +236,21 @@ gboolean file_obfuscate_run ( void )
}
}
- if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button_accounts_names)))
- {
- /* hide the accounts names */
- tmp_list = gsb_data_account_get_list_accounts ();
- while (tmp_list)
- {
- gint account_number = gsb_data_account_get_no_account (tmp_list -> data);
-
- gsb_data_account_set_name (account_number,
- g_strdup_printf ("Account n°%d", account_number));
-
- tmp_list = tmp_list -> next;
- }
- }
-
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button_payee)))
{
/* hide the payees names */
tmp_list = gsb_data_payee_get_payees_list ();
while (tmp_list)
{
- gint payee_number = gsb_data_payee_get_no_payee (tmp_list -> data);
+ gint payee_number = gsb_data_payee_get_no_payee (tmp_list -> data);
+ gchar *tmp_str;
- gsb_data_payee_set_name (payee_number,
- g_strdup_printf ( "Payee n°%d", payee_number));
- gsb_data_payee_set_description (payee_number, NULL);
+ tmp_str = g_strdup_printf ( "Payee n°%d", payee_number );
+ gsb_data_payee_set_name ( payee_number, tmp_str );
+ g_free ( tmp_str );
+
+ gsb_data_payee_set_description (payee_number, NULL);
+ gsb_data_payee_set_search_string ( payee_number, NULL );
tmp_list = tmp_list -> next;
}
@@ -212,21 +262,25 @@ gboolean file_obfuscate_run ( void )
tmp_list = gsb_data_category_get_categories_list ();
while (tmp_list)
{
- GSList *list_sub_categ;
- gint category_number = gsb_data_category_get_no_category (tmp_list -> data);
+ GSList *list_sub_categ;
+ gint category_number = gsb_data_category_get_no_category (tmp_list -> data);
+ gchar *tmp_str;
+
+ tmp_str = g_strdup_printf ( "Category n°%d", category_number );
+ gsb_data_category_set_name ( category_number, tmp_str );
+ g_free ( tmp_str );
- gsb_data_category_set_name (category_number,
- g_strdup_printf ( "Category n°%d", category_number));
+ list_sub_categ = gsb_data_category_get_sub_category_list (category_number);
+ while (list_sub_categ)
+ {
+ gint sub_categ_number = gsb_data_category_get_no_sub_category (list_sub_categ -> data);
- list_sub_categ = gsb_data_category_get_sub_category_list (category_number);
- while (list_sub_categ)
- {
- gint sub_categ_number = gsb_data_category_get_no_sub_category (list_sub_categ -> data);
+ tmp_str = g_strdup_printf ("Sub-category n°%d", sub_categ_number);
+ gsb_data_category_set_sub_category_name ( category_number, sub_categ_number, tmp_str );
+ g_free ( tmp_str );
- gsb_data_category_set_sub_category_name (category_number, sub_categ_number,
- g_strdup_printf ("Sub-category n°%d", sub_categ_number));
- list_sub_categ = list_sub_categ -> next;
- }
+ list_sub_categ = list_sub_categ -> next;
+ }
tmp_list = tmp_list -> next;
}
}
@@ -237,22 +291,26 @@ gboolean file_obfuscate_run ( void )
tmp_list = gsb_data_budget_get_budgets_list ();
while (tmp_list)
{
- GSList *list_sub_budget;
- gint budget_number = gsb_data_budget_get_no_budget (tmp_list -> data);
-
- gsb_data_budget_set_name (budget_number,
- g_strdup_printf ( "Budget n°%d", budget_number));
-
- list_sub_budget = gsb_data_budget_get_sub_budget_list (budget_number);
- while (list_sub_budget)
- {
- gint sub_budget_number = gsb_data_budget_get_no_sub_budget (list_sub_budget -> data);
-
- gsb_data_budget_set_sub_budget_name (budget_number, sub_budget_number,
- g_strdup_printf ("Sub-budget n°%d", sub_budget_number));
- list_sub_budget = list_sub_budget -> next;
- }
- tmp_list = tmp_list -> next;
+ GSList *list_sub_budget;
+ gint budget_number = gsb_data_budget_get_no_budget (tmp_list -> data);
+ gchar *tmp_str;
+
+ tmp_str = g_strdup_printf ( "Budget n°%d", budget_number );
+ gsb_data_budget_set_name ( budget_number, tmp_str );
+ g_free ( tmp_str );
+
+ list_sub_budget = gsb_data_budget_get_sub_budget_list (budget_number);
+ while (list_sub_budget)
+ {
+ gint sub_budget_number = gsb_data_budget_get_no_sub_budget (list_sub_budget -> data);
+
+ tmp_str = g_strdup_printf ( "Sub-budget n°%d", sub_budget_number );
+ gsb_data_budget_set_sub_budget_name ( budget_number, sub_budget_number, tmp_str );
+ g_free ( tmp_str );
+
+ list_sub_budget = list_sub_budget -> next;
+ }
+ tmp_list = tmp_list -> next;
}
}
@@ -286,25 +344,27 @@ gboolean file_obfuscate_run ( void )
tmp_list = gsb_data_bank_get_bank_list ();
while (tmp_list)
{
- gint bank_number = gsb_data_bank_get_no_bank (tmp_list -> data);
-
- gsb_data_bank_set_name (bank_number,
- g_strdup_printf ("Bank n°%d", bank_number));
- gsb_data_bank_set_code (bank_number, NULL);
- gsb_data_bank_set_bank_address (bank_number, NULL);
- gsb_data_bank_set_bank_tel (bank_number, NULL);
- gsb_data_bank_set_bank_mail (bank_number, NULL);
- gsb_data_bank_set_bank_web (bank_number, NULL);
- gsb_data_bank_set_bank_note (bank_number, NULL);
- gsb_data_bank_set_correspondent_name (bank_number, NULL);
- gsb_data_bank_set_correspondent_tel (bank_number, NULL);
- gsb_data_bank_set_correspondent_mail (bank_number, NULL);
- gsb_data_bank_set_correspondent_fax (bank_number, NULL);
-
- tmp_list = tmp_list -> next;
+ gint bank_number = gsb_data_bank_get_no_bank (tmp_list -> data);
+ gchar *tmp_str;
+
+ tmp_str = g_strdup_printf ( "Bank n°%d", bank_number );
+ gsb_data_bank_set_name ( bank_number, tmp_str );
+ g_free ( tmp_str );
+
+ gsb_data_bank_set_code (bank_number, NULL);
+ gsb_data_bank_set_bic ( bank_number, NULL );
+ gsb_data_bank_set_bank_address (bank_number, NULL);
+ gsb_data_bank_set_bank_tel (bank_number, NULL);
+ gsb_data_bank_set_bank_mail (bank_number, NULL);
+ gsb_data_bank_set_bank_web (bank_number, NULL);
+ gsb_data_bank_set_bank_note (bank_number, NULL);
+ gsb_data_bank_set_correspondent_name (bank_number, NULL);
+ gsb_data_bank_set_correspondent_tel (bank_number, NULL);
+ gsb_data_bank_set_correspondent_mail (bank_number, NULL);
+ gsb_data_bank_set_correspondent_fax (bank_number, NULL);
+
+ tmp_list = tmp_list -> next;
}
-
-
}
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button_reports)))
@@ -313,12 +373,14 @@ gboolean file_obfuscate_run ( void )
tmp_list = gsb_data_report_get_report_list ();
while (tmp_list)
{
- gint report_number = gsb_data_report_get_report_number (tmp_list -> data);
+ gint report_number = gsb_data_report_get_report_number (tmp_list -> data);
+ gchar *tmp_str;
- gsb_data_report_set_report_name ( report_number,
- g_strdup_printf ( "Report n°%d", report_number));
+ tmp_str = g_strdup_printf ( "Report n°%d", report_number );
+ gsb_data_report_set_report_name ( report_number, tmp_str );
+ g_free ( tmp_str );
- tmp_list = tmp_list -> next;
+ tmp_list = tmp_list -> next;
}
}
@@ -354,6 +416,8 @@ gboolean file_obfuscate_run ( void )
dialogue_error_hint (g_strdup_printf (_("Grisbi couldn't save the file\n'%s'"), filename ),
_("Obfuscation failed") );
+ g_free ( filename );
+
/* bye bye */
exit (0);
}
@@ -450,6 +514,8 @@ GtkWidget *file_obfuscate_page_1 ( void )
FALSE, FALSE, 0);
register_button_as_linked ( button_everything, button_reconcile );
+ gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( button_everything ), TRUE );
+
gtk_widget_show_all (vbox);
return vbox;
}
--
1.8.1.5
More information about the devel
mailing list