diff --git a/modules/bnporc/pp/pages.py b/modules/bnporc/pp/pages.py index 1d9b28fddb0c5bb413baa07671a570dc6e2a3712..e962105914177333c95dd4cb477916524afbbfd9 100644 --- a/modules/bnporc/pp/pages.py +++ b/modules/bnporc/pp/pages.py @@ -610,10 +610,15 @@ def iter_investments(self): class LifeInsurancesHistoryPage(BNPPage): + IGNORED_STATUSES = ( + 'En cours', + 'Sans suite', + ) + def iter_history(self, coming): for op in self.get('data.listerMouvements.listeMouvements') or []: #We have not date for this statut so we just skit it - if op.get('statut') == u'En cours': + if op.get('statut') in self.IGNORED_STATUSES: continue tr = Transaction.from_dict({ @@ -622,14 +627,16 @@ def iter_history(self, coming): 'amount': op.get('montantNet'), }) - if op.get('statut') == 'Sans suite': - continue - tr.parse(date=parse_french_date(op.get('dateSaisie')), vdate = parse_french_date(op.get('dateEffet')) if op.get('dateEffet') else None, raw='%s %s' % (op.get('libelleMouvement'), op.get('canalSaisie') or '')) tr._op = op + if not tr.amount: + if op.get('rib', {}).get('codeBanque') == 'null': + self.logger.info('ignoring non-transaction with label %r', tr.raw) + continue + if (op.get('statut') == u'Traité') ^ coming: yield tr