diff --git a/stock_picking_product_interchangeable/README.rst b/stock_picking_product_interchangeable/README.rst index b16ac1784..0ff0c9e27 100644 --- a/stock_picking_product_interchangeable/README.rst +++ b/stock_picking_product_interchangeable/README.rst @@ -7,7 +7,7 @@ Stock Picking Product Interchangeable !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:53a61d84207fe2234c17a6277c9f5f97d3b956c7bdc091631d241bdf21ce8897 + !! source digest: sha256:616f36a88d886ec8f84816c3abdf434d6ad6abb59cfdd2ab0008aefe05f0bff1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -28,23 +28,92 @@ Stock Picking Product Interchangeable |badge1| |badge2| |badge3| |badge4| |badge5| -This module implements "interchangeable" products. If an interchangeable product is not available in stock in requested quantity its substitute products will be added to picking to complete the order. +This module implements "interchangeable" products for Sales Orders. If +an interchangeable product is not available in stock in sufficient +quantity to complete the order its substitute products will be added to +picking to complete the order. -Eg there is an "English Breakfast" tea and "Breakfast in England" tea which are absolutely the same inside and have the same price. Only package labels are different. And our customers don't care which of them will be actually delivered. - -NB: Interchangeable products substitute each other. Eg if "English Breakfast" can substitutes "Breakfast in England" then "Breakfast in England" can substitute "English Breakfast". +**NB:** Interchangeable products substitute each other. Eg if "English +Breakfast" can substitutes "Breakfast in England" then "Breakfast in +England" can substitute "English Breakfast". **Table of contents** .. contents:: :local: +Use Cases / Context +=================== + +Imagine that you have several products in your inventory that are +physically absolutely the same products. Eg there is an "English +Breakfast" tea and "Breakfast in England" tea which are absolutely the +same inside and have the same price. Only package labels are different. +And our customers don't care which of them will be actually delivered. +By default if there in not enough stock of the "English Breakfast" +available you will not be able to complete the operation even if you +have enough stock of the "Breakfast in England" available. This module +provides a solution for such case by allowing to substitute one product +with another in the inventory operation. + +Configuration +============= + +Open **Inventory** -> **Configuration** -> **Operations types** and +select an Operation Type you would like to use interchangeable products +in. **NB:** Only Operation Types of the **Delivery** type can use this +feature. + +Select **Substitute Products** mode: + +- "If all available". Interchangeable products will be added products + will be added only if it is possible to reserve all requested amount. +- "If any available". Interchangeable products will be added if there + is at least a single one available. + +|Operation Type| + +**Product Settings** + +In Product form open **Interchangeable** tab and add products that can +be used as a substitute. + +**Important**: if you are using product variants Interchangeable +products must be defined for each variant separately. + +|Product form| + +.. |Operation Type| image:: https://raw.githubusercontent.com/OCA/stock-logistics-warehouse/16.0/stock_picking_product_interchangeable/static/img/op_type_setting.png +.. |Product form| image:: https://raw.githubusercontent.com/OCA/stock-logistics-warehouse/16.0/stock_picking_product_interchangeable/static/img/product_form.png + Usage ===== -Click **Mark todo** or "Check availability" button in Stock Picking form. +- Create a new quotation with some interchangeable product(s) in it + |New quotation| -If **Substitute Products** option is activated for picking operation type and there is not enough stock of an interchangeable product substitute products will be added to picking. +- Confirm the quotation + +- If there is not enough stock of the product available its substitute + will be added to complete the delivery order + +|Picking| + +.. |New quotation| image:: https://raw.githubusercontent.com/OCA/stock-logistics-warehouse/16.0/stock_picking_product_interchangeable/static/img/new_quotation.png +.. |Picking| image:: https://raw.githubusercontent.com/OCA/stock-logistics-warehouse/16.0/stock_picking_product_interchangeable/static/img/picking_with_substitutes.png + +Known issues / Roadmap +====================== + +Currently interchangeable products are implemented only for pickings +created from Sales Orders. + +**TODO:** + +- Add interchangeable products to pickings created directly from the + "Inventory/Operations" menu +- Use interchangeable products in other operation types. Eg "Internal + Transfer" Bug Tracker =========== @@ -60,12 +129,17 @@ Credits ======= Authors -~~~~~~~ +------- * Cetmix +Contributors +------------ + +Cetmix `cetmix.com `__ + Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -77,16 +151,13 @@ 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-geomer198| image:: https://github.com/geomer198.png?size=40px - :target: https://github.com/geomer198 - :alt: geomer198 .. |maintainer-CetmixGitDrone| image:: https://github.com/CetmixGitDrone.png?size=40px :target: https://github.com/CetmixGitDrone :alt: CetmixGitDrone -Current `maintainers `__: +Current `maintainer `__: -|maintainer-geomer198| |maintainer-CetmixGitDrone| +|maintainer-CetmixGitDrone| This module is part of the `OCA/stock-logistics-warehouse `_ project on GitHub. diff --git a/stock_picking_product_interchangeable/__manifest__.py b/stock_picking_product_interchangeable/__manifest__.py index a000911d7..f26a2d9b6 100644 --- a/stock_picking_product_interchangeable/__manifest__.py +++ b/stock_picking_product_interchangeable/__manifest__.py @@ -5,8 +5,9 @@ "version": "16.0.1.0.0", "category": "Inventory/Inventory", "website": "https://github.com/OCA/stock-logistics-warehouse", - "maintainers": ["geomer198", "CetmixGitDrone"], + "maintainers": ["CetmixGitDrone"], "depends": ["stock_available"], + "images": ["static/description/banner.png"], "data": [ "views/product_views.xml", "views/stock_picking_type_views.xml", diff --git a/stock_picking_product_interchangeable/readme/CONFIGURATION.rst b/stock_picking_product_interchangeable/readme/CONFIGURE.md similarity index 76% rename from stock_picking_product_interchangeable/readme/CONFIGURATION.rst rename to stock_picking_product_interchangeable/readme/CONFIGURE.md index 43c600e2c..f6d093999 100644 --- a/stock_picking_product_interchangeable/readme/CONFIGURATION.rst +++ b/stock_picking_product_interchangeable/readme/CONFIGURE.md @@ -1,11 +1,17 @@ Open **Inventory** -> **Configuration** -> **Operations types** and select an Operation Type you would like to use interchangeable products in. -Only Operation Types of type **Delivery** can use this feature. +**NB:** Only Operation Types of the **Delivery** type can use this feature. Select **Substitute Products** mode: - "If all available". Interchangeable products will be added products will be added only if it is possible to reserve all requested amount. - "If any available". Interchangeable products will be added if there is at least a single one available. +![Operation Type](../static/img/op_type_setting.png) + +**Product Settings** + In Product form open **Interchangeable** tab and add products that can be used as a substitute. **Important**: if you are using product variants Interchangeable products must be defined for each variant separately. + +![Product form](../static/img/product_form.png) \ No newline at end of file diff --git a/stock_picking_product_interchangeable/readme/CONTEXT.md b/stock_picking_product_interchangeable/readme/CONTEXT.md new file mode 100644 index 000000000..49ff82174 --- /dev/null +++ b/stock_picking_product_interchangeable/readme/CONTEXT.md @@ -0,0 +1,5 @@ +Imagine that you have several products in your inventory that are physically absolutely the same products. +Eg there is an "English Breakfast" tea and "Breakfast in England" tea which are absolutely the same inside and have the same price. Only package labels are different. +And our customers don't care which of them will be actually delivered. +By default if there in not enough stock of the "English Breakfast" available you will not be able to complete the operation even if you have enough stock of the "Breakfast in England" available. +This module provides a solution for such case by allowing to substitute one product with another in the inventory operation. \ No newline at end of file diff --git a/stock_picking_product_interchangeable/readme/CONTRIBUTORS.md b/stock_picking_product_interchangeable/readme/CONTRIBUTORS.md new file mode 100644 index 000000000..e5f6c3392 --- /dev/null +++ b/stock_picking_product_interchangeable/readme/CONTRIBUTORS.md @@ -0,0 +1 @@ +Cetmix [cetmix.com](https://cetmix.com) \ No newline at end of file diff --git a/stock_picking_product_interchangeable/readme/DESCRIPTION.md b/stock_picking_product_interchangeable/readme/DESCRIPTION.md new file mode 100644 index 000000000..15a67a2e5 --- /dev/null +++ b/stock_picking_product_interchangeable/readme/DESCRIPTION.md @@ -0,0 +1,4 @@ +This module implements "interchangeable" products for Sales Orders. +If an interchangeable product is not available in stock in sufficient quantity to complete the order its substitute products will be added to picking to complete the order. + +**NB:** Interchangeable products substitute each other. Eg if "English Breakfast" can substitutes "Breakfast in England" then "Breakfast in England" can substitute "English Breakfast". diff --git a/stock_picking_product_interchangeable/readme/DESCRIPTION.rst b/stock_picking_product_interchangeable/readme/DESCRIPTION.rst deleted file mode 100644 index 405080adf..000000000 --- a/stock_picking_product_interchangeable/readme/DESCRIPTION.rst +++ /dev/null @@ -1,5 +0,0 @@ -This module implements "interchangeable" products. If an interchangeable product is not available in stock in requested quantity its substitute products will be added to picking to complete the order. - -Eg there is an "English Breakfast" tea and "Breakfast in England" tea which are absolutely the same inside and have the same price. Only package labels are different. And our customers don't care which of them will be actually delivered. - -NB: Interchangeable products substitute each other. Eg if "English Breakfast" can substitutes "Breakfast in England" then "Breakfast in England" can substitute "English Breakfast". diff --git a/stock_picking_product_interchangeable/readme/ROADMAP.md b/stock_picking_product_interchangeable/readme/ROADMAP.md new file mode 100644 index 000000000..e841fd96c --- /dev/null +++ b/stock_picking_product_interchangeable/readme/ROADMAP.md @@ -0,0 +1,5 @@ +Currently interchangeable products are implemented only for pickings created from Sales Orders. + +**TODO:** +- Add interchangeable products to pickings created directly from the "Inventory/Operations" menu +- Use interchangeable products in other operation types. Eg "Internal Transfer" \ No newline at end of file diff --git a/stock_picking_product_interchangeable/readme/USAGE.md b/stock_picking_product_interchangeable/readme/USAGE.md new file mode 100644 index 000000000..08c0803da --- /dev/null +++ b/stock_picking_product_interchangeable/readme/USAGE.md @@ -0,0 +1,7 @@ +- Create a new quotation with some interchangeable product(s) in it +![New quotation](../static/img/new_quotation.png) + +- Confirm the quotation +- If there is not enough stock of the product available its substitute will be added to complete the delivery order + +![Picking](../static/img/picking_with_substitutes.png) \ No newline at end of file diff --git a/stock_picking_product_interchangeable/readme/USAGE.rst b/stock_picking_product_interchangeable/readme/USAGE.rst deleted file mode 100644 index 46608bcb6..000000000 --- a/stock_picking_product_interchangeable/readme/USAGE.rst +++ /dev/null @@ -1,3 +0,0 @@ -Click **Mark todo** or "Check availability" button in Stock Picking form. - -If **Substitute Products** option is activated for picking operation type and there is not enough stock of an interchangeable product substitute products will be added to picking. diff --git a/stock_picking_product_interchangeable/static/description/banner.png b/stock_picking_product_interchangeable/static/description/banner.png new file mode 100755 index 000000000..277a40077 Binary files /dev/null and b/stock_picking_product_interchangeable/static/description/banner.png differ diff --git a/stock_picking_product_interchangeable/static/description/index.html b/stock_picking_product_interchangeable/static/description/index.html index fddbc5823..d0d87db4b 100644 --- a/stock_picking_product_interchangeable/static/description/index.html +++ b/stock_picking_product_interchangeable/static/description/index.html @@ -367,31 +367,91 @@ ul.auto-toc { !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:53a61d84207fe2234c17a6277c9f5f97d3b956c7bdc091631d241bdf21ce8897 +!! source digest: sha256:616f36a88d886ec8f84816c3abdf434d6ad6abb59cfdd2ab0008aefe05f0bff1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/stock-logistics-warehouse Translate me on Weblate Try me on Runboat

