Merge pull request #526 from Jarsa-dev/12.0-mig-stock_available_unreserved

MIG 12.0 stock available unreserved
This commit is contained in:
Denis Roussel (ACSONE)
2019-04-23 09:54:09 +02:00
committed by GitHub
39 changed files with 3189 additions and 0 deletions

View File

@@ -0,0 +1,67 @@
.. 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 Available Unreserved
==========================
This module allows users to check the quantity of a stocked product that is
available on-hand, and that has not yet been reserved for use anywhere else.
This key figure is very important during the monitoring of the warehouse
execution, because it assists users to ensure that the flow of products will
not be stuck due to a sudden unavailability of stock.
If the warehouse personnel ensures that the unreserved quantity on hand > 0,
then nobody will be stuck in pickings or manufacturing orders waiting for
the availability of unreserved stock.
Usage
=====
.. 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/11.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 smashing it by providing a detailed and welcomed feedback.
Credits
=======
Images
------
* Odoo Community Association: `Icon <https://github.com/OCA/maintainer-tools/blob/master/template/module/static/description/icon.svg>`_.
Contributors
------------
* Jordi Ballester Alomar <jordi.ballester@eficent.com>
* Stefan Rijnhart <stefan@opener.amsterdam>
* Mykhailo Panarin <m.panarin@mobilunity.com>
* Atte Isopuro <atte.isopuro@avoin.systems>
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.

View File

@@ -0,0 +1,6 @@
# Copyright 2016 ACSONE SA/NV (<http://acsone.eu>)
# Copyright 2016 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

View File

@@ -0,0 +1,22 @@
# Copyright 2018 Camptocamp SA
# Copyright 2016 ACSONE SA/NV (<http://acsone.eu>)
# Copyright 2016 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 Available Unreserved",
"summary": "Quantity of stock available for immediate use",
"version": "12.0.1.0.0",
"author": "Eficent Business and IT Consulting Services S.L,"
"Odoo Community Association (OCA)",
"website": "https://github.com/OCA/stock-logistics-warehouse",
"category": "Warehouse Management",
"depends": [
"stock",
],
"data": [
"views/stock_quant_view.xml",
"views/product_view.xml",
],
"license": "AGPL-3",
}

View File

@@ -0,0 +1,86 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2018-06-29 14:21+0000\n"
"Last-Translator: Osoul <baruni@osoul.ly>\n"
"Language-Team: none\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Weblate 3.0.1\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr "يحتوي على كميات غير محجوزة"
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr "الغير محجوز داخلياً"
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "المنتج"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr "قالب المنتج"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr "الكمية المتوفرة الغير محجوزة"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr "الكمية في متناول اليد الغير محجوزة"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr "المنتجات القابلة للحجز"
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr "الكمية في متناول اليد (غير محجوزة)"
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr "غير محجوز"
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr "غير محجوز:"

View File

@@ -0,0 +1,87 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# Translators:
# Carles Antoli <carlesantoli@hotmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-04 03:58+0000\n"
"PO-Revision-Date: 2017-03-04 03:58+0000\n"
"Last-Translator: Carles Antoli <carlesantoli@hotmail.com>, 2017\n"
"Language-Team: Catalan (https://www.transifex.com/oca/teams/23907/ca/)\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Producte"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr "Plantilla del producte"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,96 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-16 14:35+0000\n"
"PO-Revision-Date: 2018-01-16 14:35+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr "Intern nicht reserviert"
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Produkt"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr "Produktvorlage"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr "Freier Bestand"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr "Nicht reservierte, verfügbare Menge"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr "Freier Bestand (nicht reserv.)"
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr "Nicht reserviert"
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr "Nicht reserviert:"
#~ msgid " On Hand"
#~ msgstr "Verfügbar"
#~ msgid "Available per stock"
#~ msgstr "Verfügbar nach Bestand"
#~ msgid "Unreserved stock quantity"
#~ msgstr "Nicht reservierte Bestandsmenge"

View File

