diff --git a/stock_quant_manual_assign/README.rst b/stock_quant_manual_assign/README.rst new file mode 100644 index 000000000..fe1a4c10a --- /dev/null +++ b/stock_quant_manual_assign/README.rst @@ -0,0 +1,60 @@ +.. 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 + +=========================== +Manual assignment of quants +=========================== + +With this module, user can manually change the automatic selection of quants. + +Usage +===== + +To use this module, you need to: + +* You will able to select the quants from each stock.move. There will be a + button that opens a wizard directly from the move or from the picking. + +.. 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/8.0 + +Bug Tracker +=========== + +Bugs are tracked on `GitHub 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 +======= + +Contributors +------------ + +* Mikel Arregi +* Pedro M. Baeza +* Ana Juaristi +* Oihane Crucelaegui + +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. diff --git a/stock_quant_manual_assign/__init__.py b/stock_quant_manual_assign/__init__.py new file mode 100644 index 000000000..c1a24230c --- /dev/null +++ b/stock_quant_manual_assign/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +############################################################################## +# For copyright and license notices, see __openerp__.py file in root directory +############################################################################## +from . import models +from . import wizard diff --git a/stock_quant_manual_assign/__openerp__.py b/stock_quant_manual_assign/__openerp__.py new file mode 100644 index 000000000..01fd0ca19 --- /dev/null +++ b/stock_quant_manual_assign/__openerp__.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# (c) 2015 Mikel Arregi - AvanzOSC +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +{ + "name": "Stock - Manual assignment of quants", + "version": "8.0.1.0.0", + "category": "Warehouse Management", + "license": "AGPL-3", + "author": "OdooMRP team, " + "AvanzOSC, " + "Serv. Tecnol. Avanzados - Pedro M. Baeza, " + "Odoo Community Association (OCA)", + "website": "http://www.odoomrp.com", + "contributors": [ + "Mikel Arregi ", + "Ana Juaristi Olalde ", + "Pedro Manuel Baeza Romero " + "Oihane Crucelaegui ", + ], + "depends": [ + "stock", + ], + "data": [ + "wizard/assign_manual_quants_view.xml", + "views/stock_move_view.xml", + ], + "installable": False, +} diff --git a/stock_quant_manual_assign/i18n/de.po b/stock_quant_manual_assign/i18n/de.po new file mode 100644 index 000000000..3bd276aa0 --- /dev/null +++ b/stock_quant_manual_assign/i18n/de.po @@ -0,0 +1,131 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * stock_quant_manual_assign +# +# Translators: +# Rudolf Schnapka , 2016 +msgid "" +msgstr "" +"Project-Id-Version: stock-logistics-warehouse (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-01-14 01:38+0000\n" +"PO-Revision-Date: 2016-01-14 09:52+0000\n" +"Last-Translator: Rudolf Schnapka \n" +"Language-Team: German (http://www.transifex.com/oca/OCA-stock-logistics-warehouse-8-0/language/de/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "Cancel" +msgstr "Abbrechen" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "Confirm" +msgstr "Bestätigen" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,create_uid:0 +#: field:assign.manual.quants.lines,create_uid:0 +msgid "Created by" +msgstr "Angelegt durch" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,create_date:0 +#: field:assign.manual.quants.lines,create_date:0 +msgid "Created on" +msgstr "Angelegt am" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,id:0 field:assign.manual.quants.lines,id:0 +msgid "ID" +msgstr "ID" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,write_uid:0 +#: field:assign.manual.quants.lines,write_uid:0 +msgid "Last Updated by" +msgstr "Zuletzt aktualisiert durch" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,write_date:0 +#: field:assign.manual.quants.lines,write_date:0 +msgid "Last Updated on" +msgstr "Zuletzt aktualisiert am" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +#: view:stock.move:stock_quant_manual_assign.stock_move_manual_quants_form_view +#: view:stock.move:stock_quant_manual_assign.stock_move_manual_quants_picking_form_view +msgid "Manual Quants" +msgstr "Manuelle Quants" + +#. module: stock_quant_manual_assign +#: model:ir.actions.act_window,name:stock_quant_manual_assign.assign_manual_quants_action +msgid "Manual quants" +msgstr "Manuelle Quants" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,assign_wizard:0 +msgid "Move" +msgstr "Umlagern" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,name:0 +msgid "Name" +msgstr "Bezeichnung" + +#. module: stock_quant_manual_assign +#: model:ir.model,name:stock_quant_manual_assign.model_stock_picking +msgid "Picking List" +msgstr "Kommissionierung" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,qty:0 +msgid "QTY" +msgstr "Menge" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,quant:0 +msgid "Quant" +msgstr "Quant" + +#. module: stock_quant_manual_assign +#: code:addons/stock_quant_manual_assign/wizard/assign_manual_quants.py:22 +#, python-format +msgid "Quantity is higher than the needed one" +msgstr "Menge ist größer als der Bedarf" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,quants_lines:0 +msgid "Quants" +msgstr "Quants" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,selected:0 +msgid "Select" +msgstr "Auswahl" + +#. module: stock_quant_manual_assign +#: model:ir.model,name:stock_quant_manual_assign.model_stock_move +msgid "Stock Move" +msgstr "Lagerbuchung" + +#. module: stock_quant_manual_assign +#: field:stock.move,picking_type_code:0 +msgid "Type of Operation" +msgstr "Vorgangsart" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "or" +msgstr "oder" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "qty" +msgstr "Menge" diff --git a/stock_quant_manual_assign/i18n/en.po b/stock_quant_manual_assign/i18n/en.po new file mode 100644 index 000000000..7068b8400 --- /dev/null +++ b/stock_quant_manual_assign/i18n/en.po @@ -0,0 +1,130 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * stock_quant_manual_assign +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: stock-logistics-warehouse (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-10-24 09:07+0000\n" +"PO-Revision-Date: 2015-10-24 09:08+0000\n" +"Last-Translator: OCA Transbot \n" +"Language-Team: English (http://www.transifex.com/oca/OCA-stock-logistics-warehouse-8-0/language/en/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: en\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "Cancel" +msgstr "Cancel" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "Confirm" +msgstr "Confirm" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,create_uid:0 +#: field:assign.manual.quants.lines,create_uid:0 +msgid "Created by" +msgstr "Created by" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,create_date:0 +#: field:assign.manual.quants.lines,create_date:0 +msgid "Created on" +msgstr "Created on" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,id:0 field:assign.manual.quants.lines,id:0 +msgid "ID" +msgstr "ID" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,write_uid:0 +#: field:assign.manual.quants.lines,write_uid:0 +msgid "Last Updated by" +msgstr "Last Updated by" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,write_date:0 +#: field:assign.manual.quants.lines,write_date:0 +msgid "Last Updated on" +msgstr "Last Updated on" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +#: view:stock.move:stock_quant_manual_assign.stock_move_manual_quants_form_view +#: view:stock.move:stock_quant_manual_assign.stock_move_manual_quants_picking_form_view +msgid "Manual Quants" +msgstr "Manual Quants" + +#. module: stock_quant_manual_assign +#: model:ir.actions.act_window,name:stock_quant_manual_assign.assign_manual_quants_action +msgid "Manual quants" +msgstr "Manual quants" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,assign_wizard:0 +msgid "Move" +msgstr "Move" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,name:0 +msgid "Name" +msgstr "Name" + +#. module: stock_quant_manual_assign +#: model:ir.model,name:stock_quant_manual_assign.model_stock_picking +msgid "Picking List" +msgstr "Picking List" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,qty:0 +msgid "QTY" +msgstr "QTY" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,quant:0 +msgid "Quant" +msgstr "Quant" + +#. module: stock_quant_manual_assign +#: code:addons/stock_quant_manual_assign/wizard/assign_manual_quants.py:22 +#, python-format +msgid "Quantity is higher than the needed one" +msgstr "Quantity is higher than the needed one" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,quants_lines:0 +msgid "Quants" +msgstr "Quants" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,selected:0 +msgid "Select" +msgstr "Select" + +#. module: stock_quant_manual_assign +#: model:ir.model,name:stock_quant_manual_assign.model_stock_move +msgid "Stock Move" +msgstr "Stock Move" + +#. module: stock_quant_manual_assign +#: field:stock.move,picking_type_code:0 +msgid "Type of Operation" +msgstr "Type of Operation" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "or" +msgstr "or" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "qty" +msgstr "qty" diff --git a/stock_quant_manual_assign/i18n/es.po b/stock_quant_manual_assign/i18n/es.po new file mode 100644 index 000000000..d1433b2bd --- /dev/null +++ b/stock_quant_manual_assign/i18n/es.po @@ -0,0 +1,131 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * stock_quant_manual_assign +# +# Translators: +# Antonio Trueba, 2016 +msgid "" +msgstr "" +"Project-Id-Version: stock-logistics-warehouse (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-01-14 01:38+0000\n" +"PO-Revision-Date: 2016-02-10 16:37+0000\n" +"Last-Translator: Antonio Trueba\n" +"Language-Team: Spanish (http://www.transifex.com/oca/OCA-stock-logistics-warehouse-8-0/language/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "Cancel" +msgstr "Cancelar" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "Confirm" +msgstr "Confirmar" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,create_uid:0 +#: field:assign.manual.quants.lines,create_uid:0 +msgid "Created by" +msgstr "Creado por" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,create_date:0 +#: field:assign.manual.quants.lines,create_date:0 +msgid "Created on" +msgstr "Creado el" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,id:0 field:assign.manual.quants.lines,id:0 +msgid "ID" +msgstr "ID" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,write_uid:0 +#: field:assign.manual.quants.lines,write_uid:0 +msgid "Last Updated by" +msgstr "Última actualización por" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,write_date:0 +#: field:assign.manual.quants.lines,write_date:0 +msgid "Last Updated on" +msgstr "Última actualización el" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +#: view:stock.move:stock_quant_manual_assign.stock_move_manual_quants_form_view +#: view:stock.move:stock_quant_manual_assign.stock_move_manual_quants_picking_form_view +msgid "Manual Quants" +msgstr "Quants manuales" + +#. module: stock_quant_manual_assign +#: model:ir.actions.act_window,name:stock_quant_manual_assign.assign_manual_quants_action +msgid "Manual quants" +msgstr "Quants manuales" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,assign_wizard:0 +msgid "Move" +msgstr "Mover" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,name:0 +msgid "Name" +msgstr "Nombre" + +#. module: stock_quant_manual_assign +#: model:ir.model,name:stock_quant_manual_assign.model_stock_picking +msgid "Picking List" +msgstr "Albarán" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,qty:0 +msgid "QTY" +msgstr "Ctd." + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,quant:0 +msgid "Quant" +msgstr "Quant" + +#. module: stock_quant_manual_assign +#: code:addons/stock_quant_manual_assign/wizard/assign_manual_quants.py:22 +#, python-format +msgid "Quantity is higher than the needed one" +msgstr "La cantidad es mayor que la requerida" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,quants_lines:0 +msgid "Quants" +msgstr "Quants" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,selected:0 +msgid "Select" +msgstr "Seleccionar" + +#. module: stock_quant_manual_assign +#: model:ir.model,name:stock_quant_manual_assign.model_stock_move +msgid "Stock Move" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:stock.move,picking_type_code:0 +msgid "Type of Operation" +msgstr "Tipo de operación" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "or" +msgstr "o" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "qty" +msgstr "ctd." diff --git a/stock_quant_manual_assign/i18n/fi.po b/stock_quant_manual_assign/i18n/fi.po new file mode 100644 index 000000000..7578e1c46 --- /dev/null +++ b/stock_quant_manual_assign/i18n/fi.po @@ -0,0 +1,130 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * stock_quant_manual_assign +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: stock-logistics-warehouse (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-03-04 07:59+0000\n" +"PO-Revision-Date: 2015-10-24 09:08+0000\n" +"Last-Translator: <>\n" +"Language-Team: Finnish (http://www.transifex.com/oca/OCA-stock-logistics-warehouse-8-0/language/fi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fi\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "Cancel" +msgstr "Peruuta" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "Confirm" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,create_uid:0 +#: field:assign.manual.quants.lines,create_uid:0 +msgid "Created by" +msgstr "Luonut" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,create_date:0 +#: field:assign.manual.quants.lines,create_date:0 +msgid "Created on" +msgstr "Luotu" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,id:0 field:assign.manual.quants.lines,id:0 +msgid "ID" +msgstr "ID" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,write_uid:0 +#: field:assign.manual.quants.lines,write_uid:0 +msgid "Last Updated by" +msgstr "Viimeksi päivittänyt" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,write_date:0 +#: field:assign.manual.quants.lines,write_date:0 +msgid "Last Updated on" +msgstr "Viimeksi päivitetty" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +#: view:stock.move:stock_quant_manual_assign.stock_move_manual_quants_form_view +#: view:stock.move:stock_quant_manual_assign.stock_move_manual_quants_picking_form_view +msgid "Manual Quants" +msgstr "" + +#. module: stock_quant_manual_assign +#: model:ir.actions.act_window,name:stock_quant_manual_assign.assign_manual_quants_action +msgid "Manual quants" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,assign_wizard:0 +msgid "Move" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,name:0 +msgid "Name" +msgstr "" + +#. module: stock_quant_manual_assign +#: model:ir.model,name:stock_quant_manual_assign.model_stock_picking +msgid "Picking List" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,qty:0 +msgid "QTY" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,quant:0 +msgid "Quant" +msgstr "" + +#. module: stock_quant_manual_assign +#: code:addons/stock_quant_manual_assign/wizard/assign_manual_quants.py:22 +#, python-format +msgid "Quantity is higher than the needed one" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,quants_lines:0 +msgid "Quants" +msgstr "Määrät" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,selected:0 +msgid "Select" +msgstr "" + +#. module: stock_quant_manual_assign +#: model:ir.model,name:stock_quant_manual_assign.model_stock_move +msgid "Stock Move" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:stock.move,picking_type_code:0 +msgid "Type of Operation" +msgstr "" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "or" +msgstr "tai" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "qty" +msgstr "" diff --git a/stock_quant_manual_assign/i18n/fr.po b/stock_quant_manual_assign/i18n/fr.po new file mode 100644 index 000000000..94d19ddb7 --- /dev/null +++ b/stock_quant_manual_assign/i18n/fr.po @@ -0,0 +1,126 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * stock_quant_manual_assign +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: odoomrp-wip (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-10-07 10:45+0000\n" +"PO-Revision-Date: 2015-09-10 16:41+0000\n" +"Last-Translator: <>\n" +"Language-Team: French (http://www.transifex.com/oca/odoomrp-wip-8-0/language/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "Cancel" +msgstr "Annuler" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "Confirm" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,create_uid:0 +#: field:assign.manual.quants.lines,create_uid:0 +msgid "Created by" +msgstr "Créé par" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,create_date:0 +#: field:assign.manual.quants.lines,create_date:0 +msgid "Created on" +msgstr "Créé le" + +#. module: stock_quant_manual_assign +#: code:addons/stock_quant_manual_assign/wizard/assign_manual_quants.py:25 +#, python-format +msgid "Error" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,id:0 field:assign.manual.quants.lines,id:0 +msgid "ID" +msgstr "Id." + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,write_uid:0 +#: field:assign.manual.quants.lines,write_uid:0 +msgid "Last Updated by" +msgstr "Mis à jour par" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,write_date:0 +#: field:assign.manual.quants.lines,write_date:0 +msgid "Last Updated on" +msgstr "Mis à jour le" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +#: view:stock.move:stock_quant_manual_assign.stock_move_manual_quants_form_view +#: view:stock.move:stock_quant_manual_assign.stock_move_manual_quants_picking_form_view +msgid "Manual Quants" +msgstr "" + +#. module: stock_quant_manual_assign +#: model:ir.actions.act_window,name:stock_quant_manual_assign.assign_manual_quants_action +msgid "Manual quants" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,assign_wizard:0 +msgid "Move" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,name:0 +msgid "Name" +msgstr "" + +#. module: stock_quant_manual_assign +#: model:ir.model,name:stock_quant_manual_assign.model_stock_picking +msgid "Picking List" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,qty:0 +msgid "QTY" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,quant:0 +msgid "Quant" +msgstr "" + +#. module: stock_quant_manual_assign +#: code:addons/stock_quant_manual_assign/wizard/assign_manual_quants.py:26 +#, python-format +msgid "Quantity is higher than the needed one" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,quants_lines:0 +msgid "Quants" +msgstr "Quants" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,selected:0 +msgid "Select" +msgstr "" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "or" +msgstr "ou" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "qty" +msgstr "" diff --git a/stock_quant_manual_assign/i18n/pt_BR.po b/stock_quant_manual_assign/i18n/pt_BR.po new file mode 100644 index 000000000..3bd0a7490 --- /dev/null +++ b/stock_quant_manual_assign/i18n/pt_BR.po @@ -0,0 +1,131 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * stock_quant_manual_assign +# +# Translators: +# danimaribeiro , 2015 +msgid "" +msgstr "" +"Project-Id-Version: stock-logistics-warehouse (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-10-24 09:07+0000\n" +"PO-Revision-Date: 2015-10-24 09:08+0000\n" +"Last-Translator: OCA Transbot \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-stock-logistics-warehouse-8-0/language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "Cancel" +msgstr "Cancelar" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "Confirm" +msgstr "Confirmar" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,create_uid:0 +#: field:assign.manual.quants.lines,create_uid:0 +msgid "Created by" +msgstr "Criado por" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,create_date:0 +#: field:assign.manual.quants.lines,create_date:0 +msgid "Created on" +msgstr "Criado em" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,id:0 field:assign.manual.quants.lines,id:0 +msgid "ID" +msgstr "ID" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,write_uid:0 +#: field:assign.manual.quants.lines,write_uid:0 +msgid "Last Updated by" +msgstr "Última atualização por" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,write_date:0 +#: field:assign.manual.quants.lines,write_date:0 +msgid "Last Updated on" +msgstr "Última atualização em" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +#: view:stock.move:stock_quant_manual_assign.stock_move_manual_quants_form_view +#: view:stock.move:stock_quant_manual_assign.stock_move_manual_quants_picking_form_view +msgid "Manual Quants" +msgstr "" + +#. module: stock_quant_manual_assign +#: model:ir.actions.act_window,name:stock_quant_manual_assign.assign_manual_quants_action +msgid "Manual quants" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,assign_wizard:0 +msgid "Move" +msgstr "Movimentações" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,name:0 +msgid "Name" +msgstr "Nome" + +#. module: stock_quant_manual_assign +#: model:ir.model,name:stock_quant_manual_assign.model_stock_picking +msgid "Picking List" +msgstr "Lista de separação" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,qty:0 +msgid "QTY" +msgstr "QTD" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,quant:0 +msgid "Quant" +msgstr "Quant" + +#. module: stock_quant_manual_assign +#: code:addons/stock_quant_manual_assign/wizard/assign_manual_quants.py:22 +#, python-format +msgid "Quantity is higher than the needed one" +msgstr "Quantidade é maior que o necessário" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,quants_lines:0 +msgid "Quants" +msgstr "Quants" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,selected:0 +msgid "Select" +msgstr "Selecione" + +#. module: stock_quant_manual_assign +#: model:ir.model,name:stock_quant_manual_assign.model_stock_move +msgid "Stock Move" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:stock.move,picking_type_code:0 +msgid "Type of Operation" +msgstr "" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "or" +msgstr "ou" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "qty" +msgstr "qtd" diff --git a/stock_quant_manual_assign/i18n/sl.po b/stock_quant_manual_assign/i18n/sl.po new file mode 100644 index 000000000..52f6b36c4 --- /dev/null +++ b/stock_quant_manual_assign/i18n/sl.po @@ -0,0 +1,131 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * stock_quant_manual_assign +# +# Translators: +# Matjaž Mozetič , 2015 +msgid "" +msgstr "" +"Project-Id-Version: stock-logistics-warehouse (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-10-24 09:07+0000\n" +"PO-Revision-Date: 2015-10-25 07:18+0000\n" +"Last-Translator: Matjaž Mozetič \n" +"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-stock-logistics-warehouse-8-0/language/sl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sl\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "Cancel" +msgstr "Preklic" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "Confirm" +msgstr "Potrdi" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,create_uid:0 +#: field:assign.manual.quants.lines,create_uid:0 +msgid "Created by" +msgstr "Ustvaril" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,create_date:0 +#: field:assign.manual.quants.lines,create_date:0 +msgid "Created on" +msgstr "Ustvarjeno" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,id:0 field:assign.manual.quants.lines,id:0 +msgid "ID" +msgstr "ID" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,write_uid:0 +#: field:assign.manual.quants.lines,write_uid:0 +msgid "Last Updated by" +msgstr "Zadnji posodobil" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,write_date:0 +#: field:assign.manual.quants.lines,write_date:0 +msgid "Last Updated on" +msgstr "Zadnjič posodobljeno" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +#: view:stock.move:stock_quant_manual_assign.stock_move_manual_quants_form_view +#: view:stock.move:stock_quant_manual_assign.stock_move_manual_quants_picking_form_view +msgid "Manual Quants" +msgstr "Ročni kvanti" + +#. module: stock_quant_manual_assign +#: model:ir.actions.act_window,name:stock_quant_manual_assign.assign_manual_quants_action +msgid "Manual quants" +msgstr "Ročni kvanti" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,assign_wizard:0 +msgid "Move" +msgstr "Premik" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,name:0 +msgid "Name" +msgstr "Naziv" + +#. module: stock_quant_manual_assign +#: model:ir.model,name:stock_quant_manual_assign.model_stock_picking +msgid "Picking List" +msgstr "Zbirnik" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,qty:0 +msgid "QTY" +msgstr "KOL" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,quant:0 +msgid "Quant" +msgstr "Kvant" + +#. module: stock_quant_manual_assign +#: code:addons/stock_quant_manual_assign/wizard/assign_manual_quants.py:22 +#, python-format +msgid "Quantity is higher than the needed one" +msgstr "Količina je višja od potrebne" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,quants_lines:0 +msgid "Quants" +msgstr "Kvant" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,selected:0 +msgid "Select" +msgstr "Izbira" + +#. module: stock_quant_manual_assign +#: model:ir.model,name:stock_quant_manual_assign.model_stock_move +msgid "Stock Move" +msgstr "Premik zaloge" + +#. module: stock_quant_manual_assign +#: field:stock.move,picking_type_code:0 +msgid "Type of Operation" +msgstr "Tip operacije" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "or" +msgstr "ali" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "qty" +msgstr "kol" diff --git a/stock_quant_manual_assign/i18n/stock_quant_manual_assign.pot b/stock_quant_manual_assign/i18n/stock_quant_manual_assign.pot new file mode 100644 index 000000000..82af0a95c --- /dev/null +++ b/stock_quant_manual_assign/i18n/stock_quant_manual_assign.pot @@ -0,0 +1,128 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * stock_quant_manual_assign +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 8.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-10-01 12:46+0000\n" +"PO-Revision-Date: 2015-10-01 12:46+0000\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_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "Cancel" +msgstr "" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "Confirm" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,create_uid:0 +#: field:assign.manual.quants.lines,create_uid:0 +msgid "Created by" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,create_date:0 +#: field:assign.manual.quants.lines,create_date:0 +msgid "Created on" +msgstr "" + +#. module: stock_quant_manual_assign +#: code:addons/stock_quant_manual_assign/wizard/assign_manual_quants.py:21 +#: code:addons/stock_quant_manual_assign/wizard/assign_manual_quants.py:24 +#, python-format +msgid "Error" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,id:0 +#: field:assign.manual.quants.lines,id:0 +msgid "ID" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,write_uid:0 +#: field:assign.manual.quants.lines,write_uid:0 +msgid "Last Updated by" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,write_date:0 +#: field:assign.manual.quants.lines,write_date:0 +msgid "Last Updated on" +msgstr "" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +#: view:stock.move:stock_quant_manual_assign.stock_move_manual_quants_form_view +#: view:stock.move:stock_quant_manual_assign.stock_move_manual_quants_picking_form_view +msgid "Manual Quants" +msgstr "" + +#. module: stock_quant_manual_assign +#: model:ir.actions.act_window,name:stock_quant_manual_assign.assign_manual_quants_action +msgid "Manual quants" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,assign_wizard:0 +msgid "Move" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,name:0 +msgid "Name" +msgstr "" + +#. module: stock_quant_manual_assign +#: model:ir.model,name:stock_quant_manual_assign.model_stock_picking +msgid "Picking List" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,qty:0 +msgid "QTY" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,quant:0 +msgid "Quant" +msgstr "" + +#. module: stock_quant_manual_assign +#: code:addons/stock_quant_manual_assign/wizard/assign_manual_quants.py:22 +#: code:addons/stock_quant_manual_assign/wizard/assign_manual_quants.py:24 +#, python-format +msgid "Quantity is higher than the needed one" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants,quants_lines:0 +msgid "Quants" +msgstr "" + +#. module: stock_quant_manual_assign +#: field:assign.manual.quants.lines,selected:0 +msgid "Select" +msgstr "" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "or" +msgstr "" + +#. module: stock_quant_manual_assign +#: view:assign.manual.quants:stock_quant_manual_assign.assign_manual_quants_form_view +msgid "qty" +msgstr "" + diff --git a/stock_quant_manual_assign/models/__init__.py b/stock_quant_manual_assign/models/__init__.py new file mode 100644 index 000000000..2dbb95a28 --- /dev/null +++ b/stock_quant_manual_assign/models/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +############################################################################## +# For copyright and license notices, see __openerp__.py file in root directory +############################################################################## +from . import stock_picking diff --git a/stock_quant_manual_assign/models/stock_picking.py b/stock_quant_manual_assign/models/stock_picking.py new file mode 100644 index 000000000..da3f07761 --- /dev/null +++ b/stock_quant_manual_assign/models/stock_picking.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# (c) 2015 Mikel Arregi - AvanzOSC +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from openerp import api, fields, models + + +class StockPicking(models.Model): + _inherit = 'stock.picking' + + @api.multi + def action_assign(self): + # This is to assure that stock.pack.operation are reprocessed + self.mapped('pack_operation_ids').unlink() + return super(StockPicking, self).action_assign() + + +class StockMove(models.Model): + _inherit = 'stock.move' + + picking_type_code = fields.Selection( + related='picking_type_id.code', store=True) diff --git a/stock_quant_manual_assign/tests/__init__.py b/stock_quant_manual_assign/tests/__init__.py new file mode 100644 index 000000000..ba4c7dd5c --- /dev/null +++ b/stock_quant_manual_assign/tests/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# (c) 2015 Oihane Crucelaegui - AvanzOSC +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from . import test_stock_quant_manual_assign diff --git a/stock_quant_manual_assign/tests/test_stock_quant_manual_assign.py b/stock_quant_manual_assign/tests/test_stock_quant_manual_assign.py new file mode 100644 index 000000000..7c4cf3d91 --- /dev/null +++ b/stock_quant_manual_assign/tests/test_stock_quant_manual_assign.py @@ -0,0 +1,128 @@ +# -*- coding: utf-8 -*- +# (c) 2015 Oihane Crucelaegui - AvanzOSC +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +import openerp.tests.common as common +from openerp import exceptions + + +class TestStockQuantManualAssign(common.TransactionCase): + + def setUp(self): + super(TestStockQuantManualAssign, self).setUp() + self.quant_model = self.env['stock.quant'] + self.move_model = self.env['stock.move'] + self.quant_assign_wizard = self.env['assign.manual.quants'] + self.product = self.env['product.product'].create({ + 'name': 'Product 4 test', + 'type': 'product', + }) + self.location_src = self.env.ref( + 'stock.stock_location_locations_virtual') + self.location_dst = self.env.ref('stock.stock_location_customers') + self.location1 = self.env.ref('stock.location_inventory') + self.location2 = self.env.ref('stock.location_procurement') + self.location3 = self.env.ref('stock.location_production') + self.quant1 = self.quant_model.sudo().create({ + 'product_id': self.product.id, + 'qty': 100.0, + 'location_id': self.location1.id, + }) + self.quant2 = self.quant_model.sudo().create({ + 'product_id': self.product.id, + 'qty': 100.0, + 'location_id': self.location2.id, + }) + self.quant3 = self.quant_model.sudo().create({ + 'product_id': self.product.id, + 'qty': 100.0, + 'location_id': self.location3.id, + }) + self.move = self.move_model.create({ + 'name': self.product.name, + 'product_id': self.product.id, + 'product_uom_qty': 400.0, + 'product_uom': self.product.uom_id.id, + 'location_id': self.location_src.id, + 'location_dest_id': self.location_dst.id, + }) + self.move.action_confirm() + + def test_quant_assign_wizard(self): + wizard = self.quant_assign_wizard.with_context( + active_id=self.move.id).create({ + 'name': 'New wizard', + }) + self.assertEqual(len(wizard.quants_lines.ids), 3, + 'Three quants created, three quants got by default') + self.assertEqual(len(wizard.quants_lines.filtered('selected').ids), 0, + 'None of the quants must have been selected') + self.assertEqual(wizard.lines_qty, 0.0, + 'None selected must give 0') + for line in wizard.quants_lines: + if line.quant in self.move.reserved_quant_ids: + self.assertTrue(line.selected) + else: + self.assertFalse(line.selected) + self.assertEqual(wizard.move_qty, self.move.product_uom_qty) + + def test_quant_assign_wizard_constraint(self): + wizard = self.quant_assign_wizard.with_context( + active_id=self.move.id).create({ + 'name': 'New wizard', + }) + self.assertEqual(len(wizard.quants_lines.ids), 3, + 'Three quants created, three quants got by default') + self.assertEqual(len(wizard.quants_lines.filtered('selected').ids), 0, + 'None of the quants must have been selected') + self.assertEqual(wizard.lines_qty, 0.0, + 'None selected must give 0') + with self.assertRaises(exceptions.ValidationError): + wizard.write({'quants_lines': [(1, wizard.quants_lines[:1].id, + {'selected': True, 'qty': 500})]}) + + def test_quant_manual_assign(self): + wizard = self.quant_assign_wizard.with_context( + active_id=self.move.id).create({ + 'name': 'New wizard', + }) + self.assertEqual(len(wizard.quants_lines.ids), 3, + 'Three quants created, three quants got by default') + wizard.quants_lines[0].write({ + 'selected': True, + }) + wizard.quants_lines[0].onchange_selected() + wizard.quants_lines[1].write({ + 'selected': True, + 'qty': 50.0, + }) + self.assertEqual(wizard.lines_qty, 150.0) + self.assertEqual(wizard.move_qty, 250.0) + wizard.assign_quants() + self.assertEqual(len(wizard.quants_lines.filtered('selected')), + len(self.move.reserved_quant_ids)) + selected_quants = wizard.quants_lines.filtered( + 'selected').mapped('quant') + self.assertEqual( + sum(self.move.reserved_quant_ids.mapped('qty')), + wizard.lines_qty) + for quant in self.move.reserved_quant_ids: + self.assertTrue(quant in selected_quants) + + def test_quant_assign_wizard_after_availability_check(self): + self.move.action_assign() + wizard = self.quant_assign_wizard.with_context( + active_id=self.move.id).create({ + 'name': 'New wizard', + }) + self.assertEqual(len(wizard.quants_lines.ids), 3, + 'Three quants created, three quants got by default') + self.assertEqual(len(wizard.quants_lines.filtered('selected').ids), 3, + 'All the quants must have been selected') + self.assertEqual(wizard.lines_qty, 300.0) + self.assertEqual(wizard.move_qty, 100.0) + for line in wizard.quants_lines: + if line.quant in self.move.reserved_quant_ids: + self.assertTrue(line.selected) + else: + self.assertFalse(line.selected) diff --git a/stock_quant_manual_assign/views/stock_move_view.xml b/stock_quant_manual_assign/views/stock_move_view.xml new file mode 100644 index 000000000..9ca960682 --- /dev/null +++ b/stock_quant_manual_assign/views/stock_move_view.xml @@ -0,0 +1,36 @@ + + + + + stock.move.form + stock.move + + + + + + + + + + + stock.move.form + stock.move + + + + + + + + + + diff --git a/stock_quant_manual_assign/wizard/__init__.py b/stock_quant_manual_assign/wizard/__init__.py new file mode 100644 index 000000000..a7dec37e7 --- /dev/null +++ b/stock_quant_manual_assign/wizard/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +############################################################################## +# For copyright and license notices, see __openerp__.py file in root directory +############################################################################## +from . import assign_manual_quants diff --git a/stock_quant_manual_assign/wizard/assign_manual_quants.py b/stock_quant_manual_assign/wizard/assign_manual_quants.py new file mode 100644 index 000000000..34d774552 --- /dev/null +++ b/stock_quant_manual_assign/wizard/assign_manual_quants.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +# (c) 2015 Mikel Arregi - AvanzOSC +# (c) 2015 Oihane Crucelaegui - AvanzOSC +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from openerp import api, exceptions, fields, models, _ +import openerp.addons.decimal_precision as dp + + +class AssignManualQuants(models.TransientModel): + _name = 'assign.manual.quants' + + @api.multi + @api.constrains('quants_lines') + def check_qty(self): + for record in self: + if record.quants_lines: + move = self.env['stock.move'].browse( + self.env.context['active_id']) + if record.lines_qty > move.product_uom_qty: + raise exceptions.Warning( + _('Quantity is higher than the needed one')) + + @api.depends('quants_lines', 'quants_lines.qty') + def _compute_qties(self): + move = self.env['stock.move'].browse(self.env.context['active_id']) + lines_qty = sum(self.quants_lines.mapped('qty')) + self.lines_qty = lines_qty + self.move_qty = move.product_uom_qty - lines_qty + + name = fields.Char(string='Name') + lines_qty = fields.Float( + string='Reserved qty', compute='_compute_qties', + digits=dp.get_precision('Product Unit of Measure')) + move_qty = fields.Float(string='Remaining qty', compute='_compute_qties', + digits=dp.get_precision('Product Unit of Measure')) + quants_lines = fields.One2many('assign.manual.quants.lines', + 'assign_wizard', string='Quants') + + @api.multi + def assign_quants(self): + move = self.env['stock.move'].browse(self.env.context['active_id']) + move.picking_id.mapped('pack_operation_ids').unlink() + quants = [] + for quant_id in move.reserved_quant_ids.ids: + move.write({'reserved_quant_ids': [[3, quant_id]]}) + for line in self.quants_lines: + if line.selected: + quants.append([line.quant, line.qty]) + self.pool['stock.quant'].quants_reserve( + self.env.cr, self.env.uid, quants, move, context=self.env.context) + return {} + + @api.model + def default_get(self, var_fields): + super(AssignManualQuants, self).default_get(var_fields) + move = self.env['stock.move'].browse(self.env.context['active_id']) + available_quants = self.env['stock.quant'].search([ + ('location_id', 'child_of', move.location_id.id), + ('product_id', '=', move.product_id.id), + ('qty', '>', 0), + '|', + ('reservation_id', '=', False), + ('reservation_id', '=', move.id) + ]) + quants_lines = [{ + 'quant': x.id, + 'lot_id': x.lot_id.id, + 'package_id': x.package_id.id, + 'selected': x in move.reserved_quant_ids, + 'qty': x.qty if x in move.reserved_quant_ids else 0, + 'location_id': x.location_id.id, + } for x in available_quants] + return {'quants_lines': quants_lines} + + +class AssignManualQuantsLines(models.TransientModel): + _name = 'assign.manual.quants.lines' + _rec_name = 'quant' + + @api.multi + @api.onchange('selected') + def onchange_selected(self): + for record in self: + if not record.selected: + record.qty = False + elif not record.qty: + quant_qty = record.quant.qty + remaining_qty = record.assign_wizard.move_qty + record.qty = (quant_qty if quant_qty < remaining_qty else + remaining_qty) + + assign_wizard = fields.Many2one( + comodel_name='assign.manual.quants', string='Move', required=True, + ondelete='cascade') + quant = fields.Many2one( + comodel_name='stock.quant', string='Quant', required=True, + ondelete='cascade') + location_id = fields.Many2one( + comodel_name='stock.location', string='Location', + related='quant.location_id', readonly=True) + lot_id = fields.Many2one( + comodel_name='stock.production.lot', string='Lot', + related='quant.lot_id', readonly=True, + groups="stock.group_production_lot") + package_id = fields.Many2one( + comodel_name='stock.quant.package', string='Package', + related='quant.package_id', readonly=True, + groups="stock.group_tracking_lot") + qty = fields.Float( + string='QTY', digits=dp.get_precision('Product Unit of Measure')) + selected = fields.Boolean(string='Select') diff --git a/stock_quant_manual_assign/wizard/assign_manual_quants_view.xml b/stock_quant_manual_assign/wizard/assign_manual_quants_view.xml new file mode 100644 index 000000000..4bb27c1b0 --- /dev/null +++ b/stock_quant_manual_assign/wizard/assign_manual_quants_view.xml @@ -0,0 +1,38 @@ + + + + + assign.manual.quants.form + assign.manual.quants + +
+ + + + + + + + + + + + + + +
+
+
+
+
+ + +
+