Merge branch 'feature/auxiliary_files_upload' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化加工质检

This commit is contained in:
jinling.yang
2024-10-16 11:49:37 +08:00
3 changed files with 29 additions and 33 deletions

View File

@@ -16,6 +16,8 @@
<field name='is_bfm' invisible="1"/> <field name='is_bfm' invisible="1"/>
<field name='categ_type' invisible="1"/> <field name='categ_type' invisible="1"/>
<field name='part_number' attrs="{'invisible': [('categ_type', '!=', '成品')]}"/> <field name='part_number' attrs="{'invisible': [('categ_type', '!=', '成品')]}"/>
<field name='machining_drawings' attrs="{'invisible': [('categ_type', '!=', '成品')]}" widget="image"/>
<field name='quality_standard' attrs="{'invisible': [('categ_type', '!=', '成品')]}"/>
<field name='manual_quotation' attrs="{'invisible':[('upload_model_file', '=', [])]}"/> <field name='manual_quotation' attrs="{'invisible':[('upload_model_file', '=', [])]}"/>
<field name="upload_model_file" <field name="upload_model_file"
widget="many2many_binary" widget="many2many_binary"

View File

@@ -774,6 +774,8 @@ class ResProductMo(models.Model):
# bfm下单 # bfm下单
manual_quotation = fields.Boolean('人工编程', default=False, readonly=True) manual_quotation = fields.Boolean('人工编程', default=False, readonly=True)
part_number = fields.Char(string='零件图号', readonly=True) part_number = fields.Char(string='零件图号', readonly=True)
machining_drawings = fields.Binary('2D加工图纸', readonly=True)
quality_standard = fields.Binary('质检标准', readonly=True)
@api.constrains('tool_length') @api.constrains('tool_length')
def _check_tool_length_size(self): def _check_tool_length_size(self):
@@ -873,6 +875,8 @@ class ResProductMo(models.Model):
'manual_quotation': item['manual_quotation'] or False, 'manual_quotation': item['manual_quotation'] or False,
'part_number': item.get('part_number') or '', 'part_number': item.get('part_number') or '',
'active': True, 'active': True,
'machining_drawings': '' if not item['machining_drawings'] else base64.b64decode(item['machining_drawings']),
'quality_standard': '' if not item['quality_standard'] else base64.b64decode(item['quality_standard']),
} }
tax_id = self.env['account.tax'].sudo().search( tax_id = self.env['account.tax'].sudo().search(
[('type_tax_use', '=', 'sale'), ('amount', '=', item.get('tax')), ('price_include', '=', 'True')]) [('type_tax_use', '=', 'sale'), ('amount', '=', item.get('tax')), ('price_include', '=', 'True')])

View File

@@ -54,7 +54,7 @@
<field name="context">{ 'search_default_filter_waiting':1}</field> <field name="context">{ 'search_default_filter_waiting':1}</field>
<field name="help" type="html"> <field name="help" type="html">
<p class="o_view_nocontent_smiling_face"> <p class="o_view_nocontent_smiling_face">
请先创建一个加工质检单 暂无加工质检单
</p> </p>
</field> </field>
</record> </record>
@@ -125,44 +125,33 @@
<field name="name">quality.cnc.test.view.kanban</field> <field name="name">quality.cnc.test.view.kanban</field>
<field name="model">quality.cnc.test</field> <field name="model">quality.cnc.test</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<kanban class="oe_background_grey o_kanban_dashboard o_quality_kanban" create="0"> <kanban sample="1" class="o_kanban_product_template">
<templates> <templates>
<t t-name="kanban-box"> <t t-name="kanban-box">
<t t-name="kanban-box"> <div class="oe_kanban_card oe_kanban_global_click">
<div t-attf-class="oe_kanban_global_click o_kanban_record_has_image_fill o_hr_kanban_record oe_kanban_card oe_kanban_global_click"> <div class="oe_kanban_details">
<div class="add_flex"> <div class="o_kanban_record_top mb-0">
<div class="o_kanban_card_header"> <div class="o_kanban_record_headings">
<div class="o_kanban_card_header_title"> <strong class="o_kanban_record_title">
<field name="name"/> <field name="name"/>
</div> </strong>
</div> </div>
<!-- 内容 --> </div>
<div class="container o_kanban_card_content"> <div>
<div> <div>
<field name="production_id"/> <field name="production_id"/>
</div> </div>
<div> <div>
<field name="processing_panel"/> <field name="processing_panel"/>
</div> </div>
<div> <div>
<field name="state" <field name="test_results"
widget="label_selection" widget="label_selection"
options="{'classes': {'waiting': 'warning', 'done': 'success'}}"/> options="{'classes': {'合格': 'success', '返工': 'warning', '报废': 'danger'}}"/>
</div>
</div> </div>
</div> </div>
<!-- <div class="show_state" t-attf-class="oe_kanban_global_click o_kanban_record_has_image_fill o_hr_kanban_record oe_kanban_card oe_kanban_global_click-->
<!-- ">-->
<!-- <div t-attf-class="#{record.result.raw_value == 'pass' ? 'color_1' : ''}"></div>-->
<!-- <div t-attf-class="#{record.result.raw_value == 'fail' ? 'color_2' : ''}"></div>-->
<!-- <p class="o_kanban_record_bottom"-->
<!-- t-attf-class="#{record.result.raw_value == 'pass' ? 'font_color_1' : ''}-->
<!-- #{record.state.result == 'fail' ? 'font_color_2' : ''}}">-->
<!-- <field name="result"/>-->
<!-- </p>-->
<!-- </div>-->
</div> </div>
</t> </div>
</t> </t>
</templates> </templates>
</kanban> </kanban>
@@ -186,6 +175,7 @@
<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>
<field name="context">{ 'search_default_filter_waiting':1}</field>
<field name="help" type="html"> <field name="help" type="html">
<p class="o_view_nocontent_smiling_face"> <p class="o_view_nocontent_smiling_face">
暂无加工质检单 暂无加工质检单