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
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._transfer_id elif transfer_data.get('ibanCompteCrediteur'): assert transfer_data['ibanCompteCrediteur'] == recipient.iban 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 = parse_french_date(transfer_data['dateExecution']).date() transfer.fees = Decimal(transfer_data.get('montantFrais', '0')) 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
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