[Gnucash-changes] Add sanity checks and ask user when there are no
purpose lines.
Christian Stimming
cstim at cvs.gnucash.org
Mon May 23 16:12:42 EDT 2005
Log Message:
-----------
Add sanity checks and
ask user when there are no purpose lines.
2005-05-23 Christian Stimming <stimming at tuhh.de>
* src/import-export/hbci/dialog-hbcitrans.c: Add sanity checks and
ask user when there are no purpose lines.
Tags:
----
gnucash-1-8-branch
Modified Files:
--------------
gnucash/po:
de.po
gnucash:
ChangeLog
gnucash/src/import-export/hbci:
dialog-hbcitrans.c
gnc-hbci-utils.c
gnc-hbci-utils.h
Revision Data
-------------
Index: de.po
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/po/de.po,v
retrieving revision 1.147.2.56
retrieving revision 1.147.2.57
diff -Lpo/de.po -Lpo/de.po -u -r1.147.2.56 -r1.147.2.57
--- po/de.po
+++ po/de.po
@@ -10,8 +10,8 @@
msgstr ""
"Project-Id-Version: de\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-05-06 23:24+0200\n"
-"PO-Revision-Date: 2005-05-06 23:26+0200\n"
+"POT-Creation-Date: 2005-05-23 22:16+0200\n"
+"PO-Revision-Date: 2005-05-23 22:18+0200\n"
"Last-Translator: Christian Stimming <stimming at tuhh.de>\n"
"Language-Team: German <de at li.org>\n"
"MIME-Version: 1.0\n"
@@ -2685,7 +2685,7 @@
"Fehler aufgetreten beim Speichern eines Kontos:\n"
"%d: %s"
-#: src/engine/Account.c:2513 src/import-export/hbci/gnc-hbci-utils.c:607
+#: src/engine/Account.c:2513 src/import-export/hbci/gnc-hbci-utils.c:622
#: intl-scm/guile-strings.c:107 intl-scm/guile-strings.c:1882
msgid "Bank"
msgstr "Bank"
@@ -3571,7 +3571,7 @@
#: src/import-export/generic-import.glade:161
#: src/import-export/generic-import.glade:389
#: src/import-export/generic-import.glade:899
-#: src/import-export/hbci/gnc-hbci-utils.c:606
+#: src/import-export/hbci/gnc-hbci-utils.c:621
#: src/import-export/qif-import/qif.glade:125
#: src/register/ledger-core/split-register-model.c:191
#: intl-scm/guile-strings.c:2312 intl-scm/guile-strings.c:2432
@@ -7300,7 +7300,7 @@
msgid "Please choose an AqBanking backend to be configured"
msgstr "Wählen Sie das Modul von AqBanking, das Sie einrichten möchten."
-#: src/import-export/hbci/druid-hbci-initial.c:609
+#: src/import-export/hbci/druid-hbci-initial.c:606
#, c-format
msgid ""
"The external program \"%s Setup Wizard\" returned a nonzero \n"
@@ -7316,7 +7316,7 @@
"erfolgreich aufgerufen worden ist. Bitte versuchen Sie erneut, \n"
"den %s Einrichtungs-Assistent korrekt auszuführen."
-#: src/import-export/hbci/druid-hbci-initial.c:622
+#: src/import-export/hbci/druid-hbci-initial.c:619
#, c-format
msgid ""
"The external program \"%s Setup Wizard\" has not been found. \n"
@@ -7451,21 +7451,21 @@
"Ihr Sicherheitsmedium wird nicht unterstützt. Es konnte kein passendes\n"
"Plugin für dieses Medium gefunden werden. Aktion wird abgebrochen."
-#: src/import-export/hbci/gnc-hbci-utils.c:575 intl-scm/guile-strings.c:3576
+#: src/import-export/hbci/gnc-hbci-utils.c:565 intl-scm/guile-strings.c:3576
#: intl-scm/guile-strings.c:3598
msgid "Unspecified"
msgstr "Nicht spezifiziert"
-#: src/import-export/hbci/gnc-hbci-utils.c:594
-#: src/import-export/hbci/gnc-hbci-utils.c:596
+#: src/import-export/hbci/gnc-hbci-utils.c:609
+#: src/import-export/hbci/gnc-hbci-utils.c:611
msgid "unknown"
msgstr "unbekannt"
-#: src/import-export/hbci/gnc-hbci-utils.c:689
+#: src/import-export/hbci/gnc-hbci-utils.c:704
msgid "Choose HBCI bank"
msgstr "HBCI Bank auswählen"
-#: src/import-export/hbci/gnc-hbci-utils.c:690
+#: src/import-export/hbci/gnc-hbci-utils.c:705
msgid ""
"More than one HBCI bank is available for \n"
"the requested operation. Please choose \n"
@@ -7474,17 +7474,17 @@
"Für die gewünschte Operation stehen mehr als eine HBCI Bank zur\n"
"Verfügung. Bitte wählen Sie, welche benutzt werden soll."
-#: src/import-export/hbci/gnc-hbci-utils.c:759
-#: src/import-export/hbci/gnc-hbci-utils.c:835
+#: src/import-export/hbci/gnc-hbci-utils.c:774
+#: src/import-export/hbci/gnc-hbci-utils.c:850
#, c-format
msgid "%s (%s) at bank %s (%s)"
msgstr "%s (%s) bei Bank %s (BLZ %s)"
-#: src/import-export/hbci/gnc-hbci-utils.c:769
+#: src/import-export/hbci/gnc-hbci-utils.c:784
msgid "Choose HBCI customer"
msgstr "HBCI Kundennummer wählen"
-#: src/import-export/hbci/gnc-hbci-utils.c:770
+#: src/import-export/hbci/gnc-hbci-utils.c:785
msgid ""
"More than one HBCI customer is available for \n"
"the requested operation. Please choose \n"
@@ -7494,11 +7494,11 @@
"Verfügung, unterschieden nach Kundennummer. Bitte wählen Sie, welcher\n"
"benutzt werden soll."
-#: src/import-export/hbci/gnc-hbci-utils.c:845
+#: src/import-export/hbci/gnc-hbci-utils.c:860
msgid "Choose HBCI user"
msgstr "HBCI Benutzerkennung wählen"
-#: src/import-export/hbci/gnc-hbci-utils.c:846
+#: src/import-export/hbci/gnc-hbci-utils.c:861
msgid ""
"More than one HBCI user is available for \n"
"the requested operation. Please choose \n"
@@ -7597,8 +7597,8 @@
msgstr "BLZ des Auftraggebers"
#: src/import-export/hbci/dialog-hbcitrans.c:370
-#: src/import-export/hbci/dialog-hbcitrans.c:798
-#: src/import-export/hbci/dialog-hbcitrans.c:807
+#: src/import-export/hbci/dialog-hbcitrans.c:819
+#: src/import-export/hbci/dialog-hbcitrans.c:828
msgid "(unknown)"
msgstr "(unbekannt)"
@@ -7620,7 +7620,20 @@
"Dies ergibt keinen zulässigen Zahlungsauftrag. Wollen Sie den Auftrag\n"
"erneut eingeben?"
-#: src/import-export/hbci/dialog-hbcitrans.c:628
+#: src/import-export/hbci/dialog-hbcitrans.c:516
+msgid ""
+"You did not enter any transaction purpose. A purpose is \n"
+"required for an online transfer.\n"
+"\n"
+"Do you want to enter the job again?"
+msgstr ""
+"Sie haben keinen Verwendungszweck eingegeben. Für einen\n"
+"Überweisungsauftrag ist die Eingabe eines Verwendungszweck \n"
+"erforderlich.\n"
+"\n"
+"Wollen Sie den Auftrag erneut eingeben?"
+
+#: src/import-export/hbci/dialog-hbcitrans.c:649
#, c-format
msgid ""
"The internal check of the destination account number '%s' \n"
@@ -7633,7 +7646,7 @@
"einen Fehler enthält. Wollen Sie den Auftrag trotzdem mit dieser\n"
"Kontonummer abschicken?"
-#: src/import-export/hbci/dialog-hbcitrans.c:709
+#: src/import-export/hbci/dialog-hbcitrans.c:730
msgid ""
"The job was sent to the bank successfully, but the \n"
"bank is refusing to execute the job. Please check \n"
@@ -7651,15 +7664,15 @@
"\n"
"Wollen Sie den Auftrag erneut eingeben?"
-#: src/import-export/hbci/dialog-hbcitrans.c:839
+#: src/import-export/hbci/dialog-hbcitrans.c:860
msgid "Enter name for new template:"
msgstr "Bitte geben Sie einen Namen für die neue Überweisungsvorlage ein:"
-#: src/import-export/hbci/dialog-hbcitrans.c:961
+#: src/import-export/hbci/dialog-hbcitrans.c:982
msgid "Do you really want to sort the list of templates?"
msgstr "Wollen Sie die Liste der Vorlagen wirklich sortieren?"
-#: src/import-export/hbci/dialog-hbcitrans.c:997
+#: src/import-export/hbci/dialog-hbcitrans.c:1018
#, c-format
msgid "Do you really want to delete the template '%s'?"
msgstr "Wollen Sie die Vorlage »%s« wirklich löschen?"
Index: ChangeLog
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/ChangeLog,v
retrieving revision 1.1461.2.412
retrieving revision 1.1461.2.413
diff -LChangeLog -LChangeLog -u -r1.1461.2.412 -r1.1461.2.413
--- ChangeLog
+++ ChangeLog
@@ -1,3 +1,8 @@
+2005-05-23 Christian Stimming <stimming at tuhh.de>
+
+ * src/import-export/hbci/dialog-hbcitrans.c: Add sanity checks and
+ ask user when there are no purpose lines.
+
2005-05-06 Christian Stimming <stimming at tuhh.de>
* src/import-export/hbci/druid-hbci-initial.c (on_aqhbci_button):
Index: gnc-hbci-utils.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/import-export/hbci/gnc-hbci-utils.h,v
retrieving revision 1.12.2.6
retrieving revision 1.12.2.7
diff -Lsrc/import-export/hbci/gnc-hbci-utils.h -Lsrc/import-export/hbci/gnc-hbci-utils.h -u -r1.12.2.6 -r1.12.2.7
--- src/import-export/hbci/gnc-hbci-utils.h
+++ src/import-export/hbci/gnc-hbci-utils.h
@@ -109,6 +109,10 @@
* string must be g_free'd by the caller. */
char *gnc_hbci_memo_tognc (const AB_TRANSACTION *h_trans);
+/* Retrieve the merged purpose fields from the transaction. The
+ * returned string must be g_free'd by the caller. If there was no
+ * purpose, an empty (but allocated) string is returned. */
+char *gnc_hbci_getpurpose (const AB_TRANSACTION *h_trans);
/** Return the first customer that can act on the specified account,
or NULL if none was found (and an error message is printed on
stdout). */
Index: dialog-hbcitrans.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/import-export/hbci/dialog-hbcitrans.c,v
retrieving revision 1.9.2.22
retrieving revision 1.9.2.23
diff -Lsrc/import-export/hbci/dialog-hbcitrans.c -Lsrc/import-export/hbci/dialog-hbcitrans.c -u -r1.9.2.22 -r1.9.2.23
--- src/import-export/hbci/dialog-hbcitrans.c
+++ src/import-export/hbci/dialog-hbcitrans.c
@@ -504,6 +504,27 @@
continue;
} /* check Transaction_value */
+ {
+ char *purpose = gnc_hbci_getpurpose (td->hbci_trans);
+ printf ("%d: %s\n", strlen(purpose), purpose);
+ if (strlen(purpose) == 0) {
+ gtk_widget_show_all (td->dialog);
+ values_ok = !gnc_verify_dialog_parented
+ (GTK_WIDGET (td->dialog),
+ TRUE,
+ "%s",
+ _("You did not enter any transaction purpose. A purpose is \n"
+ "required for an online transfer.\n"
+ "\n"
+ "Do you want to enter the job again?"));
+ if (values_ok) {
+ AB_Transaction_free (td->hbci_trans);
+ return -1;
+ }
+ continue;
+ } /* check Transaction_purpose */
+ }
+
/* FIXME: If this is a direct debit, set the textkey/ "Textschluessel"/
transactionCode according to some GUI selection here!! */
/*if (td->trans_type == SINGLE_DEBITNOTE)
Index: gnc-hbci-utils.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/import-export/hbci/gnc-hbci-utils.c,v
retrieving revision 1.23.2.18
retrieving revision 1.23.2.19
diff -Lsrc/import-export/hbci/gnc-hbci-utils.c -Lsrc/import-export/hbci/gnc-hbci-utils.c -u -r1.23.2.18 -r1.23.2.19
--- src/import-export/hbci/gnc-hbci-utils.c
+++ src/import-export/hbci/gnc-hbci-utils.c
@@ -533,10 +533,9 @@
char *gnc_hbci_descr_tognc (const AB_TRANSACTION *h_trans)
{
/* Description */
- char *h_descr = NULL;
+ char *h_descr = gnc_hbci_getpurpose (h_trans);
char *othername = NULL;
char *g_descr;
- const GWEN_STRINGLIST *h_purpose = AB_Transaction_GetPurpose (h_trans);
const GWEN_STRINGLIST *h_remotename = AB_Transaction_GetRemoteName (h_trans);
struct cb_struct cb_object;
@@ -544,16 +543,7 @@
iconv_open(gnc_hbci_book_encoding(), gnc_hbci_AQBANKING_encoding());
g_assert(cb_object.gnc_iconv_handler != (iconv_t)(-1));
- /* Don't use list_string_concat_delim here since we need to
- g_strstrip every single element of the string list, which is
- only done in our callback gnc_list_string_cb. The separator is
- also set there. */
- cb_object.result = &h_descr;
- if (h_purpose)
- GWEN_StringList_ForEach (h_purpose,
- &gnc_list_string_cb,
- &cb_object);
-
+ /* Get othername */
cb_object.result = &othername;
if (h_remotename)
GWEN_StringList_ForEach (h_remotename,
@@ -563,14 +553,14 @@
if (othername && (strlen (othername) > 0))
g_descr =
- ((h_descr && (strlen (h_descr) > 0)) ?
+ ((strlen (h_descr) > 0) ?
g_strdup_printf ("%s; %s",
h_descr,
othername) :
g_strdup (othername));
else
g_descr =
- ((h_descr && (strlen (h_descr) > 0)) ?
+ ((strlen (h_descr) > 0) ?
g_strdup (h_descr) :
g_strdup (_("Unspecified")));
@@ -580,6 +570,31 @@
return g_descr;
}
+char *gnc_hbci_getpurpose (const AB_TRANSACTION *h_trans)
+{
+ /* Description */
+ char *h_descr = NULL;
+ char *g_descr;
+ const GWEN_STRINGLIST *h_purpose = AB_Transaction_GetPurpose (h_trans);
+ struct cb_struct cb_object;
+
+ cb_object.gnc_iconv_handler =
+ iconv_open(gnc_hbci_book_encoding(), gnc_hbci_AQBANKING_encoding());
+ g_assert(cb_object.gnc_iconv_handler != (iconv_t)(-1));
+
+ cb_object.result = &h_descr;
+ if (h_purpose)
+ GWEN_StringList_ForEach (h_purpose,
+ &gnc_list_string_cb,
+ &cb_object);
+
+ g_descr = g_strdup (h_descr ? h_descr : "");
+
+ iconv_close(cb_object.gnc_iconv_handler);
+ free (h_descr);
+ return g_descr;
+}
+
char *gnc_hbci_memo_tognc (const AB_TRANSACTION *h_trans)
{
/* Memo in the Split. HBCI's transactionText contains strings like
More information about the gnucash-changes
mailing list