Skip to content
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

[WMS][12.0] Add vertical lift support - alpha version #633

Closed
wants to merge 50 commits into from

Conversation

guewen
Copy link
Member

@guewen guewen commented Jun 27, 2019

This is a draft pull request, absolutely not production-ready, and does not meet yet the standards in term of documentation. At the moment, this is for demo purpose, the Pick workflows more or less works for a demo, put and inventory modes are not implemented. It implements a poc for #641

The goal is to support Vertical Lift such as Kardex or similar systems.

It adds a stock location structure for the Vertical Lift "shelves", with different levels:
Vertical Lift → Shuttles → Trays → Cells. The Cells are automatically generated from Tray Types (example: 4 cols and 2 rows) selected on the trays.

Selection_649

A visual representation of a tray displays the selected cell and color the cells that contain stock.

Selection_650

The initial proposal assumes that each Shuttle will be driven by a screen displaying the operations to do (pick or put, inventory will need some work as well). Here's the (incomplete) dedicated UI, with the information about the product to pick + visualization of the tray and cell to pick.

Selection_651

@damendieta
Copy link

This is a really nice idea, please, tag me if you want me to help with something.

Daniel.

@rousseldenis rousseldenis added this to the 12.0 milestone Jul 9, 2019
@jgrandguillaume
Copy link
Member

Functional test, works well and as expected for this first version. Feedback will come after customer meeting.

@jgrandguillaume jgrandguillaume changed the title [WIP] [12.0] Add vertical lift support [WIP] [WMS][12.0] Add vertical lift support Jul 12, 2019
@jgrandguillaume
Copy link
Member

Remark to no forget it, the vertical_lift_kind should use the "generic" kind from #653

@damendieta
Copy link

Hi, amazing job.

I have done some test and I have a few ideas:

  • When a location is a tray location, we can require a Z coordinate and propagate it to the cells. It will not use the coordinates as Odoo want's us to (corridor, shelf, height), but you are not doing it anyway with x or y. We can use the Z coordinate to display the position of the tray in the warehouse.
  • We should not allow to store products on tray or shuttle locations, by setting a constraint or by forcing them to be view locations or we may end up having stock in the tray instead of the cell.
  • In the data folder you have a default location and some default tray types. Even when they are on a noupdate tag, maybe it's better to have them as a separated module because those default values are not standard, so, it may not be the case for most users. A separated module will avoid having to install the module and remove the default values as the first step of configuration.

If you need my help please tell me what can I do.

Daniel.

@damendieta
Copy link

damendieta commented Aug 11, 2019

Another annotation.

In the naming you have x#y# as the only option, but, most companies will want to customize the cell name, for example, 1-1 or x01y01 or X01/Y01.

Maybe it's impossible to allow all combinations required, but maybe we can do:

  • Add a get_cell_name function to make the name easier to customize.
  • Add some parameters in the shuttle (or tray) for naming conventions like: x_prefix, y_prefix, padding.

For example:

x_prefix = X
y_prefix = /Y
padding = 2

Will lead to a name: X01/Y01

Daniel.

@damendieta
Copy link

Some of the ideas have been implemented here as a proof of concept.

guewen#1

@jgrandguillaume
Copy link
Member

Hi @damendieta

Thanks for your reviews.

* When a location is a tray location, we can require a Z coordinate and propagate it to the cells. It will not use the coordinates as Odoo want's us to (corridor, shelf, height), but you are not doing it anyway with x or y. We can use the Z coordinate to display the position of the tray in the warehouse.

