# -*-coding:utf-8-*- from odoo import api, fields, models, SUPERUSER_ID, _ from odoo.exceptions import UserError class SfEquipmentSaintenanceStandards(models.Model): _name = 'equipment.maintenance.standards' _description = '设备维保标准' def get_no(self): partner = self.env['equipment.maintenance.standards'].sudo().search( [('code', '!=', '')], limit=1, order="id desc") if not partner: num = "%04d" % 1 else: m = int(partner.code) + 1 num = "%04d" % m return num code = fields.Char(string='编码', default=get_no) maintenance_type = fields.Selection([('保养', '保养'), ("检修", "检修")], string='类型', default='保养') name = fields.Char(string='名称') created_user_id = fields.Many2one('res.users', string='创建人', default=lambda self: self.env.user) maintenance_equipment_category_id = fields.Many2one('maintenance.equipment.category', string='设备类别') maintenance_equipment_ids = fields.Many2many( 'maintenance.equipment', 'sf_maintenance_equipment_ids', string='设备', domain="[('category_id', '=', maintenance_equipment_category_id)]" ) maintenance_standards_ids = fields.One2many('maintenance.standards', 'equipment_maintenance_standards_id', string='维保项目') eq_maintenance_ids = fields.One2many('maintenance.equipment', 'eq_maintenance_id', string='保养设备') overhaul_ids = fields.One2many('maintenance.equipment', 'overhaul_id', string='检修设备') @api.onchange('maintenance_equipment_ids') def onchange_maintenance_equipment_ids(self): for record in self: if record.maintenance_type == '保养': record.write({'eq_maintenance_ids': [(6, 0, record.maintenance_equipment_ids.ids)]}) if record.maintenance_type == '检修': record.write({'overhaul_ids': [(6, 0, record.maintenance_equipment_ids.ids)]}) class SfSaintenanceStandards(models.Model): _name = 'maintenance.standards' _description = '维保项目' name = fields.Char('维保项目') maintenance_standards = fields.Char('维保标准') equipment_maintenance_standards_id = fields.Many2one('equipment.maintenance.standards', string='设备维保标准') maintenance_request_id = fields.Many2one('maintenance.request', string='设备维保计划')