[MIG] stock_quant_manual_assign: Migration to 10.0

This commit is contained in:
Fanha Giang
2017-07-26 15:29:25 +07:00
committed by Alexis de Lattre
parent 88b3271e8e
commit 85e0c8c695
22 changed files with 1357 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
:alt: License: AGPL-3
===============================
Stock - Manual Quant Assignment
===============================
This module allows you to manually change the automatic quant selection.
Usage
=====
To use this module, you need to:
#. Select a stock move or a stock picking.
#. Click on the tab "Initial Demand".
#. Click on the line which you need to select quants.
#. Open the wizard with the button "Manual Quants".
#. Select the quants to assign (reserve), then Confirm.
#. Close the stock move line windows (which is popup by step 3).
#. Click on the tab "Operations"
#. Click on the "Recompute" to update the stock move info.
.. 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/10.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
------------
* Mikel Arregi <mikelarregi@avanzosc.es>
* Pedro M. Baeza <pedro.baeza@tecnativa.com>
* Ana Juaristi <anajuaristi@avanzosc.es>
* Oihane Crucelaegui <oihanecrucelaegi@avanzosc.es>
* Fanha Giang <fanha99@hotmail.com>
Maintainer
----------
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
To contribute to this module, please visit https://odoo-community.org.

View File

@@ -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

View File

@@ -0,0 +1,26 @@
# -*- coding: utf-8 -*-
# Copyright 2015 Mikel Arregi - AvanzOSC
# Copyright 2016 Tecnativa - Pedro M. Baeza
# Copyright 2017 Eficent - Jordi Ballester
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
{
"name": "Stock - Manual Quant Assignment",
"version": "10.0.1.0.0",
"category": "Warehouse Management",
"license": "AGPL-3",
"author": "AvanzOSC, "
"Tecnativa, "
"Eficent, "
"Fanha Giang, "
"Odoo Community Association (OCA)",
"website": "https://odoo-community.org",
"depends": [
"stock",
],
"data": [
"wizard/assign_manual_quants_view.xml",
"views/stock_move_view.xml",
],
"installable": True,
}

View File

@@ -0,0 +1,131 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_quant_manual_assign
#
# Translators:
# Rudolf Schnapka <rs@techno-flex.de>, 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 <rs@techno-flex.de>\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"

View File

@@ -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."

View File

@@ -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 ""

View File

@@ -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 ""

View File

@@ -0,0 +1,131 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_quant_manual_assign
#
# Translators:
# danimaribeiro <danimaribeiro@gmail.com>, 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 <transbot@odoo-community.org>\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"

View File

@@ -0,0 +1,131 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_quant_manual_assign
#
# Translators:
# Matjaž Mozetič <m.mozetic@matmoz.si>, 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č <m.mozetic@matmoz.si>\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"

View File

@@ -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 ""

View File

@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
##############################################################################
# For copyright and license notices, see __openerp__.py file in root directory
##############################################################################
from . import stock_picking

View File

@@ -0,0 +1,12 @@
# -*- coding: utf-8 -*-
# (c) 2015 Mikel Arregi - AvanzOSC
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from odoo import fields, models
class StockMove(models.Model):
_inherit = 'stock.move'
picking_type_code = fields.Selection(
related='picking_type_id.code', store=True, readonly=True)

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View File

@@ -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

View File

@@ -0,0 +1,131 @@
# -*- coding: utf-8 -*-
# (c) 2015 Oihane Crucelaegui - AvanzOSC
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
import odoo.tests.common as common
from odoo 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)
wizard.assign_quants()
self.assertEqual(len(wizard.quants_lines.filtered('selected')),
len(self.move.reserved_quant_ids))
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)

View File

