コード例 #1
0
 def iter_coming(self):
     for op in self.path('data.listerOperations.compte.operationAvenir.*.operation.*'):
         codeOperation = cast(op.get('codeOperation'), int, 0)
         # Coming transactions don't have real id
         tr = Transaction.from_dict({
             'type': self.COMING_TYPE_TO_TYPE.get(codeOperation) or Transaction.TYPE_UNKNOWN,
             'amount': op.get('montant'),
             'card': op.get('numeroPorteurCarte'),
         })
         tr.parse(date=Date(op.get('dateOperation')),
                  vdate=Date(op.get('valueDate')),
                  raw=op.get('libelle'))
         yield tr
コード例 #2
0
 def iter_history(self):
     for op in self.get('data.listerOperations.compte.operationPassee') or []:
         codeFamille = cast(self.one('operationType.codeFamille', op), int)
         tr = Transaction.from_dict({
             'id': op.get('idOperation'),
             'type': self.CODE_TO_TYPE.get(codeFamille) or Transaction.TYPE_UNKNOWN,
             'category': op.get('categorie'),
             'amount': self.one('montant.montant', op),
         })
         tr.parse(raw=op.get('libelleOperation'),
                  date=Date(op.get('dateOperation')),
                  vdate=Date(self.one('montant.valueDate', op)))
         yield tr
コード例 #3
0
    def handle_response(self, transfer):
        self.check_errors()
        transfer_data = self.doc['data']['enregistrementVirement']

        transfer.id = transfer_data['reference']
        assert transfer.exec_date == Date(
            self.doc['data']['enregistrementVirement']
            ['dateExecution']).date()
        # Timestamp at which the bank registered the transfer
        register_date = re.sub(
            ' 24:', ' 00:',
            self.doc['data']['enregistrementVirement']['dateEnregistrement'])
        transfer._register_date = Date(register_date)

        return transfer
コード例 #4
0
    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':
                continue

            tr = Transaction.from_dict({
                'type': Transaction.TYPE_BANK,
                '_state': op.get('statut'),
                'amount': op.get('montantNet'),
                })

            tr.parse(date=Date(op.get('dateSaisie')),
                     vdate=Date(op.get('dateEffet')),
                     raw='%s %s' % (op.get('libelleMouvement'), op.get('canalSaisie') or ''))
            tr._op = op

            if (op.get('statut') == u'Traité') ^ coming:
                yield tr
コード例 #5
0
    def handle_response(self, account, recipient, amount, reason):
        self.check_errors()
        transfer_data = self.doc['data']['validationVirement']

        self.abort_if_unknown(transfer_data)

        if 'idBeneficiaire' in transfer_data and transfer_data[
                'idBeneficiaire'] is not None:
            assert transfer_data['idBeneficiaire'] == recipient.id
        elif 'ibanCompteCrediteur' in transfer_data and transfer_data[
                'ibanCompteCrediteur'] is not None:
            assert transfer_data['ibanCompteCrediteur'] == recipient.iban

        exec_date = Date(transfer_data['dateExecution']).date()
        today = datetime.today().date()
        if transfer_data['typeOperation'] == '1':
            assert exec_date == today
        else:
            assert exec_date > today

        transfer = Transfer()
        transfer.currency = transfer_data['devise']
        transfer.amount = Decimal(transfer_data['montantEuros'])
        transfer.account_iban = transfer_data['ibanCompteDebiteur']
        transfer.account_id = account.id
        try:
            transfer.recipient_iban = transfer_data[
                'ibanCompteCrediteur'] or recipient.iban
        except KeyError:
            # In last version, json contains a key 'idBeneficiaire' containing:
            # "idBeneficiaire" : "00003##00001####FR7610278123456789028070101",
            transfer.recipient_id = transfer_data['idBeneficiaire']
            transfer.recipient_iban = transfer.recipient_id.split(
                '#')[-1] or recipient.iban
        else:
            transfer.recipient_id = recipient.id
        transfer.exec_date = exec_date
        transfer.fees = Decimal(transfer_data['montantFrais'])
        transfer.label = transfer_data['motifVirement']

        transfer.account_label = account.label
        transfer.recipient_label = recipient.label
        transfer.id = transfer_data['reference']
        # This is true if a transfer with the same metadata has already been done recently
        transfer._doublon = transfer_data['doublon']
        transfer.account_balance = account.balance

        return transfer
コード例 #6
0
ファイル: pages.py プロジェクト: dermorz/weboob
    def handle_response(self, account, recipient, amount, reason):
        self.check_errors()
        transfer_data = self.doc['data']['validationVirement']

        self.abort_if_unknown(transfer_data)

        if transfer_data['idBeneficiaire'] is not None:
            assert transfer_data['idBeneficiaire'] == recipient.id

        exec_date = Date(transfer_data['dateExecution']).date()
        today = datetime.today().date()
        if transfer_data['typeOperation'] == '1':
            assert exec_date == today
        else:
            assert exec_date > today

        transfer = Transfer()
        transfer.currency = transfer_data['devise']
        transfer.amount = Decimal(transfer_data['montantEuros'])
        transfer.account_iban = transfer_data['ibanCompteDebiteur']
        transfer.recipient_iban = transfer_data[
            'ibanCompteCrediteur'] or recipient.iban
        transfer.account_id = account.id
        transfer.recipient_id = recipient.id
        transfer.exec_date = exec_date
        transfer.fees = Decimal(transfer_data['montantFrais'])
        transfer.label = transfer_data['motifVirement']

        transfer.account_label = account.label
        transfer.recipient_label = recipient.label
        transfer.id = transfer_data['reference']
        # This is true if a transfer with the same metadata has already been done recently
        transfer._doublon = transfer_data['doublon']
        transfer.account_balance = account.balance

        return transfer