trytond-patches/sale_supply_supply_on_sale_...

60 lines
2.1 KiB
Diff

diff --git a/__init__.py b/__init__.py
index c5c21fb..484a6de 100644
--- a/tryton/modules/sale_supply/__init__.py
+++ b/tryton/modules/sale_supply/__init__.py
@@ -14,6 +14,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 08537ed..34ccc24 100644
--- a/tryton/modules/sale_supply/product.py
+++ b/tryton/modules/sale_supply/product.py
@@ -1,17 +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'),
- })
+ 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):