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