Skip to content
Draft
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
170 changes: 170 additions & 0 deletions repair_group/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
============
Repair Group
============

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

.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png
:target: https://odoo-community.org/page/development-status
:alt: Alpha
.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Frepair-lightgray.png?logo=github
:target: https://github.com/OCA/repair/tree/18.0/repair_group
:alt: OCA/repair
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/repair-18-0/repair-18-0-repair_group
: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/repair&target_branch=18.0
:alt: Try me on Runboat

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

This module allows grouping multiple repair orders by selecting
completed stock pickings (delivery notes) from a specific customer.

**Key features:**

- Create a **Repair Group** from one or more done stock pickings
belonging to the same customer (consignment/owner-tracked pickings).
- Automatically generate individual repair orders for each product in
the selected pickings.
- Supervisor approval workflow: technicians request approval and
supervisors validate or reject each repair order.
- Merge individual repair quotations (sale orders) into a single
consolidated sale order per group using a selection wizard.
- Full traceability: each repair order is linked to its origin picking
move line and to the repair group.
- State tracking across the full lifecycle: *Draft → Repairs Created →
Quotation Requested → Under Repair → Repaired* (or *Cancelled*).
- Mail thread and activity tracking on repair groups.
- Smart button on stock pickings to navigate directly to the associated
repair group.

.. IMPORTANT::
This is an alpha version, the data model and design can change at any time without warning.
Only for development or testing purpose, do not use in production.
`More details on development status <https://odoo-community.org/page/development-status>`_

**Table of contents**

.. contents::
:local:

Configuration
=============

Consignment (Stock Ownership Tracking)
--------------------------------------

This module requires the **Consignment** feature (*Inventory →
Configuration → Settings → Traceability → Consignment*) to be enabled so
that stock pickings track the owner of the goods.

The feature is **enabled automatically** when this module is installed
via a post-install hook. No manual configuration is required.

Supervisors
-----------

Each repair group has a **Supervisor** field. Assign the user
responsible for approving repair orders in the group. By default, the
user who creates the group is set as supervisor.

Usage
=====

Creating a Repair Group from a Stock Picking
--------------------------------------------

1. Open a **done** stock picking whose products are owned by a customer
(Consignment must be enabled — this module enables it automatically
on installation).
2. Click **Create Repair Group** in the picking form header.
3. The system creates a new repair group pre-filled with the customer
and the picking. You are redirected to the repair group form.

Repair Group Workflow
---------------------

1. **Draft**: Add additional pickings if needed. Click **Create
Repairs** to generate one repair order per move line.
2. **Repairs Created**: Review the generated repair orders in the
*Repair Orders* tab. Click **Request Quotations** to move forward, or
**Return to Draft** to undo.
3. **Quotation Requested**: Technicians fill in repair details and
generate quotations from each repair order. Once all quotations
exist, click **Create Complete Sale Order** to open the wizard.
4. **Wizard – Select Quotations**: Choose which quotations to merge and
click **Create Complete Sale Order**. The system consolidates the
selected lines into a single sale order.
5. **Quotation Requested (with main order)**: Review the consolidated
order. Click **Confirm Complete Sale Order** to confirm it and move
to *Under Repair*, or **Cancel Complete Sale Order** to discard it.
6. **Under Repair**: Repairs are being performed. Click **End Repair
Group** once all repair orders are in *Done* state.
7. **Repaired**: The group is complete.

Supervisor Approval
-------------------

On each repair order that belongs to a group, the responsible user can
click **Request Approval** to submit it for supervisor validation. The
supervisor (configured on the repair group) can then **Validate** or
**Reject** the repair directly from the repair order form.

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/repair/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/repair/issues/new?body=module:%20repair_group%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
-------

* Grupo Isonor

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

- Abel Suárez abel@suarezmuinho.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-abelsrzz| image:: https://github.com/abelsrzz.png?size=40px
:target: https://github.com/abelsrzz
:alt: abelsrzz

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

|maintainer-abelsrzz|

This module is part of the `OCA/repair <https://github.com/OCA/repair/tree/18.0/repair_group>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
3 changes: 3 additions & 0 deletions repair_group/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from . import models
from . import wizards
from .models.res_config_settings import post_init_hook
32 changes: 32 additions & 0 deletions repair_group/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Copyright 2026 Grupo Isonor - Abel Suárez
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl-3.0).

{
"name": "Repair Group",
"summary": "Create a group of repairs selecting Stock pickings",
"version": "18.0.1.0.0",
"category": "Repair",
"website": "https://github.com/OCA/repair",
"author": "Grupo Isonor, Odoo Community Association (OCA)",
"maintainers": ["abelsrzz"],
"license": "LGPL-3",
"development_status": "Alpha",
"depends": [
"repair",
"sale",
"stock",
],
"data": [
"security/ir.model.access.csv",
"data/repair_group_sequence.xml",
"views/wizard_repair_group_quotation.xml",
"views/repair_groups.xml",
"views/repair_groups_menu.xml",
"views/stock_picking_views.xml",
"views/sale_order_views.xml",
"views/repair_order_views.xml",
],
"application": False,
"installable": True,
"post_init_hook": "post_init_hook",
}
14 changes: 14 additions & 0 deletions repair_group/data/repair_group_sequence.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright 2026 Grupo Isonor - Abel Suárez
License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl-3.0). -->
<odoo noupdate="1">
<record id="repair_group_sequence" model="ir.sequence">
<field name="name">Repair Group</field>
<field name="code">repair.group</field>
<field name="prefix">RG/</field>
<field name="padding">5</field>
<field name="number_next">1</field>
<field name="number_increment">1</field>
<field name="company_id" eval="False" />
</record>
</odoo>
4 changes: 4 additions & 0 deletions repair_group/data/stock_settings.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<function model="repair.group.init" name="_init_settings" />
</odoo>
Loading
Loading