-

This module implements “interchangeable” products. If an interchangeable product is not available in stock in requested quantity its substitute products will be added to picking to complete the order.

-

Eg there is an “English Breakfast” tea and “Breakfast in England” tea which are absolutely the same inside and have the same price. Only package labels are different. And our customers don’t care which of them will be actually delivered.

-

NB: Interchangeable products substitute each other. Eg if “English Breakfast” can substitutes “Breakfast in England” then “Breakfast in England” can substitute “English Breakfast”.

+

This module implements “interchangeable” products for Sales Orders. If +an interchangeable product is not available in stock in sufficient +quantity to complete the order its substitute products will be added to +picking to complete the order.

+

NB: Interchangeable products substitute each other. Eg if “English +Breakfast” can substitutes “Breakfast in England” then “Breakfast in +England” can substitute “English Breakfast”.

Table of contents

+
+

Use Cases / Context

+

Imagine that you have several products in your inventory that are +physically absolutely the same products. Eg there is an “English +Breakfast” tea and “Breakfast in England” tea which are absolutely the +same inside and have the same price. Only package labels are different. +And our customers don’t care which of them will be actually delivered. +By default if there in not enough stock of the “English Breakfast” +available you will not be able to complete the operation even if you +have enough stock of the “Breakfast in England” available. This module +provides a solution for such case by allowing to substitute one product +with another in the inventory operation.

