From e8ebb9cad52ee1e3e83622a7091880c983694622 Mon Sep 17 00:00:00 2001 From: ferran-S73 Date: Tue, 22 Oct 2024 13:07:10 +0200 Subject: [PATCH] [IMP] mrp_bom_attribute_match: pre-commit stuff --- mrp_bom_attribute_match/README.rst | 121 +++++++++++------- mrp_bom_attribute_match/pyproject.toml | 3 + .../readme/CONTRIBUTORS.md | 4 + .../readme/CONTRIBUTORS.rst | 7 - mrp_bom_attribute_match/readme/DESCRIPTION.md | 58 +++++++++ .../readme/DESCRIPTION.rst | 38 ------ mrp_bom_attribute_match/readme/USAGE.md | 25 ++++ mrp_bom_attribute_match/readme/USAGE.rst | 20 --- .../static/description/index.html | 77 +++++++---- 9 files changed, 216 insertions(+), 137 deletions(-) create mode 100644 mrp_bom_attribute_match/pyproject.toml create mode 100644 mrp_bom_attribute_match/readme/CONTRIBUTORS.md delete mode 100644 mrp_bom_attribute_match/readme/CONTRIBUTORS.rst create mode 100644 mrp_bom_attribute_match/readme/DESCRIPTION.md delete mode 100644 mrp_bom_attribute_match/readme/DESCRIPTION.rst create mode 100644 mrp_bom_attribute_match/readme/USAGE.md delete mode 100644 mrp_bom_attribute_match/readme/USAGE.rst diff --git a/mrp_bom_attribute_match/README.rst b/mrp_bom_attribute_match/README.rst index f6289f6621..61a281d1cf 100644 --- a/mrp_bom_attribute_match/README.rst +++ b/mrp_bom_attribute_match/README.rst @@ -17,55 +17,75 @@ BOM Attribute Match :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/15.0/mrp_bom_attribute_match + :target: https://github.com/OCA/manufacture/tree/17.0/mrp_bom_attribute_match :alt: OCA/manufacture .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/manufacture-15-0/manufacture-15-0-mrp_bom_attribute_match + :target: https://translation.odoo-community.org/projects/manufacture-17-0/manufacture-17-0-mrp_bom_attribute_match :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=15.0 + :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 addresses the BoM case where the product to manufacture has one attribute with tens or hundreds of values (usually attribute "color", eg: "Configurable Desk" can be produced in 900 different colors). +This module addresses the BoM case where the product to manufacture has +one attribute with tens or hundreds of values (usually attribute +"color", eg: "Configurable Desk" can be produced in 900 different +colors). -Creating a dynamic BoM currently requires adding one BoM line for each attribute value to match component variant with attribute value (eg: component "Desk board (Green)" to be applied to variant "Green"). +Creating a dynamic BoM currently requires adding one BoM line for each +attribute value to match component variant with attribute value (eg: +component "Desk board (Green)" to be applied to variant "Green"). This has 3 downsides: -- BoM lines proliferation (more error prone) +- BoM lines proliferation (more error prone) +- Difficult to update in case a new attribute value (new color paint) + is added +- Difficult to update in case base component changes. -- Difficult to update in case a new attribute value (new color paint) is added +This module allows to use a product template as component in BoM lines, +automatically matching component variant to use in MO line with the +attribute value selected for manufacture. -- Difficult to update in case base component changes. +Eg: Product template "Desk Board" is added to BoM line for product +"Configurable Desk"; match is made on attribute "Color". In MO, if +product to manufacture is "Configurable Desk (Steel, Pink)", MO line +will have component "Desk Board (Pink)". +Using the same BoM, if product to manufacture is "Configurable Desk +(Steel, Yellow)", MO line will have component "Desk Board (Yellow)". -This module allows to use a product template as component in BoM lines, automatically matching component variant to use in MO line with the attribute value selected for manufacture. - -Eg: Product template "Desk Board" is added to BoM line for product "Configurable Desk"; match is made on attribute "Color". In MO, if product to manufacture is "Configurable Desk (Steel, Pink)", MO line will have component "Desk Board (Pink)". - -Using the same BoM, if product to manufacture is "Configurable Desk (Steel, Yellow)", MO line will have component "Desk Board (Yellow)". - - -The flow is valid also if the Component (Product Template) has more than one attribute matching the product to manufacture; in this case, on MO line the component variant will be the one matching multiple attribute values for the product to manufacture. - +The flow is valid also if the Component (Product Template) has more than +one attribute matching the product to manufacture; in this case, on MO +line the component variant will be the one matching multiple attribute +values for the product to manufacture. Various checks are in place to make sure this flow is not disrupted: -- user cannot add a product in field "Component (Product Template)" which: +- user cannot add a product in field "Component (Product Template)" + which: - does not have matching attributes with product to manufacture + does not have matching attributes with product to manufacture - has a different variant-generating attribute than the product to manufacture + has a different variant-generating attribute than the product to + manufacture -- Adding a new variant-generating attribute to a product used as "Component (Product Template)" raises an error if the attribute is not included in all the products to manufacture where component is referenced. +- Adding a new variant-generating attribute to a product used as + "Component (Product Template)" raises an error if the attribute is + not included in all the products to manufacture where component is + referenced. -- Removing an attribute used for BoM attribute matching from product to manufacture raises an error. +- Removing an attribute used for BoM attribute matching from product to + manufacture raises an error. -- On a BoM line with Component (Product Template) set, an attribute value of attributes referenced in "Match on attribute" field cannot be used in field "Apply to variant". +- On a BoM line with Component (Product Template) set, an attribute + value of attributes referenced in "Match on attribute" field cannot + be used in field "Apply to variant". -- If attribute value for matching attribute in manufactured product is not present in component (product template), the BoM line is skipped in MO. +- If attribute value for matching attribute in manufactured product is + not present in component (product template), the BoM line is skipped + in MO. **Table of contents** @@ -75,26 +95,31 @@ Various checks are in place to make sure this flow is not disrupted: Usage ===== -Using this module you can have dynamic components of a BOM. -It will allow you to have only 1 line in the BOM if you have hundreds of attribute -values for manufacturing product and hundreds of attributes values of component (material). +Using this module you can have dynamic components of a BOM. It will +allow you to have only 1 line in the BOM if you have hundreds of +attribute values for manufacturing product and hundreds of attributes +values of component (material). How to use - #. Create a product to produce e.g. Desk. - #. Set 1 attribute (e.g. Color). And select possible values for it. - #. Create a component product (material) e.g. Plastic. - #. Set 1 attribute (Color). And select possible values for it. - #. Create a BOM. - #. Select a manufacturing product Desk. - #. Add a BOM line. Select Component (product template) Plastic. - #. You will see Color attribute appeared in the Apply On Attribute field. - #. Save the BOM. - #. Create Manufacturing Order. Select Desk with e.g. Red color to produce and BOM you created. - #. You will see in the component list Plastic added with corresponding (red) color. + 1. Create a product to produce e.g. Desk. + 2. Set 1 attribute (e.g. Color). And select possible values for it. + 3. Create a component product (material) e.g. Plastic. + 4. Set 1 attribute (Color). And select possible values for it. + 5. Create a BOM. + 6. Select a manufacturing product Desk. + 7. Add a BOM line. Select Component (product template) Plastic. + 8. You will see Color attribute appeared in the Apply On Attribute + field. + 9. Save the BOM. + 10. Create Manufacturing Order. Select Desk with e.g. Red color to + produce and BOM you created. + 11. You will see in the component list Plastic added with + corresponding (red) color. Consider, that to use this feature component must have only 1 attribute. -And a values of this attribute of a manufacturing product should be available for a component. +And a values of this attribute of a manufacturing product should be +available for a component. Bug Tracker =========== @@ -102,7 +127,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -110,24 +135,24 @@ Credits ======= Authors -~~~~~~~ +------- * Ilyas * Ooops Contributors -~~~~~~~~~~~~ +------------ -* Ooops404 +- Ooops404 - * Ilyas + - Ilyas -* `Camptocamp `_ +- `Camptocamp `__ - * Iván Todorovich + - Iván Todorovich Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -139,6 +164,6 @@ 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/manufacture `_ project on GitHub. +This module is part of the `OCA/manufacture `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/mrp_bom_attribute_match/pyproject.toml b/mrp_bom_attribute_match/pyproject.toml new file mode 100644 index 0000000000..4231d0cccb --- /dev/null +++ b/mrp_bom_attribute_match/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/mrp_bom_attribute_match/readme/CONTRIBUTORS.md b/mrp_bom_attribute_match/readme/CONTRIBUTORS.md new file mode 100644 index 0000000000..05d73da5df --- /dev/null +++ b/mrp_bom_attribute_match/readme/CONTRIBUTORS.md @@ -0,0 +1,4 @@ +- Ooops404 \<\> + - Ilyas +- [Camptocamp](https://www.camptocamp.com) + - Iván Todorovich \<\> diff --git a/mrp_bom_attribute_match/readme/CONTRIBUTORS.rst b/mrp_bom_attribute_match/readme/CONTRIBUTORS.rst deleted file mode 100644 index 1a74944ba7..0000000000 --- a/mrp_bom_attribute_match/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,7 +0,0 @@ -* Ooops404 - - * Ilyas - -* `Camptocamp `_ - - * Iván Todorovich diff --git a/mrp_bom_attribute_match/readme/DESCRIPTION.md b/mrp_bom_attribute_match/readme/DESCRIPTION.md new file mode 100644 index 0000000000..5bd76138e6 --- /dev/null +++ b/mrp_bom_attribute_match/readme/DESCRIPTION.md @@ -0,0 +1,58 @@ +This module addresses the BoM case where the product to manufacture has +one attribute with tens or hundreds of values (usually attribute +"color", eg: "Configurable Desk" can be produced in 900 different +colors). + +Creating a dynamic BoM currently requires adding one BoM line for each +attribute value to match component variant with attribute value (eg: +component "Desk board (Green)" to be applied to variant "Green"). + +This has 3 downsides: + +- BoM lines proliferation (more error prone) +- Difficult to update in case a new attribute value (new color paint) is + added +- Difficult to update in case base component changes. + +This module allows to use a product template as component in BoM lines, +automatically matching component variant to use in MO line with the +attribute value selected for manufacture. + +Eg: Product template "Desk Board" is added to BoM line for product +"Configurable Desk"; match is made on attribute "Color". In MO, if +product to manufacture is "Configurable Desk (Steel, Pink)", MO line +will have component "Desk Board (Pink)". + +Using the same BoM, if product to manufacture is "Configurable Desk +(Steel, Yellow)", MO line will have component "Desk Board (Yellow)". + +The flow is valid also if the Component (Product Template) has more than +one attribute matching the product to manufacture; in this case, on MO +line the component variant will be the one matching multiple attribute +values for the product to manufacture. + +Various checks are in place to make sure this flow is not disrupted: + +- user cannot add a product in field "Component (Product Template)" + which: + + > does not have matching attributes with product to manufacture + > + > has a different variant-generating attribute than the product to + > manufacture + +- Adding a new variant-generating attribute to a product used as + "Component (Product Template)" raises an error if the attribute is not + included in all the products to manufacture where component is + referenced. + +- Removing an attribute used for BoM attribute matching from product to + manufacture raises an error. + +- On a BoM line with Component (Product Template) set, an attribute + value of attributes referenced in "Match on attribute" field cannot be + used in field "Apply to variant". + +- If attribute value for matching attribute in manufactured product is + not present in component (product template), the BoM line is skipped + in MO. diff --git a/mrp_bom_attribute_match/readme/DESCRIPTION.rst b/mrp_bom_attribute_match/readme/DESCRIPTION.rst deleted file mode 100644 index e079f5673e..0000000000 --- a/mrp_bom_attribute_match/readme/DESCRIPTION.rst +++ /dev/null @@ -1,38 +0,0 @@ -This module addresses the BoM case where the product to manufacture has one attribute with tens or hundreds of values (usually attribute "color", eg: "Configurable Desk" can be produced in 900 different colors). - -Creating a dynamic BoM currently requires adding one BoM line for each attribute value to match component variant with attribute value (eg: component "Desk board (Green)" to be applied to variant "Green"). - -This has 3 downsides: - -- BoM lines proliferation (more error prone) - -- Difficult to update in case a new attribute value (new color paint) is added - -- Difficult to update in case base component changes. - - -This module allows to use a product template as component in BoM lines, automatically matching component variant to use in MO line with the attribute value selected for manufacture. - -Eg: Product template "Desk Board" is added to BoM line for product "Configurable Desk"; match is made on attribute "Color". In MO, if product to manufacture is "Configurable Desk (Steel, Pink)", MO line will have component "Desk Board (Pink)". - -Using the same BoM, if product to manufacture is "Configurable Desk (Steel, Yellow)", MO line will have component "Desk Board (Yellow)". - - -The flow is valid also if the Component (Product Template) has more than one attribute matching the product to manufacture; in this case, on MO line the component variant will be the one matching multiple attribute values for the product to manufacture. - - -Various checks are in place to make sure this flow is not disrupted: - -- user cannot add a product in field "Component (Product Template)" which: - - does not have matching attributes with product to manufacture - - has a different variant-generating attribute than the product to manufacture - -- Adding a new variant-generating attribute to a product used as "Component (Product Template)" raises an error if the attribute is not included in all the products to manufacture where component is referenced. - -- Removing an attribute used for BoM attribute matching from product to manufacture raises an error. - -- On a BoM line with Component (Product Template) set, an attribute value of attributes referenced in "Match on attribute" field cannot be used in field "Apply to variant". - -- If attribute value for matching attribute in manufactured product is not present in component (product template), the BoM line is skipped in MO. diff --git a/mrp_bom_attribute_match/readme/USAGE.md b/mrp_bom_attribute_match/readme/USAGE.md new file mode 100644 index 0000000000..7ab2949856 --- /dev/null +++ b/mrp_bom_attribute_match/readme/USAGE.md @@ -0,0 +1,25 @@ +Using this module you can have dynamic components of a BOM. It will +allow you to have only 1 line in the BOM if you have hundreds of +attribute values for manufacturing product and hundreds of attributes +values of component (material). + +How to use + +> 1. Create a product to produce e.g. Desk. +> 2. Set 1 attribute (e.g. Color). And select possible values for it. +> 3. Create a component product (material) e.g. Plastic. +> 4. Set 1 attribute (Color). And select possible values for it. +> 5. Create a BOM. +> 6. Select a manufacturing product Desk. +> 7. Add a BOM line. Select Component (product template) Plastic. +> 8. You will see Color attribute appeared in the Apply On Attribute +> field. +> 9. Save the BOM. +> 10. Create Manufacturing Order. Select Desk with e.g. Red color to +> produce and BOM you created. +> 11. You will see in the component list Plastic added with +> corresponding (red) color. + +Consider, that to use this feature component must have only 1 attribute. +And a values of this attribute of a manufacturing product should be +available for a component. diff --git a/mrp_bom_attribute_match/readme/USAGE.rst b/mrp_bom_attribute_match/readme/USAGE.rst deleted file mode 100644 index b0bb99b71e..0000000000 --- a/mrp_bom_attribute_match/readme/USAGE.rst +++ /dev/null @@ -1,20 +0,0 @@ -Using this module you can have dynamic components of a BOM. -It will allow you to have only 1 line in the BOM if you have hundreds of attribute -values for manufacturing product and hundreds of attributes values of component (material). - -How to use - - #. Create a product to produce e.g. Desk. - #. Set 1 attribute (e.g. Color). And select possible values for it. - #. Create a component product (material) e.g. Plastic. - #. Set 1 attribute (Color). And select possible values for it. - #. Create a BOM. - #. Select a manufacturing product Desk. - #. Add a BOM line. Select Component (product template) Plastic. - #. You will see Color attribute appeared in the Apply On Attribute field. - #. Save the BOM. - #. Create Manufacturing Order. Select Desk with e.g. Red color to produce and BOM you created. - #. You will see in the component list Plastic added with corresponding (red) color. - -Consider, that to use this feature component must have only 1 attribute. -And a values of this attribute of a manufacturing product should be available for a component. diff --git a/mrp_bom_attribute_match/static/description/index.html b/mrp_bom_attribute_match/static/description/index.html index 90b0d91700..1917b0586c 100644 --- a/mrp_bom_attribute_match/static/description/index.html +++ b/mrp_bom_attribute_match/static/description/index.html @@ -1,4 +1,3 @@ - @@ -369,34 +368,59 @@

