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

from trytond.model import fields
from trytond.pool import Pool, PoolMeta


class Company(metaclass=PoolMeta):
    __name__ = 'company.company'

    intrastat_currency = fields.Function(
        fields.Many2One('currency.currency', "Intrastat Currency"),
        'get_intrastat_currency')

    @classmethod
    def get_intrastat_currency(cls, companies, name):
        pool = Pool()
        Currency = pool.get('currency.currency')

        currencies = {}
        eur = None
        for company in companies:
            if company.currency.code == 'EUR':
                currency = company.currency
            else:
                if not eur:
                    try:
                        eur, = Currency.search([('code', '=', 'EUR')], limit=1)
                    except ValueError:
                        pass
                currency = eur
            currencies[company.id] = currency
        return currencies
