Files
tradon/modules/account_stock_eu/sale.py
2026-03-14 09:42:12 +00:00

49 lines
1.9 KiB
Python

# 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.modules.account.exceptions import FiscalYearNotFoundError
from trytond.pool import Pool, PoolMeta
class Sale_Incoterm(metaclass=PoolMeta):
__name__ = 'sale.sale'
@property
@fields.depends('company')
def _incoterm_required(self):
pool = Pool()
FiscalYear = pool.get('account.fiscalyear')
required = super()._incoterm_required
if not required and self.company and self.company.incoterms:
if (self.warehouse and self.warehouse.address
and self.shipment_address):
try:
fiscalyear = FiscalYear.find(
self.company.id,
date=self.sale_date)
except FiscalYearNotFoundError:
pass
else:
if fiscalyear.intrastat_extended:
from_country = self.warehouse.address.country
if from_country:
from_europe = from_country.is_member(
'country.organization_eu',
self.sale_date)
else:
from_europe = None
to_country = self.shipment_address.country
if to_country:
to_europe = to_country.is_member(
'country.organization_eu',
self.sale_date)
else:
to_europe = None
if (from_country != to_country
and from_europe and to_europe):
required = True
return required