BOM Attribute Match

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:7f3eee04a81e8973430c3d5f00e533bf8340c237633dcf30bdf5c168177c425f !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/manufacture Translate me on Weblate Try me on Runboat

-

This module addresses the BoM case where the product to manufacture has one attribute with tens or hundreds of values (usually attribute “color”, eg: “Configurable Desk” can be produced in 900 different colors).

-

Creating a dynamic BoM currently requires adding one BoM line for each attribute value to match component variant with attribute value (eg: component “Desk board (Green)” to be applied to variant “Green”).

+

Beta License: AGPL-3 OCA/manufacture Translate me on Weblate Try me on Runboat

+

This module addresses the BoM case where the product to manufacture has +one attribute with tens or hundreds of values (usually attribute +“color”, eg: “Configurable Desk” can be produced in 900 different +colors).

+

Creating a dynamic BoM currently requires adding one BoM line for each +attribute value to match component variant with attribute value (eg: +component “Desk board (Green)” to be applied to variant “Green”).

This has 3 downsides:

  • BoM lines proliferation (more error prone)
  • -
  • Difficult to update in case a new attribute value (new color paint) is added
  • +
  • Difficult to update in case a new attribute value (new color paint) +is added
  • Difficult to update in case base component changes.
-

This module allows to use a product template as component in BoM lines, automatically matching component variant to use in MO line with the attribute value selected for manufacture.

