Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
853414f
[ADD] New module sale_mrp_bom
renatonlima Sep 4, 2020
372e552
[UPD] Update sale_mrp_bom.pot
oca-travis Sep 11, 2020
5e69a8a
[IMP] sale_mrp_bom: black, isort, prettier
hailangvn Apr 15, 2021
1d65331
[MIG] sale_mrp_bom: Migration to 14.0
hailangvn Apr 15, 2021
8739c73
[IMP] sale_mrp_bom: increase test coverage
hailangvn Apr 15, 2021
b6fb43f
[IMP] sale_mrp_bom: check bom product, have default
hailangvn May 6, 2021
1129105
[UPD] Update sale_mrp_bom.pot
oca-travis May 25, 2021
43f8f95
[UPD] README.rst
OCA-git-bot May 25, 2021
506132a
[UPD] README.rst
OCA-git-bot Jun 2, 2022
be3a987
[UPD] README.rst
OCA-git-bot Jun 2, 2022
558612e
[16.0][MIG] sale_mrp_bom
ferran-S73 May 25, 2023
0853bf3
[UPD] Update sale_mrp_bom.pot
Jun 12, 2023
bc08cbf
[UPD] README.rst
OCA-git-bot Jun 12, 2023
011dbfa
Added translation using Weblate (Spanish)
Ivorra78 Oct 15, 2023
9b3836d
Added translation using Weblate (Italian)
mymage Dec 7, 2023
9591e4c
Added translation using Weblate (Croatian)
badbole Jun 21, 2024
f475fc6
[IMP] sale_mrp_bom: apply pre-commit auto fixes
antonioburic Aug 6, 2024
e989e16
[FIX] sale_mrp_bom: accept BoMs without variant
HekkiMelody Feb 7, 2024
be302a6
[MIG] sale_mrp_bom: Migration to 17.0
antonioburic Aug 6, 2024
f30eb33
[MIG] sale_mrp_bom: pre-commit
astirpe Jan 22, 2025
ed89c41
[MIG] sale_mrp_bom: migrate to V18
astirpe Jan 22, 2025
c71e169
[IMP] sale_mrp_bom: add optional="show"
astirpe Apr 6, 2025
063e9b1
[FIX] sale_mrp_bom: Handle phantom BoM (kit) procurements linked to S…
astirpe Apr 6, 2025
b5da1a0
[UPD] Update sale_mrp_bom.pot
Jul 1, 2025
6f96c6e
[BOT] post-merge updates
OCA-git-bot Jul 1, 2025
2fa3e7c
Added translation using Weblate (Dutch)
bosd Aug 9, 2025
e07cea8
Added translation using Weblate (Dutch (nl_NL))
bosd Aug 9, 2025
05dbaae
Translated using Weblate (Dutch (nl_NL))
bosd Aug 9, 2025
9e28061
[MIG] sale_mrp_bom: Migration to 19.0
JasminSForgeFlow Jan 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
127 changes: 127 additions & 0 deletions sale_mrp_bom/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

============
Sale MRP BOM
============

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:63cc33af1668c7019325079317e92367d731d9ccd088c6df0049d6c5c100f4fc
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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/license-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%2Fsale--workflow-lightgray.png?logo=github
:target: https://github.com/OCA/sale-workflow/tree/19.0/sale_mrp_bom
:alt: OCA/sale-workflow
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/sale-workflow-19-0/sale-workflow-19-0-sale_mrp_bom
: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/sale-workflow&target_branch=19.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This modules allows to specify a Bill Of Materials directly inside a
sale order line. It is specially useful to select alternative
manufacturing and sub-contracting routings.

**Table of contents**

.. contents::
:local:

Installation
============



Configuration
=============

To be able to select a specific Bill of Materials in a sale order, the
user needs the special permission: "Allows to define a BOM on sale order
lines".

Usage
=====

When adding a new sale order line, you can eventually select a specific
Bill Of Materials.

|image1|

When confirming the sale order, if the routing is manufacturing then the
production order will be using the specified Bill Of Materials.

|image2|

