diff --git a/sf_bf_connect/models/jd_eclp.py b/sf_bf_connect/models/jd_eclp.py
index 4ccb0db6..ecec7dcc 100644
--- a/sf_bf_connect/models/jd_eclp.py
+++ b/sf_bf_connect/models/jd_eclp.py
@@ -6,6 +6,7 @@ import cpca
# from odoo.exceptions import UserError
# from odoo.exceptions import ValidationError
from odoo import api, fields, models
+from odoo.exceptions import ValidationError
_logger = logging.getLogger(__name__)
@@ -60,38 +61,46 @@ class JdEclp(models.Model):
@api.depends('origin')
def _truck_info(self):
+ """
+ 根据销售订单号,获取收货人信息
+ """
# if 'S' in self.origin:
# if self.receiverName and self.receiverMobile and self.receiverProvinceName and self.receiverCityName and
# self.receiverCountyName and self.receiverTownName:
sale_order_id = self.env['sale.order'].search([('name', '=', self.origin)])
# stock_picking_type_id = self.enc['stock.picking.type'].search([('picking_type_id', '=', '')])
# if sale_order_id.address_of_delivery != False:
+ if not sale_order_id:
+ raise ValidationError("找不到对应的销售订单")
try:
- if 'OUT' in self.name:
- raw_addres = sale_order_id.address_of_delivery.split('这是一个标志位,用来不分隔字符串')
- # _logger.info('=================dddd====', sale_order_id.address_of_delivery)
- # _logger.info('========================================', raw_addres)
- # _logger.info('=================dddd====', self.display_name)
- # _logger.info('=================dddd====', type(self.display_name))
- # # _logger.info(self.receiverName, self.receiverMobile)
- # _logger.info(1111111111111111111111111111111111111111111111)
- self.receiverName = sale_order_id.person_of_delivery
- self.receiverMobile = sale_order_id.telephone_of_delivery
- self.receiverProvinceName = cpca.transform(raw_addres).values.tolist()[0][0]
- self.receiverCityName = cpca.transform(raw_addres).values.tolist()[0][1]
- self.receiverCountyName = cpca.transform(raw_addres).values.tolist()[0][2]
- self.receiverTownName = cpca.transform(raw_addres).values.tolist()[0][3]
+ if 'OUT' in self.name and sale_order_id.address_of_delivery:
+ raw_address = sale_order_id.address_of_delivery.split('这是一个标志位,用来不分隔字符串')
+ if sale_order_id.person_of_delivery:
+ self.receiverName = sale_order_id.person_of_delivery
+ if sale_order_id.telephone_of_delivery:
+ self.receiverMobile = sale_order_id.telephone_of_delivery
+ if raw_address:
+ self.receiverProvinceName = cpca.transform(raw_address).values.tolist()[0][0]
+ self.receiverCityName = cpca.transform(raw_address).values.tolist()[0][1]
+ self.receiverCountyName = cpca.transform(raw_address).values.tolist()[0][2]
+ self.receiverTownName = cpca.transform(raw_address).values.tolist()[0][3]
else:
- self.receiverName = self.receiverName
- self.receiverMobile = self.receiverMobile
- self.receiverProvinceName = self.receiverProvinceName
- self.receiverCityName = self.receiverCityName
- self.receiverCountyName = self.receiverCountyName
- self.receiverTownName = self.receiverTownName
+ self.receiverName = False
+ self.receiverMobile = False
+ self.receiverProvinceName = False
+ self.receiverCityName = False
+ self.receiverCountyName = False
+ self.receiverTownName = False
except Exception as e:
- print(f"Error address is none: {e}")
+ raise ValidationError(f"传值有误: {e}")
def create_order(self):
+ """
+ 创建订单
+ """
+ if not self.receiverName or not self.receiverMobile or not self.receiverProvinceName \
+ or not self.receiverCityName or not self.receiverCountyName or not self.receiverTownName:
+ raise ValidationError("当前销售订单缺失收货人信息,补充后才可发起物流!")
# sale_order_id = self.env['sale.order'].search([('name', '=', self.origin)])
# if self.carrier_id == '京东物流':
@@ -140,6 +149,8 @@ class JdEclp(models.Model):
"""
获取物流面单
"""
+ if not self.carrier_tracking_ref:
+ raise ValidationError("未下物流单,请先点击京东物流下单按钮!")
config = self.env['res.config.settings'].get_values()
json1 = {
'params': {
diff --git a/sf_plan_management/views/plan_base_view.xml b/sf_plan_management/views/plan_base_view.xml
index f9606303..f83317c9 100644
--- a/sf_plan_management/views/plan_base_view.xml
+++ b/sf_plan_management/views/plan_base_view.xml
@@ -40,6 +40,8 @@
name="open_work_schedule_calendar"
class="oe_highlight"
/>
+
+
diff --git a/sf_warehouse/models/model.py b/sf_warehouse/models/model.py
index c8937cf4..0338e98a 100644
--- a/sf_warehouse/models/model.py
+++ b/sf_warehouse/models/model.py
@@ -258,10 +258,11 @@ class ShelfLocation(models.Model):
"""
根据货架的所属库区修改货位的所属库区
"""
- all_location = self.env['sf.shelf.location'].search([('name', 'ilike', self.name)])
- for record in self:
- for location in all_location:
- location.location_id = record.shelf_location_id.id
+ if self.name:
+ all_location = self.env['sf.shelf.location'].search([('name', 'ilike', self.name)])
+ for record in self:
+ for location in all_location:
+ location.location_id = record.shelf_location_id.id
@api.depends('product_sn_id')
def _compute_product_id(self):