Odoo Mindscape. Understand Odoo faster. Explore modules, fields, dependencies and version differences in one place instead of digging through the source code.

Module: Maintenance

Entity: maintenance.mixin

Compute Method: _compute_maintenance_request

Inputs Method Outputs
for record in self:
            maintenance_requests = record.maintenance_ids.filtered(lambda mr: mr.maintenance_type == 'corrective' and mr.state == 'done')
            failure_dates = [(request.schedule_date or request.create_date).date() for request in maintenance_requests]
            record.mttr = len(maintenance_requests) and sum((request.close_date - failure_date).days
                if request.close_date else 0
                for request, failure_date in zip(maintenance_requests, failure_dates)) / len(maintenance_requests)
            record.latest_failure_date = max(failure_dates, default=False)
            record.mtbf = record.latest_failure_date and (record.latest_failure_date - record.effective_date).days / len(maintenance_requests) or 0
            record.estimated_next_failure = record.mtbf and record.latest_failure_date + relativedelta(days=record.mtbf) or False

Back to entity