Skip to content
Health
70/100
fair
  • Security25/25
    No findings
  • Activity25/25
    Last human commit 3 months ago
  • Required by15/25
    1 module depends on it
  • Maturity5/25
    In 1 Odoo series since 18.0

Heuristic over the facts below, not an audit · How it's computed

Security findings
Grave / minor (static analysis)
Required by
1
Modules depending on it
External deps
0 pip · 0 bin
Python packages / system binaries
License
AGPL-3
No conflicts with its dependencies
Folder size
0.07 MB
Module directory on disk
Code analysis 0 migration notes 5 models 5 views 0 HTTP endpoints

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.

Dependencies

Code analysis

Extracted from the source by best-effort static analysis (no code is executed); details may be incomplete.

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.