Files
2026-03-14 09:42:12 +00:00

52 lines
1.7 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 decimal import Decimal
from trytond.model import fields
from trytond.pool import Pool, PoolMeta
from trytond.pyson import Eval
class Template(metaclass=PoolMeta):
__name__ = 'product.template'
sale_quantity_minimal = fields.Float(
"Sale Minimal Quantity",
digits=(None, Eval('sale_quantity_digits', None)),
states={
'invisible': ~Eval('salable', False),
},
domain=['OR',
('sale_quantity_minimal', '=', None),
('sale_quantity_minimal', '>', 0),
])
sale_quantity_rounding = fields.Float(
"Sale Rounding Quantity",
digits=(None, Eval('sale_quantity_digits', None)),
states={
'invisible': ~Eval('salable', False),
},
domain=['OR',
('sale_quantity_rounding', '=', None),
('sale_quantity_rounding', '>', 0),
])
sale_quantity_digits = fields.Function(
fields.Integer("Sale Quantity Digits"),
'on_change_with_sale_quantity_digits')
@fields.depends('default_uom', 'sale_uom')
def on_change_with_sale_quantity_digits(self, name=None):
pool = Pool()
Uom = pool.get('product.uom')
if self.default_uom:
rounding = self.default_uom.rounding
if self.sale_uom:
rounding = Uom.compute_qty(
self.default_uom, rounding, self.sale_uom, round=False)
return -Decimal(str(rounding)).as_tuple().exponent
class Product(metaclass=PoolMeta):
__name__ = 'product.product'