CrAgr: transactions are now assigned types and categories through FrenchTransaction.

This commit is contained in:
Xavier G 2012-09-15 03:14:26 +02:00 committed by Romain Bignon
commit 0af83de83e

View file

@ -24,8 +24,21 @@ from datetime import date
from weboob.capabilities.bank import Account from weboob.capabilities.bank import Account
from .base import CragrBasePage from .base import CragrBasePage
from .tokenextractor import TokenExtractor 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<text>.*)'), FrenchTransaction.TYPE_TRANSFER),
(re.compile('^(?P<text>(Tip|Plt|Prlv|Prelevement)\s*.*)'), FrenchTransaction.TYPE_ORDER),
(re.compile('^Cheque\s*(?P<text>No.*)'), FrenchTransaction.TYPE_CHECK),
(re.compile('^(?P<text>Rem\s*Chq\s*.*)'), FrenchTransaction.TYPE_DEPOSIT),
(re.compile('^Ret(rait)?\s*Dab\s*(?P<text>.*)'), FrenchTransaction.TYPE_WITHDRAWAL),
(re.compile('^Paiement\s*Carte\s*(?P<text>.*)'), FrenchTransaction.TYPE_CARD),
(re.compile('^(?P<text>.*CAPITAL.*ECHEANCE.*)'), FrenchTransaction.TYPE_BANK),
(re.compile('^\*\*(?P<text>(frais|cotis(ation)?)\s*.*)'), FrenchTransaction.TYPE_BANK),
(re.compile('^(?P<text>Interets\s*.*)'), FrenchTransaction.TYPE_BANK),
(re.compile('^(?P<text>Prelev\.\s*(C\.r\.d\.s\.|R\.s\.a\.|C\.a\.p\.s\.|C\.s\.g|P\.s\.))'), FrenchTransaction.TYPE_BANK),
]
class AccountsList(CragrBasePage): class AccountsList(CragrBasePage):
""" """
@ -173,8 +186,7 @@ class AccountsList(CragrBasePage):
transaction = Transaction(index) transaction = Transaction(index)
index += 1 index += 1
transaction.amount = op['amount'] transaction.amount = op['amount']
transaction.date = self.date_from_string(op['date']) transaction.parse(self.date_from_string(op['date']), re.sub('\s+', ' ', op['label']))
transaction.raw = op['label']
yield transaction yield transaction
def get_transfer_accounts(self, select_name): def get_transfer_accounts(self, select_name):