Repository
OCA/stock-logistics-warehouse · module folder · Try on Runboat
Module version
1.0.0
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 08:22:57
Authors
Camptocamp, Odoo Community Association (OCA)
Maintainers
Camptocamp, Odoo Community Association (OCA)
Committers
Weblate, OCA-git-bot, oca-ci, Andreu Orensanz
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
None
Description
Allows to create stock reservations for quotation lines before the
confirmation of the quotation. The reservations might have a validity
date and in any case they are lifted when the quotation is canceled or
confirmed.

Reservations can be done only on "make to stock" and stockable products.

The reserved products are subtracted from the virtual stock. It means
that if you reserved a quantity of products which bring the virtual
stock below the minimum, the orderpoint will be triggered and new
purchase orders will be generated. It also implies that the max may be
exceeded if the reservations are canceled.

If you want to prevent sales orders to be confirmed when the stock is
insufficient at the order date, you may want to install the
sale_exception_nostock module.

Additionally, if the sale_owner_stock_sourcing module is installed, the
owner specified on the sale order line will be proposed as owner of the
reservation. If you try to make a reservation for an order whose lines
have different, you will get a message suggesting to reserve each line
individually. There is no module dependency: this modules is fully
functional even without ownership management.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
view_order_form_reserve sale.order.form.reserve sale.order form Inherits sale_stock.view_order_form_inherit_sale_stock
view_sale_stock_reserve_form sale.stock.reserve.form sale.stock.reserve form New
view_sale_stock_reserve_release_form sale.stock.reserve.release.form sale.stock.reserve.release form New
view_stock_reservation_form stock.reservation.form stock.reservation form Inherits stock_reserve.view_stock_reservation_form
view_stock_reservation_tree stock.reservation.tree stock.reservation tree Inherits stock_reserve.view_stock_reservation_tree
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (6)

New fields (5)
  • all_lines_reserved Boolean
    compute='_compute_reserves_count' compute_sudo=False default=False store=True
  • has_stock_reservation Boolean
    compute='_compute_stock_reservation' readonly=True store=True string='Has Stock Reservations'
  • is_stock_reservable Boolean
    compute='_compute_stock_reservation' readonly=True store=True string='Can Have Stock Reservations'
  • reserves_count Integer
    compute='_compute_reserves_count' compute_sudo=False store=True
  • stock_reservation_ids One2many → stock.reservation
    string='Stock Reservations' args: 'stock.reservation', 'sale_id'
Public methods (8)
  • action_cancel(self)
  • action_confirm(self)
  • action_open_release_reservation_wizard(self)
  • action_view_reserves_products(self)
  • get_message(self, old_vals, new_vals)
    @api.model
  • release_all_stock_reservation(self)
  • unlink(self)
  • write(self, vals)

New fields (3)
  • is_readonly Boolean
    compute='_compute_is_readonly' store=False
  • is_stock_reservable Boolean
    compute='_compute_is_stock_reservable' readonly=True string='Can be reserved'
  • reservation_ids One2many → stock.reservation
    copy=False string='Stock Reservation' args: 'stock.reservation', 'sale_line_id'
Public methods (3)
  • release_stock_reservation(self)
  • unlink(self)
  • write(self, vals)

New fields (5)
  • date_validity Date
    help='If a date is given, the reservations will be released at the end of the validity.' args: 'Validity Date'
  • location_dest_id Many2one → stock.location
    default=_default_location_dest_id help='Location where the system will reserve the products.' required=True args: 'stock.location', 'Reservation Location'
  • location_id Many2one → stock.location
    default=_default_location_id required=True args: 'stock.location', 'Source Location'
  • note Text
    args: 'Notes'
  • owner_id Many2one → res.partner
    args: 'res.partner', 'Stock Owner'
Public methods (2)
  • button_reserve(self)
  • stock_reserve(self, line_ids)

New fields (2)
  • reservation_ids Many2many → stock.reservation
    readonly=True string='Stock Reservations' args: 'stock.reservation'
  • sale_order_id Many2one → sale.order
    readonly=True args: 'sale.order'
Public methods (1)
  • button_release(self)

New fields (1)
  • sale_reserve_id Many2one → sale.order
    args: 'sale.order', 'Sale Stock Reserve'
Public methods (0)

No public methods.

New fields (2)
  • sale_id Many2one → sale.order
    related='sale_line_id.order_id' store=True string='Sale Order' args: 'sale.order'
  • sale_line_id Many2one → sale.order.line
    copy=False ondelete='cascade' string='Sale Order Line' args: 'sale.order.line'
Public methods (2)
  • action_view_reserves_stock_picking_reservation(self)
  • release_reserve(self)

Loading…

Loading…

Loading…

Loading…

Loading…

Status
Open migration PR — not merged yet for this version
CI status
checks failing
Open since
115 days ago
Last activity
113 days ago
Repository
OCA/stock-logistics-reservation
Pull request
[MIG] stock_reserve_sale: Migration to 18.0 (#54)