+
+
+

Configuration

+

Open Inventory -> Configuration -> Operations types and +select an Operation Type you would like to use interchangeable products +in. NB: Only Operation Types of the Delivery type can use this +feature.

+

Select Substitute Products mode:

+
    +
  • “If all available”. Interchangeable products will be added products +will be added only if it is possible to reserve all requested amount.
  • +
  • “If any available”. Interchangeable products will be added if there +is at least a single one available.
  • +
+

Operation Type

+

Product Settings

+

In Product form open Interchangeable tab and add products that can +be used as a substitute.

+

Important: if you are using product variants Interchangeable +products must be defined for each variant separately.

+

Product form

+
-

Usage

-

Click Mark todo or “Check availability” button in Stock Picking form.

-

If Substitute Products option is activated for picking operation type and there is not enough stock of an interchangeable product substitute products will be added to picking.

+

Usage

+
    +
  • Create a new quotation with some interchangeable product(s) in it +New quotation
  • +
  • Confirm the quotation
  • +
  • If there is not enough stock of the product available its substitute +will be added to complete the delivery order
  • +
+

Picking

+
+
+

Known issues / Roadmap

+

Currently interchangeable products are implemented only for pickings +created from Sales Orders.

+

TODO:

+
    +
  • Add interchangeable products to pickings created directly from the +“Inventory/Operations” menu
  • +
  • Use interchangeable products in other operation types. Eg “Internal +Transfer”
  • +
