diff --git a/__init__.py b/__init__.py index 4f28e75..04d18f3 100644 --- a/trytond/trytond/modules/sale_supply/__init__.py +++ b/trytond/trytond/modules/sale_supply/__init__.py @@ -16,6 +16,7 @@ def register(): purchase.Purchase, stock.ShipmentIn, product.Template, + product.TemplateSupplyOnSale, product.Product, module='sale_supply', type_='model') Pool.register( diff --git a/product.py b/product.py index b55c829..34ccc24 100644 --- a/trytond/trytond/modules/sale_supply/product.py +++ b/trytond/trytond/modules/sale_supply/product.py @@ -1,18 +1,35 @@ # 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 PoolMeta +from trytond.model import fields, ModelSQL +from trytond.pool import Pool, PoolMeta +from trytond.modules.company.model import (CompanyMultiValueMixin, + CompanyValueMixin) from trytond.pyson import Eval -class Template(metaclass=PoolMeta): +class Template(CompanyMultiValueMixin, metaclass=PoolMeta): __name__ = 'product.template' - supply_on_sale = fields.Boolean('Supply On Sale', - states={ - 'invisible': ~Eval('purchasable') | ~Eval('salable'), - }, - depends=['purchasable', 'salable']) + supply_on_sale = fields.MultiValue(fields.Boolean('Supply On Sale', + states={ + 'invisible': ~Eval('purchasable') | ~Eval('salable'), + }, depends=['purchasable', 'salable'])) + supply_on_sales = fields.One2Many( + 'product.template.supply_on_sale', 'template', "Supply on sales") + + @classmethod + def multivalue_model(cls, field): + pool = Pool() + if field == 'supply_on_sale': + return pool.get('product.template.supply_on_sale') + return super(Template, cls).multivalue_model(field) + + +class TemplateSupplyOnSale(ModelSQL, CompanyValueMixin): + "Template Supply On Sale" + __name__ = 'product.template.supply_on_sale' + template = fields.Many2One('product.template', 'Product Template') + supply_on_sale = fields.Boolean('Supply On Sale') class Product(metaclass=PoolMeta):