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" /> +