TIP: You can type at any time to perform a new search.
Product Expiry Available
stock_available_product_expiry · OCA/stock-logistics-warehouse
- Repository
- OCA/stock-logistics-warehouse · module folder · Try on Runboat
- Module version
- 1.0.3
- Category
- Warehouse
- Folder size
- 0.11 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/stock-logistics-warehouse
- Last tracking update
- 2026-08-07 07:17:44
- Authors
- ACSONE SA/NV, Odoo Community Association (OCA)
- Maintainers
- ACSONE SA/NV, Odoo Community Association (OCA)
- Committers
- Denis Roussel, François Honoré, OCA-git-bot, oca-travis
Code Analysis ⓘ
Views touched (11)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
stock_available_product_expiry assets | ir.ui.view | qweb | Inherits web.assets_backend |
product_product_form_view |
product.product.form (in stock_available_product_expiry) | product.product | form | Inherits stock.product_form_view_procurement_button |
product_template_form_view |
product.template.form (in stock_available_product_expiry) | product.template | form | Inherits stock.product_template_form_view_procurement_button |
product_template_kanban_stock_view |
product.template.kanban (in stock_available_product_expiry) | product.template | kanban | Inherits stock.product_template_kanban_stock_view |
stock_scrap_expired_document |
stock_scrap_expired_document | ir.ui.view | qweb | New |
stock_scrap_expired_form_view |
stock.scrap.expired.form (in stock_available_product_expiry) | stock.scrap.expired | form | New |
stock_scrap_expired_line_tree_view |
stock.scrap.expired.line.tree (in stock_available_product_expiry) | stock.scrap.expired.line | tree | New |
stock_scrap_expired_search_view |
stock.scrap.expired.search (in stock_available_product_expiry) | stock.scrap.expired | search | New |
stock_scrap_expired_tree_view |
stock.scrap.expired.tree (in stock_available_product_expiry) | stock.scrap.expired | tree | New |
view_stock_configuration |
Stock settings: Take into account expired lots | stock.config.settings | Inherits stock.view_stock_config_settings | |
view_stock_product_template_tree |
product.template.stock.available.tree (in stock_available_product_expiry) | product.template | tree | Inherits stock.view_stock_product_template_tree |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (7)
New fields (2)
-
outgoing_expired_qtyFloatcompute='_compute_quantities'digits=dp.get_precision('Product Unit of Measure')help='Quantity of products that are planned to leave but which should be removed from the stock since these are expired.'string='Expired Outgoing' -
qty_expiredFloatcompute='_compute_quantities'digits=dp.get_precision('Product Unit of Measure')help='Stock for this Product that must be removed from the stock. This stock is no more available for sale to Customers.\nThis quantity include all the production lots with a past removal date.'string='Expired'
-
action_open_expired_quants(self)@api.multi
New fields (3)
-
check_expired_lotsBooleancompute='_compute_check_expired_lots' -
outgoing_expired_qtyFloatcompute='_compute_quantities'digits=dp.get_precision('Product Unit of Measure')help='Quantity of products that are planned to leave but which should be removed from the stock since these are expired.'string='Expired Outgoing' -
qty_expiredFloatcompute='_compute_quantities'digits=dp.get_precision('Product Unit of Measure')help='Stock for this Product that must be removed from the stock. This stock is no more available for sale to Customers.\nThis quantity include all the production lots with a past removal date.'string='Expired'
-
action_open_expired_quants(self)@api.multi -
action_open_quants(self)@api.multi
New fields (1)
-
stock_qty_available_lot_expiredBooleanhelp='Check this if you want to compute stock level minus expired product lots (based on removal date) if it is defined' args: "Stock level won't take into account lots expired"
-
get_default_stock_qty_available_lot_expired(self, fields)@api.model -
set_stock_qty_available_lot_expired(self)@api.multi
New fields (1)
-
removal_dateDatetimeindex=True
No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (9)
-
location_idMany2one → stock.locationdefault=_get_default_location_iddomain="[('usage', '=', 'internal')]"required=Truestates={'done': [('readonly', True)]} args: 'stock.location', 'Location' -
move_idsOne2many → stock.movecompute='_compute_move_ids'readonly=True args: 'stock.move' -
nameCharcopy=Falsedefault=<expr>readonly=Truerequired=Truestates={'done': [('readonly', True)]} args: 'Reference' -
originCharstring='Source Document' -
owner_idMany2one → res.partnerstates={'done': [('readonly', True)]} args: 'res.partner', 'Owner' -
removal_dateDatetimedefault=fields.Datetime.now args: 'Expirity date' -
scrap_location_idMany2one → stock.locationdefault=_get_default_scrap_location_iddomain="[('scrap_location', '=', True)]"states={'done': [('readonly', True)]} args: 'stock.location', 'Scrap Location' -
stateSelectiondefault='draft'string='Status' args: [('draft', 'Draft'), ('prepared', 'Prepared'), ('done', 'Done')] -
stock_scrap_expired_line_idsOne2many → stock.scrap.expired.lineinverse_name='stock_scrap_expired_id'states={'done': [('readonly', True)]} args: 'stock.scrap.expired.line'
-
action_confirm(self)@api.multi -
action_get_stock_moves(self)@api.multi -
create(self, vals)@api.model -
unlink(self)@api.multi
New fields (10)
-
expected_scrap_qtyFloatdefault=1.0readonly=Truerequired=True args: 'Expected Quantity' -
location_idMany2one → stock.locationreadonly=Truerequired=True args: 'stock.location', 'Location' -
lot_idMany2one → stock.production.lotreadonly=Truerequired=Truestates={'done': [('readonly', True)]} args: 'stock.production.lot', 'Lot' -
move_idMany2one → stock.movereadonly=Truerelated='stock_scrap_id.move_id'store=True args: 'stock.move', 'Scrap Move' -
product_idMany2one → product.productreadonly=Truerequired=True args: 'product.product', 'Product' -
product_uom_idMany2one → product.uomreadonly=Truerequired=True args: 'product.uom', 'Unit of Measure' -
scrap_qtyFloatdefault=0.0required=Truestates={'done': [('readonly', True)]} args: 'Quantity' -
stateSelectiondefault='draft'readonly=Truestring='Status' args: [('draft', 'Draft'), ('done', 'Done')] -
stock_scrap_expired_idMany2one → stock.scrap.expiredindex=Trueondelete='cascade'readonly=Truerequired=True args: 'stock.scrap.expired' -
stock_scrap_idMany2one → stock.scrapreadonly=True args: 'stock.scrap', 'Scrap'
-
do_scrap(self)@api.multi -
unlink(self)@api.multi