@@ -0,0 +1,88 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# Translators:
# Kostas Goutoudis <goutoudis@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-04 03:58+0000\n"
"PO-Revision-Date: 2017-03-04 03:58+0000\n"
"Last-Translator: Kostas Goutoudis <goutoudis@gmail.com>, 2017\n"
"Language-Team: Greek (Greece) (https://www.transifex.com/oca/teams/23907/"
"el_GR/)\n"
"Language: el_GR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Προϊόν"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,87 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# 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-03-04 03:58+0000\n"
"PO-Revision-Date: 2017-03-04 03:58+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Producto"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr "Plantilla de producto"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr "No reservado"
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,88 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# Translators:
# Javier García-Panach <panaka7@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-04 03:58+0000\n"
"PO-Revision-Date: 2017-03-04 03:58+0000\n"
"Last-Translator: Javier García-Panach <panaka7@gmail.com>, 2017\n"
"Language-Team: Spanish (Spain) (https://www.transifex.com/oca/teams/23907/"
"es_ES/)\n"
"Language: es_ES\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Producto"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,88 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# Translators:
# Juan González <bifomania@protonmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-04 03:58+0000\n"
"PO-Revision-Date: 2017-03-04 03:58+0000\n"
"Last-Translator: Juan González <bifomania@protonmail.com>, 2017\n"
"Language-Team: Spanish (Mexico) (https://www.transifex.com/oca/teams/23907/"
"es_MX/)\n"
"Language: es_MX\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr "Plantilla del producto"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,87 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# Translators:
# Esther Martín Menéndez <esthermartin001@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-04 03:58+0000\n"
"PO-Revision-Date: 2017-03-04 03:58+0000\n"
"Last-Translator: Esther Martín Menéndez <esthermartin001@gmail.com>, 2017\n"
"Language-Team: Basque (https://www.transifex.com/oca/teams/23907/eu/)\n"
"Language: eu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Produktua"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,87 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# 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-03-04 03:58+0000\n"
"PO-Revision-Date: 2017-03-04 03:58+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/fi/)\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Tuote"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr "Tuotteen malli"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,87 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# 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-03-04 03:58+0000\n"
"PO-Revision-Date: 2017-03-04 03:58+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Article"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr "Modèle de produit"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,89 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# Translators:
# leemannd <denis.leemann@camptocamp.com>, 2017
# 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-03-04 03:58+0000\n"
"PO-Revision-Date: 2017-03-04 03:58+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: French (Switzerland) (https://www.transifex.com/oca/"
"teams/23907/fr_CH/)\n"
"Language: fr_CH\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Produit"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr "Template de produit"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,88 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# 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-03-04 03:58+0000\n"
"PO-Revision-Date: 2017-03-04 03:58+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: French (France) (https://www.transifex.com/oca/teams/23907/"
"fr_FR/)\n"
"Language: fr_FR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Produit"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,87 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# Translators:
# César Castro Cruz <ulmroan@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-04 03:58+0000\n"
"PO-Revision-Date: 2017-03-04 03:58+0000\n"
"Last-Translator: César Castro Cruz <ulmroan@gmail.com>, 2017\n"
"Language-Team: Galician (https://www.transifex.com/oca/teams/23907/gl/)\n"
"Language: gl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Produto"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,89 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# Translators:
# Bole <bole@dajmi5.com>, 2017
# 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-03-04 03:58+0000\n"
"PO-Revision-Date: 2017-03-04 03:58+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n"
"Language: hr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"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_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Proizvod"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr "Predložak proizvoda"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,90 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# Translators:
# Bole <bole@dajmi5.com>, 2017
# 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-03-04 03:58+0000\n"
"PO-Revision-Date: 2017-03-04 03:58+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Croatian (Croatia) (https://www.transifex.com/oca/teams/23907/"
"hr_HR/)\n"
"Language: hr_HR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"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_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Proizvod"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr "Predložak proizvoda"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,88 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# Translators:
# Paolo Valier <paolo.valier@hotmail.it>, 2017
# 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-03-04 03:58+0000\n"
"PO-Revision-Date: 2017-03-04 03:58+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Prodotto"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr "Template Prodotto"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,87 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-16 14:35+0000\n"
"PO-Revision-Date: 2018-01-16 14:35+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/nl/)\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Product"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr "Productsjabloon"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,89 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
# Peter Hageman <hageman.p@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-23 00:57+0000\n"
"PO-Revision-Date: 2017-06-23 00:57+0000\n"
"Last-Translator: Peter Hageman <hageman.p@gmail.com>, 2017\n"
"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/"
"teams/23907/nl_NL/)\n"
"Language: nl_NL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Product"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr "Productsjabloon"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,87 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# 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-03-04 03:58+0000\n"
"PO-Revision-Date: 2017-03-04 03:58+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Portuguese (https://www.transifex.com/oca/teams/23907/pt/)\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Produto"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,90 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# Translators:
# Claudio Araujo Santos <claudioaraujosantos@gmail.com>, 2017
# OCA Transbot <transbot@odoo-community.org>, 2017
# danimaribeiro <danimaribeiro@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-04 03:58+0000\n"
"PO-Revision-Date: 2017-03-04 03:58+0000\n"
"Last-Translator: danimaribeiro <danimaribeiro@gmail.com>, 2017\n"
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/"
"teams/23907/pt_BR/)\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Produto"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr "Modelo Produto"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr "Desreservar"
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,88 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# 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-03-04 03:58+0000\n"
"PO-Revision-Date: 2017-03-04 03:58+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Romanian (https://www.transifex.com/oca/teams/23907/ro/)\n"
"Language: ro\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
"2:1));\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Produs"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr "Produs șablon"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,89 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-16 14:35+0000\n"
"PO-Revision-Date: 2018-01-16 14:35+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2018\n"
"Language-Team: Russian (https://www.transifex.com/oca/teams/23907/ru/)\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
"%100>=11 && n%100<=14)? 2 : 3);\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Товар/Услуга"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,97 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-16 14:35+0000\n"
"PO-Revision-Date: 2018-01-16 14:35+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \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_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr "Interno ne rezervirano"
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Proizvod"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr "Predloga proizvoda"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr "Ne rezervirana količina na voljo"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr "Ne rezervirana količna pri roki"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr "Količina pri roki (ne rezervirana)"
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr "Odstranjena rezervacija"
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr "Ne rezervirano:"
#~ msgid " On Hand"
#~ msgstr "Na voljo"
#~ msgid "Available per stock"
#~ msgstr "Na voljo po zalogah"
#~ msgid "Unreserved stock quantity"
#~ msgstr "Količina ne rezerviranih zalog"

