Repository
OCA/repair · module folder · Try on Runboat
Module version
1.0.0
Category
Repair
Folder size
0.06 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/repair
Last tracking update
2026-07-15 19:43:04
Authors
Odoo Community Association (OCA), Escodoo
Maintainers
Odoo Community Association (OCA), Escodoo
Committers
OCA-git-bot, oca-ci, kaynnan
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
None
Description
Adds analytic distribution to repair orders.

When a repair is completed, analytic journal entries are automatically created
for each part move, using the configured price type (sale price or cost) with
the following sign convention:

- **Added** parts → negative amount (cost)
- **Removed** parts → positive amount (recovery)
- **Recycled** parts → positive amount (recovery)

Entries are deleted on cancel or when the repair order is removed.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
repair_view_picking_type_form_analytic stock.picking.type.inherit.repair.analytic stock.picking.type form Inherits repair.repair_view_picking_type_form
view_account_analytic_line_form_inherit_repair account.analytic.line.form.inherit.repair account.analytic.line form Inherits analytic.view_account_analytic_line_form
view_account_analytic_line_list_inherit_repair account.analytic.line.list.inherit.repair account.analytic.line list Inherits analytic.view_account_analytic_line_tree
view_account_analytic_line_search_repair account.analytic.line.search.repair account.analytic.line search New
view_repair_order_form_analytic repair.order.form.inherit.analytic repair.order form Inherits repair.view_repair_order_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (5)

New fields (1)
  • business_domain Selection
    ondelete={'repair': 'cascade'} selection_add=[('repair', 'Repair')]
Public methods (0)

No public methods.

New fields (1)
  • repair_order_id Many2one → repair.order
    index=True ondelete='cascade' string='Repair Order' args: 'repair.order'
Public methods (0)

No public methods.

New fields (1)
  • analytic_line_count Integer
    compute='_compute_analytic_line_count' string='Analytic Lines'
Public methods (4)
  • action_repair_cancel(self)
  • action_repair_done(self)
  • action_view_analytic_lines(self)
  • unlink(self)

New fields (2)
  • company_currency_id Many2one
    related='company_id.currency_id' string='Company Currency'
  • cost Float
    groups='base.group_user' help="Product cost, used when the repair operation type's Analytic Price Type is set to 'Cost'." related='product_id.standard_price' string='Cost'
Public methods (3)
  • copy_data(self, default=None)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (1)
  • analytic_price_type Selection
    default='price' selection=[('price', 'Price'), ('cost', 'Cost')]
Public methods (0)

No public methods.