修复加工质检

This commit is contained in:
jinling.yang
2024-10-17 09:58:24 +08:00
parent 9cd8d9d823
commit 0e8bda3369
5 changed files with 32 additions and 18 deletions

View File

@@ -9,8 +9,8 @@ from odoo.exceptions import ValidationError, UserError
from odoo.modules import get_resource_path from odoo.modules import get_resource_path
# from OCC.Extend.DataExchange import read_step_file from OCC.Extend.DataExchange import read_step_file
# from OCC.Extend.DataExchange import write_stl_file from OCC.Extend.DataExchange import write_stl_file
class ResProductMo(models.Model): class ResProductMo(models.Model):

View File

@@ -30,22 +30,32 @@ class SfQualityCncTest(models.Model):
[("programming", "编程"), ("cutter", "刀具"), ("clamping", "装夹"), ("operate computer", "操机"), [("programming", "编程"), ("cutter", "刀具"), ("clamping", "装夹"), ("operate computer", "操机"),
("technology", "工艺"), ("customer redrawing", "客户改图")], string="原因") ("technology", "工艺"), ("customer redrawing", "客户改图")], string="原因")
detailed_reason = fields.Text('详细原因') detailed_reason = fields.Text('详细原因')
# machining_drawings = fields.Binary(related='workorder_id.machining_drawings', string='2D加工图纸', readonly=True) # machining_drawings = fields.Binary(related='workorder_id.machining_drawings', string='2D加工图纸', readonly=True)
# quality_standard = fields.Binary(related='workorder_id.quality_standard', string='质检标准', readonly=True) # quality_standard = fields.Binary(related='workorder_id.quality_standard', string='质检标准', readonly=True)
def submit_pass(self): def submit_pass(self):
if self.test_results in ['返工', '报废']:
raise UserError(_('请重新选择【判定结果】-【检测结果】'))
self.write({'result': 'pass', 'test_results': '合格', 'state': 'done'}) self.write({'result': 'pass', 'test_results': '合格', 'state': 'done'})
self.workorder_id.write({'test_results': self.test_results}) self.workorder_id.write({'test_results': self.test_results})
self.workorder_id.button_finish() self.workorder_id.button_finish()
def submit_fail(self): def submit_fail(self):
if not self.reason and not self.detailed_reason and not self.test_results: if not self.test_results:
raise UserError(_('请填写【判定结果】里的信息')) raise UserError(_('请填写【判定结果】里的信息'))
else: if self.test_results == '合格':
self.write({'result': 'fail', 'test_results': self.test_results, 'state': 'done'}) raise UserError(_('请重新选择【判定结果】-【检测结果】'))
self.workorder_id.write( self.write({'result': 'fail', 'test_results': self.test_results, 'state': 'done'})
{'test_results': self.test_results, 'reason': self.reason, 'detailed_reason': self.detailed_reason}) self.workorder_id.write(
self.workorder_id.button_finish() {'test_results': self.test_results, 'reason': self.reason, 'detailed_reason': self.detailed_reason})
self.workorder_id.button_finish()
@api.onchange('test_results')
def _onchange_test_results(self):
if self.test_results == '合格':
self.reason = False
self.detailed_reason = False
class SfQualityWorkOrder(models.Model): class SfQualityWorkOrder(models.Model):

View File