.. |image1| image:: https://raw.githubusercontent.com/OCA/sale-workflow/19.0/sale_mrp_bom/static/description/sale_order_1.png
.. |image2| image:: https://raw.githubusercontent.com/OCA/sale-workflow/19.0/sale_mrp_bom/static/description/manufacturing_order_1.png

Known issues / Roadmap
======================



Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/sale-workflow/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/sale-workflow/issues/new?body=module:%20sale_mrp_bom%0Aversion:%2019.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
-------

* Akretion

Contributors
------------

- Renato Lima <renato.lima@akretion.com.br>

Trobz:

- Hai Lang <hailn@trobz.com>

- Jasmin Solanki <jasmin.solanki@forgeflow.com>

Other credits
-------------

The migration of this module from 12.0 to 14.0 was financially supported
by Camptocamp.

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.

This module is part of the `OCA/sale-workflow <https://github.com/OCA/sale-workflow/tree/19.0/sale_mrp_bom>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
3 changes: 3 additions & 0 deletions sale_mrp_bom/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from . import models
18 changes: 18 additions & 0 deletions sale_mrp_bom/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Copyright 2020 Akretion Renato Lima <renato.lima@akretion.com.br>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "Sale MRP BOM",
"category": "Sale",
"license": "AGPL-3",
"author": "Akretion, Odoo Community Association (OCA)",
"version": "19.0.1.0.0",
"website": "https://github.com/OCA/sale-workflow",
"summary": "Allows define a BOM in the sales lines.",
"depends": ["mrp", "sale_stock"],
"data": [
"security/security.xml",
"views/sale_order.xml",
"views/sale_order_line.xml",
],
"installable": True,
}
46 changes: 46 additions & 0 deletions sale_mrp_bom/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_mrp_bom
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-10-15 19:36+0000\n"
"Last-Translator: Ivorra78 <informatica@totmaterial.es>\n"
"Language-Team: none\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"

#. module: sale_mrp_bom
#: model:res.groups,name:sale_mrp_bom.sale_mrp_bom_group
msgid "Allows to define a BOM on sale order lines"
msgstr "Permite definir una lista de materiales en líneas de órdenes de venta"

#. module: sale_mrp_bom
#: model:ir.model.fields,field_description:sale_mrp_bom.field_sale_order_line__bom_id
msgid "BoM"
msgstr "BoM"

#. module: sale_mrp_bom
#. odoo-python
#: code:addons/sale_mrp_bom/models/sale_order_line.py:0
#, python-format
msgid "Please select BoM that has matched product with the line `{}`"
msgstr ""
"Seleccione la lista de materiales que coincida con el producto de la línea "
"`{}`"

#. module: sale_mrp_bom
#: model:ir.model,name:sale_mrp_bom.model_sale_order_line
msgid "Sales Order Line"
msgstr "Línea de Orden de Venta"

#. module: sale_mrp_bom
#: model:ir.model,name:sale_mrp_bom.model_stock_move
msgid "Stock Move"
msgstr "Movimiento de Existencias"
45 changes: 45 additions & 0 deletions sale_mrp_bom/i18n/hr.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_mrp_bom
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-06-21 19:34+0000\n"
"Last-Translator: Bole <bole@dajmi5.com>\n"
"Language-Team: none\n"
"Language: hr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.17\n"

#. module: sale_mrp_bom
#: model:res.groups,name:sale_mrp_bom.sale_mrp_bom_group
msgid "Allows to define a BOM on sale order lines"
msgstr "Dozvoli definiranje sastavnice na stavkama prodajnog naloga"

#. module: sale_mrp_bom
#: model:ir.model.fields,field_description:sale_mrp_bom.field_sale_order_line__bom_id
msgid "BoM"
msgstr "Sastavnica"

#. module: sale_mrp_bom
#. odoo-python
#: code:addons/sale_mrp_bom/models/sale_order_line.py:0
#, python-format
msgid "Please select BoM that has matched product with the line `{}`"
msgstr "Molimo odaberite sastavnicu koja odgovara proizvodu u stavci `{}`"

#. module: sale_mrp_bom
#: model:ir.model,name:sale_mrp_bom.model_sale_order_line
msgid "Sales Order Line"
msgstr "Stavka prodajnog naloga"

#. module: sale_mrp_bom
#: model:ir.model,name:sale_mrp_bom.model_stock_move
msgid "Stock Move"
msgstr "Skladišno kretanje"
44 changes: 44 additions & 0 deletions sale_mrp_bom/i18n/it.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_mrp_bom
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-12-07 18:33+0000\n"
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"

#. module: sale_mrp_bom
#: model:res.groups,name:sale_mrp_bom.sale_mrp_bom_group
msgid "Allows to define a BOM on sale order lines"
msgstr "Consente di definire una DiBa nelle righe ordine di vendita"

#. module: sale_mrp_bom
#: model:ir.model.fields,field_description:sale_mrp_bom.field_sale_order_line__bom_id
msgid "BoM"
msgstr "DiBa"

#. module: sale_mrp_bom
#. odoo-python
#: code:addons/sale_mrp_bom/models/sale_order_line.py:0
#, python-format
msgid "Please select BoM that has matched product with the line `{}`"
msgstr "Selezionare una DiBa che ha un prodotto corrispondente con la riga `{}`"

#. module: sale_mrp_bom
#: model:ir.model,name:sale_mrp_bom.model_sale_order_line
msgid "Sales Order Line"
msgstr "Riga ordine di vendita"

#. module: sale_mrp_bom
#: model:ir.model,name:sale_mrp_bom.model_stock_move
msgid "Stock Move"
msgstr "Movimento di magazzino"
46 changes: 46 additions & 0 deletions sale_mrp_bom/i18n/nl.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_mrp_bom
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"

#. module: sale_mrp_bom
#: model:res.groups,name:sale_mrp_bom.sale_mrp_bom_group
msgid "Allows to define a BOM on sale order lines"
msgstr ""

#. module: sale_mrp_bom
#: model:ir.model.fields,field_description:sale_mrp_bom.field_sale_order_line__bom_id
msgid "BoM"
msgstr ""

#. module: sale_mrp_bom
#. odoo-python
#: code:addons/sale_mrp_bom/models/sale_order_line.py:0
msgid "Please select a BoM that matches the product %(product)s"
msgstr ""

#. module: sale_mrp_bom
#: model:ir.model,name:sale_mrp_bom.model_procurement_group
msgid "Procurement Group"
msgstr ""

#. module: sale_mrp_bom
#: model:ir.model,name:sale_mrp_bom.model_sale_order_line
msgid "Sales Order Line"
msgstr ""

#. module: sale_mrp_bom
#: model:ir.model,name:sale_mrp_bom.model_stock_move
msgid "Stock Move"
msgstr ""
48 changes: 48 additions & 0 deletions sale_mrp_bom/i18n/nl_NL.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_mrp_bom
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-09 17:25+0000\n"
"Last-Translator: Bosd <c5e2fd43-d292-4c90-9d1f-74ff3436329a@anonaddy.me>\n"
"Language-Team: none\n"
"Language: nl_NL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.10.4\n"

#. module: sale_mrp_bom
#: model:res.groups,name:sale_mrp_bom.sale_mrp_bom_group
msgid "Allows to define a BOM on sale order lines"
msgstr "Staat toe om een stuklijst te definiëren op verkooporderregels"

#. module: sale_mrp_bom
#: model:ir.model.fields,field_description:sale_mrp_bom.field_sale_order_line__bom_id
msgid "BoM"
msgstr "Stuklijst"

#. module: sale_mrp_bom
#. odoo-python
#: code:addons/sale_mrp_bom/models/sale_order_line.py:0
msgid "Please select a BoM that matches the product %(product)s"
msgstr "Selecteer een stuklijst die overeenkomt met het product %(product)s"

#. module: sale_mrp_bom
#: model:ir.model,name:sale_mrp_bom.model_procurement_group
msgid "Procurement Group"
msgstr "Inkoopgroep"

#. module: sale_mrp_bom
#: model:ir.model,name:sale_mrp_bom.model_sale_order_line
msgid "Sales Order Line"
msgstr "Verkooporderregel"

#. module: sale_mrp_bom
#: model:ir.model,name:sale_mrp_bom.model_stock_move
msgid "Stock Move"
msgstr "Voorraadverplaatsing"
Loading
Loading