This module makes the synchronization between a repair order and its quotation an explicit action instead of an automatic one. In standard Odoo every part added to or changed on a repair order is pushed to the linked quotation straight away; here the quotation only changes when a user asks for it, and each part carries an Invoiceable flag that decides whether it reaches the quotation at all. Whenever the two documents drift apart, a banner on the quotation reports it and offers a Synchronize Lines button that brings the quotation in line with the repair order. Synchronization applies to quotations that are still a draft or have been sent; the lines of the quotation created from the repair order itself are filled in automatically.
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Repair orders no longer update their quotation automatically: each part carries an Invoiceable flag, and a banner on the quotation offers a Synchronize Lines button to push the changes when you decide.
In standard Odoo, every part added to or changed on a repair order is pushed to the linked quotation immediately. With this module the quotation only changes when a user asks for it.
On the repair order, the parts list now shows an Invoiceable checkbox. Only parts with this box ticked will ever reach the quotation. Once the linked quotation has been confirmed (state sale), the checkbox becomes read-only, so the invoiceable decision can no longer be changed.
On the quotation, a warning banner appears whenever the repair order and the quotation have drifted apart. The banner explains that the two documents are not synchronized and offers a Synchronize Lines button. Pressing it brings the quotation in line with the repair order: new invoiceable parts are added as quotation lines, changed parts are updated, and parts that are no longer invoiceable or have zero quantity are removed from the quotation. Synchronization only works while the quotation is still a draft or has been sent; in any other state the button does nothing.
When the quotation is first created from the repair order, its lines are filled in automatically, so the initial quotation is complete without any manual step. The module touches repair.order, sale.order and stock.move.
Depends on
Models and fields (3)
- sale.order · extends an existing modelneeds_repair_sync
- stock.move · extends an existing modelrepair_create_sync, repair_invoiceable (Invoiceable), repair_update_sync, is_repair_sale_confirmed
- repair.order · extends an existing model
Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 2 confirmed, 7 with no information of 9 versions.
Sources · Odoo 17.0
Confirmed on 2026-11-03 in branch 17.0 of OCA/repair.
terminal Installation and usage
OCA documentation · Odoo 19.0Usage
Source · Odoo 19.0To create a quotation out of a repair order, you need to:
- Go to Repair \> Repair Orders and open a repair order.
- In the parts list, untick Invoiceable on every part that should not be billed to the customer.
- Click Create Quotation. The quotation is created with one line per invoiceable part.
To carry later changes of the repair order over to its quotation:
- Add, remove or replace parts, change their quantities, or tick and untick Invoiceable.
- Open the linked quotation. The banner reports that the repair order and the quotation are no longer synchronized.
- Click Synchronize Lines. Lines are added, updated, or set to a zero quantity, so that the quotation matches the invoiceable parts of the repair order.
No verified information in OCA: Installation, Configuration.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.