TIP: You can type at any time to perform a new search.
Stock Lot Auto Remove
stock_lot_remove · OCA/stock-logistics-workflow
Security findings
Migration considerations
stock_warehouse_form_view— For a target of Odoo 17.0+: view 'stock_warehouse_form_view' uses `attrs=`/`states=`, which are no longer supported. Convert modifiers to direct Python boolean expressions in `invisible`/`readonly`/`required`; preserve the original AND/OR logic. migration-view-attrs-states · source
Migration review checklist, not a compatibility verdict. No target version is selected: apply version-specific advice only when migrating to that version or later.
- Repository
- OCA/stock-logistics-workflow · module folder · Try on Runboat
- Module version
- 1.0.1
- Category
- Uncategorized
- Folder size
- 0.09 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/stock-logistics-workflow
- Last tracking update
- 2026-10-03 23:25:08
- Authors
- ACSONE SA/NV, Odoo Community Association (OCA), BCIM
- Maintainers
- ACSONE SA/NV, Odoo Community Association (OCA), BCIM
- Committers
- Laurent Mignon (ACSONE), OCA-git-bot, oca-ci
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- None
- Description
This addon allows to automatically remove stock quants with a past removal date, regardless of whether they are reserved or not. On each warehouse, you can enable the automatic removal of lots with a past removal date. Every day, for each warehouse where the automatic removal is enabled, a cron job will launch the process to remove past removal date quants.
Code Analysis
Views touched (3)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
stock_lot_removal_wizard_form_view |
stock.lot.removal.wizard | form | New | |
stock_picking_type_form_view |
stock.picking.type | form | Inherits stock.view_picking_type_form | |
stock_warehouse_form_view |
stock.warehouse | form | Inherits stock.view_warehouse |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (3)
New fields (3)
-
descriptionHtmlcompute='_compute_description'help='This wizard will generate removal moves for the quants of the lots to remove from the selected warehouse to the designated destination location' -
removal_dateDatedefault=fields.Date.context_todayhelp='Lots with removal date before this date will be moved.'required=Truestring='Expiration Date' -
warehouse_idMany2one → stock.warehousedefault=<expr>required=Truestring='Warehouse' args: 'stock.warehouse'
-
action_run(self)Main entry point to find expired lots and create a transfer picking. This method will: 1. Find expired quants based on the removal date. 2. Unreserve moves that are linked to these quants. 3. Create a transfer picking to move these quants to the destination location. 4. Reassign the moves that were unreserved. return: The created picking record. -
button_action_run(self)Run the wizard and return the action to view the created picking. -
get_transfer_picking_vals(self, quants, moves_unreserved)Get the values to create a transfer picking for a quant.
New fields (1)
-
disable_unassign_lots_to_removeBooleanhelp='If checked, the unassignment of lots to remove will be disabled for this picking type. This is useful for picking types that should not allow unassigning lots, such as those used for expired lot removal.'string='Disable Unassign Lots to Remove'
No public methods.
New fields (3)
-
lot_remove_enabledBooleanhelp='If checked, a move will be planned reserving the expired lot.'string='Enable Expired Lot Removal' -
lot_remove_orig_location_idsMany2many → stock.locationcomodel_name='stock.location'compute='_compute_lot_remove_orig_location_ids'help='Locations from which expired lots will be moved.'readonly=Falsestore=Truestring='Expired Lot Origin Locations' -
lot_remove_picking_type_idMany2one → stock.picking.typecomodel_name='stock.picking.type'help='Picking type used for moving expired lots.'string='Expired Lot Move Picking Type'
No public methods.