32 #include <glib/gi18n.h>
33 #include <aqbanking/banking.h>
34 #include <aqbanking/jobgettransactions.h>
37 #include "dialog-ab-daterange.h"
38 #include "gnc-ab-gettrans.h"
47 static gboolean gettrans_dates(GtkWidget *parent,
Account *gnc_acc, GWEN_TIME **from_date, GWEN_TIME **to_date);
50 gettrans_dates(GtkWidget *parent,
Account *gnc_acc,
51 GWEN_TIME **from_date, GWEN_TIME **to_date)
53 Timespec last_timespec, until_timespec;
55 gboolean use_last_date = TRUE;
56 gboolean use_earliest_date = TRUE;
57 gboolean use_until_now = TRUE;
59 g_return_val_if_fail(from_date && to_date, FALSE);
63 if (last_timespec.tv_sec == 0)
65 use_last_date = FALSE;
73 &use_last_date, &use_earliest_date,
74 &until_timespec, &use_until_now))
78 if (use_earliest_date)
101 gboolean online = FALSE;
103 GWEN_TIME *from_date = NULL, *to_date = NULL;
106 AB_JOB_LIST2 *job_list = NULL;
107 GncGWENGui *gui = NULL;
108 AB_IMEXPORTER_CONTEXT *context = NULL;
110 AB_JOB_STATUS job_status;
112 g_return_if_fail(parent && gnc_acc);
118 g_warning(
"gnc_ab_gettrans: Couldn't get AqBanking API");
121 if (AB_Banking_OnlineInit(api
122 #ifdef AQBANKING_VERSION_4_EXACTLY
127 g_warning(
"gnc_ab_gettrans: Couldn't initialize AqBanking API");
136 g_warning(
"gnc_ab_gettrans: No AqBanking account found");
137 gnc_error_dialog(parent, _(
"No valid online banking account assigned."));
142 if (!gettrans_dates(parent, gnc_acc, &from_date, &to_date))
144 g_debug(
"gnc_ab_gettrans: gettrans_dates aborted");
151 job = AB_JobGetTransactions_new(ab_acc);
152 if (!job || AB_Job_CheckAvailability(job
153 #ifndef AQBANKING_VERSION_5_PLUS
158 g_warning(
"gnc_ab_gettrans: JobGetTransactions not available for this "
160 gnc_error_dialog(parent, _(
"Online action \"Get Transactions\" not available for this account."));
163 AB_JobGetTransactions_SetFromTime(job, from_date);
164 AB_JobGetTransactions_SetToTime(job, to_date);
165 job_list = AB_Job_List2_new();
166 AB_Job_List2_PushBack(job_list, job);
172 g_warning(
"gnc_ab_gettrans: Couldn't initialize Gwenhywfar GUI");
177 context = AB_ImExporterContext_new();
180 AB_Banking_ExecuteJobs(api, job_list, context
181 #ifndef AQBANKING_VERSION_5_PLUS
190 job_status = AB_Job_GetStatus(job);
191 if (job_status != AB_Job_StatusFinished
192 && job_status != AB_Job_StatusPending)
194 g_warning(
"gnc_ab_gettrans: Error on executing job");
195 gnc_error_dialog(parent, _(
"Error on executing job.\n\nStatus: %s - %s")
196 , AB_Job_Status2Char(job_status)
197 , AB_Job_GetResultText(job));
207 GtkWidget *dialog = gtk_message_dialog_new(
209 GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
213 _(
"The Online Banking import returned no transactions "
214 "for the selected time period."));
215 gtk_dialog_run(GTK_DIALOG(dialog));
216 gtk_widget_destroy(dialog);
226 AB_ImExporterContext_free(context);
230 AB_Job_List2_free(job_list);
234 GWEN_Time_free(to_date);
236 GWEN_Time_free(from_date);
238 #ifdef AQBANKING_VERSION_4_EXACTLY
239 AB_Banking_OnlineFini(api, 0);
241 AB_Banking_OnlineFini(api);
Timespec gnc_ab_get_account_trans_retrieval(const Account *a)
time64 timespecToTime64(Timespec ts)
#define G_LOG_DOMAIN
Functions providing the SX List as a plugin page.
Use a 64-bit unsigned int timespec.
GncGWENGui * gnc_GWEN_Gui_get(GtkWidget *parent)
Account handling public routines.
void gnc_GWEN_Gui_release(GncGWENGui *gui)
void gnc_ab_set_account_trans_retrieval(Account *a, Timespec time)
AB_BANKING * gnc_AB_BANKING_new(void)
gint gnc_AB_BANKING_fini(AB_BANKING *api)
AB_ACCOUNT * gnc_ab_get_ab_account(const AB_BANKING *api, Account *gnc_acc)
GncABImExContextImport * gnc_ab_import_context(AB_IMEXPORTER_CONTEXT *context, guint awaiting, gboolean execute_txns, AB_BANKING *api, GtkWidget *parent)
gboolean gnc_ab_enter_daterange(GtkWidget *parent, const char *heading, Timespec *from_date, gboolean *last_retv_date, gboolean *first_possible_date, Timespec *to_date, gboolean *to_now)
time64 gnc_time(time64 *tbuf)
get the current local time
GUI callbacks for AqBanking.
guint gnc_ab_ieci_get_found(GncABImExContextImport *ieci)
void gnc_ab_gettrans(GtkWidget *parent, Account *gnc_acc)
AqBanking utility functions.
const gchar * QofLogModule
void timespecFromTime64(Timespec *ts, time64 t)