diff --git a/jikimo_sale_multiple_supply_methods/controllers/main.py b/jikimo_sale_multiple_supply_methods/controllers/main.py index b5a25749..cb8dd44a 100644 --- a/jikimo_sale_multiple_supply_methods/controllers/main.py +++ b/jikimo_sale_multiple_supply_methods/controllers/main.py @@ -1,5 +1,7 @@ import logging import json +import traceback + from odoo import http from odoo.http import request from odoo.addons.sf_bf_connect.controllers.controllers import Sf_Bf_Connect @@ -43,7 +45,8 @@ class JikimoSaleRoutePicking(Sf_Bf_Connect): i += 1 res['factory_order_no'] = order_id.name except Exception as e: - _logger.info('get_bfm_process_order_list error:%s' % e) + traceback_error = traceback.format_exc() + logging.error('get_bfm_process_order_list error: %s' % traceback_error) res['status'] = -1 res['message'] = '工厂创建销售订单和产品失败,请联系管理员' request.cr.rollback() diff --git a/sf_bf_connect/controllers/controllers.py b/sf_bf_connect/controllers/controllers.py index 90c7e6c5..70a8d68f 100644 --- a/sf_bf_connect/controllers/controllers.py +++ b/sf_bf_connect/controllers/controllers.py @@ -1,6 +1,8 @@ # -*- coding: utf-8 -*- import json import logging +import traceback + from odoo import http from odoo.http import request @@ -123,7 +125,8 @@ class Sf_Bf_Connect(http.Controller): res['factory_order_no'] = order_id.name return json.JSONEncoder().encode(res) except Exception as e: - logging.info('get_bfm_process_order_list error:%s' % e) + traceback_error = traceback.format_exc() + logging.error('get_bfm_process_order_list error: %s' % traceback_error) res['status'] = -1 res['message'] = '工厂创建销售订单和产品失败,请联系管理员' request.cr.rollback() diff --git a/sf_manufacturing/models/product_template.py b/sf_manufacturing/models/product_template.py index b01cc465..f5f685aa 100644 --- a/sf_manufacturing/models/product_template.py +++ b/sf_manufacturing/models/product_template.py @@ -874,8 +874,8 @@ class ResProductMo(models.Model): 'height': item['model_height'], 'volume': item['model_long'] * item['model_width'] * item['model_height'], 'model_file': '' if not item['model_file'] else base64.b64decode(item['model_file']), - 'model_name': attachment.name, - 'upload_model_file': [(6, 0, [attachment.id])], + 'model_name': attachment.name if attachment else None, + 'upload_model_file': [(6, 0, [attachment.id])] if attachment else None, 'list_price': item['price'], 'materials_id': self.env['sf.production.materials'].search( [('materials_no', '=', item['texture_code'])]).id, @@ -924,6 +924,8 @@ class ResProductMo(models.Model): return [(6, 0, process_parameters_ids)] def attachment_create(self, name, data): + if not data: + return None attachment = self.env['ir.attachment'].create({ 'datas': base64.b64decode(data), 'type': 'binary', diff --git a/sf_sale/models/sale_order.py b/sf_sale/models/sale_order.py index 5cc826eb..929e30cc 100644 --- a/sf_sale/models/sale_order.py +++ b/sf_sale/models/sale_order.py @@ -131,7 +131,7 @@ 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']), + 'model_glb_file': base64.b64decode(item['model_file']) if item['model_file'] else None, 'remark': item.get('remark'), 'embryo_redundancy_id': item.get('embryo_redundancy_id'), 'manual_quotation': item.get('manual_quotation')