View File

@@ -0,0 +1,83 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \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_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,88 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# Translators:
# Ediz Duman <neps1192@gmail.com>, 2017
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-23 00:57+0000\n"
"PO-Revision-Date: 2017-06-23 00:57+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/tr/)\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Ürün"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr "Ürün Şablonu"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,88 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# 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-03-04 03:58+0000\n"
"PO-Revision-Date: 2017-03-04 03:58+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"
"Language: tr_TR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Ürün"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr "Ürün şablonu"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,88 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# 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-03-04 03:58+0000\n"
"PO-Revision-Date: 2017-03-04 03:58+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Vietnamese (Viet Nam) (https://www.transifex.com/oca/"
"teams/23907/vi_VN/)\n"
"Language: vi_VN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "Sản phẩm"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr "Mẫu sản phẩm"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,88 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_available_unreserved
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-04 03:58+0000\n"
"PO-Revision-Date: 2017-03-04 03:58+0000\n"
"Last-Translator: Jeffery CHEN <jeffery9@gmail.com>, 2017\n"
"Language-Team: Chinese (China) (https://www.transifex.com/oca/teams/23907/"
"zh_CN/)\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_stock_quant_contains_unreserved
msgid "Contains unreserved products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.quant_search_view
msgid "Internal Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:116
#, python-format
msgid "Invalid domain operator %s"
msgstr ""
#. module: stock_available_unreserved
#: code:addons/stock_available_unreserved/models/product.py:118
#, python-format
msgid "Invalid domain right operand %s"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_product
msgid "Product"
msgstr "产品"
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_product_template
msgid "Product Template"
msgstr "产品模板"
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_product_qty_available_not_res
msgid "Qty Available Not Reserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model.fields,field_description:stock_available_unreserved.field_product_template_qty_available_not_res
msgid "Quantity On Hand Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.model,name:stock_available_unreserved.model_stock_quant
msgid "Quants"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_search_form_view_stock
msgid "Reservable Products"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.actions.act_window,name:stock_available_unreserved.product_open_quants_unreserved
msgid "Stock On Hand (Unreserved)"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_form_view_procurement_button
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_form_view_procurement_button
msgid "Unreserved"
msgstr ""
#. module: stock_available_unreserved
#: model:ir.ui.view,arch_db:stock_available_unreserved.product_template_kanban_stock_view
msgid "Unreserved:"
msgstr ""

View File

@@ -0,0 +1,7 @@
# Copyright 2016 ACSONE SA/NV (<http://acsone.eu>)
# Copyright 2016 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 product
from . import quant

View File

