# This file is part of Tryton.  The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
import os

import genshi
import genshi.template

from trytond.modules.account_payment_sepa import payment as sepa_payment
from trytond.pool import PoolMeta


class Journal(metaclass=PoolMeta):
    __name__ = 'account.payment.journal'

    @classmethod
    def __setup__(cls):
        super().__setup__()
        payable_flavor_cfonb = ('pain.001.001.03-cfonb',
            'pain.001.001.03 CFONB')
        receivable_flavor_cfonb = ('pain.008.001.02-cfonb',
            'pain.008.001.02 CFONB')
        for flavor, field in [
                (payable_flavor_cfonb, cls.sepa_payable_flavor),
                (receivable_flavor_cfonb, cls.sepa_receivable_flavor),
                ]:
            if flavor not in field.selection:
                field.selection.append(flavor)


loader = genshi.template.TemplateLoader([
        os.path.join(os.path.dirname(__file__), 'template'),
        os.path.join(
            os.path.dirname(
                sepa_payment.__file__), 'template'),
        ], auto_reload=True)


class Group(metaclass=PoolMeta):
    __name__ = 'account.payment.group'

    def get_sepa_template(self):
        if (self.kind == 'payable'
                and self.journal.sepa_payable_flavor.endswith('-cfonb')):
            return loader.load('%s.xml' % self.journal.sepa_payable_flavor)
        if (self.kind == 'receivable'
                and self.journal.sepa_receivable_flavor.endswith('-cfonb')):
            return loader.load('%s.xml' % self.journal.sepa_receivable_flavor)
        return super().get_sepa_template()
