57 lines
1.5 KiB
Python
Executable File
57 lines
1.5 KiB
Python
Executable File
# 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.pool import PoolMeta
|
|
from trytond.pyson import Eval
|
|
|
|
from .common import IncotermMixin
|
|
|
|
|
|
class ShipmentMixin(IncotermMixin):
|
|
|
|
@property
|
|
def shipping_to(self):
|
|
party = super().shipping_to
|
|
if self.incoterm and self.incoterm_location:
|
|
party = self.incoterm_location.party
|
|
return party
|
|
|
|
@property
|
|
def shipping_to_address(self):
|
|
address = super().shipping_to_address
|
|
if self.incoterm and self.incoterm_location:
|
|
address = self.incoterm_location
|
|
return address
|
|
|
|
|
|
class ShipmentIn(ShipmentMixin, metaclass=PoolMeta):
|
|
__name__ = 'stock.shipment.in'
|
|
|
|
@classmethod
|
|
def _incoterm_related_party(cls):
|
|
return Eval('supplier'), {'supplier'}
|
|
|
|
|
|
class ShipmentInReturn(ShipmentMixin, metaclass=PoolMeta):
|
|
__name__ = 'stock.shipment.in.return'
|
|
|
|
@classmethod
|
|
def _incoterm_related_party(cls):
|
|
return Eval('supplier'), {'supplier'}
|
|
|
|
|
|
class ShipmentOut(ShipmentMixin, metaclass=PoolMeta):
|
|
__name__ = 'stock.shipment.out'
|
|
|
|
@classmethod
|
|
def _incoterm_related_party(cls):
|
|
return Eval('customer'), {'customer'}
|
|
|
|
|
|
class ShipmentOutReturn(ShipmentMixin, metaclass=PoolMeta):
|
|
__name__ = 'stock.shipment.out.return'
|
|
|
|
@classmethod
|
|
def _incoterm_related_party(cls):
|
|
return Eval('customer'), {'customer'}
|