Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
121 changes: 121 additions & 0 deletions purchase_order_line_merge/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
=========================
Purchase Order Line Merge
=========================

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

.. |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/licence-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%2Fpurchase--workflow-lightgray.png?logo=github
:target: https://github.com/OCA/purchase-workflow/tree/18.0/purchase_order_line_merge
:alt: OCA/purchase-workflow
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/purchase-workflow-18-0/purchase-workflow-18-0-purchase_order_line_merge
: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/purchase-workflow&target_branch=18.0
:alt: Try me on Runboat

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

This module allows users to select multiple purchase order lines from
different purchase orders and merge them into a single new purchase
order.

Unlike ``purchase_merge`` which works at the order level, this module
operates at the line level, giving more granular control over which
specific lines to consolidate.

Key features:

- Lines with the same product, unit price, unit of measure, and taxes
are automatically grouped into a single line on the resulting
purchase order.
- The default quantity to merge considers both invoiced and received
amounts, defaulting to the available (uninvoiced/unreceived)
quantity.
- The unit price is editable in the wizard, allowing price adjustments
before creating the new order.
- Partial merges are supported: the remaining quantity stays on the
original order.
- Orders that reach zero amount after the merge are automatically
cancelled.

This module also adds the **Qty Invoiced** and **Qty Received** columns
to the Purchase Order Lines list view for better visibility.

**Table of contents**

.. contents::
:local:

Usage
=====

1. Go to **Purchase > Orders > Purchase Order Lines**.
2. Select the lines you want to merge.
3. Click **Action > Merge into Purchase Order**.
4. In the wizard, review or change the vendor and order date.
5. Adjust the quantities and/or unit prices if needed. The default
quantity is the available amount (original minus the greater of
invoiced or received).
6. Click **Merge Lines** to create the new purchase order.

The original purchase order lines will have their quantities reduced by
the merged amount. If all lines of a purchase order reach zero, the
order is automatically cancelled.

Validations will prevent merging lines from different currencies,
different warehouses, or cancelled/locked orders.

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/purchase-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/purchase-workflow/issues/new?body=module:%20purchase_order_line_merge%0Aversion:%2018.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
-------

* SpearHead

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

- `SpearHead <https://spearhead.global/>`__

- Ricardo Jara <rjara@spearhead.global>

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.

This module is part of the `OCA/purchase-workflow <https://github.com/OCA/purchase-workflow/tree/18.0/purchase_order_line_merge>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions purchase_order_line_merge/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import wizard
15 changes: 15 additions & 0 deletions purchase_order_line_merge/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"name": "Purchase Order Line Merge",
"version": "18.0.1.0.0",
"author": "SpearHead, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/purchase-workflow",
"license": "AGPL-3",
"category": "Inventory/Purchase",
"summary": "Merge purchase order lines into a new purchase order",
"depends": ["purchase_order_line_menu", "purchase_stock"],
"data": [
"security/ir.model.access.csv",
"wizard/purchase_order_line_merge_views.xml",
],
"installable": True,
}
3 changes: 3 additions & 0 deletions purchase_order_line_merge/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"
3 changes: 3 additions & 0 deletions purchase_order_line_merge/readme/CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- [SpearHead](https://spearhead.global/)

- Ricardo Jara \<<rjara@spearhead.global>\>
22 changes: 22 additions & 0 deletions purchase_order_line_merge/readme/DESCRIPTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
This module allows users to select multiple purchase order lines from
different purchase orders and merge them into a single new purchase order.

Unlike `purchase_merge` which works at the order level, this module
operates at the line level, giving more granular control over which
specific lines to consolidate.

Key features:

- Lines with the same product, unit price, unit of measure, and taxes are
automatically grouped into a single line on the resulting purchase order.
- The default quantity to merge considers both invoiced and received
amounts, defaulting to the available (uninvoiced/unreceived) quantity.
- The unit price is editable in the wizard, allowing price adjustments
before creating the new order.
- Partial merges are supported: the remaining quantity stays on the
original order.
- Orders that reach zero amount after the merge are automatically
cancelled.

This module also adds the **Qty Invoiced** and **Qty Received** columns
to the Purchase Order Lines list view for better visibility.
15 changes: 15 additions & 0 deletions purchase_order_line_merge/readme/USAGE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
1. Go to **Purchase > Orders > Purchase Order Lines**.
2. Select the lines you want to merge.
3. Click **Action > Merge into Purchase Order**.
4. In the wizard, review or change the vendor and order date.
5. Adjust the quantities and/or unit prices if needed.
The default quantity is the available amount (original minus the
greater of invoiced or received).
6. Click **Merge Lines** to create the new purchase order.

The original purchase order lines will have their quantities reduced by
the merged amount. If all lines of a purchase order reach zero, the
order is automatically cancelled.

Validations will prevent merging lines from different currencies,
different warehouses, or cancelled/locked orders.
3 changes: 3 additions & 0 deletions purchase_order_line_merge/security/ir.model.access.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_purchase_order_line_merge,purchase.order.line.merge,model_purchase_order_line_merge,purchase.group_purchase_user,1,1,1,0
access_purchase_order_line_merge_line,purchase.order.line.merge.line,model_purchase_order_line_merge_line,purchase.group_purchase_user,1,1,1,0
Loading