-

Eg: Product template “Desk Board” is added to BoM line for product “Configurable Desk”; match is made on attribute “Color”. In MO, if product to manufacture is “Configurable Desk (Steel, Pink)”, MO line will have component “Desk Board (Pink)”.

-

Using the same BoM, if product to manufacture is “Configurable Desk (Steel, Yellow)”, MO line will have component “Desk Board (Yellow)”.

-

The flow is valid also if the Component (Product Template) has more than one attribute matching the product to manufacture; in this case, on MO line the component variant will be the one matching multiple attribute values for the product to manufacture.

+

This module allows to use a product template as component in BoM lines, +automatically matching component variant to use in MO line with the +attribute value selected for manufacture.

+

Eg: Product template “Desk Board” is added to BoM line for product +“Configurable Desk”; match is made on attribute “Color”. In MO, if +product to manufacture is “Configurable Desk (Steel, Pink)”, MO line +will have component “Desk Board (Pink)”.

+

Using the same BoM, if product to manufacture is “Configurable Desk +(Steel, Yellow)”, MO line will have component “Desk Board (Yellow)”.

+

The flow is valid also if the Component (Product Template) has more than +one attribute matching the product to manufacture; in this case, on MO +line the component variant will be the one matching multiple attribute +values for the product to manufacture.

