mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-20 11:48:30 -06:00
Add support for upcoming libaqbanking-5 version.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@19126 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
3d4ebd8338
commit
d4419cfd14
@ -646,7 +646,11 @@ get_available_empty_job(AB_ACCOUNT *ab_acc, GncABTransType trans_type)
|
||||
job = AB_JobSingleTransfer_new(ab_acc);
|
||||
};
|
||||
|
||||
if (!job || AB_Job_CheckAvailability(job, 0))
|
||||
if (!job || AB_Job_CheckAvailability(job
|
||||
#ifndef AQBANKING_VERSION_5_PLUS
|
||||
, 0
|
||||
#endif
|
||||
))
|
||||
{
|
||||
if (job) AB_Job_free(job);
|
||||
return NULL;
|
||||
|
@ -174,7 +174,7 @@ dai_destroy_cb(GtkObject *object, gpointer user_data)
|
||||
|
||||
if (info->gnc_hash)
|
||||
{
|
||||
#ifdef AQBANKING_VERSION_4_PLUS
|
||||
#ifdef AQBANKING_VERSION_4_EXACTLY
|
||||
AB_Banking_OnlineFini(info->api, 0);
|
||||
#else
|
||||
AB_Banking_OnlineFini(info->api);
|
||||
@ -352,7 +352,7 @@ dai_match_page_prepare_cb(GnomeDruidPage *druid_page, GtkWidget *widget,
|
||||
info->match_page_prepared = TRUE;
|
||||
|
||||
/* Load aqbanking accounts */
|
||||
#ifdef AQBANKING_VERSION_4_PLUS
|
||||
#ifdef AQBANKING_VERSION_4_EXACTLY
|
||||
AB_Banking_OnlineInit(info->api, 0);
|
||||
#else
|
||||
AB_Banking_OnlineInit(info->api);
|
||||
@ -395,7 +395,7 @@ banking_has_accounts(AB_BANKING *banking)
|
||||
|
||||
g_return_val_if_fail(banking, FALSE);
|
||||
|
||||
#ifdef AQBANKING_VERSION_4_PLUS
|
||||
#ifdef AQBANKING_VERSION_4_EXACTLY
|
||||
AB_Banking_OnlineInit(banking, 0);
|
||||
#else
|
||||
AB_Banking_OnlineInit(banking);
|
||||
@ -410,7 +410,7 @@ banking_has_accounts(AB_BANKING *banking)
|
||||
if (accl)
|
||||
AB_Account_List2_free(accl);
|
||||
|
||||
#ifdef AQBANKING_VERSION_4_PLUS
|
||||
#ifdef AQBANKING_VERSION_4_EXACTLY
|
||||
AB_Banking_OnlineFini(banking, 0);
|
||||
#else
|
||||
AB_Banking_OnlineFini(banking);
|
||||
|
@ -64,7 +64,7 @@ gnc_ab_getbalance(GtkWidget *parent, Account *gnc_acc)
|
||||
return;
|
||||
}
|
||||
if (AB_Banking_OnlineInit(api
|
||||
#ifdef AQBANKING_VERSION_4_PLUS
|
||||
#ifdef AQBANKING_VERSION_4_EXACTLY
|
||||
, 0
|
||||
#endif
|
||||
) != 0)
|
||||
@ -84,7 +84,11 @@ gnc_ab_getbalance(GtkWidget *parent, Account *gnc_acc)
|
||||
|
||||
/* Get a GetBalance job and enqueue it */
|
||||
job = AB_JobGetBalance_new(ab_acc);
|
||||
if (!job || AB_Job_CheckAvailability(job, 0))
|
||||
if (!job || AB_Job_CheckAvailability(job
|
||||
#ifndef AQBANKING_VERSION_5_PLUS
|
||||
, 0
|
||||
#endif
|
||||
))
|
||||
{
|
||||
g_warning("gnc_ab_getbalance: JobGetBalance not available for this "
|
||||
"account");
|
||||
@ -105,7 +109,11 @@ gnc_ab_getbalance(GtkWidget *parent, Account *gnc_acc)
|
||||
context = AB_ImExporterContext_new();
|
||||
|
||||
/* Execute the job */
|
||||
if (AB_Banking_ExecuteJobs(api, job_list, context, 0))
|
||||
if (AB_Banking_ExecuteJobs(api, job_list, context
|
||||
#ifndef AQBANKING_VERSION_5_PLUS
|
||||
, 0
|
||||
#endif
|
||||
))
|
||||
{
|
||||
g_warning("gnc_ab_getbalance: Error on executing job");
|
||||
goto cleanup;
|
||||
@ -126,7 +134,7 @@ cleanup:
|
||||
if (job)
|
||||
AB_Job_free(job);
|
||||
if (online)
|
||||
#ifdef AQBANKING_VERSION_4_PLUS
|
||||
#ifdef AQBANKING_VERSION_4_EXACTLY
|
||||
AB_Banking_OnlineFini(api, 0);
|
||||
#else
|
||||
AB_Banking_OnlineFini(api);
|
||||
|
@ -117,7 +117,7 @@ gnc_ab_gettrans(GtkWidget *parent, Account *gnc_acc)
|
||||
return;
|
||||
}
|
||||
if (AB_Banking_OnlineInit(api
|
||||
#ifdef AQBANKING_VERSION_4_PLUS
|
||||
#ifdef AQBANKING_VERSION_4_EXACTLY
|
||||
, 0
|
||||
#endif
|
||||
) != 0)
|
||||
@ -146,7 +146,11 @@ gnc_ab_gettrans(GtkWidget *parent, Account *gnc_acc)
|
||||
|
||||
/* Get a GetTransactions job and enqueue it */
|
||||
job = AB_JobGetTransactions_new(ab_acc);
|
||||
if (!job || AB_Job_CheckAvailability(job, 0))
|
||||
if (!job || AB_Job_CheckAvailability(job
|
||||
#ifndef AQBANKING_VERSION_5_PLUS
|
||||
, 0
|
||||
#endif
|
||||
))
|
||||
{
|
||||
g_warning("gnc_ab_gettrans: JobGetTransactions not available for this "
|
||||
"account");
|
||||
@ -169,7 +173,11 @@ gnc_ab_gettrans(GtkWidget *parent, Account *gnc_acc)
|
||||
context = AB_ImExporterContext_new();
|
||||
|
||||
/* Execute the job */
|
||||
if (AB_Banking_ExecuteJobs(api, job_list, context, 0))
|
||||
if (AB_Banking_ExecuteJobs(api, job_list, context
|
||||
#ifndef AQBANKING_VERSION_5_PLUS
|
||||
, 0
|
||||
#endif
|
||||
))
|
||||
{
|
||||
g_warning("gnc_ab_gettrans: Error on executing job");
|
||||
goto cleanup;
|
||||
@ -212,7 +220,7 @@ cleanup:
|
||||
if (from_date)
|
||||
GWEN_Time_free(from_date);
|
||||
if (online)
|
||||
#ifdef AQBANKING_VERSION_4_PLUS
|
||||
#ifdef AQBANKING_VERSION_4_EXACTLY
|
||||
AB_Banking_OnlineFini(api, 0);
|
||||
#else
|
||||
AB_Banking_OnlineFini(api);
|
||||
|
@ -100,7 +100,7 @@ gnc_ab_maketrans(GtkWidget *parent, Account *gnc_acc,
|
||||
return;
|
||||
}
|
||||
if (AB_Banking_OnlineInit(api
|
||||
#ifdef AQBANKING_VERSION_4_PLUS
|
||||
#ifdef AQBANKING_VERSION_4_EXACTLY
|
||||
, 0
|
||||
#endif
|
||||
) != 0)
|
||||
@ -175,7 +175,11 @@ gnc_ab_maketrans(GtkWidget *parent, Account *gnc_acc,
|
||||
/* Get a job and enqueue it */
|
||||
ab_trans = gnc_ab_trans_dialog_get_ab_trans(td);
|
||||
job = gnc_ab_trans_dialog_get_job(td);
|
||||
if (!job || AB_Job_CheckAvailability(job, 0))
|
||||
if (!job || AB_Job_CheckAvailability(job
|
||||
#ifndef AQBANKING_VERSION_5_PLUS
|
||||
, 0
|
||||
#endif
|
||||
))
|
||||
{
|
||||
if (!gnc_verify_dialog(
|
||||
parent, FALSE, "%s",
|
||||
@ -256,7 +260,11 @@ gnc_ab_maketrans(GtkWidget *parent, Account *gnc_acc,
|
||||
}
|
||||
|
||||
/* Finally, execute the job */
|
||||
AB_Banking_ExecuteJobs(api, job_list, context, 0);
|
||||
AB_Banking_ExecuteJobs(api, job_list, context
|
||||
#ifndef AQBANKING_VERSION_5_PLUS
|
||||
, 0
|
||||
#endif
|
||||
);
|
||||
|
||||
/* Ignore the return value of AB_Banking_ExecuteJobs(), as the job's
|
||||
* status always describes better whether the job was actually
|
||||
@ -327,7 +335,7 @@ cleanup:
|
||||
if (td)
|
||||
gnc_ab_trans_dialog_free(td);
|
||||
if (online)
|
||||
#ifdef AQBANKING_VERSION_4_PLUS
|
||||
#ifdef AQBANKING_VERSION_4_EXACTLY
|
||||
AB_Banking_OnlineFini(api, 0);
|
||||
#else
|
||||
AB_Banking_OnlineFini(api);
|
||||
|
@ -902,7 +902,11 @@ gnc_ab_get_permanent_certs(void)
|
||||
|
||||
g_return_val_if_fail(banking, NULL);
|
||||
#ifdef AQBANKING_VERSION_4_PLUS
|
||||
rv = AB_Banking_LoadSharedConfig(banking, "certs", &perm_certs, 0);
|
||||
rv = AB_Banking_LoadSharedConfig(banking, "certs", &perm_certs
|
||||
# ifndef AQBANKING_VERSION_5_PLUS
|
||||
, 0
|
||||
# endif
|
||||
);
|
||||
#else
|
||||
/* FIXME: Add code for older AqBanking versions */
|
||||
/* See QBankmanager 0.9.50 in src/kbanking/libs/kbanking.cpp lines 323ff
|
||||
|
@ -48,6 +48,17 @@ G_BEGIN_DECLS
|
||||
# define AQBANKING_VERSION_4_PLUS
|
||||
#endif
|
||||
|
||||
#if (AQBANKING_VERSION_MAJOR > 4) || \
|
||||
((AQBANKING_VERSION_MAJOR == 4) && \
|
||||
(AQBANKING_VERSION_MINOR >= 99))
|
||||
/** Defined if libaqbanking5 as opposed to libaqbanking4 is being used */
|
||||
# define AQBANKING_VERSION_5_PLUS
|
||||
#endif
|
||||
|
||||
#if defined(AQBANKING_VERSION_4_PLUS) && !defined(AQBANKING_VERSION_5_PLUS)
|
||||
# define AQBANKING_VERSION_4_EXACTLY
|
||||
#endif
|
||||
|
||||
#define GCONF_SECTION_AQBANKING "dialogs/import/hbci"
|
||||
#define KEY_FORMAT_SWIFT940 "format_swift_mt940"
|
||||
#define KEY_FORMAT_SWIFT942 "format_swift_mt942"
|
||||
|
@ -36,12 +36,20 @@
|
||||
#include <glib/gstdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <gwenhywfar/io_file.h>
|
||||
#include <gwenhywfar/io_buffered.h>
|
||||
#include <gwenhywfar/iomanager.h>
|
||||
|
||||
#include "gnc-ab-utils.h"
|
||||
|
||||
#ifdef AQBANKING_VERSION_5_PLUS
|
||||
# include <gwenhywfar/syncio_file.h>
|
||||
# include <gwenhywfar/syncio_buffered.h>
|
||||
typedef GWEN_SYNCIO GWEN_IO_LAYER;
|
||||
#else
|
||||
# include <gwenhywfar/io_file.h>
|
||||
# include <gwenhywfar/io_buffered.h>
|
||||
# include <gwenhywfar/iomanager.h>
|
||||
#endif
|
||||
|
||||
#include "dialog-ab-trans.h"
|
||||
#include "gnc-ab-utils.h"
|
||||
#include "gnc-file.h"
|
||||
#include "gnc-file-aqb-import.h"
|
||||
#include "gnc-gwen-gui.h"
|
||||
@ -103,7 +111,7 @@ gnc_file_aqbanking_import(const gchar *aqbanking_importername,
|
||||
goto cleanup;
|
||||
}
|
||||
if (AB_Banking_OnlineInit(api
|
||||
#ifdef AQBANKING_VERSION_4_PLUS
|
||||
#ifdef AQBANKING_VERSION_4_EXACTLY
|
||||
, 0
|
||||
#endif
|
||||
) != 0)
|
||||
@ -166,23 +174,36 @@ gnc_file_aqbanking_import(const gchar *aqbanking_importername,
|
||||
context = AB_ImExporterContext_new();
|
||||
|
||||
/* Wrap file in buffered gwen io */
|
||||
#ifdef AQBANKING_VERSION_5_PLUS
|
||||
close(dtaus_fd);
|
||||
io = GWEN_SyncIo_File_new(selected_filename, GWEN_SyncIo_File_CreationMode_OpenExisting);
|
||||
#else
|
||||
io = GWEN_Io_LayerFile_new(dtaus_fd, -1);
|
||||
dtaus_fd = -1;
|
||||
if (GWEN_Io_Manager_RegisterLayer(io))
|
||||
{
|
||||
g_warning("gnc_file_aqbanking_import: Failed to wrap file");
|
||||
goto cleanup;
|
||||
}
|
||||
#endif
|
||||
dtaus_fd = -1;
|
||||
|
||||
/* Run the import */
|
||||
if (AB_ImExporter_Import(importer, context, io, db_profile, 0))
|
||||
if (AB_ImExporter_Import(importer, context, io, db_profile
|
||||
#ifndef AQBANKING_VERSION_5_PLUS
|
||||
, 0
|
||||
#endif
|
||||
))
|
||||
{
|
||||
g_warning("gnc_file_aqbanking_import: Error on import");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/* Close the file */
|
||||
#ifdef AQBANKING_VERSION_5_PLUS
|
||||
GWEN_SyncIo_free(io);
|
||||
#else
|
||||
GWEN_Io_Layer_free(io);
|
||||
#endif
|
||||
|
||||
/* Import the results */
|
||||
ieci = gnc_ab_import_context(context, AWAIT_TRANSACTIONS,
|
||||
@ -214,7 +235,7 @@ cleanup:
|
||||
if (gui)
|
||||
gnc_GWEN_Gui_release(gui);
|
||||
if (online)
|
||||
#ifdef AQBANKING_VERSION_4_PLUS
|
||||
#ifdef AQBANKING_VERSION_4_EXACTLY
|
||||
AB_Banking_OnlineFini(api, 0);
|
||||
#else
|
||||
AB_Banking_OnlineFini(api);
|
||||
|
@ -132,6 +132,9 @@ static gint setpasswordstatus_cb(GWEN_GUI *gwen_gui, const gchar *token,
|
||||
GWEN_GUI_PASSWORD_STATUS status, guint32 guiid);
|
||||
static gint loghook_cb(GWEN_GUI *gwen_gui, const gchar *log_domain,
|
||||
GWEN_LOGGER_LEVEL priority, const gchar *text);
|
||||
#ifdef AQBANKING_VERSION_5_PLUS
|
||||
typedef GWEN_SYNCIO GWEN_IO_LAYER;
|
||||
#endif
|
||||
static gint checkcert_cb(GWEN_GUI *gwen_gui, const GWEN_SSLCERTDESCR *cert,
|
||||
GWEN_IO_LAYER *io, guint32 guiid);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user