void AB_ImExporterAccountInfo_FillFromAccount(AB_IMEXPORTER_ACCOUNTINFO *iea, const AB_ACCOUNT *a) { const char *s; AB_ACCOUNT_TYPE at; assert(iea); assert(a); s=AB_Account_GetBankCode(a); AB_ImExporterAccountInfo_SetBankCode(iea, s); s=AB_Account_GetBankName(a); AB_ImExporterAccountInfo_SetBankName(iea, s); s=AB_Account_GetAccountNumber(a); AB_ImExporterAccountInfo_SetAccountNumber(iea, s); s=AB_Account_GetAccountName(a); AB_ImExporterAccountInfo_SetAccountName(iea, s); s=AB_Account_GetIBAN(a); AB_ImExporterAccountInfo_SetIban(iea, s); s=AB_Account_GetBIC(a); AB_ImExporterAccountInfo_SetBic(iea, s); s=AB_Account_GetCurrency(a); AB_ImExporterAccountInfo_SetCurrency(iea, s); s=AB_Account_GetOwnerName(a); AB_ImExporterAccountInfo_SetOwner(iea, s); at=AB_Account_GetAccountType(a); AB_ImExporterAccountInfo_SetType(iea, at); }
int AB_Provider_AccountToAccountSpec(AB_PROVIDER *pro, const AB_ACCOUNT *acc, AB_ACCOUNT_SPEC *as, int doLock) { int rv; assert(acc); assert(as); AB_AccountSpec_SetType(as, AB_Account_GetAccountType(acc)); AB_AccountSpec_SetUniqueId(as, AB_Account_GetUniqueId(acc)); AB_AccountSpec_SetBackendName(as, AB_Account_GetBackendName(acc)); AB_AccountSpec_SetOwnerName(as, AB_Account_GetOwnerName(acc)); AB_AccountSpec_SetAccountName(as, AB_Account_GetAccountName(acc)); AB_AccountSpec_SetCurrency(as, AB_Account_GetCurrency(acc)); AB_AccountSpec_SetIban(as, AB_Account_GetIban(acc)); AB_AccountSpec_SetBic(as, AB_Account_GetBic(acc)); AB_AccountSpec_SetCountry(as, AB_Account_GetCountry(acc)); AB_AccountSpec_SetBankCode(as, AB_Account_GetBankCode(acc)); AB_AccountSpec_SetAccountNumber(as, AB_Account_GetAccountNumber(acc)); AB_AccountSpec_SetSubAccountNumber(as, AB_Account_GetSubAccountId(acc)); rv=AB_Provider_UpdateAccountSpec(pro, as, doLock); if (rv<0 && rv!=GWEN_ERROR_NOT_IMPLEMENTED) { DBG_INFO(AQBANKING_LOGDOMAIN, "here (%d)", rv); return rv; } return 0; }
static void account_list_changed_cb(GtkTreeSelection *selection, gpointer user_data) { ABInitialInfo *info = user_data; GtkTreeModel *model; GtkTreeIter iter; AB_ACCOUNT *ab_acc; gchar *longname, *gnc_name; Account *old_value, *gnc_acc; const gchar *currency; gnc_commodity *commodity = NULL; gboolean ok_pressed; g_return_if_fail(info); if (!gtk_tree_selection_get_selected(selection, &model, &iter)) return; gtk_tree_model_get(model, &iter, ACCOUNT_LIST_COL_AB_ACCT, &ab_acc, -1); /* Avoid recursion when unselecting the item again */ g_signal_handlers_block_by_func(selection, account_list_changed_cb, info); gtk_tree_selection_unselect_iter(selection, &iter); g_signal_handlers_unblock_by_func(selection, account_list_changed_cb, info); if (ab_acc) { old_value = g_hash_table_lookup(info->gnc_hash, ab_acc); longname = ab_account_longname(ab_acc); currency = AB_Account_GetCurrency(ab_acc); if (currency && *currency) { commodity = gnc_commodity_table_lookup( gnc_commodity_table_get_table(gnc_get_current_book()), GNC_COMMODITY_NS_CURRENCY, currency); } gnc_acc = gnc_import_select_account(info->window, NULL, TRUE, longname, commodity, ACCT_TYPE_BANK, old_value, &ok_pressed); g_free(longname); if (ok_pressed && old_value != gnc_acc) { if (gnc_acc) { RevLookupData data; /* Lookup and clear other mappings to gnc_acc */ data.gnc_acc = gnc_acc; data.ab_acc = NULL; g_hash_table_find(info->gnc_hash, (GHRFunc) find_gnc_acc_cb, &data); if (data.ab_acc) { g_hash_table_remove(info->gnc_hash, data.ab_acc); gtk_tree_model_foreach( GTK_TREE_MODEL(info->account_store), (GtkTreeModelForeachFunc) clear_line_cb, &data); } /* Map ab_acc to gnc_acc */ g_hash_table_insert(info->gnc_hash, ab_acc, gnc_acc); gnc_name = gnc_account_get_full_name(gnc_acc); gtk_list_store_set(info->account_store, &iter, ACCOUNT_LIST_COL_GNC_NAME, gnc_name, ACCOUNT_LIST_COL_CHECKED, TRUE, -1); g_free(gnc_name); } else { g_hash_table_remove(info->gnc_hash, ab_acc); gtk_list_store_set(info->account_store, &iter, ACCOUNT_LIST_COL_GNC_NAME, "", ACCOUNT_LIST_COL_CHECKED, TRUE, -1); } } } }