Various checks are in place to make sure this flow is not disrupted:

    -
  • user cannot add a product in field “Component (Product Template)” which:

    +
  • user cannot add a product in field “Component (Product Template)” +which:

    does not have matching attributes with product to manufacture

    -

    has a different variant-generating attribute than the product to manufacture

    +

    has a different variant-generating attribute than the product to +manufacture

  • -
  • Adding a new variant-generating attribute to a product used as “Component (Product Template)” raises an error if the attribute is not included in all the products to manufacture where component is referenced.

    +
  • Adding a new variant-generating attribute to a product used as +“Component (Product Template)” raises an error if the attribute is +not included in all the products to manufacture where component is +referenced.

  • -
  • Removing an attribute used for BoM attribute matching from product to manufacture raises an error.

    +
  • Removing an attribute used for BoM attribute matching from product to +manufacture raises an error.

  • -
  • On a BoM line with Component (Product Template) set, an attribute value of attributes referenced in “Match on attribute” field cannot be used in field “Apply to variant”.

    +
  • On a BoM line with Component (Product Template) set, an attribute +value of attributes referenced in “Match on attribute” field cannot +be used in field “Apply to variant”.

  • -
  • If attribute value for matching attribute in manufactured product is not present in component (product template), the BoM line is skipped in MO.

    +
  • If attribute value for matching attribute in manufactured product is +not present in component (product template), the BoM line is skipped +in MO.