-> I guess you mean Z will then be used to display the position of the TRAY in the Shuttle ? As you can see in this work (https://github.com/OCA/stock-logistics-warehouse/issues/654) we kind of redefine how will will actually manage the corridor, shelf, etc.. So I guess your proposal is feasible.
Question: Why do you need to know the Z of a try (because we don't need that over here) ?

* We should not allow to store products on tray or shuttle locations, by setting a constraint or by forcing them to be view locations or we may end up having stock in the tray instead of the cell.

-> I would tend to agree to that, though we had several bad experience adding location as view so far. May be @gurneyalex you have more infos ?

* In the data folder you have a default location and some default tray types. Even when they are on a noupdate tag, maybe it's better to have them as a separated module because those default values are not standard, so, it may not be the case for most users. A separated module will avoid having to install the module and remove the default values as the first step of configuration.

-> +1 for this proposal, or even move this to demo data, then add a paragraph in the configuration to ask people to create their tray type.

@jgrandguillaume
Copy link
Member

In the naming you have x#y# as the only option, but, most companies will want to customize the cell name, for example, 1-1 or x01y01 or X01/Y01.

Maybe it's impossible to allow all combinations required, but maybe we can do:

* Add a get_cell_name function to make the name easier to customize.

* Add some parameters in the shuttle (or tray) for naming conventions like: x_prefix, y_prefix, padding.

For example:

x_prefix = X
y_prefix = /Y
padding = 2

Will lead to a name: X01/Y01

Good suggestion of improvements. This one we may not be able to release our-self, but we'll happily review and accept any contribution through a PR.

Thanks again for your input.

@damendieta
Copy link

damendieta commented Aug 22, 2019

I guess you mean Z will then be used to display the position of the TRAY in the Shuttle ? As you can see in this work (#654) we kind of redefine how will will actually manage the corridor, shelf, etc.. So I guess your proposal is feasible.
Question: Why do you need to know the Z of a try (because we don't need that over here) ?

Yes, that's the idea, to be able to plan a sequence for the picking. For example, if tray A and B share the same Z position, I can pick up products on A1 and B1 at the same time.

I would tend to agree to that, though we had several bad experience adding location as view so far. May be @gurneyalex you have more infos ?

Me too, for that I think we should avoid using view but restrict products directly on some internal locations. So, we can Add products on A/x1y1 but not on A directly.

@damendieta
Copy link

damendieta commented Aug 22, 2019

Good suggestion of improvements. This one we may not be able to release our-self, but we'll happily review and accept any contribution through a PR.>

PR already done.

Copy link
Member

@jgrandguillaume jgrandguillaume left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, functional test ok. Needs the development status

@guewen guewen force-pushed the 12.0-add-vertical-lift branch from 659ac18 to 700469b Compare August 28, 2019 14:38
@guewen guewen changed the title [WIP] [WMS][12.0] Add vertical lift support [WMS][12.0] Add vertical lift support - alpha version Aug 29, 2019
@guewen guewen force-pushed the 12.0-add-vertical-lift branch 2 times, most recently from 6e2309e to 7d12e69 Compare August 30, 2019 07:14
@guewen guewen marked this pull request as ready for review August 30, 2019 07:54
@jgrandguillaume jgrandguillaume mentioned this pull request Sep 13, 2019
32 tasks
guewen added a commit to guewen/stock-logistics-warehouse that referenced this pull request Sep 19, 2019
Extracted from stock_vertical_lift
(OCA#633)

Add tray types to stock locations, automatically generates
sub-locations. Present them nicely with a custom widget.
@guewen
Copy link
Member Author

guewen commented Sep 19, 2019

Extracted the tray part in #719
I'm about to rework this PR to use the new addon stock_location_tray as dependency.

@guewen guewen changed the title [WMS][12.0] Add vertical lift support - alpha version [WIP][WMS][12.0] Add vertical lift support - alpha version Sep 19, 2019
guewen added a commit to guewen/stock-logistics-warehouse that referenced this pull request Sep 19, 2019
Extracted from stock_vertical_lift
(OCA#633)

Add tray types to stock locations, automatically generates
sub-locations. Present them nicely with a custom widget.
@guewen guewen force-pushed the 12.0-add-vertical-lift branch from 0dfe9e6 to f26d027 Compare October 11, 2019 12:11
@guewen guewen force-pushed the 12.0-add-vertical-lift branch from f26d027 to 1e7c2bf Compare October 14, 2019 12:22
guewen and others added 8 commits October 14, 2019 15:08
There is no such action as 'ir.actions.do_nothing', it kinda works,
until you look into the js console and stares at the errors.

There is a nice OCA module that serves this purpose (more or less,
because it reloads the window, this is not an issue).
Example of usage in an odoo shell, when a screen is open:

>>> self.env['vertical.lift.shuttle'].browse(1)._operation_for_mode().operation_descr = 'foo'
>>> self.env['vertical.lift.shuttle'].browse(1)._send_notification_refresh()
>>> env.cr.commit()

Provided the longpolling is correctly configured with a proxy, the
screen should immediately refresh with 'foo' as operation description.
});


FormController.include({
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: I tried to use a widget to handle the notifications handling and insert it in the view (rather than using the FormController for this), but on this.reload(), the 'start' method of the new widget was called before the 'destroy' of the previous one, so the channel was de-registered of the bus_service.

guewen added a commit to guewen/stock-logistics-warehouse that referenced this pull request Dec 16, 2019
Extracted from stock_vertical_lift
(OCA#633)

Add tray types to stock locations, automatically generates
sub-locations. Present them nicely with a custom widget.
guewen added a commit to guewen/stock-logistics-warehouse that referenced this pull request Dec 16, 2019
Extracted from stock_vertical_lift
(OCA#633)

Add tray types to stock locations, automatically generates
sub-locations. Present them nicely with a custom widget.
guewen added a commit to guewen/stock-logistics-warehouse that referenced this pull request Dec 16, 2019
Extracted from stock_vertical_lift
(OCA#633)

Add tray types to stock locations, automatically generates
sub-locations. Present them nicely with a custom widget.
guewen added a commit to guewen/stock-logistics-warehouse that referenced this pull request Jan 7, 2020
Extracted from stock_vertical_lift
(OCA#633)

Add tray types to stock locations, automatically generates
sub-locations. Present them nicely with a custom widget.
guewen added a commit to guewen/stock-logistics-warehouse that referenced this pull request Mar 17, 2020
Extracted from stock_vertical_lift
(OCA#633)

Add tray types to stock locations, automatically generates
sub-locations. Present them nicely with a custom widget.
i-vyshnevska pushed a commit to camptocamp/stock-logistics-warehouse that referenced this pull request Apr 13, 2020
Signed-off-by LoisRForgeFlow
@guewen
Copy link
Member Author

guewen commented May 29, 2020

Work is continued in 13.0 in #797

@guewen guewen closed this May 29, 2020
phuctranfxvn pushed a commit to phuctranfxvn/stock-logistics-warehouse that referenced this pull request Feb 10, 2021
Extracted from stock_vertical_lift
(OCA#633)

Add tray types to stock locations, automatically generates
sub-locations. Present them nicely with a custom widget.
hailangvn pushed a commit to phuctranfxvn/stock-logistics-warehouse that referenced this pull request Aug 12, 2021
Extracted from stock_vertical_lift
(OCA#633)

Add tray types to stock locations, automatically generates
sub-locations. Present them nicely with a custom widget.
CarlosRoca13 pushed a commit to Tecnativa/stock-logistics-warehouse that referenced this pull request Aug 16, 2021
Extracted from stock_vertical_lift
(OCA#633)

Add tray types to stock locations, automatically generates
sub-locations. Present them nicely with a custom widget.
hailangvn pushed a commit to phuctranfxvn/stock-logistics-warehouse that referenced this pull request Aug 17, 2021
Extracted from stock_vertical_lift
(OCA#633)

Add tray types to stock locations, automatically generates
sub-locations. Present them nicely with a custom widget.
GabbasovDinar pushed a commit to cetmix/oca-stock-logistics-warehouse that referenced this pull request Dec 4, 2022
Extracted from stock_vertical_lift
(OCA#633)

Add tray types to stock locations, automatically generates
sub-locations. Present them nicely with a custom widget.
Urvisha-OSI pushed a commit to ursais/stock-logistics-warehouse that referenced this pull request Mar 23, 2023
Extracted from stock_vertical_lift
(OCA#633)

Add tray types to stock locations, automatically generates
sub-locations. Present them nicely with a custom widget.
GabbasovDinar pushed a commit to cetmix/oca-stock-logistics-warehouse that referenced this pull request Jul 10, 2023
Extracted from stock_vertical_lift
(OCA#633)

Add tray types to stock locations, automatically generates
sub-locations. Present them nicely with a custom widget.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants