mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Merge Peter Zimmer's 'pkzw_bug797631' into maint.
This commit is contained in:
commit
d825d74c86
@ -64,6 +64,7 @@
|
|||||||
#include "gnc-ui-util.h"
|
#include "gnc-ui-util.h"
|
||||||
#include "gnc-session.h"
|
#include "gnc-session.h"
|
||||||
#include "import-account-matcher.h"
|
#include "import-account-matcher.h"
|
||||||
|
#include "import-utilities.h"
|
||||||
#ifndef AQBANKING6
|
#ifndef AQBANKING6
|
||||||
# include <aqbanking/dlg_setup.h>
|
# include <aqbanking/dlg_setup.h>
|
||||||
#endif
|
#endif
|
||||||
@ -682,7 +683,8 @@ static void
|
|||||||
clear_kvp_acc_cb(gpointer gnc_acc, gpointer ab_acc, gpointer user_data)
|
clear_kvp_acc_cb(gpointer gnc_acc, gpointer ab_acc, gpointer user_data)
|
||||||
{
|
{
|
||||||
g_return_if_fail(gnc_acc);
|
g_return_if_fail(gnc_acc);
|
||||||
/* Delete complete "hbci..." KVPs for GnuCash account */
|
/* Delete "online-id" and complete "hbci..." KVPs for GnuCash account */
|
||||||
|
gnc_account_delete_map_entry((Account *) gnc_acc, "online_id", NULL, NULL, FALSE);
|
||||||
gnc_account_delete_map_entry((Account *) gnc_acc, "hbci", NULL, NULL, FALSE);
|
gnc_account_delete_map_entry((Account *) gnc_acc, "hbci", NULL, NULL, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -694,6 +696,10 @@ save_kvp_acc_cb(gpointer key, gpointer value, gpointer user_data)
|
|||||||
guint32 ab_account_uid;
|
guint32 ab_account_uid;
|
||||||
const gchar *ab_accountid, *gnc_accountid;
|
const gchar *ab_accountid, *gnc_accountid;
|
||||||
const gchar *ab_bankcode, *gnc_bankcode;
|
const gchar *ab_bankcode, *gnc_bankcode;
|
||||||
|
#ifdef AQBANKING6
|
||||||
|
gchar *ab_online_id;
|
||||||
|
const gchar *gnc_online_id;
|
||||||
|
#endif
|
||||||
|
|
||||||
g_return_if_fail(ab_acc && gnc_acc);
|
g_return_if_fail(ab_acc && gnc_acc);
|
||||||
|
|
||||||
@ -726,6 +732,14 @@ save_kvp_acc_cb(gpointer key, gpointer value, gpointer user_data)
|
|||||||
&& (!gnc_bankcode
|
&& (!gnc_bankcode
|
||||||
|| (strcmp(gnc_bankcode, ab_bankcode) != 0)))
|
|| (strcmp(gnc_bankcode, ab_bankcode) != 0)))
|
||||||
gnc_ab_set_account_bankcode(gnc_acc, ab_bankcode);
|
gnc_ab_set_account_bankcode(gnc_acc, ab_bankcode);
|
||||||
|
|
||||||
|
#ifdef AQBANKING6
|
||||||
|
ab_online_id = gnc_ab_create_online_id(ab_bankcode, ab_accountid);
|
||||||
|
gnc_online_id = gnc_import_get_acc_online_id(gnc_acc);
|
||||||
|
if (ab_online_id && (!gnc_online_id || (strcmp(ab_online_id, gnc_online_id) != 0)))
|
||||||
|
gnc_import_set_acc_online_id(gnc_acc, ab_online_id);
|
||||||
|
g_free(ab_online_id);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -63,7 +63,6 @@ G_GNUC_UNUSED static QofLogModule log_module = G_LOG_DOMAIN;
|
|||||||
static AB_BANKING *gnc_AB_BANKING = NULL;
|
static AB_BANKING *gnc_AB_BANKING = NULL;
|
||||||
static gint gnc_AB_BANKING_refcount = 0;
|
static gint gnc_AB_BANKING_refcount = 0;
|
||||||
|
|
||||||
static gchar* create_online_id(const gchar *bankcode, const gchar *accountnumber);
|
|
||||||
static gpointer join_ab_strings_cb(const gchar *str, gpointer user_data);
|
static gpointer join_ab_strings_cb(const gchar *str, gpointer user_data);
|
||||||
static Account *gnc_ab_accinfo_to_gnc_acc(GtkWidget *parent,
|
static Account *gnc_ab_accinfo_to_gnc_acc(GtkWidget *parent,
|
||||||
AB_IMEXPORTER_ACCOUNTINFO *account_info);
|
AB_IMEXPORTER_ACCOUNTINFO *account_info);
|
||||||
@ -318,8 +317,8 @@ gnc_AB_VALUE_to_readable_string(const AB_VALUE *value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static gchar*
|
gchar*
|
||||||
create_online_id(const gchar *bankcode, const gchar *accountnumber)
|
gnc_ab_create_online_id(const gchar *bankcode, const gchar *accountnumber)
|
||||||
{
|
{
|
||||||
gchar *online_id;
|
gchar *online_id;
|
||||||
|
|
||||||
@ -669,7 +668,7 @@ gnc_ab_accinfo_to_gnc_acc(GtkWidget *parent, AB_IMEXPORTER_ACCOUNTINFO *acc_info
|
|||||||
|
|
||||||
bankcode = AB_ImExporterAccountInfo_GetBankCode(acc_info);
|
bankcode = AB_ImExporterAccountInfo_GetBankCode(acc_info);
|
||||||
accountnumber = AB_ImExporterAccountInfo_GetAccountNumber(acc_info);
|
accountnumber = AB_ImExporterAccountInfo_GetAccountNumber(acc_info);
|
||||||
online_id = create_online_id(bankcode, accountnumber);
|
online_id = gnc_ab_create_online_id(bankcode, accountnumber);
|
||||||
gnc_acc = gnc_import_select_account(
|
gnc_acc = gnc_import_select_account(
|
||||||
parent, online_id, 1, AB_ImExporterAccountInfo_GetAccountName(acc_info),
|
parent, online_id, 1, AB_ImExporterAccountInfo_GetAccountName(acc_info),
|
||||||
NULL, ACCT_TYPE_NONE, NULL, NULL);
|
NULL, ACCT_TYPE_NONE, NULL, NULL);
|
||||||
@ -708,7 +707,7 @@ gnc_ab_txn_to_gnc_acc(GtkWidget *parent, const AB_TRANSACTION *transaction)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
online_id = create_online_id(bankcode, accountnumber);
|
online_id = gnc_ab_create_online_id(bankcode, accountnumber);
|
||||||
gnc_acc = gnc_import_select_account(
|
gnc_acc = gnc_import_select_account(
|
||||||
parent, online_id, 1, AB_Transaction_GetLocalName(transaction),
|
parent, online_id, 1, AB_Transaction_GetLocalName(transaction),
|
||||||
NULL, ACCT_TYPE_NONE, NULL, NULL);
|
NULL, ACCT_TYPE_NONE, NULL, NULL);
|
||||||
|
@ -276,6 +276,17 @@ gboolean gnc_ab_ieci_run_matcher(GncABImExContextImport *ieci);
|
|||||||
*/
|
*/
|
||||||
GWEN_DB_NODE *gnc_ab_get_permanent_certs(void);
|
GWEN_DB_NODE *gnc_ab_get_permanent_certs(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an online ID from bank code and account number.
|
||||||
|
*
|
||||||
|
* The returned string must be g_free'd by the caller.
|
||||||
|
*
|
||||||
|
* @param bankcode Bank code
|
||||||
|
* @param accountnumber Account number
|
||||||
|
* @return an online ID
|
||||||
|
*/
|
||||||
|
gchar* gnc_ab_create_online_id(const gchar *bankcode, const gchar *accountnumber);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
Loading…
Reference in New Issue
Block a user