Files
tryton/modules/stock_product_location_place/product.py
T

43 lines
1.4 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.product import (
copy_product_filtered, copy_template_filtered)
from trytond.pool import PoolMeta
from trytond.pyson import Eval
class Template(copy_template_filtered('location_places'), metaclass=PoolMeta):
__name__ = 'product.template'
location_places = fields.One2Many(
'stock.product.location.place', 'template',
"Places per Location",
states={
'invisible': ~Eval('type').in_(['goods', 'assets']),
})
def get_place(self, location):
for place in self.location_places:
if (not place.product
and place.location == location):
return place
class Product(copy_product_filtered('location_places'), metaclass=PoolMeta):
__name__ = 'product.product'
location_places = fields.One2Many(
'stock.product.location.place', 'product',
"Places per Location",
states={
'invisible': ~Eval('type').in_(['goods', 'assets']),
})
def get_place(self, location):
for place in self.location_places:
if place.location == location:
return place
return self.template.get_place(location)