diff --git a/gnucash/import-export/import-backend.c b/gnucash/import-export/import-backend.c index 8e409e6fb1..60b01459bc 100644 --- a/gnucash/import-export/import-backend.c +++ b/gnucash/import-export/import-backend.c @@ -1048,106 +1048,6 @@ gnc_import_process_trans_item (GncImportMatchMap *matchmap, return FALSE; } -/********************************************************************\ - * check_trans_online_id() Callback function used by - * gnc_import_exists_online_id. Takes pointers to transaction and split, - * returns 0 if their online_ids do NOT match, or if the split - * belongs to the transaction -\********************************************************************/ -static gint check_trans_online_id(Transaction *trans1, void *user_data) -{ - Account *account; - Split *split1; - Split *split2 = user_data; - const gchar *online_id1; - const gchar *online_id2; - - account = xaccSplitGetAccount(split2); - split1 = xaccTransFindSplitByAccount(trans1, account); - if (split1 == split2) - return 0; - - /* hack - we really want to iterate over the _splits_ of the account - instead of the transactions */ - g_assert(split1 != NULL); - - if (gnc_import_split_has_online_id(split1)) - online_id1 = gnc_import_get_split_online_id(split1); - else - online_id1 = gnc_import_get_trans_online_id(trans1); - - online_id2 = gnc_import_get_split_online_id(split2); - - if ((online_id1 == NULL) || - (online_id2 == NULL) || - (strcmp(online_id1, online_id2) != 0)) - { - return 0; - } - else - { - /*printf("test_trans_online_id(): Duplicate found\n");*/ - return 1; - } -} - -static gint collect_trans_online_id(Transaction *trans, void *user_data) -{ - Split *split; - GHashTable *id_hash = user_data; - int i=0; - - const gchar* online_id = gnc_import_get_trans_online_id (trans); - if (online_id) - g_hash_table_add (id_hash, (void*) online_id); - - for (GList *splits = xaccTransGetSplitList (trans); splits; splits = splits->next) - { - if (gnc_import_split_has_online_id (splits->data)) - g_hash_table_add(id_hash, (void*) gnc_import_get_split_online_id (splits->data)); - } - return 0; -} - -/** Checks whether the given transaction's online_id already exists in - its parent account. */ -gboolean gnc_import_exists_online_id (Transaction *trans, GHashTable* acct_id_hash) -{ - gboolean online_id_exists = FALSE; - Account *dest_acct; - Split *source_split; - - /* Look for an online_id in the first split */ - source_split = xaccTransGetSplit(trans, 0); - g_assert(source_split); - - // No online id, no point in continuing. We'd crash if we tried. - if (!gnc_import_get_split_online_id (source_split)) - return FALSE; - // Create a hash per account of a hash of all transactions IDs. Then the test below will be fast if - // we have many transactions to import. - dest_acct = xaccSplitGetAccount (source_split); - if (!g_hash_table_contains (acct_id_hash, dest_acct)) - { - GHashTable* new_hash = g_hash_table_new (g_str_hash, g_str_equal); - g_hash_table_insert (acct_id_hash, dest_acct, new_hash); - xaccAccountForEachTransaction (dest_acct, collect_trans_online_id, new_hash); - } - online_id_exists = g_hash_table_contains (g_hash_table_lookup (acct_id_hash, dest_acct), - gnc_import_get_split_online_id (source_split)); - - /* If it does, abort the process for this transaction, since it is - already in the system. */ - if (online_id_exists == TRUE) - { - DEBUG("%s", "Transaction with same online ID exists, destroying current transaction"); - xaccTransDestroy(trans); - xaccTransCommitEdit(trans); - } - return online_id_exists; -} - - /* ****************************************************************** */ diff --git a/gnucash/import-export/import-backend.h b/gnucash/import-export/import-backend.h index b524d18359..69cd2bc995 100644 --- a/gnucash/import-export/import-backend.h +++ b/gnucash/import-export/import-backend.h @@ -57,15 +57,6 @@ typedef enum _action /** @name Non-GUI Functions */ /*@{*/ -/** Checks whether the given transaction's online_id already exists in - * its parent account. The given transaction has to be open for - * editing. If a matching online_id exists, the transaction is - * destroyed (!) and TRUE is returned, otherwise FALSE is returned. - * - * @param trans The transaction for which to check for an existing - * online_id. */ -gboolean gnc_import_exists_online_id (Transaction *trans, GHashTable* acct_id_hash); - /** Evaluates the match between trans_info and split using the provided parameters. * * @param trans_info The TransInfo for the imported transaction diff --git a/gnucash/import-export/import-main-matcher.c b/gnucash/import-export/import-main-matcher.c index 07f5a12962..10c916135f 100644 --- a/gnucash/import-export/import-main-matcher.c +++ b/gnucash/import-export/import-main-matcher.c @@ -76,7 +76,6 @@ struct _main_matcher_info gboolean add_toggled; // flag to indicate that add has been toggled to stop selection gint id; GSList* temp_trans_list; // Temporary list of imported transactions - GHashTable* acct_id_hash; // Hash table, per account, of list of transaction IDs. GSList* edited_accounts; // List of accounts currently edited. }; @@ -144,14 +143,6 @@ static gboolean query_tooltip_tree_view_cb (GtkWidget *widget, gint x, gint y, gpointer user_data); /* end local prototypes */ -static -gboolean delete_hash (gpointer key, gpointer value, gpointer user_data) -{ - // Value is a hash table that needs to be destroyed. - g_hash_table_destroy (value); - return TRUE; -} - static void update_all_balances (GNCImportMainMatcher *info) { @@ -218,8 +209,6 @@ gnc_gen_trans_list_delete (GNCImportMainMatcher *info) // We've deferred balance computations on many accounts. Let's do it now that we're done. update_all_balances (info); - g_hash_table_foreach_remove (info->acct_id_hash, delete_hash, NULL); - info->acct_id_hash = NULL; g_free (info); } @@ -1133,8 +1122,6 @@ gnc_gen_trans_init_view (GNCImportMainMatcher *info, G_CALLBACK(gnc_gen_trans_onButtonPressed_cb), info); g_signal_connect (view, "popup-menu", G_CALLBACK(gnc_gen_trans_onPopupMenu_cb), info); - - info->acct_id_hash = g_hash_table_new (g_direct_hash, g_direct_equal); } static void diff --git a/gnucash/import-export/import-utilities.c b/gnucash/import-export/import-utilities.c index 8d672d4e0e..4be49b323f 100644 --- a/gnucash/import-export/import-utilities.c +++ b/gnucash/import-export/import-utilities.c @@ -57,29 +57,6 @@ void gnc_import_set_acc_online_id (Account *account, const gchar *id) xaccAccountCommitEdit (account); } -const gchar * gnc_import_get_trans_online_id (Transaction * transaction) -{ - gchar *id = NULL; - qof_instance_get (QOF_INSTANCE (transaction), "online-id", &id, NULL); - return id; -} -/* Not actually used */ -void gnc_import_set_trans_online_id (Transaction *transaction, - const gchar *id) -{ - g_return_if_fail (transaction != NULL); - xaccTransBeginEdit (transaction); - qof_instance_set (QOF_INSTANCE (transaction), "online-id", id, NULL); - xaccTransCommitEdit (transaction); -} - -gboolean gnc_import_trans_has_online_id(Transaction * transaction) -{ - const gchar * online_id; - online_id = gnc_import_get_trans_online_id(transaction); - return (online_id != NULL && strlen(online_id) > 0); -} - const gchar * gnc_import_get_split_online_id (Split * split) { gchar *id = NULL; diff --git a/gnucash/import-export/import-utilities.h b/gnucash/import-export/import-utilities.h index 1ef733d8b5..a39d641571 100644 --- a/gnucash/import-export/import-utilities.h +++ b/gnucash/import-export/import-utilities.h @@ -49,17 +49,6 @@ const gchar * gnc_import_get_acc_online_id(Account * account); void gnc_import_set_acc_online_id(Account * account, const gchar * string_value); /** @} */ -/** @name Setter-getters - Setter and getter functions for the online_id field for - Transactions. - @{ -*/ -const gchar * gnc_import_get_trans_online_id(Transaction * transaction); -void gnc_import_set_trans_online_id(Transaction * transaction, - const gchar * string_value); -/** @} */ - -gboolean gnc_import_trans_has_online_id(Transaction * transaction); /** @name Setter-getters Setter and getter functions for the online_id field for