Metadata-Version: 2.1
Name: odoo-addon-stock_picking_reservation_policy
Version: 19.0.1.0.0.3
Requires-Dist: odoo==19.0.*
Summary: Reserve a transfer's moves all-or-nothing instead of partially.
Home-page: https://github.com/OCA/stock-logistics-workflow
License: AGPL-3
Author: Camptocamp, Odoo Community Association (OCA)
Author-email: support@odoo-community.org
Classifier: Programming Language :: Python
Classifier: Framework :: Odoo
Classifier: Framework :: Odoo :: 19.0
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Description-Content-Type: text/x-rst

.. image:: https://odoo-community.org/readme-banner-image
   :target: https://odoo-community.org/get-involved?utm_source=readme
   :alt: Odoo Community Association

================================
Stock Picking Reservation Policy
================================

.. 
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! This file is generated by oca-gen-addon-readme !!
   !! changes will be overwritten.                   !!
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! source digest: sha256:f816c7a6bfa44ebe85cb1b03f7104d2755571f2986e2621a159e2b17f3fdd392
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
    :target: https://odoo-community.org/page/development-status
    :alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
    :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
    :alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fstock--logistics--workflow-lightgray.png?logo=github
    :target: https://github.com/OCA/stock-logistics-workflow/tree/19.0/stock_picking_reservation_policy
    :alt: OCA/stock-logistics-workflow
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
    :target: https://translation.odoo-community.org/projects/stock-logistics-workflow-19-0/stock-logistics-workflow-19-0-stock_picking_reservation_policy
    :alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
    :target: https://runboat.odoo-community.org/builds?repo=OCA/stock-logistics-workflow&target_branch=19.0
    :alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

By default, Odoo reserves whatever quantity is available for a
transfer's lines (stock moves), leaving the rest as *partially
available*.

This module adds a **Reservation Policy** that controls this behavior,
on the operation type and on the transfer itself:

- **Partial**: reserve whatever quantity is available (standard
  behavior).
- **All or nothing per line**: each transfer line (stock move) is
  reserved only if its **full** quantity can be reserved from stock;
  otherwise that line stays entirely unreserved.

The all-or-nothing rule is applied **per line (stock.move)**,
independently for each line of the transfer — not on the transfer as a
whole. One line may be fully reserved while another, short on stock,
stays unreserved.

The transfer defaults its policy from the operation type, and the value
can be adjusted on the transfer.

It is similar in spirit to the *Shipping Policy* (``move_type``), but it
applies at **reservation** time on each line, rather than at delivery
time. It only affects reservation from stock: lines fed by chained
(origin) moves keep their standard behavior.

**Table of contents**

.. contents::
   :local:

Usage
=====

To set the default reservation policy of an operation type:

1. Go to *Inventory > Configuration > Operations Types*.
2. Open an operation type and set its *Reservation Policy* (Partial or
   All or nothing per line).

On a transfer, the *Reservation Policy* defaults from the operation type
and can be adjusted manually before reservation.

When checking availability:

- **Partial**: each line reserves whatever quantity is available.
- **All or nothing per line**: each transfer line (stock move) is
  reserved only if its full quantity is available from stock; otherwise
  that line stays unreserved, leaving its stock available to the other
  lines. The rule is applied independently on each line, not on the
  transfer as a whole.

Known issues / Roadmap
======================

A third reservation policy, *All or nothing per transfer* (``all``), is
planned.

Where *All or nothing per line* applies the all-or-nothing rule
independently to each line (stock move), *All or nothing per transfer*
would apply it to the whole transfer at once: the transfer is reserved
only if **every** one of its stock-sourced lines can be fully reserved;
if any line falls short, none of the transfer's lines are reserved.

This is not implemented yet.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/stock-logistics-workflow/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/stock-logistics-workflow/issues/new?body=module:%20stock_picking_reservation_policy%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Camptocamp

Contributors
------------

- `Camptocamp <https://www.camptocamp.com>`__

  - Iván Todorovich ivan.todorovich@camptocamp.com

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
   :alt: Odoo Community Association
   :target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

.. |maintainer-ivantodorovich| image:: https://github.com/ivantodorovich.png?size=40px
    :target: https://github.com/ivantodorovich
    :alt: ivantodorovich

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-ivantodorovich| 

This module is part of the `OCA/stock-logistics-workflow <https://github.com/OCA/stock-logistics-workflow/tree/19.0/stock_picking_reservation_policy>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
