diff --git a/sf_dlm_management/__manifest__.py b/sf_dlm_management/__manifest__.py index a5c894d4..9a94082a 100644 --- a/sf_dlm_management/__manifest__.py +++ b/sf_dlm_management/__manifest__.py @@ -9,7 +9,7 @@ """, 'category': 'sf', 'website': 'https://www.sf.jikimo.com', - 'depends': ['sf_sale', 'sf_dlm', 'sf_manufacturing'], + 'depends': ['sf_sale', 'sf_dlm', 'sf_manufacturing','jikimo_attachment_viewer'], 'data': [ 'data/stock_data.xml', 'views/product_template_management_view.xml', diff --git a/sf_manufacturing/__manifest__.py b/sf_manufacturing/__manifest__.py index 71f4027a..fd15858a 100644 --- a/sf_manufacturing/__manifest__.py +++ b/sf_manufacturing/__manifest__.py @@ -10,7 +10,7 @@ """, 'category': 'sf', 'website': 'https://www.sf.jikimo.com', - 'depends': ['sf_base', 'sf_maintenance', 'web_widget_model_viewer', 'sf_warehouse'], + 'depends': ['sf_base', 'sf_maintenance', 'web_widget_model_viewer', 'sf_warehouse','jikimo_attachment_viewer'], 'data': [ 'data/stock_data.xml', 'data/empty_racks_data.xml', diff --git a/sf_manufacturing/models/mrp_production.py b/sf_manufacturing/models/mrp_production.py index 573bb73f..c602fd8b 100644 --- a/sf_manufacturing/models/mrp_production.py +++ b/sf_manufacturing/models/mrp_production.py @@ -141,12 +141,12 @@ class MrpProduction(models.Model): ], string='工序状态', default='待装夹') # 零件图号 - part_number = fields.Char('零件图号', readonly=True) + part_number = fields.Char('零件图号', related='product_id.part_number', readonly=True) # 上传零件图纸 - part_drawing = fields.Binary('零件图纸', readonly=True) + part_drawing = fields.Binary('零件图纸', related='product_id.machining_drawings', readonly=True) - quality_standard = fields.Binary('质检标准', readonly=True) + quality_standard = fields.Binary('质检标准', related='product_id.quality_standard', readonly=True) @api.depends('product_id.manual_quotation') def _compute_manual_quotation(self): diff --git a/sf_manufacturing/models/product_template.py b/sf_manufacturing/models/product_template.py index 0b512c36..62744db9 100644 --- a/sf_manufacturing/models/product_template.py +++ b/sf_manufacturing/models/product_template.py @@ -777,8 +777,6 @@ class ResProductMo(models.Model): part_number = fields.Char(string='零件图号', readonly=True) machining_drawings = fields.Binary('2D加工图纸', readonly=True) quality_standard = fields.Binary('质检标准', readonly=True) - machining_drawings_name = fields.Char('2D加工图纸名', readonly=True) - quality_standard_name = fields.Char('质检标准名', readonly=True) @api.constrains('tool_length') def _check_tool_length_size(self): @@ -840,10 +838,10 @@ class ResProductMo(models.Model): else: return self.env.ref('sf_dlm.product_uom_cubic_millimeter') - def attachment_update(self, name, res_id, res_field): + def attachment_update(self, name, res_id, res_field, mimetype): attachment_info = self.env['ir.attachment'].sudo().search( [('res_id', '=', res_id), ('res_field', '=', res_field)], limit=1) - attachment_info.write({'name': name}) + attachment_info.write({'name': name, 'mimetype': mimetype}) # 业务平台分配工厂后在智能工厂先创建销售订单再创建该产品 def product_create(self, product_id, item, order_id, order_number, i): @@ -883,8 +881,10 @@ class ResProductMo(models.Model): 'manual_quotation': item['manual_quotation'] or False, 'part_number': item.get('part_number') or '', 'active': True, - 'machining_drawings_name': item['machining_drawings_name'], - 'quality_standard_name': item['quality_standard_name'], + # 'machining_drawings_name': item['machining_drawings_name'], + # 'quality_standard_name': item['quality_standard_name'], + # 'machining_drawings_mimetype': item['machining_drawings_mimetype'], + # 'quality_standard_mimetype': item['quality_standard_mimetype'], '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']), @@ -897,10 +897,10 @@ class ResProductMo(models.Model): product_id.product_tmpl_id.active = False if item['machining_drawings'] and item['machining_drawings_name']: self.attachment_update(item['machining_drawings_name'], copy_product_id.product_tmpl_id.id, - 'machining_drawings') + 'machining_drawings', item['machining_drawings_mimetype']) if item['quality_standard'] and item['quality_standard_name']: self.attachment_update(item['quality_standard_name'], copy_product_id.product_tmpl_id.id, - 'quality_standard') + 'quality_standard', item['quality_standard_mimetype']) return copy_product_id def _get_ids(self, param): diff --git a/sf_manufacturing/models/stock.py b/sf_manufacturing/models/stock.py index 02161b4a..40d159d5 100644 --- a/sf_manufacturing/models/stock.py +++ b/sf_manufacturing/models/stock.py @@ -272,21 +272,6 @@ class StockRule(models.Model): workorder_duration += workorder.duration_expected sale_order = self.env['sale.order'].sudo().search([('name', '=', production.origin)]) - # 根据销售订单号查询快速订单 - quick_easy_order = self.env['quick.easy.order'].sudo().search([('sale_order_id', '=', sale_order.id)]) - if quick_easy_order: - production.write({'part_number': quick_easy_order.part_drawing_number, - 'part_drawing': quick_easy_order.machining_drawings}) - else: - production.write({'part_number': production.product_id.part_number, - 'part_drawing': production.product_id.machining_drawings, - 'quality_standard': production.product_id.quality_standard}) - if production.product_id.machining_drawings and production.product_id.machining_drawings_name: - self.attachment_update(production.product_id.machining_drawings_name, production.id, - 'part_drawing') - if production.product_id.quality_standard and production.product_id.quality_standard_name: - self.attachment_update(production.product_id.quality_standard_name, production.id, - 'quality_standard') if sale_order: # sale_order.write({'schedule_status': 'to schedule'}) self.env['sf.production.plan'].sudo().with_company(company_id).create({ diff --git a/sf_quality/__manifest__.py b/sf_quality/__manifest__.py index b1151b6d..582e306a 100644 --- a/sf_quality/__manifest__.py +++ b/sf_quality/__manifest__.py @@ -13,7 +13,7 @@ 'author': 'jikimo', 'website': 'https://sf.cs.jikimo.com', # 此处依赖sf_manufacturing是因为我要重写其中的一个字段operation_id的string,故需要sf_manufacturing先安装 - 'depends': ['quality_control', 'web_widget_model_viewer', 'sf_manufacturing'], + 'depends': ['quality_control', 'web_widget_model_viewer', 'sf_manufacturing','jikimo_attachment_viewer'], 'data': [ 'security/ir.model.access.csv', 'views/view.xml', diff --git a/sf_sale/models/quick_easy_order_old.py b/sf_sale/models/quick_easy_order_old.py index d3f9b5ab..ab0e9449 100644 --- a/sf_sale/models/quick_easy_order_old.py +++ b/sf_sale/models/quick_easy_order_old.py @@ -221,9 +221,8 @@ class QuickEasyOrder(models.Model): 'remark': '', 'manual_quotation': True, 'barcode': barcode, - 'machining_drawings_name': '', - 'quality_standard_name': '', - 'machining_drawings': '', + 'part_number': item.part_drawing_number, + 'machining_drawings': item.machining_drawings, 'quality_standard': '', }) # res['bfm_process_order_list'] = json.dumps(res['bfm_process_order_list']) diff --git a/sf_sale/views/quick_easy_order_view.xml b/sf_sale/views/quick_easy_order_view.xml index 9111403d..aebb4e97 100644 --- a/sf_sale/views/quick_easy_order_view.xml +++ b/sf_sale/views/quick_easy_order_view.xml @@ -80,8 +80,8 @@ - - + +