[MIG] stock_inventory_discrepancy: Migration to 13.0

This commit is contained in:
hveficent
2020-01-07 14:03:21 +01:00
committed by JasminSForgeFlow
parent f20c178be5
commit 3e52938a3a
32 changed files with 1039 additions and 465 deletions

View File

@@ -14,13 +14,13 @@ Stock Inventory Discrepancy
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fstock--logistics--warehouse-lightgray.png?logo=github
:target: https://github.com/OCA/stock-logistics-warehouse/tree/12.0/stock_inventory_discrepancy
:target: https://github.com/OCA/stock-logistics-warehouse/tree/13.0/stock_inventory_discrepancy
:alt: OCA/stock-logistics-warehouse
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/stock-logistics-warehouse-12-0/stock-logistics-warehouse-12-0-stock_inventory_discrepancy
:target: https://translation.odoo-community.org/projects/stock-logistics-warehouse-13-0/stock-logistics-warehouse-13-0-stock_inventory_discrepancy
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/153/12.0
:target: https://runbot.odoo-community.org/runbot/153/13.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -66,7 +66,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues <https://github.com/OCA/stock-logistics-warehouse/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/stock-logistics-warehouse/issues/new?body=module:%20stock_inventory_discrepancy%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
`feedback <https://github.com/OCA/stock-logistics-warehouse/issues/new?body=module:%20stock_inventory_discrepancy%0Aversion:%2013.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues.
@@ -76,14 +76,15 @@ Credits
Authors
~~~~~~~
* Eficent
* ForgeFlow
Contributors
~~~~~~~~~~~~
* Lois Rilo <lois.rilo@eficent.com>
* Lois Rilo <lois.rilo@forgeflow.com>
* Andreas Dian Sukarno Putro <andreasdian777@gmail.com>
* Bhavesh Odedra <bodedra@opensourceintegrators.com>
* Héctor Villarreal <hector.villarreal@forgeflow.com>
Maintainers
~~~~~~~~~~~
@@ -98,6 +99,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
This module is part of the `OCA/stock-logistics-warehouse <https://github.com/OCA/stock-logistics-warehouse/tree/12.0/stock_inventory_discrepancy>`_ project on GitHub.
This module is part of the `OCA/stock-logistics-warehouse <https://github.com/OCA/stock-logistics-warehouse/tree/13.0/stock_inventory_discrepancy>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@@ -1,3 +1,4 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from . import models
from .hooks import post_load_hook

View File

@@ -5,18 +5,20 @@
"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": "12.0.1.0.0",
"version": "13.0.1.0.0",
"author": "ForgeFlow, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/stock-logistics-warehouse",
"category": "Warehouse Management",
"category": "Warehouse",
"depends": ["stock"],
"data": [
"security/stock_inventory_discrepancy_security.xml",
"views/assets_backend.xml",
"views/stock_inventory_view.xml",
"views/stock_warehouse_view.xml",
"views/stock_location_view.xml",
],
"license": "AGPL-3",
"post_load": "post_load_hook",
"installable": True,
"application": False,
}

View File

@@ -0,0 +1,79 @@
# Copyright 2019 Eficent Business and IT Consulting Services S.L.
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
from odoo import _
from odoo.exceptions import UserError
from odoo.tools.float_utils import float_compare
from odoo.addons.stock.models.stock_inventory import Inventory
def post_load_hook():
def action_validate_discrepancy(self):
"""Override method to avoid inline group validation"""
if not self.exists():
return
self.ensure_one()
# START HOOK: - Allow specific group to validate inventory
# - Allow validate on pending status
if (
not self.user_has_groups("stock.group_stock_manager")
and not self.user_has_groups(
"stock_inventory_discrepancy.group_stock_inventory_validation"
)
and not self.user_has_groups(
"stock_inventory_discrepancy.group_stock_inventory_validation_always"
)
):
raise UserError(
_("Only a stock manager can validate an inventory adjustment.")
)
if self.state not in ["confirm", "pending"]:
raise UserError(
_(
"You can't validate the inventory '%s', maybe this inventory "
+ "has been already validated or isn't ready."
)
% (self.name)
)
# END HOOK
inventory_lines = self.line_ids.filtered(
lambda l: l.product_id.tracking in ["lot", "serial"]
and not l.prod_lot_id
and l.theoretical_qty != l.product_qty
)
lines = self.line_ids.filtered(
lambda l: float_compare(
l.product_qty, 1, precision_rounding=l.product_uom_id.rounding
)
> 0
and l.product_id.tracking == "serial"
and l.prod_lot_id
)
if inventory_lines and not lines:
wiz_lines = [
(0, 0, {"product_id": product.id, "tracking": product.tracking})
for product in inventory_lines.mapped("product_id")
]
wiz = self.env["stock.track.confirmation"].create(
{"inventory_id": self.id, "tracking_line_ids": wiz_lines}
)
return {
"name": _("Tracked Products in Inventory Adjustment"),
"type": "ir.actions.act_window",
"view_mode": "form",
"views": [(False, "form")],
"res_model": "stock.track.confirmation",
"target": "new",
"res_id": wiz.id,
}
self._action_done()
self.line_ids._check_company()
self._check_company()
return True
if not hasattr(Inventory, "action_validate_original"):
Inventory.action_validate_original = Inventory.action_validate
Inventory._patch_method("action_validate", action_validate_discrepancy)

View File

@@ -19,11 +19,6 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Cancelled"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_qty
msgid "Discrepancy"
@@ -34,21 +29,11 @@ msgstr ""
msgid "Discrepancy percent (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Draft"
msgstr ""
#. module: stock_inventory_discrepancy
#: model_terms:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
msgid "Force Validation"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "In Progress"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
@@ -92,10 +77,29 @@ msgid "Number of Discrepancies Over Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Only a stock manager can validate an inventory adjustment."
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#: model:ir.model.fields.selection,name:stock_inventory_discrepancy.selection__stock_inventory__state__pending
#, python-format
msgid "Pending to Approve"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate Maximum Discrepancy Rate Threshold to child locations"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate discrepancy threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory__state
msgid ""
@@ -113,7 +117,7 @@ msgid "Status"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:56
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:0
#, python-format
msgid ""
"The Qty Update is over the Discrepancy Threshold.\n"
@@ -132,11 +136,24 @@ msgstr ""
msgid "The discrepancy expressed in percent with theoretical quantity as basis"
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#, python-format
msgid "The inventory needs to be approved"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_threshold
msgid "Threshold (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Tracked Products in Inventory Adjustment"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
msgid "Validate All inventory Adjustments"
@@ -147,12 +164,15 @@ msgstr ""
msgid "Validate Inventory Adjustments Under Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Validated"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
msgid "Warehouse"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid ""
"You can't validate the inventory '%s', maybe this inventory has been already "
"validated or isn't ready."
msgstr ""

View File

@@ -18,11 +18,6 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Cancelled"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_qty
msgid "Discrepancy"
@@ -33,21 +28,11 @@ msgstr ""
msgid "Discrepancy percent (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Draft"
msgstr ""
#. module: stock_inventory_discrepancy
#: model_terms:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
msgid "Force Validation"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "In Progress"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
@@ -91,10 +76,29 @@ msgid "Number of Discrepancies Over Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Only a stock manager can validate an inventory adjustment."
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#: model:ir.model.fields.selection,name:stock_inventory_discrepancy.selection__stock_inventory__state__pending
#, python-format
msgid "Pending to Approve"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate Maximum Discrepancy Rate Threshold to child locations"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate discrepancy threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory__state
msgid ""
@@ -112,7 +116,7 @@ msgid "Status"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:56
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:0
#, python-format
msgid ""
"The Qty Update is over the Discrepancy Threshold.\n"
@@ -131,11 +135,24 @@ msgstr ""
msgid "The discrepancy expressed in percent with theoretical quantity as basis"
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#, python-format
msgid "The inventory needs to be approved"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_threshold
msgid "Threshold (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Tracked Products in Inventory Adjustment"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
msgid "Validate All inventory Adjustments"
@@ -146,12 +163,15 @@ msgstr ""
msgid "Validate Inventory Adjustments Under Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Validated"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
msgid "Warehouse"
msgstr "Lager"
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid ""
"You can't validate the inventory '%s', maybe this inventory has been already "
"validated or isn't ready."
msgstr ""

View File

@@ -18,11 +18,6 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Cancelled"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_qty
msgid "Discrepancy"
@@ -33,21 +28,11 @@ msgstr ""
msgid "Discrepancy percent (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Draft"
msgstr ""
#. module: stock_inventory_discrepancy
#: model_terms:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
msgid "Force Validation"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "In Progress"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
@@ -91,10 +76,29 @@ msgid "Number of Discrepancies Over Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Only a stock manager can validate an inventory adjustment."
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#: model:ir.model.fields.selection,name:stock_inventory_discrepancy.selection__stock_inventory__state__pending
#, python-format
msgid "Pending to Approve"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate Maximum Discrepancy Rate Threshold to child locations"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate discrepancy threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory__state
msgid ""
@@ -112,7 +116,7 @@ msgid "Status"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:56
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:0
#, python-format
msgid ""
"The Qty Update is over the Discrepancy Threshold.\n"
@@ -131,11 +135,24 @@ msgstr ""
msgid "The discrepancy expressed in percent with theoretical quantity as basis"
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#, python-format
msgid "The inventory needs to be approved"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_threshold
msgid "Threshold (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Tracked Products in Inventory Adjustment"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
msgid "Validate All inventory Adjustments"
@@ -146,12 +163,15 @@ msgstr ""
msgid "Validate Inventory Adjustments Under Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Validated"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
msgid "Warehouse"
msgstr "Almacén"
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid ""
"You can't validate the inventory '%s', maybe this inventory has been already "
"validated or isn't ready."
msgstr ""

View File

@@ -20,11 +20,6 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Cancelled"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_qty
msgid "Discrepancy"
@@ -35,21 +30,11 @@ msgstr ""
msgid "Discrepancy percent (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Draft"
msgstr ""
#. module: stock_inventory_discrepancy
#: model_terms:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
msgid "Force Validation"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "In Progress"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
@@ -93,10 +78,29 @@ msgid "Number of Discrepancies Over Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Only a stock manager can validate an inventory adjustment."
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#: model:ir.model.fields.selection,name:stock_inventory_discrepancy.selection__stock_inventory__state__pending
#, python-format
msgid "Pending to Approve"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate Maximum Discrepancy Rate Threshold to child locations"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate discrepancy threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory__state
msgid ""
@@ -114,7 +118,7 @@ msgid "Status"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:56
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:0
#, python-format
msgid ""
"The Qty Update is over the Discrepancy Threshold.\n"
@@ -133,11 +137,24 @@ msgstr ""
msgid "The discrepancy expressed in percent with theoretical quantity as basis"
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#, python-format
msgid "The inventory needs to be approved"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_threshold
msgid "Threshold (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Tracked Products in Inventory Adjustment"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
msgid "Validate All inventory Adjustments"
@@ -148,12 +165,15 @@ msgstr ""
msgid "Validate Inventory Adjustments Under Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Validated"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
msgid "Warehouse"
msgstr "Almacén"
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid ""
"You can't validate the inventory '%s', maybe this inventory has been already "
"validated or isn't ready."
msgstr ""

View File

@@ -18,11 +18,6 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Cancelled"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_qty
msgid "Discrepancy"
@@ -33,21 +28,11 @@ msgstr ""
msgid "Discrepancy percent (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Draft"
msgstr ""
#. module: stock_inventory_discrepancy
#: model_terms:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
msgid "Force Validation"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "In Progress"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
@@ -91,10 +76,29 @@ msgid "Number of Discrepancies Over Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Only a stock manager can validate an inventory adjustment."
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#: model:ir.model.fields.selection,name:stock_inventory_discrepancy.selection__stock_inventory__state__pending
#, python-format
msgid "Pending to Approve"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate Maximum Discrepancy Rate Threshold to child locations"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate discrepancy threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory__state
msgid ""
@@ -112,7 +116,7 @@ msgid "Status"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:56
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:0
#, python-format
msgid ""
"The Qty Update is over the Discrepancy Threshold.\n"
@@ -131,11 +135,24 @@ msgstr ""
msgid "The discrepancy expressed in percent with theoretical quantity as basis"
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#, python-format
msgid "The inventory needs to be approved"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_threshold
msgid "Threshold (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Tracked Products in Inventory Adjustment"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
msgid "Validate All inventory Adjustments"
@@ -146,12 +163,15 @@ msgstr ""
msgid "Validate Inventory Adjustments Under Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Validated"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
msgid "Warehouse"
msgstr "Entrepôt"
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid ""
"You can't validate the inventory '%s', maybe this inventory has been already "
"validated or isn't ready."
msgstr ""

View File

@@ -19,11 +19,6 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Cancelled"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_qty
msgid "Discrepancy"
@@ -34,21 +29,11 @@ msgstr ""
msgid "Discrepancy percent (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Draft"
msgstr ""
#. module: stock_inventory_discrepancy
#: model_terms:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
msgid "Force Validation"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "In Progress"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
@@ -92,10 +77,29 @@ msgid "Number of Discrepancies Over Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Only a stock manager can validate an inventory adjustment."
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#: model:ir.model.fields.selection,name:stock_inventory_discrepancy.selection__stock_inventory__state__pending
#, python-format
msgid "Pending to Approve"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate Maximum Discrepancy Rate Threshold to child locations"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate discrepancy threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory__state
msgid ""
@@ -113,7 +117,7 @@ msgid "Status"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:56
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:0
#, python-format
msgid ""
"The Qty Update is over the Discrepancy Threshold.\n"
@@ -132,11 +136,24 @@ msgstr ""
msgid "The discrepancy expressed in percent with theoretical quantity as basis"
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#, python-format
msgid "The inventory needs to be approved"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_threshold
msgid "Threshold (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Tracked Products in Inventory Adjustment"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
msgid "Validate All inventory Adjustments"
@@ -147,12 +164,15 @@ msgstr ""
msgid "Validate Inventory Adjustments Under Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Validated"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
msgid "Warehouse"
msgstr "Entrepôt "
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid ""
"You can't validate the inventory '%s', maybe this inventory has been already "
"validated or isn't ready."
msgstr ""

View File

@@ -19,11 +19,6 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Cancelled"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_qty
msgid "Discrepancy"
@@ -34,21 +29,11 @@ msgstr ""
msgid "Discrepancy percent (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Draft"
msgstr ""
#. module: stock_inventory_discrepancy
#: model_terms:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
msgid "Force Validation"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "In Progress"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
@@ -92,10 +77,29 @@ msgid "Number of Discrepancies Over Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Only a stock manager can validate an inventory adjustment."
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#: model:ir.model.fields.selection,name:stock_inventory_discrepancy.selection__stock_inventory__state__pending
#, python-format
msgid "Pending to Approve"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate Maximum Discrepancy Rate Threshold to child locations"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate discrepancy threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory__state
msgid ""
@@ -113,7 +117,7 @@ msgid "Status"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:56
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:0
#, python-format
msgid ""
"The Qty Update is over the Discrepancy Threshold.\n"
@@ -132,11 +136,24 @@ msgstr ""
msgid "The discrepancy expressed in percent with theoretical quantity as basis"
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#, python-format
msgid "The inventory needs to be approved"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_threshold
msgid "Threshold (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Tracked Products in Inventory Adjustment"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
msgid "Validate All inventory Adjustments"
@@ -147,12 +164,15 @@ msgstr ""
msgid "Validate Inventory Adjustments Under Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Validated"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
msgid "Warehouse"
msgstr "Skladište"
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid ""
"You can't validate the inventory '%s', maybe this inventory has been already "
"validated or isn't ready."
msgstr ""

View File

@@ -19,11 +19,6 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Cancelled"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_qty
msgid "Discrepancy"
@@ -34,21 +29,11 @@ msgstr ""
msgid "Discrepancy percent (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Draft"
msgstr ""
#. module: stock_inventory_discrepancy
#: model_terms:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
msgid "Force Validation"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "In Progress"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
@@ -92,10 +77,29 @@ msgid "Number of Discrepancies Over Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Only a stock manager can validate an inventory adjustment."
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#: model:ir.model.fields.selection,name:stock_inventory_discrepancy.selection__stock_inventory__state__pending
#, python-format
msgid "Pending to Approve"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate Maximum Discrepancy Rate Threshold to child locations"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate discrepancy threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory__state
msgid ""
@@ -113,7 +117,7 @@ msgid "Status"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:56
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:0
#, python-format
msgid ""
"The Qty Update is over the Discrepancy Threshold.\n"
@@ -132,11 +136,24 @@ msgstr ""
msgid "The discrepancy expressed in percent with theoretical quantity as basis"
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#, python-format
msgid "The inventory needs to be approved"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_threshold
msgid "Threshold (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Tracked Products in Inventory Adjustment"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
msgid "Validate All inventory Adjustments"
@@ -147,12 +164,15 @@ msgstr ""
msgid "Validate Inventory Adjustments Under Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Validated"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
msgid "Warehouse"
msgstr "Magazzino"
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid ""
"You can't validate the inventory '%s', maybe this inventory has been already "
"validated or isn't ready."
msgstr ""

View File

@@ -18,11 +18,6 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Cancelled"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_qty
msgid "Discrepancy"
@@ -33,21 +28,11 @@ msgstr ""
msgid "Discrepancy percent (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Draft"
msgstr ""
#. module: stock_inventory_discrepancy
#: model_terms:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
msgid "Force Validation"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "In Progress"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
@@ -91,10 +76,29 @@ msgid "Number of Discrepancies Over Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Only a stock manager can validate an inventory adjustment."
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#: model:ir.model.fields.selection,name:stock_inventory_discrepancy.selection__stock_inventory__state__pending
#, python-format
msgid "Pending to Approve"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate Maximum Discrepancy Rate Threshold to child locations"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate discrepancy threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory__state
msgid ""
@@ -112,7 +116,7 @@ msgid "Status"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:56
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:0
#, python-format
msgid ""
"The Qty Update is over the Discrepancy Threshold.\n"
@@ -131,11 +135,24 @@ msgstr ""
msgid "The discrepancy expressed in percent with theoretical quantity as basis"
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#, python-format
msgid "The inventory needs to be approved"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_threshold
msgid "Threshold (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Tracked Products in Inventory Adjustment"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
msgid "Validate All inventory Adjustments"
@@ -146,12 +163,15 @@ msgstr ""
msgid "Validate Inventory Adjustments Under Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Validated"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
msgid "Warehouse"
msgstr "Magazijn"
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid ""
"You can't validate the inventory '%s', maybe this inventory has been already "
"validated or isn't ready."
msgstr ""

View File

@@ -19,11 +19,6 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Cancelled"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_qty
msgid "Discrepancy"
@@ -34,21 +29,11 @@ msgstr ""
msgid "Discrepancy percent (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Draft"
msgstr ""
#. module: stock_inventory_discrepancy
#: model_terms:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
msgid "Force Validation"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "In Progress"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
@@ -92,10 +77,29 @@ msgid "Number of Discrepancies Over Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Only a stock manager can validate an inventory adjustment."
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#: model:ir.model.fields.selection,name:stock_inventory_discrepancy.selection__stock_inventory__state__pending
#, python-format
msgid "Pending to Approve"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate Maximum Discrepancy Rate Threshold to child locations"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate discrepancy threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory__state
msgid ""
@@ -113,7 +117,7 @@ msgid "Status"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:56
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:0
#, python-format
msgid ""
"The Qty Update is over the Discrepancy Threshold.\n"
@@ -132,11 +136,24 @@ msgstr ""
msgid "The discrepancy expressed in percent with theoretical quantity as basis"
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#, python-format
msgid "The inventory needs to be approved"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_threshold
msgid "Threshold (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Tracked Products in Inventory Adjustment"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
msgid "Validate All inventory Adjustments"
@@ -147,12 +164,15 @@ msgstr ""
msgid "Validate Inventory Adjustments Under Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Validated"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
msgid "Warehouse"
msgstr "Magazijn"
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid ""
"You can't validate the inventory '%s', maybe this inventory has been already "
"validated or isn't ready."
msgstr ""

View File

@@ -20,11 +20,6 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Cancelled"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_qty
msgid "Discrepancy"
@@ -35,21 +30,11 @@ msgstr ""
msgid "Discrepancy percent (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Draft"
msgstr ""
#. module: stock_inventory_discrepancy
#: model_terms:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
msgid "Force Validation"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "In Progress"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
@@ -93,10 +78,29 @@ msgid "Number of Discrepancies Over Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Only a stock manager can validate an inventory adjustment."
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#: model:ir.model.fields.selection,name:stock_inventory_discrepancy.selection__stock_inventory__state__pending
#, python-format
msgid "Pending to Approve"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate Maximum Discrepancy Rate Threshold to child locations"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate discrepancy threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory__state
msgid ""
@@ -114,7 +118,7 @@ msgid "Status"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:56
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:0
#, python-format
msgid ""
"The Qty Update is over the Discrepancy Threshold.\n"
@@ -133,11 +137,24 @@ msgstr ""
msgid "The discrepancy expressed in percent with theoretical quantity as basis"
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#, python-format
msgid "The inventory needs to be approved"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_threshold
msgid "Threshold (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Tracked Products in Inventory Adjustment"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
msgid "Validate All inventory Adjustments"
@@ -148,12 +165,15 @@ msgstr ""
msgid "Validate Inventory Adjustments Under Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Validated"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
msgid "Warehouse"
msgstr "Armazém"
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid ""
"You can't validate the inventory '%s', maybe this inventory has been already "
"validated or isn't ready."
msgstr ""

View File

@@ -19,11 +19,6 @@ msgstr ""
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"%100==4 ? 2 : 3);\n"
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Cancelled"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_qty
msgid "Discrepancy"
@@ -34,21 +29,11 @@ msgstr ""
msgid "Discrepancy percent (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Draft"
msgstr ""
#. module: stock_inventory_discrepancy
#: model_terms:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
msgid "Force Validation"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "In Progress"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
@@ -92,10 +77,29 @@ msgid "Number of Discrepancies Over Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Only a stock manager can validate an inventory adjustment."
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#: model:ir.model.fields.selection,name:stock_inventory_discrepancy.selection__stock_inventory__state__pending
#, python-format
msgid "Pending to Approve"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate Maximum Discrepancy Rate Threshold to child locations"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate discrepancy threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory__state
msgid ""
@@ -113,7 +117,7 @@ msgid "Status"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:56
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:0
#, python-format
msgid ""
"The Qty Update is over the Discrepancy Threshold.\n"
@@ -132,11 +136,24 @@ msgstr ""
msgid "The discrepancy expressed in percent with theoretical quantity as basis"
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#, python-format
msgid "The inventory needs to be approved"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_threshold
msgid "Threshold (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Tracked Products in Inventory Adjustment"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
msgid "Validate All inventory Adjustments"
@@ -147,12 +164,15 @@ msgstr ""
msgid "Validate Inventory Adjustments Under Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Validated"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
msgid "Warehouse"
msgstr "Skladišče"
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid ""
"You can't validate the inventory '%s', maybe this inventory has been already "
"validated or isn't ready."
msgstr ""

View File

@@ -1,23 +1,18 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_inventory_discrepancy
# * stock_inventory_discrepancy
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: <>\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Cancelled"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_qty
msgid "Discrepancy"
@@ -28,21 +23,11 @@ msgstr ""
msgid "Discrepancy percent (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Draft"
msgstr ""
#. module: stock_inventory_discrepancy
#: model_terms:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
msgid "Force Validation"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "In Progress"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
@@ -67,12 +52,17 @@ msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_warehouse__discrepancy_threshold
msgid "Maximum Discrepancy Rate allowed for any product when doing an Inventory Adjustment. Threshold defined in involved Location has preference."
msgid ""
"Maximum Discrepancy Rate allowed for any product when doing an Inventory "
"Adjustment. Threshold defined in involved Location has preference."
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_location__discrepancy_threshold
msgid "Maximum Discrepancy Rate allowed for any product when doing an Inventory Adjustment. Thresholds defined in Locations have preference over Warehouse's ones."
msgid ""
"Maximum Discrepancy Rate allowed for any product when doing an Inventory "
"Adjustment. Thresholds defined in Locations have preference over Warehouse's"
" ones."
msgstr ""
#. module: stock_inventory_discrepancy
@@ -81,13 +71,33 @@ msgid "Number of Discrepancies Over Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Only a stock manager can validate an inventory adjustment."
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#: model:ir.model.fields.selection,name:stock_inventory_discrepancy.selection__stock_inventory__state__pending
#, python-format
msgid "Pending to Approve"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate Maximum Discrepancy Rate Threshold to child locations"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate discrepancy threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory__state
msgid "States of the Inventory Adjustment:\n"
msgid ""
"States of the Inventory Adjustment:\n"
"- Draft: Inventory not started.\n"
"- In Progress: Inventory in execution.\n"
"- Pending to Approve: Inventory have some discrepancies greater than the predefined threshold and it's waiting for the Control Manager approval.\n"
@@ -100,20 +110,31 @@ msgid "Status"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:56
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:0
#, python-format
msgid "The Qty Update is over the Discrepancy Threshold.\n"
msgid ""
"The Qty Update is over the Discrepancy Threshold.\n"
" Please, contact a user with rights to perform this action."
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_qty
msgid "The difference between the actual qty counted and the theoretical quantity on hand."
msgid ""
"The difference between the actual qty counted and the theoretical quantity "
"on hand."
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_percent
msgid "The discrepancy expressed in percent with theoretical quantity as basis"
msgid ""
"The discrepancy expressed in percent with theoretical quantity as basis"
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#, python-format
msgid "The inventory needs to be approved"
msgstr ""
#. module: stock_inventory_discrepancy
@@ -121,6 +142,12 @@ msgstr ""
msgid "Threshold (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Tracked Products in Inventory Adjustment"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
msgid "Validate All inventory Adjustments"
@@ -131,13 +158,15 @@ msgstr ""
msgid "Validate Inventory Adjustments Under Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Validated"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
msgid "Warehouse"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid ""
"You can't validate the inventory '%s', maybe this inventory has been already"
" validated or isn't ready."
msgstr ""

View File

@@ -19,11 +19,6 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Cancelled"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_qty
msgid "Discrepancy"
@@ -34,21 +29,11 @@ msgstr ""
msgid "Discrepancy percent (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Draft"
msgstr ""
#. module: stock_inventory_discrepancy
#: model_terms:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
msgid "Force Validation"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "In Progress"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
@@ -92,10 +77,29 @@ msgid "Number of Discrepancies Over Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Only a stock manager can validate an inventory adjustment."
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#: model:ir.model.fields.selection,name:stock_inventory_discrepancy.selection__stock_inventory__state__pending
#, python-format
msgid "Pending to Approve"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate Maximum Discrepancy Rate Threshold to child locations"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
msgid "Propagate discrepancy threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory__state
msgid ""
@@ -113,7 +117,7 @@ msgid "Status"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:56
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:0
#, python-format
msgid ""
"The Qty Update is over the Discrepancy Threshold.\n"
@@ -132,11 +136,24 @@ msgstr ""
msgid "The discrepancy expressed in percent with theoretical quantity as basis"
msgstr ""
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#, python-format
msgid "The inventory needs to be approved"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_threshold
msgid "Threshold (%)"
msgstr ""
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid "Tracked Products in Inventory Adjustment"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
msgid "Validate All inventory Adjustments"
@@ -147,12 +164,15 @@ msgstr ""
msgid "Validate Inventory Adjustments Under Threshold"
msgstr ""
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Validated"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
msgid "Warehouse"
msgstr "Depo"
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid ""
"You can't validate the inventory '%s', maybe this inventory has been already "
"validated or isn't ready."
msgstr ""

View File

@@ -1,6 +1,6 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_inventory_discrepancy
# * stock_inventory_discrepancy
#
msgid ""
msgstr ""
@@ -16,11 +16,6 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.8\n"
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Cancelled"
msgstr "已取消"
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_qty
msgid "Discrepancy"
@@ -31,21 +26,11 @@ msgstr "差异"
msgid "Discrepancy percent (%)"
msgstr "差异百分比(%)"
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Draft"
msgstr "草稿"
#. module: stock_inventory_discrepancy
#: model_terms:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
msgid "Force Validation"
msgstr "强制验证"
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "In Progress"
msgstr "进行中"
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
msgid "Inventory"
@@ -70,13 +55,22 @@ msgstr "最大差异率阈值"
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_warehouse__discrepancy_threshold
msgid "Maximum Discrepancy Rate allowed for any product when doing an Inventory Adjustment. Threshold defined in involved Location has preference."
msgstr "进行库存调整时,任何产品所允许的最大差异率。在所涉及的位置中定义的阈值具有优先级。"
msgid ""
"Maximum Discrepancy Rate allowed for any product when doing an Inventory "
"Adjustment. Threshold defined in involved Location has preference."
msgstr ""
"进行库存调整时,任何产品所允许的最大差异率。在所涉及的位置中定义的阈值具有优"
"先级。"
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_location__discrepancy_threshold
msgid "Maximum Discrepancy Rate allowed for any product when doing an Inventory Adjustment. Thresholds defined in Locations have preference over Warehouse's ones."
msgstr "进行库存调整时,任何产品所允许的最大差异率。在“位置”中定义的阈值优先于“仓库”的阈值。"
msgid ""
"Maximum Discrepancy Rate allowed for any product when doing an Inventory "
"Adjustment. Thresholds defined in Locations have preference over Warehouse's "
"ones."
msgstr ""
"进行库存调整时,任何产品所允许的最大差异率。在“位置”中定义的阈值优先于“仓"
"库”的阈值。"
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory__over_discrepancy_line_count
@@ -84,16 +78,39 @@ msgid "Number of Discrepancies Over Threshold"
msgstr "超过阈值的差异数量"
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, fuzzy, python-format
msgid "Only a stock manager can validate an inventory adjustment."
msgstr "验证所有库存调整"
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#: model:ir.model.fields.selection,name:stock_inventory_discrepancy.selection__stock_inventory__state__pending
#, python-format
msgid "Pending to Approve"
msgstr "待批准"
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
#, fuzzy
msgid "Propagate Maximum Discrepancy Rate Threshold to child locations"
msgstr "最大差异率阈值"
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location__propagate_discrepancy_threshold
#, fuzzy
msgid "Propagate discrepancy threshold"
msgstr "最大差异率阈值"
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory__state
msgid "States of the Inventory Adjustment:\n"
msgid ""
"States of the Inventory Adjustment:\n"
"- Draft: Inventory not started.\n"
"- In Progress: Inventory in execution.\n"
"- Pending to Approve: Inventory have some discrepancies greater than the predefined threshold and it's waiting for the Control Manager approval.\n"
"- Pending to Approve: Inventory have some discrepancies greater than the "
"predefined threshold and it's waiting for the Control Manager approval.\n"
"- Validated: Inventory Approved."
msgstr ""
"库存调整的状态:\n"
@@ -108,9 +125,10 @@ msgid "Status"
msgstr "状态"
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:56
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:0
#, python-format
msgid "The Qty Update is over the Discrepancy Threshold.\n"
msgid ""
"The Qty Update is over the Discrepancy Threshold.\n"
" Please, contact a user with rights to perform this action."
msgstr ""
"数量更新超过差异阈值。\n"
@@ -118,7 +136,9 @@ msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_qty
msgid "The difference between the actual qty counted and the theoretical quantity on hand."
msgid ""
"The difference between the actual qty counted and the theoretical quantity "
"on hand."
msgstr "计算的实际数量与现有理论数量之间的差。"
#. module: stock_inventory_discrepancy
@@ -126,11 +146,24 @@ msgstr "计算的实际数量与现有理论数量之间的差。"
msgid "The discrepancy expressed in percent with theoretical quantity as basis"
msgstr "差异以理论量为基础的百分比表示"
#. module: stock_inventory_discrepancy
#. openerp-web
#: code:addons/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js:0
#, python-format
msgid "The inventory needs to be approved"
msgstr ""
#. module: stock_inventory_discrepancy
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line__discrepancy_threshold
msgid "Threshold (%)"
msgstr "阈值(%)"
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, fuzzy, python-format
msgid "Tracked Products in Inventory Adjustment"
msgstr "验证所有库存调整"
#. module: stock_inventory_discrepancy
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
msgid "Validate All inventory Adjustments"
@@ -141,12 +174,27 @@ msgstr "验证所有库存调整"
msgid "Validate Inventory Adjustments Under Threshold"
msgstr "验证阈值下的库存调整"
#. module: stock_inventory_discrepancy
#: selection:stock.inventory,state:0
msgid "Validated"
msgstr "已验证"
#. module: stock_inventory_discrepancy
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
msgid "Warehouse"
msgstr "仓库"
#. module: stock_inventory_discrepancy
#: code:addons/stock_inventory_discrepancy/hooks.py:0
#, python-format
msgid ""
"You can't validate the inventory '%s', maybe this inventory has been already "
"validated or isn't ready."
msgstr ""
#~ msgid "Cancelled"
#~ msgstr "已取消"
#~ msgid "Draft"
#~ msgstr "草稿"
#~ msgid "In Progress"
#~ msgstr "进行中"
#~ msgid "Validated"
#~ msgstr "已验证"

View File

@@ -1,5 +1,5 @@
# Copyright 2017-2020 ForgeFlow S.L.
# (http://www.eficent.com)
# (http://www.forgeflow.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import _, api, fields, models
@@ -9,16 +9,8 @@ from odoo.exceptions import UserError
class StockInventory(models.Model):
_inherit = "stock.inventory"
INVENTORY_STATE_SELECTION = [
("draft", "Draft"),
("cancel", "Cancelled"),
("confirm", "In Progress"),
("pending", "Pending to Approve"),
("done", "Validated"),
]
state = fields.Selection(
selection=INVENTORY_STATE_SELECTION,
selection_add=[("pending", "Pending to Approve"), ("done",)],
string="Status",
readonly=True,
index=True,
@@ -37,7 +29,6 @@ class StockInventory(models.Model):
store=True,
)
@api.multi
@api.depends("line_ids.product_qty", "line_ids.theoretical_qty")
def _compute_over_discrepancy_line_count(self):
for inventory in self:
@@ -46,13 +37,12 @@ class StockInventory(models.Model):
)
inventory.over_discrepancy_line_count = len(lines)
@api.multi
def action_over_discrepancies(self):
self.write({"state": "pending"})
def _check_group_inventory_validation_always(self):
grp_inv_val = self.env.ref(
"stock_inventory_discrepancy.group_" "stock_inventory_validation_always"
"stock_inventory_discrepancy.group_stock_inventory_validation_always"
)
if grp_inv_val in self.env.user.groups_id:
return True
@@ -70,13 +60,17 @@ class StockInventory(models.Model):
if inventory.over_discrepancy_line_count and inventory.line_ids.filtered(
lambda t: t.discrepancy_threshold > 0.0
):
if inventory.env.context.get("normal_view", False):
if self.user_has_groups(
"stock_inventory_discrepancy.group_stock_inventory_validation"
) and not self.user_has_groups(
"stock_inventory_discrepancy."
"group_stock_inventory_validation_always"
):
inventory.action_over_discrepancies()
return True
else:
inventory._check_group_inventory_validation_always()
return super(StockInventory, self)._action_done()
@api.multi
def action_force_done(self):
return super(StockInventory, self)._action_done()

View File

@@ -1,11 +1,9 @@
# Copyright 2017-2020 ForgeFlow S.L.
# (http://www.eficent.com)
# (http://www.forgeflow.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import api, fields, models
from odoo.addons import decimal_precision as dp
class StockInventoryLine(models.Model):
_inherit = "stock.inventory.line"
@@ -15,7 +13,7 @@ class StockInventoryLine(models.Model):
compute="_compute_discrepancy",
help="The difference between the actual qty counted and the "
"theoretical quantity on hand.",
digits=dp.get_precision("Product Unit of Measure"),
digits="Product Unit of Measure",
default=0,
)
discrepancy_percent = fields.Float(
@@ -32,7 +30,6 @@ class StockInventoryLine(models.Model):
compute="_compute_discrepancy_threshold",
)
@api.multi
@api.depends("theoretical_qty", "product_qty")
def _compute_discrepancy(self):
for line in self:
@@ -43,8 +40,9 @@ class StockInventoryLine(models.Model):
)
elif not line.theoretical_qty and line.product_qty:
line.discrepancy_percent = 100.0
else:
line.discrepancy_percent = 0.0
@api.multi
def _compute_discrepancy_threshold(self):
for line in self:
whs = line.location_id.get_warehouse()

View File

@@ -1,5 +1,5 @@
# Copyright 2017-2020 ForgeFlow S.L.
# (http://www.eficent.com)
# (http://www.forgeflow.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import fields, models
@@ -15,3 +15,22 @@ class StockLocation(models.Model):
"an Inventory Adjustment. Thresholds defined in Locations have "
"preference over Warehouse's ones.",
)
propagate_discrepancy_threshold = fields.Boolean(
string="Propagate discrepancy threshold",
help="Propagate Maximum Discrepancy Rate Threshold to child locations",
)
def write(self, values):
res = super().write(values)
# Set the discrepancy threshold for all child locations
if values.get("discrepancy_threshold", False):
for location in self.filtered(
lambda loc: loc.propagate_discrepancy_threshold and loc.child_ids
):
location.child_ids.write(
{
"discrepancy_threshold": values["discrepancy_threshold"],
"propagate_discrepancy_threshold": True,
}
)
return res

View File

@@ -1,5 +1,5 @@
# Copyright 2017-2020 ForgeFlow S.L.
# (http://www.eficent.com)
# (http://www.forgeflow.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import fields, models

View File

@@ -1,3 +1,4 @@
* Lois Rilo <lois.rilo@forgeflow.com>
* Andreas Dian Sukarno Putro <andreasdian777@gmail.com>
* Bhavesh Odedra <bodedra@opensourceintegrators.com>
* Héctor Villarreal <hector.villarreal@forgeflow.com>

View File

@@ -1,29 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2017-2020 ForgeFlow S.L.
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo noupdate="1">
<record id="group_stock_inventory_validation" model="res.groups">
<field name="name">Validate Inventory Adjustments Under Threshold</field>
<field name="category_id" ref="base.module_category_usability"/>
<field name="category_id" ref="base.module_category_usability" />
</record>
<record id="group_stock_inventory_validation_always" model="res.groups">
<field name="name">Validate All inventory Adjustments</field>
<field name="category_id" ref="base.module_category_usability"/>
<field name="implied_ids"
eval="[(4, ref('stock_inventory_discrepancy.group_stock_inventory_validation'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="category_id" ref="base.module_category_usability" />
<field
name="implied_ids"
eval="[(4, ref('stock_inventory_discrepancy.group_stock_inventory_validation'))]"
/>
<field name="users" eval="[(4, ref('base.user_root'))]" />
</record>
<record model="res.groups" id="stock.group_stock_user">
<field name="implied_ids"
eval="[(4, ref('stock_inventory_discrepancy.group_stock_inventory_validation'))]"/>
<field
name="implied_ids"
eval="[(4, ref('stock_inventory_discrepancy.group_stock_inventory_validation'))]"
/>
</record>
<record model="res.groups" id="stock.group_stock_manager">
<field name="implied_ids"
eval="[(4, ref('stock_inventory_discrepancy.group_stock_inventory_validation_always'))]"/>
<field
name="implied_ids"
eval="[(4, ref('stock_inventory_discrepancy.group_stock_inventory_validation_always'))]"
/>
</record>
</odoo>

View File

@@ -367,7 +367,7 @@ ul.auto-toc {
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/stock-logistics-warehouse/tree/12.0/stock_inventory_discrepancy"><img alt="OCA/stock-logistics-warehouse" src="https://img.shields.io/badge/github-OCA%2Fstock--logistics--warehouse-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/stock-logistics-warehouse-12-0/stock-logistics-warehouse-12-0-stock_inventory_discrepancy"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/153/12.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/stock-logistics-warehouse/tree/13.0/stock_inventory_discrepancy"><img alt="OCA/stock-logistics-warehouse" src="https://img.shields.io/badge/github-OCA%2Fstock--logistics--warehouse-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/stock-logistics-warehouse-13-0/stock-logistics-warehouse-13-0-stock_inventory_discrepancy"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/153/13.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p>Adds the capability to show the discrepancy of every line in an inventory and
to block the inventory validation (setting it as Pending to Approve) when the
discrepancy is greater than an user defined threshold.</p>
@@ -416,7 +416,7 @@ validation of an inventory pending to approve.</li>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/stock-logistics-warehouse/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/stock-logistics-warehouse/issues/new?body=module:%20stock_inventory_discrepancy%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<a class="reference external" href="https://github.com/OCA/stock-logistics-warehouse/issues/new?body=module:%20stock_inventory_discrepancy%0Aversion:%2013.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
@@ -424,15 +424,16 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
<div class="section" id="authors">
<h2><a class="toc-backref" href="#id5">Authors</a></h2>
<ul class="simple">
<li>Eficent</li>
<li>ForgeFlow</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#id6">Contributors</a></h2>
<ul class="simple">
<li>Lois Rilo &lt;<a class="reference external" href="mailto:lois.rilo&#64;eficent.com">lois.rilo&#64;eficent.com</a>&gt;</li>
<li>Lois Rilo &lt;<a class="reference external" href="mailto:lois.rilo&#64;forgeflow.com">lois.rilo&#64;forgeflow.com</a>&gt;</li>
<li>Andreas Dian Sukarno Putro &lt;<a class="reference external" href="mailto:andreasdian777&#64;gmail.com">andreasdian777&#64;gmail.com</a>&gt;</li>
<li>Bhavesh Odedra &lt;<a class="reference external" href="mailto:bodedra&#64;opensourceintegrators.com">bodedra&#64;opensourceintegrators.com</a>&gt;</li>
<li>Héctor Villarreal &lt;<a class="reference external" href="mailto:hector.villarreal&#64;forgeflow.com">hector.villarreal&#64;forgeflow.com</a>&gt;</li>
</ul>
</div>
<div class="section" id="maintainers">
@@ -442,7 +443,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/stock-logistics-warehouse/tree/12.0/stock_inventory_discrepancy">OCA/stock-logistics-warehouse</a> project on GitHub.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/stock-logistics-warehouse/tree/13.0/stock_inventory_discrepancy">OCA/stock-logistics-warehouse</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>

View File

@@ -0,0 +1,42 @@
odoo.define("stock_inventory_discrepancy.InventoryValidationController", function(
require
) {
"use strict";
var core = require("web.core");
var InventoryValidationController = require("stock.InventoryValidationController");
var _t = core._t;
InventoryValidationController.include({
/**
* @override
* @see displayNotification
*/
do_notify: function(title, message, sticky, className) {
var self = this;
if (this.modelName === "stock.inventory.line") {
this._rpc({
model: "stock.inventory",
method: "read",
args: [this.inventory_id, ["state"]],
})
.then(function(res) {
if (res[0].state === "pending") {
title = _t("Pending to Approve");
message = _t("The inventory needs to be approved");
}
})
.finally(function() {
return self.displayNotification({
type: "warning",
title: title,
message: message,
sticky: sticky,
className: className,
});
});
}
},
});
});

View File

@@ -1,5 +1,5 @@
# Copyright 2017-2020 ForgeFlow S.L.
# (http://www.eficent.com)
# (http://www.forgeflow.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo.exceptions import UserError
@@ -14,7 +14,6 @@ class TestInventoryDiscrepancy(TransactionCase):
self.obj_inventory = self.env["stock.inventory"]
self.obj_product = self.env["product.product"]
self.obj_warehouse = self.env["stock.warehouse"]
self.obj_upd_qty_wizard = self.env["stock.change.product.qty"]
self.product1 = self.obj_product.create(
{"name": "Test Product 1", "type": "product", "default_code": "PROD1"}
@@ -33,8 +32,10 @@ class TestInventoryDiscrepancy(TransactionCase):
# Create Stock manager able to force validation on inventories.
group_stock_man = self.env.ref("stock.group_stock_manager")
group_inventory_all = self.env.ref(
"stock_inventory_discrepancy." "group_stock_inventory_validation_always"
"stock_inventory_discrepancy.group_stock_inventory_validation_always"
)
group_employee = self.env.ref("base.group_user")
self.manager = self.env["res.users"].create(
{
"name": "Test Manager",
@@ -53,10 +54,27 @@ class TestInventoryDiscrepancy(TransactionCase):
}
)
self.user_2 = self.env["res.users"].create(
{
"name": "Test User 2",
"login": "user_2",
"email": "test2.user@example.com",
"groups_id": [(6, 0, [group_stock_user.id, group_inventory_all.id])],
}
)
self.no_user = self.env["res.users"].create(
{
"name": "No User",
"login": "no_user",
"email": "test.no_user@example.com",
"groups_id": [(6, 0, [group_employee.id])],
}
)
starting_inv = self.obj_inventory.create(
{
"name": "Starting inventory",
"filter": "product",
"line_ids": [
(
0,
@@ -89,8 +107,7 @@ class TestInventoryDiscrepancy(TransactionCase):
inventory = self.obj_inventory.create(
{
"name": "Test Discrepancy Computation",
"location_id": self.test_loc.id,
"filter": "none",
"location_ids": [(4, self.test_loc.id)],
"line_ids": [
(
0,
@@ -131,8 +148,7 @@ class TestInventoryDiscrepancy(TransactionCase):
inventory = self.obj_inventory.create(
{
"name": "Test Forcing Validation Method",
"location_id": self.test_loc.id,
"filter": "none",
"location_ids": [(4, self.test_loc.id)],
"line_ids": [
(
0,
@@ -155,7 +171,8 @@ class TestInventoryDiscrepancy(TransactionCase):
0.1,
"Threshold wrongly computed in Inventory Line.",
)
inventory.with_context({"normal_view": True}).action_validate()
inventory.with_user(self.user).action_start()
inventory.with_user(self.user).action_validate()
self.assertEqual(
inventory.over_discrepancy_line_count,
1,
@@ -166,7 +183,7 @@ class TestInventoryDiscrepancy(TransactionCase):
"pending",
"Inventory Adjustment not changing to Pending to " "Approve.",
)
inventory.sudo(self.manager).action_force_done()
inventory.with_user(self.manager).action_force_done()
self.assertEqual(
inventory.state,
"done",
@@ -174,13 +191,56 @@ class TestInventoryDiscrepancy(TransactionCase):
"not working properly.",
)
def test_discrepancy_validation_always(self):
"""Tests the new workflow"""
inventory = self.obj_inventory.create(
{
"name": "Test Forcing Validation Method",
"location_ids": [(4, self.test_loc.id)],
"line_ids": [
(
0,
0,
{
"product_id": self.product1.id,
"product_uom_id": self.env.ref("uom.product_uom_unit").id,
"product_qty": 3.0,
"location_id": self.test_loc.id,
},
)
],
}
)
self.assertEqual(
inventory.state, "draft", "Testing Inventory wrongly configurated"
)
self.assertEqual(
inventory.line_ids.discrepancy_threshold,
0.1,
"Threshold wrongly computed in Inventory Line.",
)
inventory.with_user(self.user_2).action_start()
# User with no privileges can't validate a Inventory Adjustment.
with self.assertRaises(UserError):
inventory.with_user(self.no_user).action_validate()
inventory.with_user(self.user_2).action_validate()
self.assertEqual(
inventory.over_discrepancy_line_count,
1,
"Computation of over-discrepancies failed.",
)
self.assertEqual(
inventory.state,
"done",
"Stock Managers belongs to group Validate All inventory Adjustments",
)
def test_warehouse_threshold(self):
"""Tests the behaviour if the threshold is set on the WH."""
inventory = self.obj_inventory.create(
{
"name": "Test Threshold Defined in WH",
"location_id": self.test_wh.view_location_id.id,
"filter": "none",
"location_ids": [(4, self.test_wh.view_location_id.id)],
"line_ids": [
(
0,
@@ -201,17 +261,23 @@ class TestInventoryDiscrepancy(TransactionCase):
"Threshold wrongly computed in Inventory Line.",
)
def test_update_qty_user_error(self):
"""Test if a user error raises when a stock user tries to update the
qty for a product and the correction is a discrepancy over the
threshold."""
upd_qty = self.obj_upd_qty_wizard.sudo(self.user).create(
def test_propagate_discrepancy_threshold(self):
view_test_loc = self.obj_location.create(
{"name": "Test Location", "usage": "view", "discrepancy_threshold": 0.1}
)
child_test_loc = self.obj_location.create(
{
"product_id": self.product1.id,
"product_tmpl_id": self.product1.product_tmpl_id.id,
"new_quantity": 10.0,
"location_id": self.test_loc.id,
"name": "Child Test Location",
"usage": "internal",
"discrepancy_threshold": 0.2,
"location_id": view_test_loc.id,
}
)
with self.assertRaises(UserError):
upd_qty.change_product_qty()
view_test_loc.write(
{"discrepancy_threshold": 0.3, "propagate_discrepancy_threshold": True}
)
self.assertEqual(
child_test_loc.discrepancy_threshold,
0.3,
"Threshold Discrepancy wrongly propagated",
)

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<template
id="stock_assets_backend"
name="stock_inventory assets"
inherit_id="web.assets_backend"
>
<xpath expr="." position="inside">
<script
type="text/javascript"
src="/stock_inventory_discrepancy/static/src/js/inventory_validate_button_controller.js"
/>
</xpath>
</template>
</odoo>

View File

@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2017-2020 ForgeFlow S.L.
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo>
<record id="view_inventory_form" model="ir.ui.view">
<field name="name">Inventory form view - discrepancy extension </field>
<field name="model">stock.inventory</field>
<field name="inherit_id" ref="stock.view_inventory_form"/>
<field name="inherit_id" ref="stock.view_inventory_form" />
<field name="arch" type="xml">
<field name="state" position="attributes">
<attribute name="statusbar_visible">
@@ -17,32 +15,56 @@
{"pending":"red"}
</attribute>
</field>
<xpath expr="//button[@name='action_validate']"
position="attributes">
<attribute name="groups">stock_inventory_discrepancy.group_stock_inventory_validation</attribute>
<attribute name="context">{'normal_view': True}</attribute>
<xpath expr="//button[@name='action_validate']" position="attributes">
<attribute
name="groups"
>stock_inventory_discrepancy.group_stock_inventory_validation</attribute>
</xpath>
<xpath expr="//button[@name='action_validate']"
position="after">
<button name="action_force_done"
string="Force Validation" type="object"
class="oe_highlight"
groups="stock_inventory_discrepancy.group_stock_inventory_validation_always"
attrs="{'invisible': ['|',('state', '!=', 'pending'),('over_discrepancy_line_count', '=', 0)]}"/>
<xpath expr="//button[@name='action_validate']" position="after">
<button
name="action_force_done"
string="Force Validation"
type="object"
class="oe_highlight"
groups="stock_inventory_discrepancy.group_stock_inventory_validation_always"
attrs="{'invisible': ['|',('state', '!=', 'pending'),('over_discrepancy_line_count', '=', 0)]}"
/>
</xpath>
<field name="date" position="after">
<field name="over_discrepancy_line_count" attrs="{'invisible': [('state', '!=', 'pending')]}"/>
<xpath
expr="//button[@name='action_open_inventory_lines']"
position="attributes"
>
<attribute name="states">pending,confirm</attribute>
</xpath>
<xpath
expr="//button[@name='action_cancel_draft'][2]"
position="attributes"
>
<attribute name="states">pending,confirm</attribute>
</xpath>
<field name="company_id" position="before">
<field
name="over_discrepancy_line_count"
attrs="{'invisible': [('state', '!=', 'pending')]}"
/>
</field>
<xpath expr="//field[@name='line_ids']/tree/field[@name='product_qty']"
position="after">
<field name="discrepancy_qty"/>
<field name="discrepancy_percent"/>
<field name="discrepancy_threshold"/>
</xpath>
<xpath expr="//field[@name='line_ids']/tree" position="attributes">
<attribute name="decoration-danger">theoretical_qty &lt; 0 or discrepancy_percent &gt; discrepancy_threshold</attribute>
</field>
</record>
<record id="stock_inventory_line_tree2" model="ir.ui.view">
<field name="name">stock.inventory.line.tree2</field>
<field name="model">stock.inventory.line</field>
<field name="inherit_id" ref="stock.stock_inventory_line_tree2" />
<field name="arch" type="xml">
<field name="product_qty" position="after">
<field name="discrepancy_qty" />
<field name="discrepancy_percent" />
<field name="discrepancy_threshold" />
</field>
<xpath expr="//tree" position="attributes">
<attribute
name="decoration-danger"
>theoretical_qty &lt; 0 or discrepancy_percent &gt; discrepancy_threshold or "product_qty != theoretical_qty"</attribute>
</xpath>
</field>
</record>
</odoo>

View File

@@ -1,21 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2017-2020 ForgeFlow S.L.
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo>
<record id="view_location_form" model="ir.ui.view">
<field name="name">Location form - cycle count extension</field>
<field name="model">stock.location</field>
<field name="inherit_id" ref="stock.view_location_form"/>
<field name="inherit_id" ref="stock.view_location_form" />
<field name="arch" type="xml">
<field name="partner_id" position="after">
<label for="discrepancy_threshold"/>
<field name="return_location" position="after">
<label for="discrepancy_threshold" />
<div>
<field name="discrepancy_threshold" class="oe_inline"/> %
<field name="discrepancy_threshold" class="oe_inline" /> %
</div>
<field name="propagate_discrepancy_threshold" />
</field>
</field>
</record>
</odoo>

View File

@@ -1,22 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2017-2020 ForgeFlow S.L.
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo>
<record id="view_warehouse_form" model="ir.ui.view">
<record id="view_warehouse" model="ir.ui.view">
<field name="name">Warehouse form - Inventory Discrepancy
extension</field>
<field name="model">stock.warehouse</field>
<field name="inherit_id" ref="stock.view_warehouse"/>
<field name="inherit_id" ref="stock.view_warehouse" />
<field name="arch" type="xml">
<field name="partner_id" position="after">
<label for="discrepancy_threshold"/>
<label for="discrepancy_threshold" />
<div>
<field name="discrepancy_threshold" class="oe_inline"/> %
<field name="discrepancy_threshold" class="oe_inline" /> %
</div>
</field>
</field>
</record>
</odoo>