48 lines
2.6 KiB
Python
48 lines
2.6 KiB
Python
# -*- coding: utf-8 -*-
|
|
from odoo import models, fields, api, _
|
|
from odoo.exceptions import UserError
|
|
|
|
|
|
class SfQualityCncTest(models.Model):
|
|
_name = 'quality.cnc.test'
|
|
_description = 'CNC加工质检'
|
|
|
|
name = fields.Char('单号', default=lambda self: self.env['ir.sequence'].next_by_code('quality.cnc.test'))
|
|
workorder_id = fields.Many2one('mrp.workorder')
|
|
production_id = fields.Many2one(related='workorder_id.production_id', string='制造订单')
|
|
product_id = fields.Many2one(related='workorder_id.product_id', string='产品')
|
|
model_file = fields.Binary(related='workorder_id.glb_file', string='加工模型')
|
|
processing_panel = fields.Char(related='workorder_id.processing_panel', string='加工面')
|
|
equipment_id = fields.Many2one(related='workorder_id.equipment_id', string='加工设备')
|
|
production_line_id = fields.Many2one(related='workorder_id.production_line_id',
|
|
string='生产线')
|
|
part_number = fields.Char(related='workorder_id.part_number', string='成品零件图号')
|
|
detection_report = fields.Binary(related='workorder_id.detection_report', readonly=True, string='检测报告')
|
|
state = fields.Selection([
|
|
('waiting', '待判定'),
|
|
('done', '已完成')], string='状态', default='waiting')
|
|
result = fields.Selection([
|
|
('pass', '合格'),
|
|
('fail', '不合格')], string='判定结果')
|
|
number = fields.Integer('数量', default=1)
|
|
test_results = fields.Selection([("合格", "合格"), ("返工", "返工"), ("报废", "报废")], default='合格',
|
|
string="检测结果")
|
|
reason = fields.Selection(
|
|
[("programming", "编程"), ("cutter", "刀具"), ("clamping", "装夹"), ("operate computer", "操机"),
|
|
("technology", "工艺"), ("customer redrawing", "客户改图")], string="原因")
|
|
detailed_reason = fields.Text('详细原因')
|
|
|
|
def submit_pass(self):
|
|
self.write({'result': 'pass', 'test_results': '合格', 'state': 'done'})
|
|
self.workorder_id.write({'test_results': self.test_results})
|
|
self.workorder_id.button_finish()
|
|
|
|
def submit_fail(self):
|
|
if not self.reason and not self.detailed_reason:
|
|
raise UserError(_('请填写【检测情况】里的信息'))
|
|
else:
|
|
self.write({'result': 'fail', 'test_results': '合格', 'state': 'done'})
|
|
self.workorder_id.write(
|
|
{'test_results': self.test_results, 'reason': self.reason, 'detailed_reason': self.detailed_reason})
|
|
self.workorder_id.button_finish()
|