diff --git a/jikimo_sale_multiple_supply_methods/models/mrp_bom.py b/jikimo_sale_multiple_supply_methods/models/mrp_bom.py index 2528d0a4..aa9d6c60 100644 --- a/jikimo_sale_multiple_supply_methods/models/mrp_bom.py +++ b/jikimo_sale_multiple_supply_methods/models/mrp_bom.py @@ -9,5 +9,6 @@ class MrpBom(models.Model): # 成品的供应商从模板中获取 if product_type == 'product': - bom_id.subcontractor_id = product.product_tmpl_id.seller_ids.partner_id.id + if product.product_tmpl_id.seller_ids: + bom_id.subcontractor_id = product.product_tmpl_id.seller_ids[-1].partner_id.id return bom_id diff --git a/sf_base/models/fixture.py b/sf_base/models/fixture.py index f64fe473..264878e9 100644 --- a/sf_base/models/fixture.py +++ b/sf_base/models/fixture.py @@ -32,6 +32,7 @@ class FixtureModel(models.Model): multi_mounting_type_id = fields.Many2one('sf.multi_mounting.type', string="联装类型") brand_id = fields.Many2one('sf.machine.brand', string="品牌") model_file = fields.Binary(string="图片") + glb_url = fields.Char(string="图片") status = fields.Boolean('状态') active = fields.Boolean('有效', default=False) diff --git a/sf_base/views/fixture_view.xml b/sf_base/views/fixture_view.xml index 07dadd33..1149875d 100644 --- a/sf_base/views/fixture_view.xml +++ b/sf_base/views/fixture_view.xml @@ -158,6 +158,8 @@ + diff --git a/sf_bf_connect/controllers/controllers.py b/sf_bf_connect/controllers/controllers.py index d79e7137..7f46765d 100644 --- a/sf_bf_connect/controllers/controllers.py +++ b/sf_bf_connect/controllers/controllers.py @@ -29,7 +29,7 @@ class Sf_Bf_Connect(http.Controller): bfm_process_order_list = json.loads(kw['bfm_process_order_list']) order_id = request.env['sale.order'].with_user(request.env.ref("base.user_admin")).sale_order_create( company_id, kw['delivery_name'], kw['delivery_telephone'], kw['delivery_address'], - kw['delivery_end_date'], kw['payments_way'], kw['pay_way']) + kw['delivery_end_date'], kw['payments_way'], kw['pay_way'], model_display_version=kw.get('model_display_version')) i = 1 # 给sale_order的default_code字段赋值 aa = request.env['sale.order'].sudo().search([('name', '=', order_id.name)]) diff --git a/sf_dlm/models/product_template.py b/sf_dlm/models/product_template.py index 1e37be2b..f9825c88 100644 --- a/sf_dlm/models/product_template.py +++ b/sf_dlm/models/product_template.py @@ -44,7 +44,7 @@ class ResProductTemplate(models.Model): else: return self.env.ref('sf_dlm.product_uom_cubic_millimeter') - # model_file = fields.Binary('模型文件') + model_file = fields.Binary('模型文件') # 胚料的库存路线设置 # def _get_routes(self, route_type): diff --git a/sf_dlm_management/views/product_template_management_view.xml b/sf_dlm_management/views/product_template_management_view.xml index 1f3dc50b..01c2f51b 100644 --- a/sf_dlm_management/views/product_template_management_view.xml +++ b/sf_dlm_management/views/product_template_management_view.xml @@ -16,15 +16,21 @@ + - + - + + + + + - + - + + + + + diff --git a/sf_quality/models/quality.py b/sf_quality/models/quality.py index b3932481..9d762e4e 100644 --- a/sf_quality/models/quality.py +++ b/sf_quality/models/quality.py @@ -26,6 +26,7 @@ class QualityCheck(models.Model): string='生产线') equipment_id = fields.Many2one(related='workorder_id.equipment_id', string='加工设备') model_file = fields.Binary(related='workorder_id.glb_file', string='加工模型') + glb_url = fields.Char(related='workorder_id.glb_url', string='加工模型') detection_report = fields.Binary(related='workorder_id.detection_report', readonly=True, string='检测报告') test_results = fields.Selection([("合格", "合格"), ("返工", "返工")], string="检测结果", diff --git a/sf_quality/models/quality_cnc_test.py b/sf_quality/models/quality_cnc_test.py index 9810b0e0..1e89ef92 100644 --- a/sf_quality/models/quality_cnc_test.py +++ b/sf_quality/models/quality_cnc_test.py @@ -12,6 +12,7 @@ class SfQualityCncTest(models.Model): 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='加工模型') + glb_url = fields.Char(related='workorder_id.glb_url', 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', diff --git a/sf_quality/views/quality_check_view.xml b/sf_quality/views/quality_check_view.xml index c584eb8d..cadedc8e 100644 --- a/sf_quality/views/quality_check_view.xml +++ b/sf_quality/views/quality_check_view.xml @@ -13,6 +13,8 @@ + diff --git a/sf_quality/views/quality_cnc_test_view.xml b/sf_quality/views/quality_cnc_test_view.xml index d2d37686..188ff7be 100644 --- a/sf_quality/views/quality_cnc_test_view.xml +++ b/sf_quality/views/quality_cnc_test_view.xml @@ -87,7 +87,8 @@ - + + diff --git a/sf_sale/models/quick_easy_order.py b/sf_sale/models/quick_easy_order.py index 081807a4..d164d8cc 100644 --- a/sf_sale/models/quick_easy_order.py +++ b/sf_sale/models/quick_easy_order.py @@ -314,7 +314,7 @@ class QuickEasyOrder(models.Model): company_id = self.env.ref('base.main_company').sudo() # user_id = request.env.ref('base.user_admin').sudo() order_id = self.env['sale.order'].sale_order_create(company_id, 'XXXXX', 'XXXXX', 'XXXXX', - str(datetime.now()), '现结', '支付宝') + str(datetime.now()), '现结', '支付宝', 'v2') i = 1 # 给sale_order的default_code字段赋值 aa = self.env['sale.order'].sudo().search([('name', '=', order_id.name)]) diff --git a/sf_sale/models/quick_easy_order_old.py b/sf_sale/models/quick_easy_order_old.py index 87848e3a..cbf0f8f1 100644 --- a/sf_sale/models/quick_easy_order_old.py +++ b/sf_sale/models/quick_easy_order_old.py @@ -237,7 +237,7 @@ class QuickEasyOrder(models.Model): company_id = self.env.ref('base.main_company').sudo() # user_id = request.env.ref('base.user_admin').sudo() order_id = self.env['sale.order'].sale_order_create(company_id, 'XXXXX', 'XXXXX', 'XXXXX', - str(datetime.now()), '现结', '支付宝') + str(datetime.now()), '现结', '支付宝', 'v2') i = 1 # 给sale_order的default_code字段赋值 aa = self.env['sale.order'].sudo().search([('name', '=', order_id.name)]) diff --git a/sf_sale/models/sale_order.py b/sf_sale/models/sale_order.py index 51e7ca3c..09dc24dd 100644 --- a/sf_sale/models/sale_order.py +++ b/sf_sale/models/sale_order.py @@ -61,9 +61,12 @@ class ReSaleOrder(models.Model): order_code = fields.Char('平台订单号', readonly=True) + model_display_version = fields.Char('模型展示版本', default="v1") + # 业务平台分配工厂后在智能工厂先创建销售订单 def sale_order_create(self, company_id, delivery_name, delivery_telephone, delivery_address, - deadline_of_delivery, payments_way, pay_way, order_number, state='sale'): + deadline_of_delivery, payments_way, pay_way, order_number, state='sale', + model_display_version='v1'): now_time = datetime.datetime.now() partner = self.get_customer() data = { @@ -80,6 +83,7 @@ class ReSaleOrder(models.Model): 'payments_way': payments_way, 'pay_way': pay_way, 'order_code': order_number, + 'model_display_version': model_display_version, } if deadline_of_delivery: # deadline_of_delivery字段存在为false字符串情况 @@ -138,11 +142,14 @@ class ReSaleOrder(models.Model): product.materials_id.name), 'price_unit': product.list_price, 'product_uom_qty': item['number'], - 'model_glb_file': base64.b64decode(item['model_file']) if item['model_file'] else None, + # 'model_glb_file': base64.b64decode(item['model_file']) if item['model_file'] else None, + 'model_url': item['model_url'], + 'glb_url': item['glb_url'], 'remark': item.get('remark'), 'embryo_redundancy_id': item.get('embryo_redundancy_id'), 'is_incoming_material': True if item.get('embryo_redundancy_id') else False, - 'manual_quotation': item.get('manual_quotation') + 'manual_quotation': item.get('manual_quotation'), + 'model_id': item['model_id'], } return self.env['sale.order.line'].with_context(skip_procurement=True).create(vals) @@ -245,6 +252,7 @@ class ResaleOrderLine(models.Model): # part_number = fields.Char('零件图号', related='product_id.part_number', readonly=True) part_name = fields.Char('零件名称', related='product_id.part_name', readonly=True) model_glb_file = fields.Binary('模型的glb文件', compute='_compute_model_glb_file', store=True) + glb_url = fields.Char('glb文件地址', compute='_compute_model_glb_file', store=True) # product_template_id = fields.Many2one( # string="产品", # comodel_name='product.template', @@ -261,6 +269,8 @@ class ResaleOrderLine(models.Model): is_incoming_material = fields.Boolean('客供料', compute='_compute_is_incoming_material', store=True) embryo_redundancy_id = fields.Many2one('sf.embryo.redundancy', '坯料冗余') manual_quotation = fields.Boolean('人工编程', default=False) + model_url = fields.Char('模型文件地址') + model_id = fields.Char('模型id') @api.depends('embryo_redundancy_id') def _compute_is_incoming_material(self): @@ -273,6 +283,8 @@ class ResaleOrderLine(models.Model): if line.product_template_id: if not line.model_glb_file: line.model_glb_file = line.product_id.product_tmpl_id.model_file + if not line.glb_url: + line.glb_url = line.product_id.product_tmpl_id.glb_url if not line.price_unit: line.price_unit = line.product_id.product_tmpl_id.list_price diff --git a/sf_sale/views/quick_easy_order_view.xml b/sf_sale/views/quick_easy_order_view.xml index 89792a49..d8af409a 100644 --- a/sf_sale/views/quick_easy_order_view.xml +++ b/sf_sale/views/quick_easy_order_view.xml @@ -50,9 +50,13 @@ - + + +