mirror of
https://github.com/OCA/manufacture.git
synced 2025-01-28 16:37:15 +02:00
103
mrp_mass_production_order/README.rst
Normal file
103
mrp_mass_production_order/README.rst
Normal file
@@ -0,0 +1,103 @@
|
||||
=========================
|
||||
MRP Mass Production Order
|
||||
=========================
|
||||
|
||||
..
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!! This file is generated by oca-gen-addon-readme !!
|
||||
!! changes will be overwritten. !!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!! source digest: sha256:b8163fbebaf9ee80087e0a25c01cbcf016c2a556f4f813565076fac36d838311
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
||||
:target: https://odoo-community.org/page/development-status
|
||||
:alt: Beta
|
||||
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
|
||||
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
||||
:alt: License: AGPL-3
|
||||
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmanufacture-lightgray.png?logo=github
|
||||
:target: https://github.com/OCA/manufacture/tree/17.0/mrp_mass_production_order
|
||||
:alt: OCA/manufacture
|
||||
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
|
||||
:target: https://translation.odoo-community.org/projects/manufacture-17-0/manufacture-17-0-mrp_mass_production_order
|
||||
:alt: Translate me on Weblate
|
||||
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
|
||||
:target: https://runboat.odoo-community.org/builds?repo=OCA/manufacture&target_branch=17.0
|
||||
:alt: Try me on Runboat
|
||||
|
||||
|badge1| |badge2| |badge3| |badge4| |badge5|
|
||||
|
||||
This module allows to create multiple manufacturing orders through a
|
||||
wizard. The wizard have the possiblity to put all manufacturing orders
|
||||
in state done or confirmed.
|
||||
|
||||
**Table of contents**
|
||||
|
||||
.. contents::
|
||||
:local:
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
To use this module, you need to:
|
||||
|
||||
1. Go to Manufacture > Operations > Massive MRP Production Orders.
|
||||
2. Set Picking Type Operation and if you would change the finished
|
||||
products location.
|
||||
3. Check the produce all checkbox if the productions are already
|
||||
produced, otherwise the production will be confirmed
|
||||
4. Set the production tags if you want
|
||||
5. Select the products that will be produced with the quantity
|
||||
6. The manufacturing order will be created
|
||||
|
||||
Bug Tracker
|
||||
===========
|
||||
|
||||
Bugs are tracked on `GitHub Issues <https://github.com/OCA/manufacture/issues>`_.
|
||||
In case of trouble, please check there if your issue has already been reported.
|
||||
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
||||
`feedback <https://github.com/OCA/manufacture/issues/new?body=module:%20mrp_mass_production_order%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
||||
|
||||
Do not contact contributors directly about support or help with technical issues.
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
||||
* Antoni Marroig
|
||||
* APSL-Nagarro
|
||||
|
||||
Contributors
|
||||
------------
|
||||
|
||||
- [APSL-Nagarro](https://apsl.tech):
|
||||
|
||||
- Antoni Marroig <amarroig@apsl.net>
|
||||
|
||||
Maintainers
|
||||
-----------
|
||||
|
||||
This module is maintained by the OCA.
|
||||
|
||||
.. image:: https://odoo-community.org/logo.png
|
||||
:alt: Odoo Community Association
|
||||
:target: https://odoo-community.org
|
||||
|
||||
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.
|
||||
|
||||
.. |maintainer-peluko00| image:: https://github.com/peluko00.png?size=40px
|
||||
:target: https://github.com/peluko00
|
||||
:alt: peluko00
|
||||
|
||||
Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:
|
||||
|
||||
|maintainer-peluko00|
|
||||
|
||||
This module is part of the `OCA/manufacture <https://github.com/OCA/manufacture/tree/17.0/mrp_mass_production_order>`_ project on GitHub.
|
||||
|
||||
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
|
||||
3
mrp_mass_production_order/__init__.py
Normal file
3
mrp_mass_production_order/__init__.py
Normal file
@@ -0,0 +1,3 @@
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||
|
||||
from . import wizards
|
||||
18
mrp_mass_production_order/__manifest__.py
Normal file
18
mrp_mass_production_order/__manifest__.py
Normal file
@@ -0,0 +1,18 @@
|
||||
# Copyright 2024 Antoni Marroig(APSL-Nagarro)<amarroig@apsl.net>
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||
{
|
||||
"name": "MRP Mass Production Order",
|
||||
"summary": "Create multiple manufacturing orders in one step",
|
||||
"version": "17.0.1.0.0",
|
||||
"category": "Manufacturing",
|
||||
"website": "https://github.com/OCA/manufacture",
|
||||
"author": "Antoni Marroig, APSL-Nagarro, Odoo Community Association (OCA)",
|
||||
"maintainers": ["peluko00"],
|
||||
"license": "AGPL-3",
|
||||
"application": False,
|
||||
"installable": True,
|
||||
"depends": [
|
||||
"mrp_tag",
|
||||
],
|
||||
"data": ["wizards/mrp_mass_order_wizard.xml", "security/ir.model.access.csv"],
|
||||
}
|
||||
194
mrp_mass_production_order/i18n/ca_ES.po
Normal file
194
mrp_mass_production_order/i18n/ca_ES.po
Normal file
@@ -0,0 +1,194 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * mrp_mass_production_order
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 17.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-09-19 06:44+0000\n"
|
||||
"PO-Revision-Date: 2024-09-19 06:44+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: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__bom_id
|
||||
msgid "Bill of Material"
|
||||
msgstr "Llistat de materials"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,help:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__bom_id
|
||||
msgid ""
|
||||
"Bills of Materials, also called recipes, are used to autocomplete components"
|
||||
" and work order instructions."
|
||||
msgstr ""
|
||||
"Les llistes de materials, també conegudes quan com a recetes de producció, "
|
||||
"s'utilizen per autocompletar els components i les instruccions de les ordres"
|
||||
" de treball."
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mass_production_order.wizard_mass_mrp_production_order
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__product_uom_category_id
|
||||
msgid "Category"
|
||||
msgstr "Categoria"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,help:mrp_mass_production_order.field_mrp_mass_production_order_wizard__produce_all
|
||||
msgid ""
|
||||
"Check it if all orders have been produced otherwise they will be confirmed"
|
||||
msgstr ""
|
||||
"Confirma si totes les comandes s'han produït, en cas contrari, es "
|
||||
"confirmaran"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__company_id
|
||||
msgid "Company"
|
||||
msgstr "Companyia"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__location_src_id
|
||||
msgid "Components Location"
|
||||
msgstr "Ubicació dels components"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,help:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__product_uom_category_id
|
||||
msgid ""
|
||||
"Conversion between Units of Measure can only occur if they belong to the "
|
||||
"same category. The conversion will be made based on the ratios."
|
||||
msgstr ""
|
||||
"La conversió entre les unitats de mesura només és possible si pertanyen a la"
|
||||
" mateixa categoria. La conversió es basarà en les ràtios establertes."
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mass_production_order.wizard_mass_mrp_production_order
|
||||
msgid "Create"
|
||||
msgstr "Crear"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mass_production_order.wizard_mass_mrp_production_order
|
||||
msgid "Create MRP Prodcution Orders"
|
||||
msgstr "Crear Múltiples Ordres de Fabricació"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__create_uid
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__create_uid
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__create_date
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__create_date
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__display_name
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__display_name
|
||||
msgid "Display Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__location_dest_id
|
||||
msgid "Finished Products Location"
|
||||
msgstr "Ubicació dels productes finalitzats"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__id
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__id
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__write_uid
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__write_date
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,help:mrp_mass_production_order.field_mrp_mass_production_order_wizard__location_src_id
|
||||
msgid "Location where the system will look for components."
|
||||
msgstr "Ubicació on el sistema buscarà els components."
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,help:mrp_mass_production_order.field_mrp_mass_production_order_wizard__location_dest_id
|
||||
msgid "Location where the system will stock the finished products."
|
||||
msgstr "Ubicació on el sistema emmagatzemarà els productes finalitzats."
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mass_production_order.wizard_mass_mrp_production_order
|
||||
msgid "MRP Production Orders"
|
||||
msgstr "Ordres de Fabricació"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#. odoo-python
|
||||
#: code:addons/mrp_mass_production_order/wizards/mrp_mass_order_wizard.py:0
|
||||
#, python-format
|
||||
msgid "MRP Production Orders Created"
|
||||
msgstr "Ordres de fabricació creats"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model,name:mrp_mass_production_order.model_mrp_mass_production_order_entry_wizard
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__mrp_production_order_entries
|
||||
msgid "MRP production order entries"
|
||||
msgstr "Registres de les ordres de fabricació"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__mrp_production_order_entry_id
|
||||
msgid "MRP production order entry"
|
||||
msgstr "Registre de una ordre de fabricació"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.actions.act_window,name:mrp_mass_production_order.wizard_mass_mrp_production_order_action
|
||||
#: model:ir.ui.menu,name:mrp_mass_production_order.wizard_mass_mrp_production_order_menu_action
|
||||
msgid "Massive MRP Production Orders"
|
||||
msgstr "Producció massiva d'ordres de fabricació"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model,name:mrp_mass_production_order.model_mrp_mass_production_order_wizard
|
||||
msgid "Multiple MRP production order"
|
||||
msgstr "Múltiples ordres de fabricació"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__picking_type_id
|
||||
msgid "Operation Type"
|
||||
msgstr "Tipus d'operació"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__produce_all
|
||||
msgid "Produce All"
|
||||
msgstr "Produir Tot"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__product_id
|
||||
msgid "Product"
|
||||
msgstr "Producte"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__product_uom_id
|
||||
msgid "Product Unit of Measure"
|
||||
msgstr "Unitat de mesura del producte"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__product_qty
|
||||
msgid "Quantity"
|
||||
msgstr "Quantitat"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__tag_ids
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__tag_ids
|
||||
msgid "Tags"
|
||||
msgstr "Etiquetes"
|
||||
194
mrp_mass_production_order/i18n/es.po
Normal file
194
mrp_mass_production_order/i18n/es.po
Normal file
@@ -0,0 +1,194 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * mrp_mass_production_order
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 17.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-09-19 06:45+0000\n"
|
||||
"PO-Revision-Date: 2024-09-19 06:45+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: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__bom_id
|
||||
msgid "Bill of Material"
|
||||
msgstr "Lista de materiales"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,help:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__bom_id
|
||||
msgid ""
|
||||
"Bills of Materials, also called recipes, are used to autocomplete components"
|
||||
" and work order instructions."
|
||||
msgstr ""
|
||||
"Las listas de materiales, también conocidas como recetas de producción, se "
|
||||
"utilizan para autocompletar los componentes y las instrucciones de las "
|
||||
"órdenes de trabajo."
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mass_production_order.wizard_mass_mrp_production_order
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__product_uom_category_id
|
||||
msgid "Category"
|
||||
msgstr "Categoria"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,help:mrp_mass_production_order.field_mrp_mass_production_order_wizard__produce_all
|
||||
msgid ""
|
||||
"Check it if all orders have been produced otherwise they will be confirmed"
|
||||
msgstr ""
|
||||
"Confirma si se han producido todos los pedidos, de lo contrario se "
|
||||
"confirmarán."
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__company_id
|
||||
msgid "Company"
|
||||
msgstr "Compañia"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__location_src_id
|
||||
msgid "Components Location"
|
||||
msgstr "Ubicació de los componentes"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,help:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__product_uom_category_id
|
||||
msgid ""
|
||||
"Conversion between Units of Measure can only occur if they belong to the "
|
||||
"same category. The conversion will be made based on the ratios."
|
||||
msgstr ""
|
||||
"La conversión entre las unidades de medidas sólo puede ocurrir si pertenecen"
|
||||
" a la misma categoría. La conversión se basará en los índices establecidos."
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mass_production_order.wizard_mass_mrp_production_order
|
||||
msgid "Create"
|
||||
msgstr "Crear"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mass_production_order.wizard_mass_mrp_production_order
|
||||
msgid "Create MRP Prodcution Orders"
|
||||
msgstr "Crear Múltiples Órdenes de Fabricación"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__create_uid
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__create_uid
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__create_date
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__create_date
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__display_name
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__display_name
|
||||
msgid "Display Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__location_dest_id
|
||||
msgid "Finished Products Location"
|
||||
msgstr "Ubicación de los productos finalizados"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__id
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__id
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__write_uid
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__write_date
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,help:mrp_mass_production_order.field_mrp_mass_production_order_wizard__location_src_id
|
||||
msgid "Location where the system will look for components."
|
||||
msgstr "Ubicación donde el sistema buscará los componentes."
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,help:mrp_mass_production_order.field_mrp_mass_production_order_wizard__location_dest_id
|
||||
msgid "Location where the system will stock the finished products."
|
||||
msgstr "Ubicación donde el sistema almacenará los productos terminados."
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mass_production_order.wizard_mass_mrp_production_order
|
||||
msgid "MRP Production Orders"
|
||||
msgstr "Órdenes de Fabricación"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#. odoo-python
|
||||
#: code:addons/mrp_mass_production_order/wizards/mrp_mass_order_wizard.py:0
|
||||
#, python-format
|
||||
msgid "MRP Production Orders Created"
|
||||
msgstr "Órdenes de fabricación creados"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model,name:mrp_mass_production_order.model_mrp_mass_production_order_entry_wizard
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__mrp_production_order_entries
|
||||
msgid "MRP production order entries"
|
||||
msgstr "Registros de órdenes de fabricación"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__mrp_production_order_entry_id
|
||||
msgid "MRP production order entry"
|
||||
msgstr "Registro de una orden de fabricación"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.actions.act_window,name:mrp_mass_production_order.wizard_mass_mrp_production_order_action
|
||||
#: model:ir.ui.menu,name:mrp_mass_production_order.wizard_mass_mrp_production_order_menu_action
|
||||
msgid "Massive MRP Production Orders"
|
||||
msgstr "Producción masiva de órdenes de fabricación"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model,name:mrp_mass_production_order.model_mrp_mass_production_order_wizard
|
||||
msgid "Multiple MRP production order"
|
||||
msgstr "Múltiples órdenes de fabricación"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__picking_type_id
|
||||
msgid "Operation Type"
|
||||
msgstr "Tipo de operación"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__produce_all
|
||||
msgid "Produce All"
|
||||
msgstr "Producir Todo"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__product_id
|
||||
msgid "Product"
|
||||
msgstr "Producto"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__product_uom_id
|
||||
msgid "Product Unit of Measure"
|
||||
msgstr "Unidad de medida del producto"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__product_qty
|
||||
msgid "Quantity"
|
||||
msgstr "Cantidad"
|
||||
|
||||
#. module: mrp_mass_production_order
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_entry_wizard__tag_ids
|
||||
#: model:ir.model.fields,field_description:mrp_mass_production_order.field_mrp_mass_production_order_wizard__tag_ids
|
||||
msgid "Tags"
|
||||
msgstr "Etiquetas"
|
||||
3
mrp_mass_production_order/pyproject.toml
Normal file
3
mrp_mass_production_order/pyproject.toml
Normal file
@@ -0,0 +1,3 @@
|
||||
[build-system]
|
||||
requires = ["whool"]
|
||||
build-backend = "whool.buildapi"
|
||||
2
mrp_mass_production_order/readme/CONTRIBUTORS.md
Normal file
2
mrp_mass_production_order/readme/CONTRIBUTORS.md
Normal file
@@ -0,0 +1,2 @@
|
||||
- \[APSL-Nagarro\](<https://apsl.tech>):
|
||||
- Antoni Marroig \<<amarroig@apsl.net>\>
|
||||
1
mrp_mass_production_order/readme/DESCRIPTION.md
Normal file
1
mrp_mass_production_order/readme/DESCRIPTION.md
Normal file
@@ -0,0 +1 @@
|
||||
This module allows to create multiple manufacturing orders through a wizard. The wizard have the possiblity to put all manufacturing orders in state done or confirmed.
|
||||
8
mrp_mass_production_order/readme/USAGE.md
Normal file
8
mrp_mass_production_order/readme/USAGE.md
Normal file
@@ -0,0 +1,8 @@
|
||||
To use this module, you need to:
|
||||
|
||||
1. Go to Manufacture \> Operations \> Massive MRP Production Orders.
|
||||
2. Set Picking Type Operation and if you would change the finished products location.
|
||||
3. Check the produce all checkbox if the productions are already produced, otherwise the production will be confirmed
|
||||
4. Set the production tags if you want
|
||||
4. Select the products that will be produced with the quantity
|
||||
5. The manufacturing order will be created
|
||||
3
mrp_mass_production_order/security/ir.model.access.csv
Normal file
3
mrp_mass_production_order/security/ir.model.access.csv
Normal file
@@ -0,0 +1,3 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
mrp_mass_production_order_wizard,mrp.mass.production.order.wizard,model_mrp_mass_production_order_wizard,mrp.group_mrp_user,1,1,1,1
|
||||
mrp_mass_production_order_entry_wizard,mrp.mass.production.order.entry.wizard,model_mrp_mass_production_order_entry_wizard,mrp.group_mrp_user,1,1,1,1
|
||||
|
BIN
mrp_mass_production_order/static/description/icon.png
Normal file
BIN
mrp_mass_production_order/static/description/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.2 KiB |
79
mrp_mass_production_order/static/description/icon.svg
Normal file
79
mrp_mass_production_order/static/description/icon.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 45 KiB |
124
mrp_mass_production_order/static/description/index.html
Normal file
124
mrp_mass_production_order/static/description/index.html
Normal file
@@ -0,0 +1,124 @@
|
||||
<section class="oe_container">
|
||||
<div class="oe_row oe_spaced">
|
||||
<div class="oe_span12">
|
||||
<h2 class="oe_slogan">Module name</h2>
|
||||
<p>This module was written to extend the functionality of ... to support ... and allow you to ...</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="oe_container oe_dark">
|
||||
<div class="oe_row oe_spaced">
|
||||
<div class="oe_span12">
|
||||
<h2 class="oe_slogan">Installation</h2>
|
||||
</div>
|
||||
<div class="oe_span6">
|
||||
<p class="oe_mt32">To install this module, you need to:
|
||||
<ul>
|
||||
<li>...</li>
|
||||
</ul>
|
||||
</p>
|
||||
</div>
|
||||
<div class="oe_span6">
|
||||
<div class="oe_demo oe_picture oe_screenshot">
|
||||
<a href="https://www.odoo.com/saas_master/demo?lang=en_US&module=crm">
|
||||
<img src="crm_sc_01.png">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="oe_container">
|
||||
<div class="oe_row oe_spaced">
|
||||
<div class="oe_span12">
|
||||
<h2 class="oe_slogan">Configuration</h2>
|
||||
</div>
|
||||
<div class="oe_span6">
|
||||
<p class="oe_mt32">To configure this module, you need to:
|
||||
<ul>
|
||||
<li>...</li>
|
||||
</ul>
|
||||
</p>
|
||||
</div>
|
||||
<div class="oe_span6">
|
||||
<div class="oe_demo oe_picture oe_screenshot">
|
||||
<a href="https://www.odoo.com/saas_master/demo?lang=en_US&module=crm">
|
||||
<img src="crm_sc_01.png">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="oe_container oe_dark">
|
||||
<div class="oe_row oe_spaced">
|
||||
<div class="oe_span12">
|
||||
<h2 class="oe_slogan">Usage</h2>
|
||||
</div>
|
||||
<div class="oe_span6">
|
||||
<p class="oe_mt32">To use this module, you need to:
|
||||
<ul>
|
||||
<li>...</li>
|
||||
</ul>
|
||||
</p>
|
||||
<p class="oe_mt32">For further information, please visit:
|
||||
<ul>
|
||||
<li><a href="https://www.odoo.com/forum/help-1">https://www.odoo.com/forum/help-1</a></li>
|
||||
</ul>
|
||||
</p>
|
||||
</div>
|
||||
<div class="oe_span6">
|
||||
<div class="oe_demo oe_picture oe_screenshot">
|
||||
<a href="https://www.odoo.com/saas_master/demo?lang=en_US&module=crm">
|
||||
<img src="crm_sc_01.png">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="oe_container">
|
||||
<div class="oe_row oe_spaced">
|
||||
<div class="oe_span12">
|
||||
<h2 class="oe_slogan">Known issues / Roadmap</h2>
|
||||
</div>
|
||||
<div class="oe_span6">
|
||||
<p class="oe_mt32">
|
||||
<ul>
|
||||
<li>...</li>
|
||||
</ul>
|
||||
</p>
|
||||
</div>
|
||||
<div class="oe_span6">
|
||||
<div class="oe_demo oe_picture oe_screenshot">
|
||||
<a href="https://www.odoo.com/saas_master/demo?lang=en_US&module=crm">
|
||||
<img src="crm_sc_01.png">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="oe_container oe_dark">
|
||||
<div class="oe_row">
|
||||
<div class="oe_span12">
|
||||
<h2 class="oe_slogan">Credits</h2>
|
||||
</div>
|
||||
<div class="oe_span12">
|
||||
<h3>Contributors</h3>
|
||||
<ul>
|
||||
<li>Firstname Lastname <<a href="mailto:email.address@example.com">email.address@example.com</a>></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="oe_span12">
|
||||
<h3>Maintainer</h3>
|
||||
<p>
|
||||
This module is maintained by the OCA.<br/>
|
||||
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.<br/>
|
||||
To contribute to this module, please visit <a href="http://odoo-community.org">http://odoo-community.org</a>.<br/>
|
||||
<a href="http://odoo-community.org"><img class="oe_picture oe_centered" src="http://odoo-community.org/logo.png"></a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
3
mrp_mass_production_order/tests/__init__.py
Normal file
3
mrp_mass_production_order/tests/__init__.py
Normal file
@@ -0,0 +1,3 @@
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||
|
||||
from . import test_mrp_mass_production_order
|
||||
@@ -0,0 +1,81 @@
|
||||
# Copyright 2024 Antoni Marroig(APSL-Nagarro)<amarroig@apsl.net>
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo import Command
|
||||
from odoo.tests.common import Form, TransactionCase
|
||||
|
||||
|
||||
class TestMRPMassProductionOrder(TransactionCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super().setUpClass()
|
||||
cls.product_delivery_01 = cls.env.ref("product.product_delivery_01")
|
||||
cls.product_delivery_02 = cls.env.ref("product.product_delivery_02")
|
||||
cls.tag = cls.env["mrp.tag"].create({"name": "Test"})
|
||||
cls.bom = cls.env["mrp.bom"].create(
|
||||
{
|
||||
"product_tmpl_id": cls.product_delivery_01.product_tmpl_id.id,
|
||||
"product_qty": 1.0,
|
||||
"type": "normal",
|
||||
"bom_line_ids": [
|
||||
Command.create(
|
||||
{
|
||||
"product_id": cls.env.ref("product.product_order_01").id,
|
||||
"product_qty": 2,
|
||||
}
|
||||
),
|
||||
Command.create(
|
||||
{
|
||||
"product_id": cls.env.ref("product.product_product_3").id,
|
||||
"product_qty": 2,
|
||||
}
|
||||
),
|
||||
],
|
||||
}
|
||||
)
|
||||
|
||||
wizard_form = Form(
|
||||
cls.env["mrp.mass.production.order.wizard"].with_context(
|
||||
default_mrp_production_order_entries=[
|
||||
Command.create(
|
||||
{"product_id": cls.product_delivery_01.id, "product_qty": 2}
|
||||
),
|
||||
Command.create({"product_id": cls.product_delivery_02.id}),
|
||||
],
|
||||
default_tag_ids=[cls.tag.id],
|
||||
),
|
||||
"mrp_mass_production_order.wizard_mass_mrp_production_order",
|
||||
)
|
||||
wizard_form.save().action_create()
|
||||
cls.mrp1, cls.mrp2 = cls.env["mrp.production"].search(
|
||||
[
|
||||
(
|
||||
"product_id",
|
||||
"in",
|
||||
[cls.product_delivery_01.id, cls.product_delivery_02.id],
|
||||
)
|
||||
]
|
||||
)
|
||||
|
||||
def test_wizard_mrp_mass_entries(self):
|
||||
self.assertEqual(self.mrp1.bom_id, self.bom)
|
||||
self.assertEqual(self.mrp1.product_uom_id, self.product_delivery_01.uom_id)
|
||||
self.assertEqual(len(self.mrp2.bom_id), 0)
|
||||
self.assertEqual(self.mrp2.product_qty, 1)
|
||||
|
||||
def test_wizard_mrp(self):
|
||||
picking_type = self.env["stock.picking.type"].search(
|
||||
[
|
||||
("code", "=", "mrp_operation"),
|
||||
],
|
||||
limit=1,
|
||||
)
|
||||
self.assertEqual(self.mrp1.state and self.mrp2.state, "done")
|
||||
self.assertEqual(self.mrp1.tag_ids and self.mrp2.tag_ids, self.tag)
|
||||
self.assertEqual(self.mrp1.picking_type_id, picking_type)
|
||||
self.assertEqual(
|
||||
self.mrp1.location_src_id, picking_type.default_location_src_id
|
||||
)
|
||||
self.assertEqual(
|
||||
self.mrp1.location_dest_id, picking_type.default_location_dest_id
|
||||
)
|
||||
3
mrp_mass_production_order/wizards/__init__.py
Normal file
3
mrp_mass_production_order/wizards/__init__.py
Normal file
@@ -0,0 +1,3 @@
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||
|
||||
from . import mrp_mass_order_wizard
|
||||
214
mrp_mass_production_order/wizards/mrp_mass_order_wizard.py
Normal file
214
mrp_mass_production_order/wizards/mrp_mass_order_wizard.py
Normal file
@@ -0,0 +1,214 @@
|
||||
# Copyright 2024 Antoni Marroig(APSL-Nagarro)<amarroig@apsl.net>
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||
|
||||
|
||||
from odoo import _, api, fields, models
|
||||
|
||||
|
||||
class MassMrpProductionOrderEntryWizard(models.TransientModel):
|
||||
_name = "mrp.mass.production.order.entry.wizard"
|
||||
_description = "MRP production order entries"
|
||||
|
||||
product_id = fields.Many2one(
|
||||
"product.product",
|
||||
"Product",
|
||||
domain="[('type', 'in', ['product', 'consu'])]",
|
||||
required=True,
|
||||
)
|
||||
product_qty = fields.Float(
|
||||
"Quantity", digits="Product Unit of Measure", required=True, default=1
|
||||
)
|
||||
product_uom_id = fields.Many2one(
|
||||
"uom.uom",
|
||||
"Product Unit of Measure",
|
||||
required=True,
|
||||
store=True,
|
||||
readonly=False,
|
||||
compute="_compute_uom_id",
|
||||
precompute=True,
|
||||
domain="[('category_id', '=', product_uom_category_id)]",
|
||||
)
|
||||
product_uom_category_id = fields.Many2one(related="product_id.uom_id.category_id")
|
||||
mrp_production_order_entry_id = fields.Many2one(
|
||||
"mrp.mass.production.order.wizard", "MRP production order entry"
|
||||
)
|
||||
bom_id = fields.Many2one(
|
||||
"mrp.bom",
|
||||
"Bill of Material",
|
||||
domain="""[
|
||||
'&',
|
||||
'|',
|
||||
('product_tmpl_id','=',product_id),
|
||||
'&',
|
||||
('product_id.product_tmpl_id.product_variant_ids','=',product_id),
|
||||
('product_id','=',False),
|
||||
('type', '=', 'normal')]""",
|
||||
compute="_compute_bom_id",
|
||||
precompute=True,
|
||||
readonly=False,
|
||||
store=True,
|
||||
help="Bills of Materials, also called recipes, "
|
||||
"are used to autocomplete components and work order instructions.",
|
||||
)
|
||||
tag_ids = fields.Many2many(
|
||||
"mrp.tag",
|
||||
compute="_compute_tag_ids",
|
||||
precompute=True,
|
||||
readonly=False,
|
||||
store=True,
|
||||
string="Tags",
|
||||
)
|
||||
|
||||
@api.depends("bom_id", "product_id")
|
||||
def _compute_uom_id(self):
|
||||
for production in self:
|
||||
if production.bom_id and production._origin.bom_id != production.bom_id:
|
||||
production.product_uom_id = production.bom_id.product_uom_id
|
||||
elif production.product_id:
|
||||
production.product_uom_id = production.product_id.uom_id
|
||||
else:
|
||||
production.product_uom_id = False
|
||||
|
||||
@api.depends("product_id", "mrp_production_order_entry_id.picking_type_id")
|
||||
def _compute_bom_id(self):
|
||||
for mo in self:
|
||||
if not mo.product_id and not mo.bom_id:
|
||||
mo.bom_id = False
|
||||
continue
|
||||
bom = (
|
||||
self.env["mrp.bom"]
|
||||
.with_context(active_test=True)
|
||||
._bom_find(
|
||||
mo.product_id,
|
||||
picking_type=mo.mrp_production_order_entry_id.picking_type_id,
|
||||
company_id=mo.mrp_production_order_entry_id.company_id.id,
|
||||
bom_type="normal",
|
||||
)[mo.product_id]
|
||||
)
|
||||
mo.bom_id = bom.id or False
|
||||
|
||||
@api.depends("product_id")
|
||||
def _compute_tag_ids(self):
|
||||
for record in self:
|
||||
record.tag_ids = record.mrp_production_order_entry_id.tag_ids
|
||||
|
||||
|
||||
class MassMrpProductionOrderWizard(models.TransientModel):
|
||||
_name = "mrp.mass.production.order.wizard"
|
||||
_description = "Multiple MRP production order"
|
||||
|
||||
@api.model
|
||||
def _get_default_picking_type_id(self):
|
||||
return self.env["stock.picking.type"].search(
|
||||
[
|
||||
("code", "=", "mrp_operation"),
|
||||
],
|
||||
limit=1,
|
||||
)
|
||||
|
||||
mrp_production_order_entries = fields.One2many(
|
||||
"mrp.mass.production.order.entry.wizard",
|
||||
"mrp_production_order_entry_id",
|
||||
"MRP production order entries",
|
||||
change_default=True,
|
||||
)
|
||||
location_src_id = fields.Many2one(
|
||||
"stock.location",
|
||||
"Components Location",
|
||||
compute="_compute_locations",
|
||||
store=True,
|
||||
readonly=False,
|
||||
required=True,
|
||||
precompute=True,
|
||||
domain="[('usage','=','internal')]",
|
||||
help="Location where the system will look for components.",
|
||||
)
|
||||
location_dest_id = fields.Many2one(
|
||||
"stock.location",
|
||||
"Finished Products Location",
|
||||
compute="_compute_locations",
|
||||
readonly=False,
|
||||
store=True,
|
||||
required=True,
|
||||
precompute=True,
|
||||
domain="[('usage','=','internal')]",
|
||||
help="Location where the system will stock the finished products.",
|
||||
)
|
||||
picking_type_id = fields.Many2one(
|
||||
"stock.picking.type",
|
||||
"Operation Type",
|
||||
default=_get_default_picking_type_id,
|
||||
precompute=True,
|
||||
domain="[('code', '=', 'mrp_operation')]",
|
||||
required=True,
|
||||
)
|
||||
company_id = fields.Many2one(
|
||||
"res.company", "Company", default=lambda self: self.env.company, required=True
|
||||
)
|
||||
produce_all = fields.Boolean(
|
||||
default=True,
|
||||
help="Check it if all orders have been produced "
|
||||
"otherwise they will be confirmed",
|
||||
)
|
||||
tag_ids = fields.Many2many(
|
||||
"mrp.tag",
|
||||
string="Tags",
|
||||
)
|
||||
|
||||
@api.depends("picking_type_id")
|
||||
def _compute_locations(self):
|
||||
for production in self:
|
||||
if (
|
||||
not production.picking_type_id.default_location_src_id
|
||||
or not production.picking_type_id.default_location_dest_id
|
||||
):
|
||||
company_id = (
|
||||
production.company_id.id
|
||||
if (
|
||||
production.company_id
|
||||
and production.company_id in self.env.companies
|
||||
)
|
||||
else self.env.company.id
|
||||
)
|
||||
fallback_loc = (
|
||||
self.env["stock.warehouse"]
|
||||
.search([("company_id", "=", company_id)], limit=1)
|
||||
.lot_stock_id
|
||||
)
|
||||
production.location_src_id = (
|
||||
production.picking_type_id.default_location_src_id.id or fallback_loc.id
|
||||
)
|
||||
production.location_dest_id = (
|
||||
production.picking_type_id.default_location_dest_id.id
|
||||
or fallback_loc.id
|
||||
)
|
||||
|
||||
def action_create(self):
|
||||
mrp_ids = []
|
||||
for entry in self.mrp_production_order_entries:
|
||||
mrp = self.env["mrp.production"].create(
|
||||
{
|
||||
"product_id": entry.product_id.id,
|
||||
"product_qty": entry.product_qty,
|
||||
"picking_type_id": self.picking_type_id.id,
|
||||
"location_src_id": self.location_src_id.id,
|
||||
"location_dest_id": self.location_dest_id.id,
|
||||
"product_uom_id": entry.product_uom_id.id,
|
||||
"bom_id": entry.bom_id.id,
|
||||
"tag_ids": entry.tag_ids,
|
||||
}
|
||||
)
|
||||
mrp.button_mark_done() if self.produce_all else mrp.action_confirm()
|
||||
mrp_ids.append(mrp.id)
|
||||
return {
|
||||
"name": _("MRP Production Orders Created"),
|
||||
"type": "ir.actions.act_window",
|
||||
"view_mode": "tree,form",
|
||||
"res_model": "mrp.production",
|
||||
"domain": [("id", "in", mrp_ids)],
|
||||
}
|
||||
|
||||
@api.onchange("tag_ids")
|
||||
def onchange_tag_ids(self):
|
||||
for entry in self.mrp_production_order_entries:
|
||||
entry.tag_ids = self.tag_ids
|
||||
72
mrp_mass_production_order/wizards/mrp_mass_order_wizard.xml
Normal file
72
mrp_mass_production_order/wizards/mrp_mass_order_wizard.xml
Normal file
@@ -0,0 +1,72 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!-- # Copyright 2024 Antoni Marroig(APSL-Nagarro)<amarroig@apsl.net>
|
||||
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
|
||||
<odoo>
|
||||
|
||||
<record id="wizard_mass_mrp_production_order" model="ir.ui.view">
|
||||
<field name="name">Mass MRP Production Order</field>
|
||||
<field name="model">mrp.mass.production.order.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Create MRP Prodcution Orders">
|
||||
<group>
|
||||
<field name="picking_type_id" />
|
||||
<field name="location_src_id" />
|
||||
<field name="location_dest_id" />
|
||||
<field name="produce_all" />
|
||||
<field
|
||||
name="tag_ids"
|
||||
widget="many2many_tags"
|
||||
options="{'color_field': 'color', 'no_create_edit': True}"
|
||||
/>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="MRP Production Orders">
|
||||
<field name="mrp_production_order_entries">
|
||||
|
||||
<tree editable="bottom">
|
||||
<field name="product_id" />
|
||||
<field name="product_qty" />
|
||||
<field name="bom_id" />
|
||||
<field
|
||||
name="mrp_production_order_entry_id"
|
||||
column_invisible="1"
|
||||
/>
|
||||
<field
|
||||
name="product_uom_category_id"
|
||||
column_invisible="1"
|
||||
/>
|
||||
<field name="product_uom_id" />
|
||||
<field
|
||||
name="tag_ids"
|
||||
widget="many2many_tags"
|
||||
options="{'color_field': 'color', 'no_create_edit': True}"
|
||||
/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
<footer>
|
||||
<button
|
||||
name="action_create"
|
||||
type="object"
|
||||
string="Create"
|
||||
class="oe_highlight"
|
||||
/>
|
||||
<button special="cancel" string="Cancel" />
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="wizard_mass_mrp_production_order_action" model="ir.actions.act_window">
|
||||
<field name="name">Massive MRP Production Orders</field>
|
||||
<field name="res_model">mrp.mass.production.order.wizard</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
<menuitem
|
||||
id="wizard_mass_mrp_production_order_menu_action"
|
||||
action="wizard_mass_mrp_production_order_action"
|
||||
parent="mrp.menu_mrp_manufacturing"
|
||||
/>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user