[grisbi-devel] Problème avec "extraire un numéro à enregistrer dans N° de chèque/Virement"

Ludovic Rousseau ludovic.rousseau at gmail.com
Sun Oct 14 22:39:40 CEST 2018


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 ?

à+

-- 
 Dr. Ludovic Rousseau


More information about the devel mailing list