diff --git a/jikimo_sale_multiple_supply_methods/__init__.py b/jikimo_sale_multiple_supply_methods/__init__.py index 62b89387..74eea1d2 100644 --- a/jikimo_sale_multiple_supply_methods/__init__.py +++ b/jikimo_sale_multiple_supply_methods/__init__.py @@ -10,7 +10,7 @@ def _data_install(cr, registry): env.ref('jikimo_sale_multiple_supply_methods.product_template_purchase').product_variant_id.write({'active': False, 'is_bfm': True}) env.ref('jikimo_sale_multiple_supply_methods.product_template_manual_processing').product_variant_id.write({'active': False, 'single_manufacturing': True, 'is_bfm': True}) env.ref('jikimo_sale_multiple_supply_methods.product_template_default').product_variant_id.write({'active': False, 'is_bfm': True}) - env.ref('jikimo_sale_multiple_supply_methods.product_template_raw_material_customer_provided').product_variant_id.write({'active': False}) + env.ref('jikimo_sale_multiple_supply_methods.product_template_embryo_customer_provided').product_variant_id.write({'active': False}) env.ref('jikimo_sale_multiple_supply_methods.product_template_outsourcing').product_variant_id.write({'active': False, 'is_bfm': True}) env.ref('sf_dlm.product_embryo_sf_self_machining').product_tmpl_id.write({'categ_type': '坯料'}) env.ref('sf_dlm.product_template_sf').product_tmpl_id.write({'categ_type': '成品'}) diff --git a/jikimo_sale_multiple_supply_methods/controllers/main.py b/jikimo_sale_multiple_supply_methods/controllers/main.py index 9127f80e..b5a25749 100644 --- a/jikimo_sale_multiple_supply_methods/controllers/main.py +++ b/jikimo_sale_multiple_supply_methods/controllers/main.py @@ -34,6 +34,9 @@ class JikimoSaleRoutePicking(Sf_Bf_Connect): if kw.get('logistics_way'): order_id.logistics_way = kw['logistics_way'] for item in bfm_process_order_list: + if item.get('embryo_redundancy_id'): + item['embryo_redundancy'] = request.env['sf.embryo.redundancy'].sudo().search([('code', '=', item['embryo_redundancy_id'])], limit=1) + item['embryo_redundancy_id'] = item['embryo_redundancy'].id product = request.env['product.template'].sudo().product_create(product_id, item, order_id, kw['order_number'], i) order_id.with_user(request.env.ref("base.user_admin")).sale_order_create_line(product, item) diff --git a/jikimo_sale_multiple_supply_methods/data/product_data.xml b/jikimo_sale_multiple_supply_methods/data/product_data.xml index dc9b70a7..b63da7ea 100644 --- a/jikimo_sale_multiple_supply_methods/data/product_data.xml +++ b/jikimo_sale_multiple_supply_methods/data/product_data.xml @@ -65,7 +65,7 @@ - + 坯料客供料模板 diff --git a/jikimo_sale_multiple_supply_methods/models/product_template.py b/jikimo_sale_multiple_supply_methods/models/product_template.py index fd9de9f9..c7dfa1ab 100644 --- a/jikimo_sale_multiple_supply_methods/models/product_template.py +++ b/jikimo_sale_multiple_supply_methods/models/product_template.py @@ -8,7 +8,7 @@ class ProductTemplate(models.Model): def product_create(self, product_id, item, order_id, order_number, i): product_id = super(ProductTemplate, self).product_create(product_id, item, order_id, order_number, i) - product_id.product_tmpl_id.is_customer_provided = item['is_incoming_material'] + product_id.product_tmpl_id.is_customer_provided = True if item['embryo_redundancy_id'] else False return product_id diff --git a/jikimo_sale_multiple_supply_methods/models/sale_order.py b/jikimo_sale_multiple_supply_methods/models/sale_order.py index 27cecac6..a1920a50 100644 --- a/jikimo_sale_multiple_supply_methods/models/sale_order.py +++ b/jikimo_sale_multiple_supply_methods/models/sale_order.py @@ -54,7 +54,10 @@ class SaleOrder(models.Model): 'model_width': product.width, 'model_height': product.height, 'price': product.list_price, + 'embryo_redundancy_id': line.embryo_redundancy_id, } + # 获取成品名结尾-n的n + product_seria = int(product.name.split('-')[-1]) # 成品供货方式为采购则不生成bom if line.supply_method != 'purchase': bom_data = self.env['mrp.bom'].with_user(self.env.ref("base.user_admin")).get_bom(product) @@ -64,14 +67,14 @@ class SaleOrder(models.Model): bom.with_user(self.env.ref("base.user_admin")).bom_create_line_has(bom_data) else: # 当成品上带有客供料选项时,生成坯料时选择“客供料”路线 - if line.is_incoming_material: + if line.embryo_redundancy_id: # 将成品模板的内容复制到成品上 - customer_provided_embryo = self.env.ref('jikimo_sale_multiple_supply_methods.product_tempalte_raw_material_customer_provided').sudo() + customer_provided_embryo = self.env.ref('jikimo_sale_multiple_supply_methods.product_template_embryo_customer_provided').sudo() # 创建坯料,客供料的批量不需要创建bom material_customer_provided_embryo = self.env['product.template'].sudo().no_bom_product_create( customer_provided_embryo.with_context(active_test=False).product_variant_id, item, - order_id, 'material_customer_provided', 0, product) + order_id, 'material_customer_provided', product_seria, product) # 成品配置bom product_bom_material_customer_provided = self.env['mrp.bom'].with_user( self.env.ref("base.user_admin")).bom_create( @@ -84,7 +87,7 @@ class SaleOrder(models.Model): self_machining_embryo = self.env['product.template'].sudo().no_bom_product_create( self_machining_id, item, - order_id, 'self_machining', 0, product) + order_id, 'self_machining', product_seria, product) # 创建坯料的bom self_machining_bom = self.env['mrp.bom'].with_user( self.env.ref("base.user_admin")).bom_create( @@ -108,7 +111,7 @@ class SaleOrder(models.Model): item, order_id, 'subcontract', - 0, product) + product_seria, product) if outsource_embryo == -3: raise UserError('该订单模型的材料型号暂未设置获取方式和供应商,请先配置再进行分配') # 创建坯料的bom @@ -130,7 +133,7 @@ class SaleOrder(models.Model): purchase_embryo = self.env['product.template'].sudo().no_bom_product_create(purchase_id, item, order_id, - 'purchase', 0, + 'purchase', product_seria, product) if purchase_embryo == -3: raise UserError('该订单模型的材料型号暂未设置获取方式和供应商,请先配置再进行分配') diff --git a/jikimo_sale_multiple_supply_methods/views/sale_order_views.xml b/jikimo_sale_multiple_supply_methods/views/sale_order_views.xml index 2ea9a835..8b1a85d0 100644 --- a/jikimo_sale_multiple_supply_methods/views/sale_order_views.xml +++ b/jikimo_sale_multiple_supply_methods/views/sale_order_views.xml @@ -22,7 +22,7 @@ confirm_to_supply_method - - + +