@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record model="ir.ui.view" id="stock_move_manual_quants_form_view">
<field name="name">stock.move.form</field>
<field name="model">stock.move</field>
<field name="inherit_id" ref="stock.view_move_form" />
<field name="arch" type="xml">
<field name="state" position="before">
<button name="%(assign_manual_quants_action)d" type="action"
string="Manual Quants" class="oe_highlight"
attrs="{'invisible':['|',('picking_type_code','=','incoming'),('state','not in',('confirmed','assigned'))]}"/>
</field>
<field name="picking_type_id" position="after">
<field name="picking_type_code" invisible="1" />
</field>
</field>
</record>
<record model="ir.ui.view" id="stock_move_manual_quants_picking_form_view">
<field name="name">stock.move.form</field>
<field name="model">stock.move</field>
<field name="inherit_id" ref="stock.view_move_picking_form" />
<field name="arch" type="xml">
<field name="state" position="before">
<button name="%(assign_manual_quants_action)d" type="action"
string="Manual Quants" class="oe_highlight"
attrs="{'invisible':['|',('picking_type_code','=','incoming'),('state','not in',('confirmed','assigned'))]}" />
</field>
<field name="picking_type_id" position="after">
<field name="picking_type_code" invisible="1" />
</field>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
##############################################################################
# For copyright and license notices, see __openerp__.py file in root directory
##############################################################################
from . import assign_manual_quants

View File

@@ -0,0 +1,122 @@
# -*- 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 odoo import _, api, exceptions, fields, models
import odoo.addons.decimal_precision as dp
from odoo.tools.float_utils import float_compare
class AssignManualQuants(models.TransientModel):
_name = 'assign.manual.quants'
@api.multi
@api.constrains('quants_lines')
def check_qty(self):
precision_digits = self.env[
'decimal.precision'].precision_get('Product Unit of Measure')
move = self.env['stock.move'].browse(self.env.context['active_id'])
for record in self.filtered('quants_lines'):
if float_compare(record.lines_qty, move.product_qty,
precision_digits=precision_digits) > 0:
raise exceptions.UserError(
_('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(quant_line.qty for quant_line in self.quants_lines
if quant_line.selected)
self.lines_qty = lines_qty
self.move_qty = move.product_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 = []
# Mark as recompute pack needed
if move.picking_id: # pragma: no cover
move.picking_id.recompute_pack_op = True
for quant_id in move.reserved_quant_ids.ids:
move.write({'reserved_quant_ids': [[3, quant_id]]})
for line in self.quants_lines.filtered('selected'):
quants.append([line.quant, line.qty])
self.env['stock.quant'].quants_reserve(quants, move)
return {}
@api.model
def default_get(self, fields):
res = super(AssignManualQuants, self).default_get(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,
'in_date': x.in_date,
'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]
res.update({'quants_lines': quants_lines})
res = self._convert_to_write(self._convert_to_cache(res))
return res
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")
in_date = fields.Date(
string='Incoming Date', readonly=True)
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')

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record model="ir.ui.view" id="assign_manual_quants_form_view">
<field name="name">assign.manual.quants.form</field>
<field name="model">assign.manual.quants</field>
<field name="arch" type="xml">
<form name="Manual Quants">
<group col='4' colspan="4">
<field name='quants_lines' colspan="4">
<tree editable="top" delete="0" create="0">
<field name="quant" />
<field name="location_id" />
<field name="in_date" />
<field name="lot_id" />
<field name="package_id" />
<field name="selected" />
<field name="qty" attrs="{'readonly':[('selected', '=' ,False)]}" sum="qty"/>
</tree>
</field>
<field name="move_qty" colspan="2" readonly="1"/>
<field name="lines_qty" invisible="1" />
</group>
<footer>
<button name="assign_quants" type="object"
string="Confirm" class="oe_highlight" />
<button name="cancel" string="Cancel" class="oe_link"
special="cancel" />
</footer>
</form>
</field>
</record>
<act_window name="Manual quants" res_model="assign.manual.quants"
src_model="stock.move" view_mode="form" target="new"
id="assign_manual_quants_action" />
</odoo>