Metadata-Version: 2.1
Name: odoo-addon-stock_interwarehouse_transfer
Version: 17.0.1.0.0.2
Requires-Python: >=3.10
Requires-Dist: odoo>=17.0a,<17.1dev
Summary: Push-style transfers between warehouses of the same company.
Home-page: https://github.com/OCA/stock-logistics-workflow
License: AGPL-3
Author: ForgeFlow S.L., Odoo Community Association (OCA)
Author-email: support@odoo-community.org
Classifier: Programming Language :: Python
Classifier: Framework :: Odoo
Classifier: Framework :: Odoo :: 17.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 Inter-Warehouse Transfer
==============================

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

.. |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/17.0/stock_interwarehouse_transfer
    :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-17-0/stock-logistics-workflow-17-0-stock_interwarehouse_transfer
    :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=17.0
    :alt: Try me on Runboat

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

This module adds an **Inter-Warehouse Transfer** document that lets
users explicitly push stock from one warehouse to another within the
same company.

Confirming a transfer creates exactly two pickings (OUT at the source
warehouse, IN at the destination warehouse) connected through the
company's internal transit location. The document state is automatically
derived from the underlying picking states and supports backorders.

To keep this the only path for moving stock across warehouses, the
module also blocks any **internal** stock move whose source and
destination locations belong to different warehouses, forcing users
through the Inter-Warehouse Transfer document.

**Table of contents**

.. contents::
   :local:

Use Cases / Context
===================

**Business Need**

Companies with multiple warehouses sometimes need to initiate stock
transfers based on an operational decision — not triggered by
procurement demand. Typical use cases:

- Proactively balancing inventory between locations.
- Reviewing and confirming both the outgoing and incoming legs before
  any stock moves.
- Tracing the full inter-warehouse operation as a single document.

Odoo's standard resupply routes are demand-driven and do not provide a
single document grouping both legs of a transfer.

**Approach**

On confirmation, the transfer creates exactly two pickings connected
through the company's internal transit location: an **OUT** picking at
the source warehouse and an **IN** picking at the destination warehouse.
Both use dedicated operation types (``IW`` / ``IWR``) created lazily per
warehouse, keeping inter-warehouse moves out of regular delivery and
receipt queues.

The OCA module ``stock_warehouse_resupply_route_push`` (v18.0+,
``OCA/stock-logistics-workflow``) provides a similar capability via push
rules, but the IN picking is only created after the OUT picking is
validated — making it impossible to review both legs before stock moves.

**Useful Information**

- Requires an **Internal Transit Location** configured on the company
  (``Inventory > Configuration > Warehouses``).
- Designed for single-company, multi-warehouse setups.
- Source and destination locations default to each warehouse's main
  stock location and can be overridden per transfer.
- Works with Odoo's standard backorder flow: partial validations create
  backorders automatically linked to the same transfer document.

Usage
=====

Go to *Inventory > Operations > Inter-Warehouse Transfers* and create a
new transfer:

1. Select **From Warehouse** and **To Warehouse** (same company).
2. Optionally override the **From Location** and **To Location** (they
   default to each warehouse's main stock location).
3. Add one or more product lines with quantities.
4. Click **Confirm**.

Two stock pickings are created automatically — an OUT picking at the
source warehouse and an IN picking at the destination warehouse,
connected through the company's internal transit location. Use the
**Transfers** smart button to open them.

Validate the OUT picking when the goods leave the source warehouse. The
transfer moves to *In Transit*. Validate the IN picking when the goods
arrive at the destination. The transfer moves to *Done*.

Partial validation creates backorders that are automatically linked to
the same transfer document.

A confirmed transfer stays editable: changing a line quantity, adding a
line or removing one propagates to the stock moves of both legs. The
**Shipped** and **Received** columns show how much of each line is
already validated.

- Increasing a quantity extends the open moves. If a leg has no open
  picking left — for instance the OUT was already validated — a new
  picking is created for the additional quantity.
- Decreasing a quantity reduces the open moves, and cancels them when it
  reaches zero. A quantity cannot be decreased below what is already
  validated on that leg; create a return instead.
- Removing a line cancels its moves. A line that is already partly
  validated cannot be removed.

Internal transfers between locations of different warehouses are no
longer allowed outside this document: attempting to create such an
internal move raises a validation error asking to use an Inter-Warehouse
Transfer instead.

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

- Inter-company transfers (source and destination warehouses belonging
  to different companies) are not yet supported. Both warehouses must
  currently belong to the same company.
- Decreasing a line below the quantity already validated on a leg is
  blocked rather than reversed: the return has to be created manually.

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_interwarehouse_transfer%0Aversion:%2017.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
-------

* ForgeFlow S.L.

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

- ForgeFlow S.L.

  - Guillem Casassas <guillem.casassas@forgeflow.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-GuillemCForgeFlow| image:: https://github.com/GuillemCForgeFlow.png?size=40px
    :target: https://github.com/GuillemCForgeFlow
    :alt: GuillemCForgeFlow

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

|maintainer-GuillemCForgeFlow| 

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

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