A vertical lift retrieves a tray and places it in front of the
user, and depending on the quantity the user takes from it,
it adapts the pending quantity in the tray. However, because of
errors, it could be that the system thinks the tray is empty
while it is not. With this module, when the system thinks the
tray is empty, while in the step for the release of the tray
the operator is asked explicitly to check if the tray is
actually empty. Depending on his/her answer (yes/no) an inventory
adjustment is created stating the situation.
To activate this optional feature, a new configuration setting
has been added to Inventory > Configuration > Settings, named
'Check Empty Tray'. It is deactivated by default.
Developing decisions:
- The screens shown to the operator are actually wizards, but
since in the original module (`stock_vertical_lift`) they
were considered (on the source tree) as views, this has been
continued here.
- It has been decided, to not change the current workflow of
the operators, to embed the new check inside the step for
the 'release'. So, a new screen is shown to ask for the
visual inspection of whether the tray is empty. In
order to test this easily, the method `button_release` of
the module `stock_vertical_lift` has been slightly modified
so that it always returns. This way we can check easily
in the unit-tests for the outcome of the intermediate
screen (i.e. wizard) ─ similarly to how it is done when
validating a picking that can result in a backorder.
The prevoius implementation was only taking into account the last inventory
specific to the location.
This change includes also inventories done on parents location.
Also display the computed last inventory date in the form view.
Several changes were done because of the code review:
* The category of the module is now "Warehouse", in alignment
with the categories user in OCA (https://odoo-community.org/shop)
* The list of fields in the depends() for the method
_compute_last_inventory_date() missed several fields, that are
now listed as dependencies.
* A new unit test has been added to account for the concern of the
functional needing a compute_sudo in its definition, just in case
a non privileged stock user was stuck into permission problems.
This new module adds a stored computed field on locations that stores
the last inventory date for the location, for validated inventories.
This is only computed for leaf locations, not parent ones.