diff --git a/stock_inventory_discrepancy/__manifest__.py b/stock_inventory_discrepancy/__manifest__.py
index 951c3df47..f3d42f03f 100644
--- a/stock_inventory_discrepancy/__manifest__.py
+++ b/stock_inventory_discrepancy/__manifest__.py
@@ -5,7 +5,7 @@
"summary": "Adds the capability to show the discrepancy of every line in "
"an inventory and to block the inventory validation when the "
"discrepancy is over a user defined threshold.",
- "version": "13.0.1.0.0",
+ "version": "13.0.1.1.0",
"author": "ForgeFlow, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/stock-logistics-warehouse",
"category": "Warehouse",
diff --git a/stock_inventory_discrepancy/i18n/cs_CZ.po b/stock_inventory_discrepancy/i18n/cs_CZ.po
index 37218a71f..f1eec2289 100644
--- a/stock_inventory_discrepancy/i18n/cs_CZ.po
+++ b/stock_inventory_discrepancy/i18n/cs_CZ.po
@@ -34,6 +34,11 @@ msgstr ""
msgid "Force Validation"
msgstr ""
+#. module: stock_inventory_discrepancy
+#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__has_over_discrepancy
+msgid "Has Over Discrepancy"
+msgstr ""
+
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
diff --git a/stock_inventory_discrepancy/i18n/de.po b/stock_inventory_discrepancy/i18n/de.po
index 683d86ba3..a6dfb8f77 100644
--- a/stock_inventory_discrepancy/i18n/de.po
+++ b/stock_inventory_discrepancy/i18n/de.po
@@ -33,6 +33,11 @@ msgstr ""
msgid "Force Validation"
msgstr ""
+#. module: stock_inventory_discrepancy
+#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__has_over_discrepancy
+msgid "Has Over Discrepancy"
+msgstr ""
+
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
diff --git a/stock_inventory_discrepancy/i18n/es.po b/stock_inventory_discrepancy/i18n/es.po
index 1ab5076d9..3f3e2d562 100644
--- a/stock_inventory_discrepancy/i18n/es.po
+++ b/stock_inventory_discrepancy/i18n/es.po
@@ -33,6 +33,11 @@ msgstr ""
msgid "Force Validation"
msgstr ""
+#. module: stock_inventory_discrepancy
+#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__has_over_discrepancy
+msgid "Has Over Discrepancy"
+msgstr ""
+
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
diff --git a/stock_inventory_discrepancy/i18n/es_ES.po b/stock_inventory_discrepancy/i18n/es_ES.po
index 977d8e610..8da3b5de6 100644
--- a/stock_inventory_discrepancy/i18n/es_ES.po
+++ b/stock_inventory_discrepancy/i18n/es_ES.po
@@ -35,6 +35,11 @@ msgstr ""
msgid "Force Validation"
msgstr ""
+#. module: stock_inventory_discrepancy
+#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__has_over_discrepancy
+msgid "Has Over Discrepancy"
+msgstr ""
+
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
diff --git a/stock_inventory_discrepancy/i18n/fr.po b/stock_inventory_discrepancy/i18n/fr.po
index 90696e80f..15f22b614 100644
--- a/stock_inventory_discrepancy/i18n/fr.po
+++ b/stock_inventory_discrepancy/i18n/fr.po
@@ -33,6 +33,11 @@ msgstr ""
msgid "Force Validation"
msgstr ""
+#. module: stock_inventory_discrepancy
+#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__has_over_discrepancy
+msgid "Has Over Discrepancy"
+msgstr ""
+
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
diff --git a/stock_inventory_discrepancy/i18n/fr_FR.po b/stock_inventory_discrepancy/i18n/fr_FR.po
index 30cdfd2fb..68a329cca 100644
--- a/stock_inventory_discrepancy/i18n/fr_FR.po
+++ b/stock_inventory_discrepancy/i18n/fr_FR.po
@@ -34,6 +34,11 @@ msgstr ""
msgid "Force Validation"
msgstr ""
+#. module: stock_inventory_discrepancy
+#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__has_over_discrepancy
+msgid "Has Over Discrepancy"
+msgstr ""
+
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
diff --git a/stock_inventory_discrepancy/i18n/hr.po b/stock_inventory_discrepancy/i18n/hr.po
index 662b43c7f..563f84fa7 100644
--- a/stock_inventory_discrepancy/i18n/hr.po
+++ b/stock_inventory_discrepancy/i18n/hr.po
@@ -34,6 +34,11 @@ msgstr ""
msgid "Force Validation"
msgstr ""
+#. module: stock_inventory_discrepancy
+#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__has_over_discrepancy
+msgid "Has Over Discrepancy"
+msgstr ""
+
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
diff --git a/stock_inventory_discrepancy/i18n/it.po b/stock_inventory_discrepancy/i18n/it.po
index 51a2a084f..4a91ffe56 100644
--- a/stock_inventory_discrepancy/i18n/it.po
+++ b/stock_inventory_discrepancy/i18n/it.po
@@ -34,6 +34,11 @@ msgstr ""
msgid "Force Validation"
msgstr ""
+#. module: stock_inventory_discrepancy
+#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__has_over_discrepancy
+msgid "Has Over Discrepancy"
+msgstr ""
+
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
diff --git a/stock_inventory_discrepancy/i18n/nl.po b/stock_inventory_discrepancy/i18n/nl.po
index 7c66e25b2..289ed07e7 100644
--- a/stock_inventory_discrepancy/i18n/nl.po
+++ b/stock_inventory_discrepancy/i18n/nl.po
@@ -33,6 +33,11 @@ msgstr ""
msgid "Force Validation"
msgstr ""
+#. module: stock_inventory_discrepancy
+#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__has_over_discrepancy
+msgid "Has Over Discrepancy"
+msgstr ""
+
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
diff --git a/stock_inventory_discrepancy/i18n/nl_NL.po b/stock_inventory_discrepancy/i18n/nl_NL.po
index a97cbf1ec..de0aea447 100644
--- a/stock_inventory_discrepancy/i18n/nl_NL.po
+++ b/stock_inventory_discrepancy/i18n/nl_NL.po
@@ -34,6 +34,11 @@ msgstr ""
msgid "Force Validation"
msgstr ""
+#. module: stock_inventory_discrepancy
+#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__has_over_discrepancy
+msgid "Has Over Discrepancy"
+msgstr ""
+
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
diff --git a/stock_inventory_discrepancy/i18n/pt_BR.po b/stock_inventory_discrepancy/i18n/pt_BR.po
index 343ca9843..1d9241a44 100644
--- a/stock_inventory_discrepancy/i18n/pt_BR.po
+++ b/stock_inventory_discrepancy/i18n/pt_BR.po
@@ -35,6 +35,11 @@ msgstr ""
msgid "Force Validation"
msgstr ""
+#. module: stock_inventory_discrepancy
+#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__has_over_discrepancy
+msgid "Has Over Discrepancy"
+msgstr ""
+
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
diff --git a/stock_inventory_discrepancy/i18n/sl.po b/stock_inventory_discrepancy/i18n/sl.po
index 374dd3f1c..5a1f1e046 100644
--- a/stock_inventory_discrepancy/i18n/sl.po
+++ b/stock_inventory_discrepancy/i18n/sl.po
@@ -34,6 +34,11 @@ msgstr ""
msgid "Force Validation"
msgstr ""
+#. module: stock_inventory_discrepancy
+#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__has_over_discrepancy
+msgid "Has Over Discrepancy"
+msgstr ""
+
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
diff --git a/stock_inventory_discrepancy/i18n/stock_inventory_discrepancy.pot b/stock_inventory_discrepancy/i18n/stock_inventory_discrepancy.pot
index bd17bbe61..461a9ca8c 100644
--- a/stock_inventory_discrepancy/i18n/stock_inventory_discrepancy.pot
+++ b/stock_inventory_discrepancy/i18n/stock_inventory_discrepancy.pot
@@ -28,6 +28,11 @@ msgstr ""
msgid "Force Validation"
msgstr ""
+#. module: stock_inventory_discrepancy
+#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__has_over_discrepancy
+msgid "Has Over Discrepancy"
+msgstr ""
+
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
diff --git a/stock_inventory_discrepancy/i18n/tr_TR.po b/stock_inventory_discrepancy/i18n/tr_TR.po
index 233fc226e..891625053 100644
--- a/stock_inventory_discrepancy/i18n/tr_TR.po
+++ b/stock_inventory_discrepancy/i18n/tr_TR.po
@@ -34,6 +34,11 @@ msgstr ""
msgid "Force Validation"
msgstr ""
+#. module: stock_inventory_discrepancy
+#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__has_over_discrepancy
+msgid "Has Over Discrepancy"
+msgstr ""
+
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
diff --git a/stock_inventory_discrepancy/i18n/zh_CN.po b/stock_inventory_discrepancy/i18n/zh_CN.po
index f78d3ce56..0fdf0113e 100644
--- a/stock_inventory_discrepancy/i18n/zh_CN.po
+++ b/stock_inventory_discrepancy/i18n/zh_CN.po
@@ -31,6 +31,11 @@ msgstr "差异百分比(%)"
msgid "Force Validation"
msgstr "强制验证"
+#. module: stock_inventory_discrepancy
+#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__has_over_discrepancy
+msgid "Has Over Discrepancy"
+msgstr ""
+
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
diff --git a/stock_inventory_discrepancy/models/stock_inventory.py b/stock_inventory_discrepancy/models/stock_inventory.py
index fe44f56f7..6ae5bec86 100644
--- a/stock_inventory_discrepancy/models/stock_inventory.py
+++ b/stock_inventory_discrepancy/models/stock_inventory.py
@@ -1,5 +1,4 @@
-# Copyright 2017-2020 ForgeFlow S.L.
-# (http://www.forgeflow.com)
+# Copyright 2017-21 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import _, api, fields, models
@@ -33,7 +32,7 @@ class StockInventory(models.Model):
def _compute_over_discrepancy_line_count(self):
for inventory in self:
lines = inventory.line_ids.filtered(
- lambda line: line.discrepancy_percent > line.discrepancy_threshold
+ lambda line: line._has_over_discrepancy()
)
inventory.over_discrepancy_line_count = len(lines)
@@ -57,9 +56,7 @@ class StockInventory(models.Model):
def _action_done(self):
for inventory in self:
- if inventory.over_discrepancy_line_count and inventory.line_ids.filtered(
- lambda t: t.discrepancy_threshold > 0.0
- ):
+ if inventory.over_discrepancy_line_count > 0.0:
if self.user_has_groups(
"stock_inventory_discrepancy.group_stock_inventory_validation"
) and not self.user_has_groups(
diff --git a/stock_inventory_discrepancy/models/stock_inventory_line.py b/stock_inventory_discrepancy/models/stock_inventory_line.py
index a1a0fceda..546931bef 100644
--- a/stock_inventory_discrepancy/models/stock_inventory_line.py
+++ b/stock_inventory_discrepancy/models/stock_inventory_line.py
@@ -1,5 +1,4 @@
-# Copyright 2017-2020 ForgeFlow S.L.
-# (http://www.forgeflow.com)
+# Copyright 2017-21 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import api, fields, models
@@ -29,6 +28,7 @@ class StockInventoryLine(models.Model):
help="Maximum Discrepancy Rate Threshold",
compute="_compute_discrepancy_threshold",
)
+ has_over_discrepancy = fields.Boolean(compute="_compute_has_over_discrepancy",)
@api.depends("theoretical_qty", "product_qty")
def _compute_discrepancy(self):
@@ -52,3 +52,10 @@ class StockInventoryLine(models.Model):
line.discrepancy_threshold = whs.discrepancy_threshold
else:
line.discrepancy_threshold = False
+
+ def _compute_has_over_discrepancy(self):
+ for rec in self:
+ rec.has_over_discrepancy = rec._has_over_discrepancy()
+
+ def _has_over_discrepancy(self):
+ return self.discrepancy_percent > self.discrepancy_threshold > 0
diff --git a/stock_inventory_discrepancy/tests/test_inventory_discrepancy.py b/stock_inventory_discrepancy/tests/test_inventory_discrepancy.py
index 07b894086..3c97c309c 100644
--- a/stock_inventory_discrepancy/tests/test_inventory_discrepancy.py
+++ b/stock_inventory_discrepancy/tests/test_inventory_discrepancy.py
@@ -173,6 +173,7 @@ class TestInventoryDiscrepancy(TransactionCase):
)
inventory.with_user(self.user).action_start()
inventory.with_user(self.user).action_validate()
+ self.assertTrue(inventory.line_ids.has_over_discrepancy)
self.assertEqual(
inventory.over_discrepancy_line_count,
1,
diff --git a/stock_inventory_discrepancy/views/stock_inventory_view.xml b/stock_inventory_discrepancy/views/stock_inventory_view.xml
index 26927dd88..69fb87db4 100644
--- a/stock_inventory_discrepancy/views/stock_inventory_view.xml
+++ b/stock_inventory_discrepancy/views/stock_inventory_view.xml
@@ -59,11 +59,12 @@
+
theoretical_qty < 0 or discrepancy_percent > discrepancy_threshold or "product_qty != theoretical_qty"
+ >theoretical_qty < 0 or has_over_discrepancy