Table of contents

@@ -414,9 +438,10 @@

BOM Attribute Match

Usage

-

Using this module you can have dynamic components of a BOM. -It will allow you to have only 1 line in the BOM if you have hundreds of attribute -values for manufacturing product and hundreds of attributes values of component (material).

+

Using this module you can have dynamic components of a BOM. It will +allow you to have only 1 line in the BOM if you have hundreds of +attribute values for manufacturing product and hundreds of attributes +values of component (material).

How to use

    @@ -427,21 +452,25 @@

    Usage

  1. Create a BOM.
  2. Select a manufacturing product Desk.
  3. Add a BOM line. Select Component (product template) Plastic.
  4. -
  5. You will see Color attribute appeared in the Apply On Attribute field.
  6. +
  7. You will see Color attribute appeared in the Apply On Attribute +field.
  8. Save the BOM.
  9. -
  10. Create Manufacturing Order. Select Desk with e.g. Red color to produce and BOM you created.
  11. -
  12. You will see in the component list Plastic added with corresponding (red) color.
  13. +
  14. Create Manufacturing Order. Select Desk with e.g. Red color to +produce and BOM you created.
  15. +
  16. You will see in the component list Plastic added with +corresponding (red) color.

Consider, that to use this feature component must have only 1 attribute. -And a values of this attribute of a manufacturing product should be available for a component.

+And a values of this attribute of a manufacturing product should be +available for a component.

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

+feedback.

Do not contact contributors directly about support or help with technical issues.

@@ -473,7 +502,7 @@

Maintainers

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/manufacture project on GitHub.

+

This module is part of the OCA/manufacture project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.