-
-
Notifications
You must be signed in to change notification settings - Fork 654
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[16.0][ADD] stock_split_picking_dimension: Split picking based on dimension #1741
Open
lmignon
wants to merge
1
commit into
OCA:16.0
Choose a base branch
from
acsone:16.0-ADD-stock_split_picking_dimension-lmi
base: 16.0
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
1 change: 1 addition & 0 deletions
1
setup/stock_split_picking_dimension/odoo/addons/stock_split_picking_dimension
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
../../../../stock_split_picking_dimension |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
import setuptools | ||
|
||
setuptools.setup( | ||
setup_requires=['setuptools-odoo'], | ||
odoo_addon=True, | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# Copyright 2017 Tecnativa - Vicent Cubells <[email protected]> | ||
# Copyright 2018 Camptocamp SA - Julien Coux | ||
# Copyright 2024 ACSONE SA/NV | ||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). | ||
|
||
from odoo.tests.common import TransactionCase | ||
|
||
from odoo.addons.base.tests.common import DISABLED_MAIL_CONTEXT | ||
|
||
|
||
class TestStockSplitPickingCase(TransactionCase): | ||
@classmethod | ||
def setUpClass(cls): | ||
super().setUpClass() | ||
cls.env = cls.env(context=dict(cls.env.context, **DISABLED_MAIL_CONTEXT)) | ||
cls.src_location = cls.env.ref("stock.stock_location_stock") | ||
cls.dest_location = cls.env.ref("stock.stock_location_customers") | ||
cls.product = cls.env["product.product"].create({"name": "Test product"}) | ||
cls.product_2 = cls.env["product.product"].create({"name": "Test product 2"}) | ||
cls.partner = cls.env["res.partner"].create({"name": "Test partner"}) | ||
cls.picking = cls.env["stock.picking"].create( | ||
{ | ||
"partner_id": cls.partner.id, | ||
"picking_type_id": cls.env.ref("stock.picking_type_out").id, | ||
"location_id": cls.src_location.id, | ||
"location_dest_id": cls.dest_location.id, | ||
} | ||
) | ||
|
||
cls.move = cls._create_stock_move(cls.product) | ||
cls.move_2 = cls._create_stock_move(cls.product_2) | ||
|
||
@classmethod | ||
def _create_stock_move(cls, product): | ||
return cls.env["stock.move"].create( | ||
{ | ||
"name": "/", | ||
"picking_id": cls.picking.id, | ||
"product_id": product.id, | ||
"product_uom_qty": 10, | ||
"product_uom": product.uom_id.id, | ||
"location_id": cls.src_location.id, | ||
"location_dest_id": cls.dest_location.id, | ||
} | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
============================= | ||
Stock Split Picking Dimension | ||
============================= | ||
|
||
.. | ||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
!! This file is generated by oca-gen-addon-readme !! | ||
!! changes will be overwritten. !! | ||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
!! source digest: sha256:76c19f7b2d6580b5686d3333c41d0b31c1cf1cad9bafdf00460524a0b6a44d84 | ||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
|
||
.. |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%2Fstock--logistics--workflow-lightgray.png?logo=github | ||
:target: https://github.com/OCA/stock-logistics-workflow/tree/16.0/stock_split_picking_dimension | ||
:alt: OCA/stock-logistics-workflow | ||
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png | ||
:target: https://translation.odoo-community.org/projects/stock-logistics-workflow-16-0/stock-logistics-workflow-16-0-stock_split_picking_dimension | ||
: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/stock-logistics-workflow&target_branch=16.0 | ||
:alt: Try me on Runboat | ||
|
||
|badge1| |badge2| |badge3| |badge4| |badge5| | ||
|
||
This module extends the functionality of the stock_split_picking module | ||
to allow the user to split the picking by dimensions to ensure that the | ||
contents of the picking to process will not exceed a certain volume | ||
and/or weight and/or number of lines. | ||
|
||
**Table of contents** | ||
|
||
.. contents:: | ||
:local: | ||
|
||
Use Cases / Context | ||
=================== | ||
|
||
When dealing with large quantities of products, it could be useful to be | ||
able to split the picking into multiple pickings to simplify the picking | ||
process and improve the efficiency of the warehouse. Some times, the | ||
picking you would like to process is too large to be picked in one go or | ||
too heavy to be carried by one person or contains too many different | ||
products to be picked in one go. | ||
|
||
Usage | ||
===== | ||
|
||
#. Go to **Inventory** dashboard and open any picking. | ||
|
||
#. If picking state is **available** you can see an split button. | ||
|
||
#. If you click on **Split** button, a wizard will open. | ||
|
||
#. The wizard will let you choose the way you want to split the picking. | ||
|
||
#. To split by dimension, select **By Dimension** option. | ||
|
||
#. Enter the values for **Volume**, **Weight** and **Number of Lines**. | ||
(You can leave any of the fields empty if you don't want to split by | ||
that dimension). | ||
|
||
#. Click on **Split** button. | ||
|
||
#. The current picking will be split into two different pickings. The | ||
first picking will contain the lines that fit the dimensions you | ||
entered. The second picking will contain the remaining lines. | ||
|
||
Known issues / Roadmap | ||
====================== | ||
|
||
- The split by dimension only split at the move level. In other words, | ||
if a move has 10 units of a product with a weight of 1kg, the wizard | ||
will not split the move in different pickings even if a weight of 5kg | ||
is requested as max weight by picking. | ||
|
||
Changelog | ||
========= | ||
|
||
16.0.1.0.0 | ||
---------- | ||
|
||
- Initial version | ||
|
||
Bug Tracker | ||
=========== | ||
|
||
Bugs are tracked on `GitHub Issues <https://github.com/OCA/stock-logistics-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/stock-logistics-workflow/issues/new?body=module:%20stock_split_picking_dimension%0Aversion:%2016.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 | ||
------- | ||
|
||
* ACSONE SA/NV | ||
|
||
Contributors | ||
------------ | ||
|
||
- Laurent Mignon [email protected] (https://www.acsone.eu) | ||
|
||
Other credits | ||
------------- | ||
|
||
The development of this module has been financially supported by: | ||
|
||
- ALCYON Benelux | ||
|
||
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/stock-logistics-workflow <https://github.com/OCA/stock-logistics-workflow/tree/16.0/stock_split_picking_dimension>`_ project on GitHub. | ||
|
||
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import wizards |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# Copyright 2024 ACSONE SA/NV | ||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). | ||
|
||
{ | ||
"name": "Stock Split Picking Dimension", | ||
"summary": """Split a picking in two not transferred pickings to ensure that the """ | ||
"""first one doesn't exceed given dimensions (nbr lines, volume, weight)""", | ||
"version": "16.0.1.0.0", | ||
"license": "AGPL-3", | ||
"author": "ACSONE SA/NV,Odoo Community Association (OCA)", | ||
"website": "https://github.com/OCA/stock-logistics-workflow", | ||
"depends": [ | ||
"delivery", # weight on picking | ||
"stock_picking_volume", # OCA/stock-logistics-warehouse | ||
"stock_split_picking", # OCA/stock-logistics-worflow | ||
], | ||
"data": [ | ||
"wizards/stock_split_picking.xml", | ||
], | ||
"demo": [], | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# Copyright 2024 ACSONE SA/NV | ||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). | ||
|
||
from odoo import _ | ||
from odoo.exceptions import ValidationError | ||
|
||
|
||
class DimensionRequiredError(ValidationError): | ||
def __init__(self, env): | ||
self.env = env | ||
super().__init__(_("At least one dimension must be set")) | ||
|
||
|
||
class DimensionMustBePositiveError(ValidationError): | ||
def __init__(self, env, field): | ||
self.env = env | ||
field_label = field._description_string(self.env) | ||
super().__init__( | ||
_("Value of '%(field_label)s' must be positive", field_label=field_label) | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
When dealing with large quantities of products, it could be useful to be able to split | ||
the picking into multiple pickings to simplify the picking process and improve the | ||
efficiency of the warehouse. Some times, the picking you would like to process is too | ||
large to be picked in one go or too heavy to be carried by one person or contains too | ||
many different products to be picked in one go. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
- Laurent Mignon <[email protected]> (https://www.acsone.eu) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
The development of this module has been financially supported by: | ||
|
||
- ALCYON Benelux | ||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
This module extends the functionality of the stock_split_picking module to allow the | ||
user to split the picking by dimensions to ensure that the contents of the picking to | ||
process will not exceed a certain volume and/or weight and/or number of lines. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
## 16.0.1.0.0 | ||
|
||
- Initial version |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
- The split by dimension only split at the move level. In other words, if a move has 10 | ||
units of a product with a weight of 1kg, the wizard will not split the move in | ||
different pickings even if a weight of 5kg is requested as max weight by picking. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
#. Go to **Inventory** dashboard and open any picking. | ||
|
||
#. If picking state is **available** you can see an split button. | ||
|
||
#. If you click on **Split** button, a wizard will open. | ||
|
||
#. The wizard will let you choose the way you want to split the picking. | ||
|
||
#. To split by dimension, select **By Dimension** option. | ||
|
||
#. Enter the values for **Volume**, **Weight** and **Number of Lines**. (You can leave | ||
any of the fields empty if you don't want to split by that dimension). | ||
|
||
#. Click on **Split** button. | ||
|
||
#. The current picking will be split into two different pickings. The first picking will | ||
contain the lines that fit the dimensions you entered. The second picking will contain | ||
the remaining lines. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.