mirror of
https://github.com/OCA/stock-logistics-warehouse.git
synced 2025-01-21 14:27:28 +02:00
[9.0][ADD] stock_inventory_discrepancy (#245)
[ADD] stock_inventory_discrepancy
This commit is contained in:
81
stock_inventory_discrepancy/README.rst
Normal file
81
stock_inventory_discrepancy/README.rst
Normal file
@@ -0,0 +1,81 @@
|
||||
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
|
||||
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
||||
:alt: License: AGPL-3
|
||||
|
||||
===========================
|
||||
Stock Inventory Discrepancy
|
||||
===========================
|
||||
|
||||
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 a user defined threshold.
|
||||
|
||||
Only new group "Validate All inventory Adjustments" will be able to force the
|
||||
validation of those blocked inventories. By default Stock manager will belong
|
||||
to this group. In addition, Stock Users can validate inventories under the
|
||||
threshold now.
|
||||
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
You can configure the threshold as described below:
|
||||
|
||||
#. Go to "Inventory > Warehouse Management" > Warehouses" or to "Inventory >
|
||||
Warehouse Management" > Locations".
|
||||
#. Modify the "Maximum Discrepancy Rate Threshold" either in a Warehouse or
|
||||
in a location. If set to 0.0 the threshold is disabled.
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
If you configured a "Maximum Discrepancy Rate Threshold".
|
||||
|
||||
* When validating an Inventory Adjustment if some line exceed the Discrepancy
|
||||
Threshold the system will set the inventory's state to 'Pending to Approve'
|
||||
and show the quantity of lines that exceed the threshold.
|
||||
* If both WH and location thresholds are configured, the location one has
|
||||
preference.
|
||||
* The user with "Validate All inventory Adjustments" rights can force the
|
||||
validation of an inventory pending to approve.
|
||||
|
||||
|
||||
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
|
||||
:alt: Try me on Runbot
|
||||
:target: https://runbot.odoo-community.org/runbot/153/9.0
|
||||
|
||||
|
||||
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 smash it by providing detailed and welcomed feedback.
|
||||
|
||||
|
||||
Images
|
||||
------
|
||||
|
||||
* Odoo Community Association: `Icon <https://github.com/OCA/maintainer-tools/blob/master/template/module/static/description/icon.svg>`_.
|
||||
|
||||
Contributors
|
||||
------------
|
||||
|
||||
* Lois Rilo <lois.rilo@eficent.com>
|
||||
|
||||
|
||||
Maintainer
|
||||
----------
|
||||
|
||||
.. image:: https://odoo-community.org/logo.png
|
||||
:alt: Odoo Community Association
|
||||
:target: https://odoo-community.org
|
||||
|
||||
This module is maintained by the OCA.
|
||||
|
||||
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.
|
||||
|
||||
To contribute to this module, please visit https://odoo-community.org.
|
||||
6
stock_inventory_discrepancy/__init__.py
Normal file
6
stock_inventory_discrepancy/__init__.py
Normal file
@@ -0,0 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
|
||||
# (http://www.eficent.com)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from . import models
|
||||
25
stock_inventory_discrepancy/__openerp__.py
Normal file
25
stock_inventory_discrepancy/__openerp__.py
Normal file
@@ -0,0 +1,25 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
|
||||
# (http://www.eficent.com)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
{
|
||||
"name": "Stock Inventory Discrepancy",
|
||||
"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": "9.0.1.0.0",
|
||||
"author": "Eficent, "
|
||||
"Odoo Community Association (OCA)",
|
||||
"website": "https://github.com/OCA/stock-logistics-warehouse",
|
||||
"category": "Warehouse Management",
|
||||
"depends": ["stock"],
|
||||
"data": [
|
||||
'views/stock_inventory_view.xml',
|
||||
'views/stock_warehouse_view.xml',
|
||||
'views/stock_location_view.xml',
|
||||
'security/stock_inventory_discrepancy_security.xml'
|
||||
],
|
||||
"license": "AGPL-3",
|
||||
'installable': True,
|
||||
'application': False,
|
||||
}
|
||||
118
stock_inventory_discrepancy/i18n/de.po
Normal file
118
stock_inventory_discrepancy/i18n/de.po
Normal file
@@ -0,0 +1,118 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * stock_inventory_discrepancy
|
||||
#
|
||||
# Translators:
|
||||
# OCA Transbot <transbot@odoo-community.org>, 2017
|
||||
# Rudolf Schnapka <rs@techno-flex.de>, 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 9.0c\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-06-29 13:12+0000\n"
|
||||
"PO-Revision-Date: 2017-06-29 13:12+0000\n"
|
||||
"Last-Translator: Rudolf Schnapka <rs@techno-flex.de>, 2017\n"
|
||||
"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_qty
|
||||
msgid "Discrepancy"
|
||||
msgstr "Abweichung"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_percent
|
||||
msgid "Discrepancy percent (%)"
|
||||
msgstr "Abweichung (%)"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
|
||||
msgid "Force Validation"
|
||||
msgstr "Erzwinge Freigabe"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
|
||||
msgid "Inventory"
|
||||
msgstr "Bestand"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory_line
|
||||
msgid "Inventory Line"
|
||||
msgstr "Inventurposition"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_location
|
||||
msgid "Inventory Locations"
|
||||
msgstr "Bestandslagerorte"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location_discrepancy_threshold
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_warehouse_discrepancy_threshold
|
||||
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_threshold
|
||||
msgid "Maximum Discrepancy Rate Threshold"
|
||||
msgstr "Obergrenze für hinnehmbare Abweichung"
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_over_discrepancy_line_count
|
||||
msgid "Number of Discrepancies Over Threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:55
|
||||
#, python-format
|
||||
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."
|
||||
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"
|
||||
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
|
||||
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
|
||||
msgid "Validate All inventory Adjustments"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation
|
||||
msgid "Validate Inventory Adjustments Under Threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
|
||||
msgid "Warehouse"
|
||||
msgstr "Lager"
|
||||
118
stock_inventory_discrepancy/i18n/es.po
Normal file
118
stock_inventory_discrepancy/i18n/es.po
Normal file
@@ -0,0 +1,118 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * stock_inventory_discrepancy
|
||||
#
|
||||
# Translators:
|
||||
# OCA Transbot <transbot@odoo-community.org>, 2017
|
||||
# Antonio Trueba <atgayol@gmail.com>, 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 9.0c\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-02-18 04:05+0000\n"
|
||||
"PO-Revision-Date: 2017-02-18 04:05+0000\n"
|
||||
"Last-Translator: Antonio Trueba <atgayol@gmail.com>, 2017\n"
|
||||
"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_qty
|
||||
msgid "Discrepancy"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_percent
|
||||
msgid "Discrepancy percent (%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
|
||||
msgid "Force Validation"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
|
||||
msgid "Inventory"
|
||||
msgstr "Inventario"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory_line
|
||||
msgid "Inventory Line"
|
||||
msgstr "Línea inventario"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_location
|
||||
msgid "Inventory Locations"
|
||||
msgstr "Ubicaciones de inventario"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location_discrepancy_threshold
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_warehouse_discrepancy_threshold
|
||||
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_threshold
|
||||
msgid "Maximum Discrepancy Rate Threshold"
|
||||
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 ""
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_over_discrepancy_line_count
|
||||
msgid "Number of Discrepancies Over Threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:55
|
||||
#, python-format
|
||||
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."
|
||||
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"
|
||||
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
|
||||
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
|
||||
msgid "Validate All inventory Adjustments"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation
|
||||
msgid "Validate Inventory Adjustments Under Threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
|
||||
msgid "Warehouse"
|
||||
msgstr "Almacén"
|
||||
118
stock_inventory_discrepancy/i18n/es_ES.po
Normal file
118
stock_inventory_discrepancy/i18n/es_ES.po
Normal file
@@ -0,0 +1,118 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * stock_inventory_discrepancy
|
||||
#
|
||||
# Translators:
|
||||
# OCA Transbot <transbot@odoo-community.org>, 2017
|
||||
# Daniel <dani_dca@hotmail.com>, 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 9.0c\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-07-26 11:41+0000\n"
|
||||
"PO-Revision-Date: 2017-07-26 11:41+0000\n"
|
||||
"Last-Translator: Daniel <dani_dca@hotmail.com>, 2017\n"
|
||||
"Language-Team: Spanish (Spain) (https://www.transifex.com/oca/teams/23907/es_ES/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Language: es_ES\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_qty
|
||||
msgid "Discrepancy"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_percent
|
||||
msgid "Discrepancy percent (%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
|
||||
msgid "Force Validation"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
|
||||
msgid "Inventory"
|
||||
msgstr "Inventario"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory_line
|
||||
msgid "Inventory Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_location
|
||||
msgid "Inventory Locations"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location_discrepancy_threshold
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_warehouse_discrepancy_threshold
|
||||
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_threshold
|
||||
msgid "Maximum Discrepancy Rate Threshold"
|
||||
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 ""
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_over_discrepancy_line_count
|
||||
msgid "Number of Discrepancies Over Threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:55
|
||||
#, python-format
|
||||
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."
|
||||
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"
|
||||
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
|
||||
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
|
||||
msgid "Validate All inventory Adjustments"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation
|
||||
msgid "Validate Inventory Adjustments Under Threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
|
||||
msgid "Warehouse"
|
||||
msgstr "Almacén"
|
||||
117
stock_inventory_discrepancy/i18n/fr.po
Normal file
117
stock_inventory_discrepancy/i18n/fr.po
Normal file
@@ -0,0 +1,117 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * stock_inventory_discrepancy
|
||||
#
|
||||
# Translators:
|
||||
# OCA Transbot <transbot@odoo-community.org>, 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 9.0c\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-02-18 04:05+0000\n"
|
||||
"PO-Revision-Date: 2017-02-18 04:05+0000\n"
|
||||
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
|
||||
"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_qty
|
||||
msgid "Discrepancy"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_percent
|
||||
msgid "Discrepancy percent (%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
|
||||
msgid "Force Validation"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
|
||||
msgid "Inventory"
|
||||
msgstr "Inventaire"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory_line
|
||||
msgid "Inventory Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_location
|
||||
msgid "Inventory Locations"
|
||||
msgstr "Emplacements d'inventaire"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location_discrepancy_threshold
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_warehouse_discrepancy_threshold
|
||||
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_threshold
|
||||
msgid "Maximum Discrepancy Rate Threshold"
|
||||
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 ""
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_over_discrepancy_line_count
|
||||
msgid "Number of Discrepancies Over Threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:55
|
||||
#, python-format
|
||||
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."
|
||||
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"
|
||||
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
|
||||
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
|
||||
msgid "Validate All inventory Adjustments"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation
|
||||
msgid "Validate Inventory Adjustments Under Threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
|
||||
msgid "Warehouse"
|
||||
msgstr "Entrepôt"
|
||||
117
stock_inventory_discrepancy/i18n/fr_FR.po
Normal file
117
stock_inventory_discrepancy/i18n/fr_FR.po
Normal file
@@ -0,0 +1,117 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * stock_inventory_discrepancy
|
||||
#
|
||||
# Translators:
|
||||
# Mohamed HABOU <m.habou@agoradeveloppement.com>, 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 9.0c\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-02-18 04:05+0000\n"
|
||||
"PO-Revision-Date: 2017-02-18 04:05+0000\n"
|
||||
"Last-Translator: Mohamed HABOU <m.habou@agoradeveloppement.com>, 2017\n"
|
||||
"Language-Team: French (France) (https://www.transifex.com/oca/teams/23907/fr_FR/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Language: fr_FR\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_qty
|
||||
msgid "Discrepancy"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_percent
|
||||
msgid "Discrepancy percent (%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
|
||||
msgid "Force Validation"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
|
||||
msgid "Inventory"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory_line
|
||||
msgid "Inventory Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_location
|
||||
msgid "Inventory Locations"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location_discrepancy_threshold
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_warehouse_discrepancy_threshold
|
||||
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_threshold
|
||||
msgid "Maximum Discrepancy Rate Threshold"
|
||||
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 ""
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_over_discrepancy_line_count
|
||||
msgid "Number of Discrepancies Over Threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:55
|
||||
#, python-format
|
||||
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."
|
||||
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"
|
||||
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
|
||||
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
|
||||
msgid "Validate All inventory Adjustments"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation
|
||||
msgid "Validate Inventory Adjustments Under Threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
|
||||
msgid "Warehouse"
|
||||
msgstr "Entrepôt "
|
||||
118
stock_inventory_discrepancy/i18n/it.po
Normal file
118
stock_inventory_discrepancy/i18n/it.po
Normal file
@@ -0,0 +1,118 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * stock_inventory_discrepancy
|
||||
#
|
||||
# Translators:
|
||||
# OCA Transbot <transbot@odoo-community.org>, 2017
|
||||
# Paolo Valier <paolo.valier@hotmail.it>, 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 9.0c\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-02-18 04:05+0000\n"
|
||||
"PO-Revision-Date: 2017-02-18 04:05+0000\n"
|
||||
"Last-Translator: Paolo Valier <paolo.valier@hotmail.it>, 2017\n"
|
||||
"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Language: it\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_qty
|
||||
msgid "Discrepancy"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_percent
|
||||
msgid "Discrepancy percent (%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
|
||||
msgid "Force Validation"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
|
||||
msgid "Inventory"
|
||||
msgstr "Inventario"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory_line
|
||||
msgid "Inventory Line"
|
||||
msgstr "Riga d'Inventario"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_location
|
||||
msgid "Inventory Locations"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location_discrepancy_threshold
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_warehouse_discrepancy_threshold
|
||||
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_threshold
|
||||
msgid "Maximum Discrepancy Rate Threshold"
|
||||
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 ""
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_over_discrepancy_line_count
|
||||
msgid "Number of Discrepancies Over Threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:55
|
||||
#, python-format
|
||||
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."
|
||||
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"
|
||||
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
|
||||
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
|
||||
msgid "Validate All inventory Adjustments"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation
|
||||
msgid "Validate Inventory Adjustments Under Threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
|
||||
msgid "Warehouse"
|
||||
msgstr "Magazzino"
|
||||
117
stock_inventory_discrepancy/i18n/nl.po
Normal file
117
stock_inventory_discrepancy/i18n/nl.po
Normal file
@@ -0,0 +1,117 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * stock_inventory_discrepancy
|
||||
#
|
||||
# Translators:
|
||||
# OCA Transbot <transbot@odoo-community.org>, 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 9.0c\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-02-18 04:05+0000\n"
|
||||
"PO-Revision-Date: 2017-02-18 04:05+0000\n"
|
||||
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
|
||||
"Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/nl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Language: nl\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_qty
|
||||
msgid "Discrepancy"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_percent
|
||||
msgid "Discrepancy percent (%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
|
||||
msgid "Force Validation"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
|
||||
msgid "Inventory"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory_line
|
||||
msgid "Inventory Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_location
|
||||
msgid "Inventory Locations"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location_discrepancy_threshold
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_warehouse_discrepancy_threshold
|
||||
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_threshold
|
||||
msgid "Maximum Discrepancy Rate Threshold"
|
||||
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 ""
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_over_discrepancy_line_count
|
||||
msgid "Number of Discrepancies Over Threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:55
|
||||
#, python-format
|
||||
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."
|
||||
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"
|
||||
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
|
||||
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
|
||||
msgid "Validate All inventory Adjustments"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation
|
||||
msgid "Validate Inventory Adjustments Under Threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
|
||||
msgid "Warehouse"
|
||||
msgstr "Magazijn"
|
||||
118
stock_inventory_discrepancy/i18n/pt_BR.po
Normal file
118
stock_inventory_discrepancy/i18n/pt_BR.po
Normal file
@@ -0,0 +1,118 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * stock_inventory_discrepancy
|
||||
#
|
||||
# Translators:
|
||||
# Paulo Ricardo <ti@shoppingescritorio.com.br>, 2017
|
||||
# Felipe Lopes <ti@trojahntoppel.com.br>, 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 9.0c\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-02-18 04:05+0000\n"
|
||||
"PO-Revision-Date: 2017-02-18 04:05+0000\n"
|
||||
"Last-Translator: Felipe Lopes <ti@trojahntoppel.com.br>, 2017\n"
|
||||
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/23907/pt_BR/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Language: pt_BR\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_qty
|
||||
msgid "Discrepancy"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_percent
|
||||
msgid "Discrepancy percent (%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
|
||||
msgid "Force Validation"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
|
||||
msgid "Inventory"
|
||||
msgstr "Inventário"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory_line
|
||||
msgid "Inventory Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_location
|
||||
msgid "Inventory Locations"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location_discrepancy_threshold
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_warehouse_discrepancy_threshold
|
||||
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_threshold
|
||||
msgid "Maximum Discrepancy Rate Threshold"
|
||||
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 ""
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_over_discrepancy_line_count
|
||||
msgid "Number of Discrepancies Over Threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:55
|
||||
#, python-format
|
||||
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."
|
||||
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"
|
||||
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
|
||||
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
|
||||
msgid "Validate All inventory Adjustments"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation
|
||||
msgid "Validate Inventory Adjustments Under Threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
|
||||
msgid "Warehouse"
|
||||
msgstr "Armazém"
|
||||
117
stock_inventory_discrepancy/i18n/sl.po
Normal file
117
stock_inventory_discrepancy/i18n/sl.po
Normal file
@@ -0,0 +1,117 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * stock_inventory_discrepancy
|
||||
#
|
||||
# Translators:
|
||||
# Matjaž Mozetič <m.mozetic@matmoz.si>, 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 9.0c\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-02-18 04:05+0000\n"
|
||||
"PO-Revision-Date: 2017-02-18 04:05+0000\n"
|
||||
"Last-Translator: Matjaž Mozetič <m.mozetic@matmoz.si>, 2017\n"
|
||||
"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Language: sl\n"
|
||||
"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
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_qty
|
||||
msgid "Discrepancy"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_percent
|
||||
msgid "Discrepancy percent (%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
|
||||
msgid "Force Validation"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
|
||||
msgid "Inventory"
|
||||
msgstr "Inventar"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory_line
|
||||
msgid "Inventory Line"
|
||||
msgstr "Postavka inventarja"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_location
|
||||
msgid "Inventory Locations"
|
||||
msgstr "Lokacije inventarja"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location_discrepancy_threshold
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_warehouse_discrepancy_threshold
|
||||
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_threshold
|
||||
msgid "Maximum Discrepancy Rate Threshold"
|
||||
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 ""
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_over_discrepancy_line_count
|
||||
msgid "Number of Discrepancies Over Threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:55
|
||||
#, python-format
|
||||
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."
|
||||
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"
|
||||
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
|
||||
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
|
||||
msgid "Validate All inventory Adjustments"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation
|
||||
msgid "Validate Inventory Adjustments Under Threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
|
||||
msgid "Warehouse"
|
||||
msgstr "Skladišče"
|
||||
117
stock_inventory_discrepancy/i18n/tr_TR.po
Normal file
117
stock_inventory_discrepancy/i18n/tr_TR.po
Normal file
@@ -0,0 +1,117 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * stock_inventory_discrepancy
|
||||
#
|
||||
# Translators:
|
||||
# Ozge Altinisik <ozge@altinkaya.com.tr>, 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 9.0c\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-02-18 04:05+0000\n"
|
||||
"PO-Revision-Date: 2017-02-18 04:05+0000\n"
|
||||
"Last-Translator: Ozge Altinisik <ozge@altinkaya.com.tr>, 2017\n"
|
||||
"Language-Team: Turkish (Turkey) (https://www.transifex.com/oca/teams/23907/tr_TR/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Language: tr_TR\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_qty
|
||||
msgid "Discrepancy"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_percent
|
||||
msgid "Discrepancy percent (%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.ui.view,arch_db:stock_inventory_discrepancy.view_inventory_form
|
||||
msgid "Force Validation"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory
|
||||
msgid "Inventory"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_inventory_line
|
||||
msgid "Inventory Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_location
|
||||
msgid "Inventory Locations"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_location_discrepancy_threshold
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_warehouse_discrepancy_threshold
|
||||
#: model:ir.model.fields,help:stock_inventory_discrepancy.field_stock_inventory_line_discrepancy_threshold
|
||||
msgid "Maximum Discrepancy Rate Threshold"
|
||||
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 ""
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model.fields,field_description:stock_inventory_discrepancy.field_stock_inventory_over_discrepancy_line_count
|
||||
msgid "Number of Discrepancies Over Threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: code:addons/stock_inventory_discrepancy/models/stock_inventory.py:55
|
||||
#, python-format
|
||||
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."
|
||||
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"
|
||||
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
|
||||
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation_always
|
||||
msgid "Validate All inventory Adjustments"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:res.groups,name:stock_inventory_discrepancy.group_stock_inventory_validation
|
||||
msgid "Validate Inventory Adjustments Under Threshold"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_inventory_discrepancy
|
||||
#: model:ir.model,name:stock_inventory_discrepancy.model_stock_warehouse
|
||||
msgid "Warehouse"
|
||||
msgstr "Depo"
|
||||
9
stock_inventory_discrepancy/models/__init__.py
Normal file
9
stock_inventory_discrepancy/models/__init__.py
Normal file
@@ -0,0 +1,9 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
|
||||
# (http://www.eficent.com)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from . import stock_inventory
|
||||
from . import stock_inventory_line
|
||||
from . import stock_warehouse
|
||||
from . import stock_location
|
||||
73
stock_inventory_discrepancy/models/stock_inventory.py
Normal file
73
stock_inventory_discrepancy/models/stock_inventory.py
Normal file
@@ -0,0 +1,73 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
|
||||
# (http://www.eficent.com)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from openerp import _, api, fields, models
|
||||
from openerp.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')]
|
||||
|
||||
@api.one
|
||||
@api.depends('line_ids.product_qty', 'line_ids.theoretical_qty')
|
||||
def _compute_over_discrepancy_line_count(self):
|
||||
lines = self.line_ids
|
||||
self.over_discrepancy_line_count = sum(
|
||||
d.discrepancy_percent > d.discrepancy_threshold
|
||||
for d in lines)
|
||||
|
||||
state = fields.Selection(
|
||||
selection=INVENTORY_STATE_SELECTION,
|
||||
string='Status', readonly=True, index=True, copy=False,
|
||||
help="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"
|
||||
"- Validated: Inventory Approved.")
|
||||
over_discrepancy_line_count = fields.Integer(
|
||||
string='Number of Discrepancies Over Threshold',
|
||||
compute=_compute_over_discrepancy_line_count,
|
||||
store=True)
|
||||
|
||||
@api.model
|
||||
def action_over_discrepancies(self):
|
||||
self.state = 'pending'
|
||||
|
||||
def _check_group_inventory_validation_always(self):
|
||||
grp_inv_val = self.env.ref(
|
||||
'stock_inventory_discrepancy.group_'
|
||||
'stock_inventory_validation_always')
|
||||
if grp_inv_val in self.env.user.groups_id:
|
||||
return True
|
||||
else:
|
||||
raise UserError(
|
||||
_('The Qty Update is over the Discrepancy Threshold.\n '
|
||||
'Please, contact a user with rights to perform '
|
||||
'this action.')
|
||||
)
|
||||
|
||||
@api.one
|
||||
def action_done(self):
|
||||
if self.over_discrepancy_line_count and self.line_ids.filtered(
|
||||
lambda t: t.discrepancy_threshold > 0.0):
|
||||
if self.env.context.get('normal_view', False):
|
||||
self.action_over_discrepancies()
|
||||
return True
|
||||
else:
|
||||
self._check_group_inventory_validation_always()
|
||||
return super(StockInventory, self).action_done()
|
||||
|
||||
@api.multi
|
||||
def action_force_done(self):
|
||||
return super(StockInventory, self).action_done()
|
||||
48
stock_inventory_discrepancy/models/stock_inventory_line.py
Normal file
48
stock_inventory_discrepancy/models/stock_inventory_line.py
Normal file
@@ -0,0 +1,48 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
|
||||
# (http://www.eficent.com)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from openerp import api, fields, models
|
||||
|
||||
|
||||
class StockInventoryLine(models.Model):
|
||||
_inherit = 'stock.inventory.line'
|
||||
|
||||
@api.one
|
||||
def _compute_discrepancy(self):
|
||||
self.discrepancy_qty = self.product_qty - self.theoretical_qty
|
||||
if self.theoretical_qty:
|
||||
self.discrepancy_percent = 100 * abs(
|
||||
(self.product_qty - self.theoretical_qty) /
|
||||
self.theoretical_qty)
|
||||
elif not self.theoretical_qty and self.product_qty:
|
||||
self.discrepancy_percent = 100.0
|
||||
|
||||
@api.one
|
||||
def _get_discrepancy_threshold(self):
|
||||
wh_id = self.location_id.get_warehouse(self.location_id)
|
||||
wh = self.env['stock.warehouse'].browse(wh_id)
|
||||
if self.location_id.discrepancy_threshold > 0.0:
|
||||
self.discrepancy_threshold = self.location_id.discrepancy_threshold
|
||||
elif wh.discrepancy_threshold > 0.0:
|
||||
self.discrepancy_threshold = wh.discrepancy_threshold
|
||||
else:
|
||||
self.discrepancy_threshold = False
|
||||
|
||||
discrepancy_qty = fields.Float(
|
||||
string='Discrepancy',
|
||||
compute=_compute_discrepancy,
|
||||
help="The difference between the actual qty counted and the "
|
||||
"theoretical quantity on hand.")
|
||||
discrepancy_percent = fields.Float(
|
||||
string='Discrepancy percent (%)',
|
||||
compute=_compute_discrepancy,
|
||||
digits=(3, 2),
|
||||
help="The discrepancy expressed in percent with theoretical quantity "
|
||||
"as basis")
|
||||
discrepancy_threshold = fields.Float(
|
||||
string='Threshold (%)',
|
||||
digits=(3, 2),
|
||||
help="Maximum Discrepancy Rate Threshold",
|
||||
compute=_get_discrepancy_threshold)
|
||||
17
stock_inventory_discrepancy/models/stock_location.py
Normal file
17
stock_inventory_discrepancy/models/stock_location.py
Normal file
@@ -0,0 +1,17 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
|
||||
# (http://www.eficent.com)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from openerp import fields, models
|
||||
|
||||
|
||||
class StockLocation(models.Model):
|
||||
_inherit = 'stock.location'
|
||||
|
||||
discrepancy_threshold = fields.Float(
|
||||
string='Maximum Discrepancy Rate Threshold',
|
||||
digits=(3, 2),
|
||||
help="Maximum Discrepancy Rate allowed for any product when doing "
|
||||
"an Inventory Adjustment. Thresholds defined in Locations have "
|
||||
"preference over Warehouse's ones.")
|
||||
17
stock_inventory_discrepancy/models/stock_warehouse.py
Normal file
17
stock_inventory_discrepancy/models/stock_warehouse.py
Normal file
@@ -0,0 +1,17 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
|
||||
# (http://www.eficent.com)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from openerp import fields, models
|
||||
|
||||
|
||||
class StockWarehouse(models.Model):
|
||||
_inherit = 'stock.warehouse'
|
||||
|
||||
discrepancy_threshold = fields.Float(
|
||||
string='Maximum Discrepancy Rate Threshold',
|
||||
digits=(3, 2),
|
||||
help="Maximum Discrepancy Rate allowed for any product when doing "
|
||||
"an Inventory Adjustment. Threshold defined in involved Location "
|
||||
"has preference.")
|
||||
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2017 Eficent Business and IT Consulting Services 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"/>
|
||||
</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'))]"/>
|
||||
</record>
|
||||
|
||||
<record model="res.groups" id="stock.group_stock_user">
|
||||
<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'))]"/>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
6
stock_inventory_discrepancy/tests/__init__.py
Normal file
6
stock_inventory_discrepancy/tests/__init__.py
Normal file
@@ -0,0 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
|
||||
# (http://www.eficent.com)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from . import test_inventory_discrepancy
|
||||
173
stock_inventory_discrepancy/tests/test_inventory_discrepancy.py
Normal file
173
stock_inventory_discrepancy/tests/test_inventory_discrepancy.py
Normal file
@@ -0,0 +1,173 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
|
||||
# (http://www.eficent.com)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from openerp.tests.common import TransactionCase
|
||||
from openerp.exceptions import UserError
|
||||
|
||||
|
||||
class TestInventoryDiscrepancy(TransactionCase):
|
||||
def setUp(self, *args, **kwargs):
|
||||
super(TestInventoryDiscrepancy, self).setUp(*args, **kwargs)
|
||||
self.obj_wh = self.env['stock.warehouse']
|
||||
self.obj_location = self.env['stock.location']
|
||||
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',
|
||||
})
|
||||
self.product2 = self.obj_product.create({
|
||||
'name': 'Test Product 2',
|
||||
'type': 'product',
|
||||
'default_code': 'PROD2',
|
||||
})
|
||||
self.test_loc = self.obj_location.create({
|
||||
'name': 'Test Location',
|
||||
'usage': 'internal',
|
||||
'discrepancy_threshold': 0.1
|
||||
})
|
||||
self.test_wh = self.obj_warehouse.create({
|
||||
'name': 'Test WH',
|
||||
'code': 'T',
|
||||
'discrepancy_threshold': 0.2
|
||||
})
|
||||
self.obj_location._parent_store_compute()
|
||||
|
||||
# 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')
|
||||
self.manager = self.env['res.users'].create({
|
||||
'name': 'Test Manager',
|
||||
'login': 'manager',
|
||||
'email': 'test.manager@example.com',
|
||||
'groups_id': [(6, 0, [group_stock_man.id, group_inventory_all.id])]
|
||||
})
|
||||
group_stock_user = self.env.ref('stock.group_stock_user')
|
||||
self.user = self.env['res.users'].create({
|
||||
'name': 'Test User',
|
||||
'login': 'user',
|
||||
'email': 'test.user@example.com',
|
||||
'groups_id': [(6, 0, [group_stock_user.id])]
|
||||
})
|
||||
|
||||
starting_inv = self.obj_inventory.create({
|
||||
'name': 'Starting inventory',
|
||||
'filter': 'product',
|
||||
'line_ids': [
|
||||
(0, 0, {
|
||||
'product_id': self.product1.id,
|
||||
'product_uom_id': self.env.ref(
|
||||
"product.product_uom_unit").id,
|
||||
'product_qty': 2.0,
|
||||
'location_id': self.test_loc.id,
|
||||
}),
|
||||
(0, 0, {
|
||||
'product_id': self.product2.id,
|
||||
'product_uom_id': self.env.ref(
|
||||
"product.product_uom_unit").id,
|
||||
'product_qty': 4.0,
|
||||
'location_id': self.test_loc.id,
|
||||
}),
|
||||
],
|
||||
})
|
||||
starting_inv.action_force_done()
|
||||
|
||||
def test_compute_discrepancy(self):
|
||||
"""Tests if the discrepancy is correctly computed.
|
||||
"""
|
||||
inventory = self.obj_inventory.create({
|
||||
'name': 'Test Discrepancy Computation',
|
||||
'location_id': self.test_loc.id,
|
||||
'filter': 'none',
|
||||
'line_ids': [
|
||||
(0, 0, {
|
||||
'product_id': self.product1.id,
|
||||
'product_uom_id': self.env.ref(
|
||||
"product.product_uom_unit").id,
|
||||
'product_qty': 3.0,
|
||||
'location_id': self.test_loc.id,
|
||||
}),
|
||||
(0, 0, {
|
||||
'product_id': self.product2.id,
|
||||
'product_uom_id': self.env.ref(
|
||||
"product.product_uom_unit").id,
|
||||
'product_qty': 3.0,
|
||||
'location_id': self.test_loc.id,
|
||||
})
|
||||
],
|
||||
})
|
||||
self.assertEqual(inventory.line_ids[0].discrepancy_qty, 1.0,
|
||||
'Wrong Discrepancy qty computation.')
|
||||
self.assertEqual(inventory.line_ids[1].discrepancy_qty, - 1.0,
|
||||
'Wrong Discrepancy qty computation.')
|
||||
|
||||
def test_discrepancy_validation(self):
|
||||
"""Tests the new workflow"""
|
||||
inventory = self.obj_inventory.create({
|
||||
'name': 'Test Forcing Validation Method',
|
||||
'location_id': self.test_loc.id,
|
||||
'filter': 'none',
|
||||
'line_ids': [
|
||||
(0, 0, {
|
||||
'product_id': self.product1.id,
|
||||
'product_uom_id': self.env.ref(
|
||||
"product.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_context({'normal_view': True}).action_done()
|
||||
self.assertEqual(inventory.over_discrepancy_line_count, 1,
|
||||
'Computation of over-discrepancies failed.')
|
||||
self.assertEqual(inventory.state, 'pending',
|
||||
'Inventory Adjustment not changing to Pending to '
|
||||
'Approve.')
|
||||
inventory.sudo(self.manager).action_force_done()
|
||||
self.assertEqual(inventory.state, 'done',
|
||||
'Forcing the validation of the inventory adjustment '
|
||||
'not working properly.')
|
||||
|
||||
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',
|
||||
'line_ids': [
|
||||
(0, 0, {
|
||||
'product_id': self.product1.id,
|
||||
'product_uom_id': self.env.ref(
|
||||
"product.product_uom_unit").id,
|
||||
'product_qty': 3.0,
|
||||
'location_id': self.test_wh.lot_stock_id.id,
|
||||
}),
|
||||
],
|
||||
})
|
||||
self.assertEqual(inventory.line_ids.discrepancy_threshold, 0.2,
|
||||
'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.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,
|
||||
})
|
||||
with self.assertRaises(UserError):
|
||||
upd_qty.sudo(self.user).change_product_qty()
|
||||
49
stock_inventory_discrepancy/views/stock_inventory_view.xml
Normal file
49
stock_inventory_discrepancy/views/stock_inventory_view.xml
Normal file
@@ -0,0 +1,49 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2017 Eficent Business and IT Consulting Services 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="arch" type="xml">
|
||||
<field name="state" position="attributes">
|
||||
<attribute name="statusbar_visible">
|
||||
draft,confirm,pending,done
|
||||
</attribute>
|
||||
<attribute name="statusbar_colors">
|
||||
{"pending":"red"}
|
||||
</attribute>
|
||||
</field>
|
||||
<xpath expr="//button[@name='action_done']"
|
||||
position="attributes">
|
||||
<attribute name="groups">stock_inventory_discrepancy.group_stock_inventory_validation</attribute>
|
||||
<attribute name="context">{'normal_view': True}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//button[@name='action_done']"
|
||||
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')]}"/>
|
||||
</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 < 0 or
|
||||
discrepancy_percent > discrepancy_threshold</attribute>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
21
stock_inventory_discrepancy/views/stock_location_view.xml
Normal file
21
stock_inventory_discrepancy/views/stock_location_view.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2017 Eficent Business and IT Consulting Services 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="arch" type="xml">
|
||||
<field name="partner_id" position="after">
|
||||
<label for="discrepancy_threshold"/>
|
||||
<div>
|
||||
<field name="discrepancy_threshold" class="oe_inline"/> %
|
||||
</div>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
22
stock_inventory_discrepancy/views/stock_warehouse_view.xml
Normal file
22
stock_inventory_discrepancy/views/stock_warehouse_view.xml
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2017 Eficent Business and IT Consulting Services S.L.
|
||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
||||
|
||||
<odoo>
|
||||
|
||||
<record id="view_warehouse_form" 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="arch" type="xml">
|
||||
<field name="partner_id" position="after">
|
||||
<label for="discrepancy_threshold"/>
|
||||
<div>
|
||||
<field name="discrepancy_threshold" class="oe_inline"/> %
|
||||
</div>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user