@@ -0,0 +1,125 @@
# Copyright 2018 Camptocamp SA
# Copyright 2016 ACSONE SA/NV (<http://acsone.eu>)
# Copyright 2016 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 odoo import api, fields, models, _
from odoo.addons import decimal_precision as dp
from odoo.addons.stock.models.product import OPERATORS
from odoo.tools.float_utils import float_round
from odoo.exceptions import UserError
UNIT = dp.get_precision('Product Unit of Measure')
class ProductTemplate(models.Model):
_inherit = "product.template"
qty_available_not_res = fields.Float(
string='Quantity On Hand Unreserved',
digits=UNIT,
compute='_compute_product_available_not_res',
search='_search_quantity_unreserved',
)
@api.multi
@api.depends('product_variant_ids.qty_available_not_res')
def _compute_product_available_not_res(self):
for tmpl in self:
if isinstance(tmpl.id, models.NewId):
continue
tmpl.qty_available_not_res = sum(
tmpl.mapped('product_variant_ids.qty_available_not_res')
)
@api.multi
def action_open_quants_unreserved(self):
products_ids = self.mapped('product_variant_ids').ids
quants = self.env['stock.quant'].search([
('product_id', 'in', products_ids),
])
quant_ids = quants.filtered(
lambda x: x.product_id.qty_available_not_res > 0
).ids
result = self.env.ref('stock.product_open_quants').read()[0]
result['domain'] = [('id', 'in', quant_ids)]
result['context'] = {
'search_default_locationgroup': 1,
'search_default_internal_loc': 1,
}
return result
def _search_quantity_unreserved(self, operator, value):
domain = [('qty_available_not_res', operator, value)]
product_variant_ids = self.env['product.product'].search(domain)
return [('product_variant_ids', 'in', product_variant_ids.ids)]
class ProductProduct(models.Model):
_inherit = 'product.product'
qty_available_not_res = fields.Float(
string='Qty Available Not Reserved',
digits=UNIT,
compute='_compute_qty_available_not_reserved',
search="_search_quantity_unreserved",
)
@api.multi
def _prepare_domain_available_not_reserved(self):
domain_quant = [
('product_id', 'in', self.ids),
]
domain_quant_locations = self._get_domain_locations()[0]
domain_quant.extend(domain_quant_locations)
return domain_quant
@api.multi
def _compute_product_available_not_res_dict(self):
res = {}
domain_quant = self._prepare_domain_available_not_reserved()
quants = self.env['stock.quant'].with_context(lang=False).read_group(
domain_quant,
['product_id', 'location_id', 'quantity', 'reserved_quantity'],
['product_id', 'location_id'],
lazy=False)
product_sums = {}
for quant in quants:
# create a dictionary with the total value per products
product_sums.setdefault(quant['product_id'][0], 0.)
product_sums[quant['product_id'][0]] += (
quant['quantity'] - quant['reserved_quantity']
)
for product in self.with_context(prefetch_fields=False, lang=''):
available_not_res = float_round(
product_sums.get(product.id, 0.0),
precision_rounding=product.uom_id.rounding
)
res[product.id] = {
'qty_available_not_res': available_not_res,
}
return res
@api.multi
@api.depends('stock_move_ids.product_qty', 'stock_move_ids.state')
def _compute_qty_available_not_reserved(self):
res = self._compute_product_available_not_res_dict()
for prod in self:
qty = res[prod.id]['qty_available_not_res']
prod.qty_available_not_res = qty
return res
def _search_quantity_unreserved(self, operator, value):
if operator not in OPERATORS:
raise UserError(_('Invalid domain operator %s') % operator)
if not isinstance(value, (float, int)):
raise UserError(_('Invalid domain right operand %s') % value)
ids = []
for product in self.search([]):
if OPERATORS[operator](product.qty_available_not_res, value):
ids.append(product.id)
return [('id', 'in', ids)]

View File

@@ -0,0 +1,23 @@
# Copyright 2018 Camptocamp SA
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import api, fields, models
class StockQuant(models.Model):
_inherit = "stock.quant"
contains_unreserved = fields.Boolean(
string="Contains unreserved products",
compute="_compute_contains_unreserved",
store=True,
)
@api.depends('product_id', 'location_id', 'quantity', 'reserved_quantity')
def _compute_contains_unreserved(self):
for record in self:
available = record._get_available_quantity(
record.product_id,
record.location_id,
)
record.contains_unreserved = True if available > 0 else False

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,7 @@
# Copyright 2016 ACSONE SA/NV (<http://acsone.eu>)
# Copyright 2016 Eficent Business and IT Consulting Services S.L.
# Copyright 2019 JARSA Sistemas S.A. de C.V.
# (http://www.eficent.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from . import test_stock_available_unreserved

