From 0af83de83e890e384cf73cc0de6510528fb915f2 Mon Sep 17 00:00:00 2001 From: Xavier G Date: Sat, 15 Sep 2012 03:14:26 +0200 Subject: [PATCH] CrAgr: transactions are now assigned types and categories through FrenchTransaction. --- modules/cragr/pages/accounts_list.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/modules/cragr/pages/accounts_list.py b/modules/cragr/pages/accounts_list.py index 45370fad..14fb3d97 100644 --- a/modules/cragr/pages/accounts_list.py +++ b/modules/cragr/pages/accounts_list.py @@ -24,8 +24,21 @@ from datetime import date from weboob.capabilities.bank import Account from .base import CragrBasePage from .tokenextractor import TokenExtractor -from weboob.capabilities.bank import Transaction +from weboob.tools.capabilities.bank.transactions import FrenchTransaction +class Transaction(FrenchTransaction): + PATTERNS = [ + (re.compile('^(Vp|Vt|Vrt|Virt|Vir(ement)?)\s*(?P.*)'), FrenchTransaction.TYPE_TRANSFER), + (re.compile('^(?P(Tip|Plt|Prlv|Prelevement)\s*.*)'), FrenchTransaction.TYPE_ORDER), + (re.compile('^Cheque\s*(?PNo.*)'), FrenchTransaction.TYPE_CHECK), + (re.compile('^(?PRem\s*Chq\s*.*)'), FrenchTransaction.TYPE_DEPOSIT), + (re.compile('^Ret(rait)?\s*Dab\s*(?P.*)'), FrenchTransaction.TYPE_WITHDRAWAL), + (re.compile('^Paiement\s*Carte\s*(?P.*)'), FrenchTransaction.TYPE_CARD), + (re.compile('^(?P.*CAPITAL.*ECHEANCE.*)'), FrenchTransaction.TYPE_BANK), + (re.compile('^\*\*(?P(frais|cotis(ation)?)\s*.*)'), FrenchTransaction.TYPE_BANK), + (re.compile('^(?PInterets\s*.*)'), FrenchTransaction.TYPE_BANK), + (re.compile('^(?PPrelev\.\s*(C\.r\.d\.s\.|R\.s\.a\.|C\.a\.p\.s\.|C\.s\.g|P\.s\.))'), FrenchTransaction.TYPE_BANK), + ] class AccountsList(CragrBasePage): """ @@ -173,8 +186,7 @@ class AccountsList(CragrBasePage): transaction = Transaction(index) index += 1 transaction.amount = op['amount'] - transaction.date = self.date_from_string(op['date']) - transaction.raw = op['label'] + transaction.parse(self.date_from_string(op['date']), re.sub('\s+', ' ', op['label'])) yield transaction def get_transfer_accounts(self, select_name):