GncABImExContextImport * gnc_ab_import_context(AB_IMEXPORTER_CONTEXT *context, guint awaiting, gboolean execute_txns, AB_BANKING *api, GtkWidget *parent) { GncABImExContextImport *data = g_new(GncABImExContextImport, 1); g_return_val_if_fail(context, NULL); /* Do not await and ignore at the same time */ g_return_val_if_fail(!(awaiting & AWAIT_BALANCES) || !(awaiting & IGNORE_BALANCES), NULL); g_return_val_if_fail(!(awaiting & AWAIT_TRANSACTIONS) || !(awaiting & IGNORE_TRANSACTIONS), NULL); /* execute_txns must be FALSE if txns are not awaited */ g_return_val_if_fail(awaiting & AWAIT_TRANSACTIONS || !execute_txns, NULL); /* An api is needed for the jobs */ g_return_val_if_fail(!execute_txns || api, NULL); data->awaiting = awaiting; data->txn_found = FALSE; data->execute_txns = execute_txns; data->api = api; data->parent = parent; data->job_list = AB_Job_List2_new(); data->tmp_job_list = NULL; data->generic_importer = NULL; g_datalist_init(&data->tmp_job_list); /* Import transactions */ if (!(awaiting & IGNORE_TRANSACTIONS)) AB_ImExporterContext_AccountInfoForEach(context, txn_accountinfo_cb, data); /* Check balances */ if (!(awaiting & IGNORE_BALANCES)) AB_ImExporterContext_AccountInfoForEach(context, bal_accountinfo_cb, data); return data; }
GList * gnc_hbci_import_ctx(AB_BANKING *ab, AB_IMEXPORTER_CONTEXT *ctx, GNCImportMainMatcher *importer_generic_gui, gboolean exec_as_aqbanking_jobs) { struct import_data data; data.importer_generic = importer_generic_gui; data.ab = ab; data.job_list = NULL; data.execute_transactions = exec_as_aqbanking_jobs; /* Iterate through all accounts */ AB_ImExporterContext_AccountInfoForEach(ctx, accountinfolist_cb, &data); /* All accounts finished. Finished importing. */ return data.job_list; }