l10n-switzerland-flectra/l10n_ch_isr_payment_grouping/models/res_bank.py
Raphael Ritter 22ee40100d [FIX] Multiple modules which had wrong dependencies
[FIX] l10n_ch_zip
[ADD] Added latest OCA Modules
[REMOVE] Removed QR modules which are not required anymore
2021-11-17 14:48:42 +01:00

36 lines
1.1 KiB
Python

# Copyright 2020 Camptocamp SA
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from flectra import models
def _is_l10n_ch_qr_iban(account_ref):
"""Returns if the account_ref is a QR IBAN
A QR IBAN contains an IID QR.
An IID QR is between 30000 and 31999
It starts at the 5th character
eg: CH21 3080 8001 2345 6782 7
where 30808 is the IID QR
"""
account_ref = account_ref.replace(" ", "")
return (
account_ref.startswith("CH")
and account_ref[4:9] >= "30000"
and account_ref[4:9] <= "31999"
)
class ResPartnerBank(models.Model):
_inherit = "res.partner.bank"
def is_isr_issuer(self):
"""Supplier will provide ISR reference numbers in two cases:
- postal account number starting by 01 or 03
- QR-IBAN
"""
# acc_type can be bank for isrb
if self.acc_type in ["bank", "postal"] and self.l10n_ch_postal:
return self.l10n_ch_postal[:2] in ["01", "03"]
return self.acc_type == "iban" and _is_l10n_ch_qr_iban(self.acc_number)