diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 54df54c..052225a 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -279,6 +279,11 @@ class Purchase(metaclass=PoolMeta):
tol_max_qt = fields.Numeric("Tol +")
tolerance_used = fields.Function(
fields.Numeric("Tolerance used"), 'get_tolerance_used')
+ tolerance_option = fields.Selection([
+ ('no_option', "No option"),
+ ('buyer_option', "Buyer's option"),
+ ('seller_option', "Seller's option"),
+ ], "Tolerance option")
tolerance_min = fields.Function(
fields.Numeric("Tolerance min"), 'get_tolerance_min')
tolerance_max = fields.Function(
@@ -401,6 +406,10 @@ class Purchase(metaclass=PoolMeta):
def default_tol_max(cls):
return 0
+ @classmethod
+ def default_tolerance_option(cls):
+ return 'no_option'
+
def _line_quantity_in_unit(self, quantity, from_unit, to_unit):
if not from_unit or not to_unit or from_unit == to_unit:
return Decimal(str(quantity or 0))
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 78ac338..24fd836 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -251,6 +251,11 @@ class Sale(metaclass=PoolMeta):
tol_max_qt = fields.Numeric("Tol +")
tolerance_used = fields.Function(
fields.Numeric("Tolerance used"), 'get_tolerance_used')
+ tolerance_option = fields.Selection([
+ ('no_option', "No option"),
+ ('buyer_option', "Buyer's option"),
+ ('seller_option', "Seller's option"),
+ ], "Tolerance option")
tolerance_min = fields.Function(
fields.Numeric("Tolerance min"), 'get_tolerance_min')
tolerance_max = fields.Function(
@@ -365,6 +370,10 @@ class Sale(metaclass=PoolMeta):
def default_tol_max(cls):
return 0
+ @classmethod
+ def default_tolerance_option(cls):
+ return 'no_option'
+
def _line_quantity_in_unit(self, quantity, from_unit, to_unit):
if not from_unit or not to_unit or from_unit == to_unit:
return abs(Decimal(str(quantity or 0)))
diff --git a/modules/purchase_trade/tests/test_module.py b/modules/purchase_trade/tests/test_module.py
index 6795c01..38ad64a 100644
--- a/modules/purchase_trade/tests/test_module.py
+++ b/modules/purchase_trade/tests/test_module.py
@@ -1776,6 +1776,14 @@ class PurchaseTradeTestCase(ModuleTestCase):
self.assertEqual(
Purchase.operator.domain, [('categories.name', '=', 'OPERATOR')])
+ def test_sale_and_purchase_tolerance_option_defaults_to_no_option(self):
+ 'sale and purchase tolerance option defaults to no option'
+ Sale = Pool().get('sale.sale')
+ Purchase = Pool().get('purchase.purchase')
+
+ self.assertEqual(Sale.default_tolerance_option(), 'no_option')
+ self.assertEqual(Purchase.default_tolerance_option(), 'no_option')
+
def test_sale_line_basis_price_and_progress_use_manual_summary_without_component(self):
'sale line basis values use manual summary rows even without a component'
SaleLine = Pool().get('sale.line')
diff --git a/modules/purchase_trade/view/purchase_form.xml b/modules/purchase_trade/view/purchase_form.xml
index 8d8dd5e..23c8190 100755
--- a/modules/purchase_trade/view/purchase_form.xml
+++ b/modules/purchase_trade/view/purchase_form.xml
@@ -36,6 +36,8 @@ this repository contains the full copyright notices and license terms. -->
+
+
diff --git a/modules/purchase_trade/view/sale_form.xml b/modules/purchase_trade/view/sale_form.xml
index 33d5f96..9b96597 100755
--- a/modules/purchase_trade/view/sale_form.xml
+++ b/modules/purchase_trade/view/sale_form.xml
@@ -36,6 +36,8 @@ this repository contains the full copyright notices and license terms. -->
+
+