Ludovic Rousseau
2018-10-14 20:39:40 UTC
Bonjour,
J'ai un problème avec l'option d'importation "extraire un numéro à
enregistrer dans N° de chèque/Virement"
Le code cherche n'importe quel suite de caractères qui ressemble à un
nombre pour l'utiliser comme numéro de chèque.
Mon problème est que la banque ajoute une date sur les paiements par CB.
Par exemple :
$ ofxdump telechargement.ofx
[...]
ofx_proc_transaction():
Account ID : 11315 00001 xxxxxxxxxx
Transaction type: DEBIT: Generic debit
Date posted: Wed Aug 15 11:59:00 2018 CEST
Total money amount: -50.00
# of units: 50.00
Unit price: 1.00
Financial institution's ID for this transaction: xxxxxxxxxx-17.13.57.177042
Name of payee or transaction description: CB FRAMASOFT FACT 140818
Extra transaction information (memo): CB FRAMASOFT FACT 140818
[...]
Donc ici Grisbi va prendre "140818" comme un numéro de chèque alors
que c'est une date.
Pour un chèque ça marche très bien.
Par exemple avec :
[...]
ofx_proc_transaction():
Account ID : 11315 00001 xxxxxxxxxx
Transaction type: DEBIT: Generic debit
Date posted: Mon Aug 6 11:59:00 2018 CEST
Total money amount: -571.37
# of units: 571.37
Unit price: 1.00
Financial institution's ID for this transaction: xxxxxxxxxx-02.03.45.399201
Name of payee or transaction description: CHEQUE N 8786734
Extra transaction information (memo): CHEQUE N 8786734
[...]
Ici "8786734" est bien un numéro de chèque.
Ma proposition : est-ce une bonne idée d'ajouter un critère
supplémentaire avant de prendre un nombre pour un numéro de chèque ?
Par exemple il faut que la transaction contienne "CHEQUE".
ça fonctionnerait pour mon cas. Mais je suis peut-être une exception ?
Le patch est très simple :
diff --git a/src/import.c b/src/import.c
index b41f84f9c..3e493cea1 100644
--- a/src/import.c
+++ b/src/import.c
@@ -2313,7 +2313,7 @@ static gint gsb_import_create_transaction
(struct ImportTransaction *imported_tr
gsb_data_transaction_set_notes (transaction_number,
imported_transaction->tiers);
}
- if (etat.extract_number_for_check)
+ if (etat.extract_number_for_check &&
strstr(imported_transaction->tiers, "CHEQUE"))
{
tmp_str = gsb_string_extract_int (imported_transaction->tiers);
if (tmp_str && strlen (tmp_str) > 0)
On peut rendre le texte à chercher paramétrable.
Des commentaires ?
à+
J'ai un problème avec l'option d'importation "extraire un numéro à
enregistrer dans N° de chèque/Virement"
Le code cherche n'importe quel suite de caractères qui ressemble à un
nombre pour l'utiliser comme numéro de chèque.
Mon problème est que la banque ajoute une date sur les paiements par CB.
Par exemple :
$ ofxdump telechargement.ofx
[...]
ofx_proc_transaction():
Account ID : 11315 00001 xxxxxxxxxx
Transaction type: DEBIT: Generic debit
Date posted: Wed Aug 15 11:59:00 2018 CEST
Total money amount: -50.00
# of units: 50.00
Unit price: 1.00
Financial institution's ID for this transaction: xxxxxxxxxx-17.13.57.177042
Name of payee or transaction description: CB FRAMASOFT FACT 140818
Extra transaction information (memo): CB FRAMASOFT FACT 140818
[...]
Donc ici Grisbi va prendre "140818" comme un numéro de chèque alors
que c'est une date.
Pour un chèque ça marche très bien.
Par exemple avec :
[...]
ofx_proc_transaction():
Account ID : 11315 00001 xxxxxxxxxx
Transaction type: DEBIT: Generic debit
Date posted: Mon Aug 6 11:59:00 2018 CEST
Total money amount: -571.37
# of units: 571.37
Unit price: 1.00
Financial institution's ID for this transaction: xxxxxxxxxx-02.03.45.399201
Name of payee or transaction description: CHEQUE N 8786734
Extra transaction information (memo): CHEQUE N 8786734
[...]
Ici "8786734" est bien un numéro de chèque.
Ma proposition : est-ce une bonne idée d'ajouter un critère
supplémentaire avant de prendre un nombre pour un numéro de chèque ?
Par exemple il faut que la transaction contienne "CHEQUE".
ça fonctionnerait pour mon cas. Mais je suis peut-être une exception ?
Le patch est très simple :
diff --git a/src/import.c b/src/import.c
index b41f84f9c..3e493cea1 100644
--- a/src/import.c
+++ b/src/import.c
@@ -2313,7 +2313,7 @@ static gint gsb_import_create_transaction
(struct ImportTransaction *imported_tr
gsb_data_transaction_set_notes (transaction_number,
imported_transaction->tiers);
}
- if (etat.extract_number_for_check)
+ if (etat.extract_number_for_check &&
strstr(imported_transaction->tiers, "CHEQUE"))
{
tmp_str = gsb_string_extract_int (imported_transaction->tiers);
if (tmp_str && strlen (tmp_str) > 0)
On peut rendre le texte à chercher paramétrable.
Des commentaires ?
à+
--
Dr. Ludovic Rousseau
Dr. Ludovic Rousseau