@@ -20,8 +20,12 @@
<field name="product_id"/> <field name="product_id"/>
<field name="part_number"/> <field name="part_number"/>
<field name="number"/> <field name="number"/>
<field name="state"/> <field name="state" widget="badge"
<field name="result"/> decoration-success="state == 'done'"
decoration-warning="state == 'waiting'"/>
<field name="result" widget="badge"
decoration-success="result == 'pass'"
decoration-danger="result == 'fail'"/>
<field name="write_uid" widget='many2one_avatar_user' string="判定人" optional="hide"/> <field name="write_uid" widget='many2one_avatar_user' string="判定人" optional="hide"/>
<field name="write_date" string="判定时间" optional="hide"/> <field name="write_date" string="判定时间" optional="hide"/>
</tree> </tree>
@@ -99,9 +103,9 @@
<group> <group>
<field name="test_results" attrs="{'readonly': [('state','=', 'done')]}"/> <field name="test_results" attrs="{'readonly': [('state','=', 'done')]}"/>
<field name="reason" <field name="reason"
attrs="{'readonly': [('state','=', 'done')],'required': [('test_results','in', ['返工','报废'])]}"/> attrs="{'readonly': [('state','=', 'done')],'required': [('test_results','in', ['返工','报废'])],'invisible': [('test_results','in', ['合格',False])]}"/>
<field name="detailed_reason" <field name="detailed_reason"
attrs="{'readonly': [('state','=', 'done')],'required': [('reason','!=', False)]}"/> attrs="{'readonly': [('state','=', 'done')],'required': [('reason','!=', False)],'invisible': [('test_results','in', ['合格',False])]}"/>
</group> </group>
</page> </page>
<page string="2D图纸"> <page string="2D图纸">
@@ -110,7 +114,7 @@
<page string="客户质量标准"> <page string="客户质量标准">
<!-- <field name="quality_standard" string=""/>--> <!-- <field name="quality_standard" string=""/>-->
</page> </page>
<page string="其他" attrs="{'readonly': [('state','=', 'done')]}"> <page string="其他" attrs="{'invisible': [('state','=', 'waiting')]}">
<group> <group>
<field name="write_uid" widget='many2one_avatar_user' string="判定人" readonly="1"/> <field name="write_uid" widget='many2one_avatar_user' string="判定人" readonly="1"/>
<field name="write_date" string="判定时间" readonly="1"/> <field name="write_date" string="判定时间" readonly="1"/>
@@ -172,7 +176,7 @@
<field name="name">驾驶舱</field> <field name="name">驾驶舱</field>
<field name="type">ir.actions.act_window</field> <field name="type">ir.actions.act_window</field>
<field name="res_model">quality.cnc.test</field> <field name="res_model">quality.cnc.test</field>
<field name="view_mode">kanban,form</field> <field name="view_mode">kanban,tree,form</field>
<field name="view_id" ref="quality_cnc_test_view_kanban"/> <field name="view_id" ref="quality_cnc_test_view_kanban"/>
<field name="search_view_id" ref="quality_cnc_test_search"/> <field name="search_view_id" ref="quality_cnc_test_search"/>
<field name="domain">[]</field> <field name="domain">[]</field>

View File

@@ -8,8 +8,8 @@ from datetime import datetime
import requests import requests
from odoo import http from odoo import http
from odoo.http import request from odoo.http import request
# from OCC.Extend.DataExchange import read_step_file from OCC.Extend.DataExchange import read_step_file
# from OCC.Extend.DataExchange import write_stl_file from OCC.Extend.DataExchange import write_stl_file
from odoo import models, fields, api from odoo import models, fields, api
from odoo.modules import get_resource_path from odoo.modules import get_resource_path
from odoo.exceptions import ValidationError, UserError from odoo.exceptions import ValidationError, UserError

View File

@@ -6,8 +6,8 @@ import os
from datetime import datetime from datetime import datetime
from stl import mesh from stl import mesh
# from OCC.Core.GProp import GProp_GProps # from OCC.Core.GProp import GProp_GProps
# from OCC.Extend.DataExchange import read_step_file from OCC.Extend.DataExchange import read_step_file
# from OCC.Extend.DataExchange import write_stl_file from OCC.Extend.DataExchange import write_stl_file
from odoo.addons.sf_base.commons.common import Common from odoo.addons.sf_base.commons.common import Common
from odoo import models, fields, api from odoo import models, fields, api
from odoo.modules import get_resource_path from odoo.modules import get_resource_path