# -*- coding: utf-8 -*- import base64 from odoo import api, fields, models, _ from odoo.exceptions import UserError class SfMaintenanceEquipmentCategory(models.Model): _inherit = 'maintenance.request' _description = '维保计划' sf_maintenance_type = fields.Selection([('保养', '保养'), ('检修', '检修')], string='维保类别', default='保养') equipment_maintenance_id = fields.Many2one('equipment.maintenance.standards', string='设备维保标准', domain="[('maintenance_type','=',sf_maintenance_type)]") active = fields.Boolean('有效', default=True) @api.onchange('sf_maintenance_type') def _compute_equipment_maintenance_request_id(self): for record in self: if record.sf_maintenance_type == '保养': record.equipment_maintenance_id = record.equipment_id.eq_maintenance_id if record.sf_maintenance_type == '检修': record.equipment_maintenance_id = record.equipment_id.overhaul_id if not record.equipment_maintenance_id: record.equipment_maintenance_id = False maintenance_standards = fields.Many2many('maintenance.standards', string='维保项目') @api.constrains('equipment_maintenance_id') def _check_equipment_maintenance_id(self): for record in self: if not record.equipment_maintenance_id: raise UserError(_("设备维保标准不能为空,请选择后再保存")) def confirm_maintenance(self): self.write({'stage_id': 2}) def confirm_maintenance_done(self): self.write({'stage_id': 3})