OdooWiki OCA HUB

Repair Quotation Manual Sync

repair_quotation_manual_sync folder_open OCA/repair open_in_new
Repair License: AGPL-3

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.0

Repair 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

repair
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-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 2 confirmed, 7 with no information of 9 versions.

terminal Installation and usage

OCA documentation · Odoo 19.0

To 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.

info

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.