first commit
This commit is contained in:
73
modules/sale_shipment_tolerance/configuration.py
Normal file
73
modules/sale_shipment_tolerance/configuration.py
Normal file
@@ -0,0 +1,73 @@
|
||||
# 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 ModelSQL, ValueMixin, fields
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
|
||||
sale_under_shipment_tolerance = fields.Float(
|
||||
"Sale Under Shipment Tolerance",
|
||||
help="The lower quantity accepted in percentage.")
|
||||
sale_over_shipment_tolerance = fields.Float(
|
||||
"Sale Over Shipment Tolerance",
|
||||
help="The upper quantity accepted in percentage.")
|
||||
|
||||
|
||||
def default_func(field_name):
|
||||
@classmethod
|
||||
def default(cls, **pattern):
|
||||
return getattr(
|
||||
cls.multivalue_model(field_name),
|
||||
'default_%s' % field_name, lambda: None)()
|
||||
return default
|
||||
|
||||
|
||||
class Configuration(metaclass=PoolMeta):
|
||||
__name__ = 'sale.configuration'
|
||||
|
||||
sale_under_shipment_tolerance = fields.MultiValue(
|
||||
sale_under_shipment_tolerance)
|
||||
sale_over_shipment_tolerance = fields.MultiValue(
|
||||
sale_over_shipment_tolerance)
|
||||
|
||||
@classmethod
|
||||
def multivalue_model(cls, field):
|
||||
pool = Pool()
|
||||
if field in {
|
||||
'sale_under_shipment_tolerance',
|
||||
'sale_over_shipment_tolerance'}:
|
||||
return pool.get('sale.configuration.shipment_tolerance')
|
||||
return super().multivalue_model(field)
|
||||
|
||||
default_sale_under_shipment_tolerance = default_func(
|
||||
'sale_under_shipment_tolerance')
|
||||
default_sale_over_shipment_tolerance = default_func(
|
||||
'sale_over_shipment_tolerance')
|
||||
|
||||
|
||||
class ConfigurationShipmentTolerance(ModelSQL, ValueMixin):
|
||||
__name__ = 'sale.configuration.shipment_tolerance'
|
||||
sale_under_shipment_tolerance = sale_under_shipment_tolerance
|
||||
sale_over_shipment_tolerance = sale_over_shipment_tolerance
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
cls.sale_under_shipment_tolerance.domain = [
|
||||
'OR',
|
||||
('sale_under_shipment_tolerance', '=', None),
|
||||
[
|
||||
('sale_under_shipment_tolerance', '>=', 0),
|
||||
('sale_under_shipment_tolerance', '<=', 1),
|
||||
]]
|
||||
cls.sale_over_shipment_tolerance.domain = [
|
||||
'OR',
|
||||
('sale_over_shipment_tolerance', '=', None),
|
||||
('sale_over_shipment_tolerance', '>=', 1),
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def default_sale_under_shipment_tolerance(cls):
|
||||
return 1
|
||||
|
||||
@classmethod
|
||||
def default_sale_over_shipment_tolerance(cls):
|
||||
return None
|
||||
Reference in New Issue
Block a user