r22816 - gnucash/trunk/src/import-export/aqbanking - Aqbanking SEPA transfer: Really test and finish the implementation.
Christian Stimming
cstim at code.gnucash.org
Fri Mar 1 16:28:01 EST 2013
Author: cstim
Date: 2013-03-01 16:28:01 -0500 (Fri, 01 Mar 2013)
New Revision: 22816
Trac: http://svn.gnucash.org/trac/changeset/22816
Modified:
gnucash/trunk/src/import-export/aqbanking/dialog-ab-trans.c
gnucash/trunk/src/import-export/aqbanking/gnc-gwen-gui.c
Log:
Aqbanking SEPA transfer: Really test and finish the implementation.
Also, apparently the iTAN authentication method doesn't work unless
one activates the GTK2_GUI code in gnc-gwen-gui.c:70 but I need to check
this further.
Modified: gnucash/trunk/src/import-export/aqbanking/dialog-ab-trans.c
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/dialog-ab-trans.c 2013-02-28 09:52:12 UTC (rev 22815)
+++ gnucash/trunk/src/import-export/aqbanking/dialog-ab-trans.c 2013-03-01 21:28:01 UTC (rev 22816)
@@ -183,10 +183,11 @@
AB_TRANSACTION *trans = AB_Transaction_new();
AB_VALUE *value;
- AB_Transaction_SetLocalBankCode(trans, AB_Account_GetBankCode(td->ab_acc));
- AB_Transaction_SetLocalAccountNumber(
- trans, AB_Account_GetAccountNumber(td->ab_acc));
- AB_Transaction_SetLocalCountry(trans, "DE");
+ AB_Transaction_FillLocalFromAccount(trans, td->ab_acc);
+ //AB_Transaction_SetLocalBankCode(trans, AB_Account_GetBankCode(td->ab_acc));
+ //AB_Transaction_SetLocalAccountNumber(
+ // trans, AB_Account_GetAccountNumber(td->ab_acc));
+ //AB_Transaction_SetLocalCountry(trans, "DE");
if (gnc_ab_trans_isSEPA(td->trans_type))
{
@@ -397,6 +398,12 @@
// do nothing
break;
}
+ if (gnc_ab_trans_isSEPA(trans_type))
+ {
+ // Also, SEPA might have much longer IBAN (up to 34 chars) and BIC (11)
+ gtk_entry_set_max_length(GTK_ENTRY(td->recp_bankcode_entry), 11);
+ gtk_entry_set_max_length(GTK_ENTRY(td->recp_account_entry), 34);
+ }
gtk_label_set_text(GTK_LABEL(orig_name_label), ab_ownername);
gtk_label_set_text(GTK_LABEL(orig_account_label), ab_accountnumber);
@@ -527,6 +534,26 @@
* AB_TRANSACTION */
td->ab_trans = gnc_ab_trans_dialog_fill_values(td);
+ // Verify that we have a local IBAN and BIC
+ if (gnc_ab_trans_isSEPA(td->trans_type))
+ {
+ const char* localBIC = AB_Transaction_GetLocalBic(td->ab_trans);
+ const char* localIBAN = AB_Transaction_GetLocalIban(td->ab_trans);
+ if (!localBIC || !localIBAN
+ || (strlen(localBIC) == 0) || (strlen(localIBAN) == 0))
+ {
+ values_ok = FALSE;
+ gnc_error_dialog(td->dialog,
+ _("Your local bank account does not yet have the SEPA account information stored. "
+ " We are sorry, but in this development version one additional step is necessary "
+ "which has not yet been implemented directly in gnucash. "
+ "Please execute the command line program \"aqhbci-tool\" for your account, as follows: "
+ "aqhbci-tool4 getaccsepa -b %s -a %s"),
+ AB_Transaction_GetLocalBankCode(td->ab_trans),
+ AB_Transaction_GetLocalAccountNumber(td->ab_trans));
+ }
+ }
+
/* Check recipient / remote name */
othername = gnc_ab_get_remote_name(td->ab_trans);
if (!othername || !strlen(othername))
@@ -546,7 +573,9 @@
}
/* Check account */
- account = AB_Transaction_GetRemoteAccountNumber(td->ab_trans);
+ account = gnc_ab_trans_isSEPA(td->trans_type)
+ ? AB_Transaction_GetRemoteIban(td->ab_trans)
+ : AB_Transaction_GetRemoteAccountNumber(td->ab_trans);
if (!account || !strlen(account))
{
gnc_ab_trans_dialog_entry_set (td->recp_account_entry,
@@ -560,7 +589,9 @@
gnc_ab_trans_dialog_entry_set (td->recp_account_entry, "", NULL);
}
/* Check bank */
- bankcode = AB_Transaction_GetRemoteBankCode(td->ab_trans);
+ bankcode = gnc_ab_trans_isSEPA(td->trans_type)
+ ? AB_Transaction_GetRemoteBic(td->ab_trans)
+ : AB_Transaction_GetRemoteBankCode(td->ab_trans);
if (!bankcode || !strlen(bankcode))
{
gnc_ab_trans_dialog_entry_set (td->recp_bankcode_entry,
Modified: gnucash/trunk/src/import-export/aqbanking/gnc-gwen-gui.c
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/gnc-gwen-gui.c 2013-02-28 09:52:12 UTC (rev 22815)
+++ gnucash/trunk/src/import-export/aqbanking/gnc-gwen-gui.c 2013-03-01 21:28:01 UTC (rev 22816)
@@ -55,6 +55,11 @@
# define GNC_GWENHYWFAR_CB
#endif
+#define GWEN_GUI_CM_CLASS "dialog-hbcilog"
+#define GCONF_SECTION_CONNECTION GCONF_SECTION_AQBANKING "/connection_dialog"
+#define KEY_CLOSE_ON_FINISH "close_on_finish"
+#define KEY_REMEMBER_PIN "remember_pin"
+
#ifdef USING_GWENHYWFAR_GTK2_GUI
# include <gwen-gui-gtk2/gtk2_gui.h>
#endif
@@ -112,7 +117,7 @@
gboolean
gnc_GWEN_Gui_show_dialog()
{
- return;
+ return TRUE;
}
void
@@ -150,11 +155,6 @@
(gwen_gui), (gui), NULL)
#define GETDATA_GUI(gwen_gui) GWEN_INHERIT_GETDATA(GWEN_GUI, GncGWENGui, (gwen_gui))
-#define GWEN_GUI_CM_CLASS "dialog-hbcilog"
-#define GCONF_SECTION_CONNECTION GCONF_SECTION_AQBANKING "/connection_dialog"
-#define KEY_CLOSE_ON_FINISH "close_on_finish"
-#define KEY_REMEMBER_PIN "remember_pin"
-
#define OTHER_ENTRIES_ROW_OFFSET 3
typedef struct _Progress Progress;
More information about the gnucash-changes
mailing list