View File

@@ -0,0 +1,342 @@
# Copyright 2018 Camptocamp SA
# Copyright 2016 ACSONE SA/NV (<http://acsone.eu>)
# Copyright 2016 Eficent Business and IT Consulting Services S.L.
# (http://www.eficent.com)
# Copyright 2016 Therp BV <http://therp.nl>
# Copyright 2019 JARSA Sistemas S.A. de C.V.
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo.tests.common import SavepointCase
class TestStockLogisticsWarehouse(SavepointCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.pickingObj = cls.env['stock.picking']
cls.productObj = cls.env['product.product']
cls.templateObj = cls.env['product.template']
cls.supplier_location = cls.env.ref('stock.stock_location_suppliers')
cls.stock_location = cls.env.ref('stock.stock_location_stock')
cls.customer_location = cls.env.ref('stock.stock_location_customers')
cls.uom_unit = cls.env.ref('uom.product_uom_unit')
cls.main_company = cls.env.ref('base.main_company')
cls.bin_a = cls.env['stock.location'].create({
'usage': 'internal',
'name': 'Bin A',
'location_id': cls.stock_location.id,
'company_id': cls.main_company.id
})
cls.bin_b = cls.env['stock.location'].create({
'usage': 'internal',
'name': 'Bin B',
'location_id': cls.stock_location.id,
'company_id': cls.main_company.id
})
cls.env['stock.location']._parent_store_compute()
# Create product template
cls.templateAB = cls.templateObj.create({
'name': 'templAB',
'uom_id': cls.uom_unit.id,
})
cls.productC = cls.templateAB.product_variant_ids
# Create product A and B
cls.productA = cls.productObj.create({
'name': 'product A',
'standard_price': 1,
'type': 'product',
'uom_id': cls.uom_unit.id,
'default_code': 'A',
'product_tmpl_id': cls.templateAB.id,
})
cls.productB = cls.productObj.create({
'name': 'product B',
'standard_price': 1,
'type': 'product',
'uom_id': cls.uom_unit.id,
'default_code': 'B',
'product_tmpl_id': cls.templateAB.id,
})
# Create a picking move from INCOMING to STOCK
cls.pickingInA = cls.pickingObj.create({
'picking_type_id': cls.env.ref('stock.picking_type_in').id,
'location_id': cls.supplier_location.id,
'location_dest_id': cls.stock_location.id,
'move_lines': [
(0, 0, {
'name': 'Test move',
'product_id': cls.productA.id,
'product_uom': cls.productA.uom_id.id,
'product_uom_qty': 2,
'quantity_done': 2,
'location_id': cls.supplier_location.id,
'location_dest_id': cls.stock_location.id,
})
]
})
cls.pickingInB = cls.pickingObj.create({
'picking_type_id': cls.env.ref('stock.picking_type_in').id,
'location_id': cls.supplier_location.id,
'location_dest_id': cls.stock_location.id,
'move_lines': [
(0, 0, {
'name': 'Test move',
'product_id': cls.productB.id,
'product_uom': cls.productB.uom_id.id,
'product_uom_qty': 3,
'quantity_done': 3,
'location_id': cls.supplier_location.id,
'location_dest_id': cls.stock_location.id,
})
]
})
cls.pickingOutA = cls.pickingObj.create({
'picking_type_id': cls.env.ref('stock.picking_type_out').id,
'location_id': cls.stock_location.id,
'location_dest_id': cls.customer_location.id,
'move_lines': [
(0, 0, {
'name': 'Test move',
'product_id': cls.productB.id,
'product_uom': cls.productB.uom_id.id,
'product_uom_qty': 2,
'location_id': cls.stock_location.id,
'location_dest_id': cls.customer_location.id,
})
]
})
def compare_qty_available_not_res(self, product, value):
product.invalidate_cache()
self.assertEqual(product.qty_available_not_res, value)
def test_stock_levels(self):
"""checking that qty_available_not_res actually reflects \
the variations in stock, both on product and template"""
self.compare_qty_available_not_res(self.productA, 0)
self.compare_qty_available_not_res(self.templateAB, 0)
self.pickingInA.action_confirm()
self.compare_qty_available_not_res(self.productA, 0)
self.compare_qty_available_not_res(self.templateAB, 0)
self.pickingInA.action_assign()
self.compare_qty_available_not_res(self.productA, 0)
self.compare_qty_available_not_res(self.templateAB, 0)
self.pickingInA.button_validate()
self.compare_qty_available_not_res(self.productA, 2)
self.compare_qty_available_not_res(self.templateAB, 2)
# will directly trigger action_done on self.productB
self.pickingInB.action_done()
self.compare_qty_available_not_res(self.productA, 2)
self.compare_qty_available_not_res(self.productB, 3)
self.compare_qty_available_not_res(self.templateAB, 5)
self.compare_qty_available_not_res(self.productB, 3)
self.compare_qty_available_not_res(self.templateAB, 5)
self.pickingOutA.action_confirm()
self.compare_qty_available_not_res(self.productB, 3)
self.compare_qty_available_not_res(self.templateAB, 5)
self.pickingOutA.action_assign()
self.compare_qty_available_not_res(self.productB, 1)
self.compare_qty_available_not_res(self.templateAB, 3)
self.pickingOutA.action_done()
self.compare_qty_available_not_res(self.productB, 1)
self.compare_qty_available_not_res(self.templateAB, 3)
self.templateAB.action_open_quants_unreserved()
def test_more_than_one_quant(self):
self.env['stock.quant'].create(
{'location_id': self.stock_location.id,
'company_id': self.main_company.id,
'product_id': self.productA.id,
'quantity': 10.0})
self.env['stock.quant'].create(
{'location_id': self.bin_a.id,
'company_id': self.main_company.id,
'product_id': self.productA.id,
'quantity': 10.0})
self.env['stock.quant'].create(
{'location_id': self.bin_b.id,
'company_id': self.main_company.id,
'product_id': self.productA.id,
'quantity': 60.0})
self.compare_qty_available_not_res(self.productA, 80)
def check_variants_found_correctly(self, operator, value, expected):
domain = [('id', 'in', self.templateAB.product_variant_ids.ids)]
return self.check_found_correctly(self.env['product.product'],
domain, operator, value, expected)
def check_template_found_correctly(self, operator, value, expected):
# There may be other products already in the system: ignore those
domain = [('id', 'in', self.templateAB.ids)]
return self.check_found_correctly(self.env['product.template'],
domain, operator, value, expected)
def check_found_correctly(self, model, domain, operator, value, expected):
found = model.search(domain + [
('qty_available_not_res', operator, value)]
)
if found != expected:
self.fail(
"Searching for products failed: search for unreserved "
"quantity {operator} {value}; expected to find "
"{expected}, but found {found}".format(
operator=operator,
value=value,
expected=expected or "no products",
found=found,
)
)
def test_stock_search(self):
all_variants = self.templateAB.product_variant_ids
a_and_b = self.productA + self.productB
b_and_c = self.productB + self.productC
a_and_c = self.productA + self.productC
no_variants = self.env['product.product']
no_template = self.env['product.template']
# Start: one template with three variants.
# All variants have zero unreserved stock
self.check_variants_found_correctly('=', 0, all_variants)
self.check_variants_found_correctly('>=', 0, all_variants)
self.check_variants_found_correctly('<=', 0, all_variants)
self.check_variants_found_correctly('>', 0, no_variants)
self.check_variants_found_correctly('<', 0, no_variants)
self.check_variants_found_correctly('!=', 0, no_variants)
self.check_template_found_correctly('=', 0, self.templateAB)
self.check_template_found_correctly('>=', 0, self.templateAB)
self.check_template_found_correctly('<=', 0, self.templateAB)
self.check_template_found_correctly('>', 0, no_template)
self.check_template_found_correctly('<', 0, no_template)
self.check_template_found_correctly('!=', 0, no_template)
self.pickingInA.action_confirm()
# All variants still have zero unreserved stock
self.check_variants_found_correctly('=', 0, all_variants)
self.check_variants_found_correctly('>=', 0, all_variants)
self.check_variants_found_correctly('<=', 0, all_variants)
self.check_variants_found_correctly('>', 0, no_variants)
self.check_variants_found_correctly('<', 0, no_variants)
self.check_variants_found_correctly('!=', 0, no_variants)
self.check_template_found_correctly('=', 0, self.templateAB)
self.check_template_found_correctly('>=', 0, self.templateAB)
self.check_template_found_correctly('<=', 0, self.templateAB)
self.check_template_found_correctly('>', 0, no_template)
self.check_template_found_correctly('<', 0, no_template)
self.check_template_found_correctly('!=', 0, no_template)
self.pickingInA.action_assign()
# All variants still have zero unreserved stock
self.check_variants_found_correctly('=', 0, all_variants)
self.check_variants_found_correctly('>=', 0, all_variants)
self.check_variants_found_correctly('<=', 0, all_variants)
self.check_variants_found_correctly('>', 0, no_variants)
self.check_variants_found_correctly('<', 0, no_variants)
self.check_variants_found_correctly('!=', 0, no_variants)
self.check_template_found_correctly('=', 0, self.templateAB)
self.check_template_found_correctly('>=', 0, self.templateAB)
self.check_template_found_correctly('<=', 0, self.templateAB)
self.check_template_found_correctly('>', 0, no_template)
self.check_template_found_correctly('<', 0, no_template)
self.check_template_found_correctly('!=', 0, no_template)
self.pickingInA.button_validate()
# product A has 2 unreserved stock, other variants have 0
self.check_variants_found_correctly('=', 2, self.productA)
self.check_variants_found_correctly('=', 0, b_and_c)
self.check_variants_found_correctly('>', 0, self.productA)
self.check_variants_found_correctly('<', 0, no_variants)
self.check_variants_found_correctly('!=', 0, self.productA)
self.check_variants_found_correctly('!=', 1, all_variants)
self.check_variants_found_correctly('!=', 2, b_and_c)
self.check_variants_found_correctly('<=', 0, b_and_c)
self.check_variants_found_correctly('<=', 1, b_and_c)
self.check_variants_found_correctly('>=', 0, all_variants)
self.check_variants_found_correctly('>=', 1, self.productA)
self.check_template_found_correctly('=', 0, self.templateAB)
self.check_template_found_correctly('=', 1, no_template)
self.check_template_found_correctly('=', 2, self.templateAB)
self.check_template_found_correctly('!=', 0, self.templateAB)
self.check_template_found_correctly('!=', 1, self.templateAB)
self.check_template_found_correctly('!=', 2, self.templateAB)
self.check_template_found_correctly('>', -1, self.templateAB)
self.check_template_found_correctly('>', 0, self.templateAB)
self.check_template_found_correctly('>', 1, self.templateAB)
self.check_template_found_correctly('>', 2, no_template)
self.check_template_found_correctly('<', 3, self.templateAB)
self.check_template_found_correctly('<', 2, self.templateAB)
self.check_template_found_correctly('<', 1, self.templateAB)
self.check_template_found_correctly('<', 0, no_template)
self.check_template_found_correctly('>=', 0, self.templateAB)
self.check_template_found_correctly('>=', 1, self.templateAB)
self.check_template_found_correctly('>=', 2, self.templateAB)
self.check_template_found_correctly('>=', 3, no_template)
self.check_template_found_correctly('<=', 3, self.templateAB)
self.check_template_found_correctly('<=', 2, self.templateAB)
self.check_template_found_correctly('<=', 1, self.templateAB)
self.check_template_found_correctly('<=', 0, self.templateAB)
self.check_template_found_correctly('<=', -1, no_template)
self.pickingInB.action_done()
# product A has 2 unreserved, product B has 3 unreserved and
# the remaining variant has 0
self.check_variants_found_correctly('=', 2, self.productA)
self.check_variants_found_correctly('=', 3, self.productB)
self.check_variants_found_correctly('=', 0, self.productC)
self.check_variants_found_correctly('>', 0, a_and_b)
self.check_variants_found_correctly('<', 0, no_variants)
self.check_variants_found_correctly('!=', 0, a_and_b)
self.check_variants_found_correctly('!=', 1, all_variants)
self.check_variants_found_correctly('!=', 2, b_and_c)
self.check_variants_found_correctly('!=', 3, a_and_c)
self.check_variants_found_correctly('<=', 0, self.productC)
self.check_variants_found_correctly('<=', 1, self.productC)
self.check_variants_found_correctly('>=', 0, all_variants)
self.check_variants_found_correctly('>=', 1, a_and_b)
self.check_variants_found_correctly('>=', 2, a_and_b)
self.check_variants_found_correctly('>=', 3, self.productB)
self.check_variants_found_correctly('>=', 4, no_variants)
self.check_template_found_correctly('=', 0, self.templateAB)
self.check_template_found_correctly('=', 1, no_template)
self.check_template_found_correctly('=', 2, self.templateAB)
self.check_template_found_correctly('=', 3, self.templateAB)
self.check_template_found_correctly('!=', 0, self.templateAB)
self.check_template_found_correctly('!=', 2, self.templateAB)
self.check_template_found_correctly('!=', 3, self.templateAB)
self.check_template_found_correctly('>', 1, self.templateAB)
self.check_template_found_correctly('>', 2, self.templateAB)
# This part may seem a bit unintuitive, but this is the
# way it works in the Odoo core
# Searches are "deferred" to the variants, so while the template says
# it has a stock of 5, searching for a stock greater than 3 will not
# find anything because no singular variant has a higher stock
self.check_template_found_correctly('>', 3, no_template)
self.check_template_found_correctly('<', 3, self.templateAB)
self.check_template_found_correctly('<', 2, self.templateAB)
self.check_template_found_correctly('<', 1, self.templateAB)
self.check_template_found_correctly('<', 0, no_template)

View File

@@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_stock_product_template_tree" model="ir.ui.view">
<field name="name">product.template.stock.tree.inherit</field>
<field name="model">product.template</field>
<field name="inherit_id"
ref="stock.view_stock_product_template_tree"/>
<field name="arch" type="xml">
<field name="qty_available" position="after">
<field name="qty_available_not_res"/>
</field>
</field>
</record>
<record id="product_template_search_form_view_stock" model="ir.ui.view">
<field name="name">product.template.search.stock.form.inherit</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="stock.product_template_search_form_view_stock"/>
<field name="arch" type="xml">
<filter name="real_stock_available" position="after">
<filter name="real_stock_unreserved" string="Reservable Products" domain="[('qty_available_not_res','&gt;',0)]"/>
</filter>
</field>
</record>
<record model="ir.ui.view" id="product_template_kanban_stock_view">
<field name="name">Product Template Kanban Stock</field>
<field name="model">product.template</field>
<field name="inherit_id"
ref="stock.product_template_kanban_stock_view"/>
<field name="arch" type="xml">
<ul position="inside">
<li t-if="record.type.raw_value == 'product'">Unreserved: <field name="qty_available_not_res"/> <field name="uom_id"/></li>
</ul>
</field>
</record>
<record id="view_stock_product_tree" model="ir.ui.view">
<field name="name">product.stock.tree.inherit</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="stock.view_stock_product_tree"/>
<field name="arch" type="xml">
<field name="qty_available" position="after">
<field name="qty_available_not_res"/>
</field>
</field>
</record>
<record model="ir.ui.view" id="product_template_form_view_procurement_button">
<field name="name">product.template_procurement</field>
<field name="model">product.template</field>
<field name="inherit_id"
ref="stock.product_template_form_view_procurement_button"/>
<field name="arch" type="xml">
<div name="button_box" position="inside">
<button type="object"
name="action_open_quants_unreserved"
attrs="{'invisible':[('type', '!=', 'product')]}"
class="oe_stat_button" icon="fa-building-o">
<field name="qty_available_not_res" widget="statinfo"
string="Unreserved"/>
</button>
</div>
</field>
</record>
<record model="ir.ui.view" id="product_form_view_procurement_button">
<field name="name">product.product.procurement</field>
<field name="model">product.product</field>
<field name="inherit_id"
ref="stock.product_form_view_procurement_button"/>
<field name="arch" type="xml">
<div name="button_box" position="inside">
<button class="oe_stat_button"
name="%(product_open_quants_unreserved)d"
icon="fa-building-o"
type="action" attrs="{'invisible':[('type', '!=', 'product')]}">
<field name="qty_available_not_res" widget="statinfo"
string="Unreserved"/>
</button>
</div>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="quant_search_view" model="ir.ui.view">
<field name="name">stock.quant.search</field>
<field name="model">stock.quant</field>
<field name="inherit_id" ref="stock.quant_search_view"/>
<field eval="10" name="priority"/>
<field name="arch" type="xml">
<field name="owner_id" position="after">
<field name="contains_unreserved"/>
</field>
<filter name="internal_loc" position="after">
<filter name='internal_unreserved'
string="Internal Unreserved"
domain="[('contains_unreserved','=', True), ('location_id.usage','=', 'internal')]"/>
</filter>
</field>
</record>
<record model="ir.actions.act_window"
id="product_open_quants_unreserved">
<field name="name">Stock On Hand (Unreserved)</field>
<field name="context">{'search_default_internal_loc': 1, 'search_default_locationgroup':1}</field>
<field name="domain">[('product_id', '=', active_id), ('contains_unreserved', '=', True)]</field>
<field name="res_model">stock.quant</field>
</record>
</odoo>