Repair Order Group

repair_order_group
REPOSITORY
REPOSITORYOCA/repair
GIT
GIThttps://github.com/OCA/repair.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/repair/tree/18.0/repair_order_group
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYRepair
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Cetmix OÜ
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Cetmix OÜ
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Mohajiro
WEBSITE
WEBSITEhttps://github.com/OCA/repair
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:14
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - repair
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - stock_account
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
    - sale_management
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows to group several repair orders, managing them in a more convenient way. Such orders are synchronised in the following actions:

- Partner selection. When a partner is updated in one of the group orders the same partner is set in all other orders of the same group.
- Order confirmation. When one of the orders is confirmed all other orders of the same group are confirmed.
- Order cancellation. When one of the orders is cancelled all other orders of the same group are cancelled.
- Quotation creation. When a new quotation is created all orders of the same group are added to the same quotation.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
view_repair_order_form_inherit_group repair.order.form.inherit.group repair.order xpath Inherits repair.view_repair_order_form
view_repair_order_group_form repair.order.group.form repair.order.group form New
view_repair_order_group_list repair.order.group.list repair.order.group list New
view_repair_order_search_inherit_group repair.order.search.inherit.group repair.order xpath Inherits repair.view_repair_order_form_filter
view_repair_order_tree_inherit_group repair.order.tree.inherit.group repair.order xpath Inherits repair.view_repair_order_tree
Models touched (2)

New fields (2)
  • group_id Many2one → repair.order.group
    check_company=True copy=False help='Repairs sharing the same group can be processed and quoted together.' index=True readonly=True string='Repair Group' args: 'repair.order.group'
  • grouped_repair_ids One2many → repair.order
    compute='_compute_grouped_repair_ids' help='All other repairs that belong to the same group.' string='Grouped Repairs' args: 'repair.order'
Public methods (4)
  • action_add_another_repair(self)
    Create a new empty repair linked to the same group. If the current repair is not yet assigned to a group, a new `repair.order.group` is automatically created first. The new repair will reuse basic logistics fields such as partner, company, and locations, but not copy any parts or products.
  • action_create_sale_order(self)
    Create Sale Order - single one for group or standard behavior if no group. For repair groups: creates one sale order containing all valid repairs from the same group. Maintains core Odoo validations while extending functionality for grouped repairs. Features: • Consolidated SO creation for repair groups • Standard individual SO creation for non-grouped repairs • Mixed selection handling with focused UX • Detailed validation messages with repair order references Returns: dict: Action to view the created sale order(s)
  • action_repair_cancel(self)
    Cancel repairs and cascade cancellation to other group members. The original method is called once on the combined set of selected repairs and their group members to preserve all Odoo core logic and side effects.
  • write(self, vals)
    Propagate partner changes across all repairs in the same group. When a user changes the partner on one repair, all other repairs of the same group automatically receive the same partner, ensuring data consistency. Recursion is prevented via the context flag `skip_group_sync`. All related repairs are updated in a single write operation.

New fields (5)
  • company_id Many2one → res.company
    compute='_compute_partner_company' store=True args: 'res.company'
  • name Char
    default='New' index=True required=True
  • partner_id Many2one → res.partner
    compute='_compute_partner_company' store=True args: 'res.partner'
  • repair_count Integer
    compute='_compute_repair_count' store=True
  • repair_ids One2many → repair.order
    args: 'repair.order', 'group_id'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
    Assign sequence when records are created programmatically.