| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/stock-logistics-warehouse |
| GIT | |
| GIT | https://github.com/OCA/stock-logistics-warehouse.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/stock-logistics-warehouse/tree/10.0/stock_available_product_expiry |
| VERSION | |
| VERSION | 1.0.3 |
| CATEGORY | |
| CATEGORY | Warehouse |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Denis Roussel, oca-travis, OCA-git-bot, François Honoré |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/stock-logistics-warehouse |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:19:55 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/stock-logistics-warehouse: - stock_available odoo/odoo: - stock - product - base - decimal_precision - base_setup - web_kanban - web - bus - web_tour - report - procurement - barcodes - web_planner - product_expiry |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| 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 | field | Inherits stock.product_form_view_procurement_button |
product_template_form_view |
product.template.form (in stock_available_product_expiry) | product.template | field | Inherits stock.product_template_form_view_procurement_button |
product_template_kanban_stock_view |
product.template.kanban (in stock_available_product_expiry) | product.template | field | 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 | data | 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 |
outgoing_expired_qty
Float
compute='_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_expired
Float
compute='_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)
check_expired_lots
Boolean
compute='_compute_check_expired_lots'
outgoing_expired_qty
Float
compute='_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_expired
Float
compute='_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)
action_open_quants(self)
stock_qty_available_lot_expired
Boolean
help='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)
set_stock_qty_available_lot_expired(self)
removal_date
Datetime
index=True
No public methods.
No new fields.
Public methods (0)No public methods.
location_id
Many2one → stock.location
default=_get_default_location_id
domain="[('usage', '=', 'internal')]"
required=True
states={'done': [('readonly', True)]}
args: 'stock.location', 'Location'
move_ids
One2many → stock.move
compute='_compute_move_ids'
readonly=True
args: 'stock.move'
name
Char
copy=False
default=<expr>
readonly=True
required=True
states={'done': [('readonly', True)]}
args: 'Reference'
origin
Char
string='Source Document'
owner_id
Many2one → res.partner
states={'done': [('readonly', True)]}
args: 'res.partner', 'Owner'
removal_date
Datetime
default=fields.Datetime.now
args: 'Expirity date'
scrap_location_id
Many2one → stock.location
default=_get_default_scrap_location_id
domain="[('scrap_location', '=', True)]"
states={'done': [('readonly', True)]}
args: 'stock.location', 'Scrap Location'
state
Selection
default='draft'
string='Status'
args: [('draft', 'Draft'), ('prepared', 'Prepared'), ('done', 'Done')]
stock_scrap_expired_line_ids
One2many → stock.scrap.expired.line
inverse_name='stock_scrap_expired_id'
states={'done': [('readonly', True)]}
args: 'stock.scrap.expired.line'
action_confirm(self)
action_get_stock_moves(self)
create(self, vals)
unlink(self)
expected_scrap_qty
Float
default=1.0
readonly=True
required=True
args: 'Expected Quantity'
location_id
Many2one → stock.location
readonly=True
required=True
args: 'stock.location', 'Location'
lot_id
Many2one → stock.production.lot
readonly=True
required=True
states={'done': [('readonly', True)]}
args: 'stock.production.lot', 'Lot'
move_id
Many2one → stock.move
readonly=True
related='stock_scrap_id.move_id'
store=True
args: 'stock.move', 'Scrap Move'
product_id
Many2one → product.product
readonly=True
required=True
args: 'product.product', 'Product'
product_uom_id
Many2one → product.uom
readonly=True
required=True
args: 'product.uom', 'Unit of Measure'
scrap_qty
Float
default=0.0
required=True
states={'done': [('readonly', True)]}
args: 'Quantity'
state
Selection
default='draft'
readonly=True
string='Status'
args: [('draft', 'Draft'), ('done', 'Done')]
stock_scrap_expired_id
Many2one → stock.scrap.expired
index=True
ondelete='cascade'
readonly=True
required=True
args: 'stock.scrap.expired'
stock_scrap_id
Many2one → stock.scrap
readonly=True
args: 'stock.scrap', 'Scrap'
do_scrap(self)
unlink(self)