sale product domain liter uom

This commit is contained in:
Raimon Esteve 2022-10-27 10:33:49 +02:00
parent 5a7a7c52be
commit fe8dc5abf6
2 changed files with 28 additions and 3 deletions

View File

@ -426,7 +426,9 @@ class ProductYear(ModelSQL, ModelView):
crop = fields.Many2One('agronomics.crop', "Crop", required=True,
readonly=True)
product = fields.Many2One('product.product', "Product", required=True,
readonly=True)
readonly=True, context={
'company': Eval('company', None),
}, depends=['company'])
quantity = fields.Function(fields.Float("Quantity",
digits=(16, Eval('unit_digits', 2)),
depends=['unit_digits']), 'get_quantity')

27
sale.py
View File

@ -2,7 +2,7 @@
# this repository contains the full copyright notices and license terms.
from trytond.model import fields
from trytond.pool import Pool, PoolMeta
from trytond.pyson import Bool, Eval, Id
from trytond.pyson import Bool, Eval, Id, If
def default_func(field_name):
@ -58,7 +58,7 @@ class Sale(metaclass=PoolMeta):
__name__ = 'sale.sale'
is_maquila = fields.Boolean("Is Maquila",
states={
'readonly': Eval('state') != 'draft',
'readonly': ((Eval('state') != 'draft') | (Eval('lines', [0]))),
},
depends=['state'])
@ -99,3 +99,26 @@ class SaleLine(metaclass=PoolMeta):
'required': Bool(Eval('_parent_sale', {}).get('is_maquila')),
'readonly': Eval('sale_state') != 'draft',
})
liter_uom = fields.Function(fields.Many2One('product.uom', "Liter Uom"),
'get_liter_uom')
@classmethod
def __setup__(cls):
super(SaleLine, cls).__setup__()
cls.product.domain += [If( Bool(Eval('_parent_sale', {}).get('is_maquila')),
('sale_uom', '=', Eval('liter_uom')),
())]
cls.product.depends += ['liter_uom']
@classmethod
def default_liter_uom(cls):
pool = Pool()
ModelData = pool.get('ir.model.data')
uom_liter_id = ModelData.get_id('product', 'uom_liter')
return uom_liter_id
@classmethod
def get_liter_uom(cls, lines, name):
uom_liter_id = cls.default_liter_uom()
return dict((x.id, uom_liter_id) for x in lines)