-

Bug Tracker

+

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 @@ -399,22 +459,26 @@ If you spotted it first, help us to smash it by providing a detailed and welcome

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

-

Credits

+

Credits

-

Authors

+

Authors

  • Cetmix
+
-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association

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.

-

Current maintainers:

-

geomer198 CetmixGitDrone

+

Current maintainer:

+

CetmixGitDrone

This module is part of the OCA/stock-logistics-warehouse project on GitHub.

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

diff --git a/stock_picking_product_interchangeable/static/img/new_quotation.png b/stock_picking_product_interchangeable/static/img/new_quotation.png new file mode 100644 index 000000000..a391c5e4c Binary files /dev/null and b/stock_picking_product_interchangeable/static/img/new_quotation.png differ diff --git a/stock_picking_product_interchangeable/static/img/op_type_setting.png b/stock_picking_product_interchangeable/static/img/op_type_setting.png new file mode 100644 index 000000000..2fd51ae77 Binary files /dev/null and b/stock_picking_product_interchangeable/static/img/op_type_setting.png differ diff --git a/stock_picking_product_interchangeable/static/img/picking_with_substitutes.png b/stock_picking_product_interchangeable/static/img/picking_with_substitutes.png new file mode 100644 index 000000000..dbf348e11 Binary files /dev/null and b/stock_picking_product_interchangeable/static/img/picking_with_substitutes.png differ diff --git a/stock_picking_product_interchangeable/static/img/product_form.png b/stock_picking_product_interchangeable/static/img/product_form.png new file mode 100644 index 000000000..d8be4c236 Binary files /dev/null and b/stock_picking_product_interchangeable/static/img/product_form.png differ diff --git a/stock_picking_product_interchangeable/static/img/product_qty.png b/stock_picking_product_interchangeable/static/img/product_qty.png new file mode 100644 index 000000000..394ba5edc Binary files /dev/null and b/stock_picking_product_interchangeable/static/img/product_qty.png differ