diff --git a/sf_bf_connect/controllers/controllers.py b/sf_bf_connect/controllers/controllers.py index 1a5f3fa5..b90a1645 100644 --- a/sf_bf_connect/controllers/controllers.py +++ b/sf_bf_connect/controllers/controllers.py @@ -33,6 +33,7 @@ class Sf_Bf_Connect(http.Controller): aa = request.env['sale.order'].sudo().search([('name', '=', order_id.name)]) logging.info('get_bfm_process_or===================================:%s' % order_id.name) aa.default_code = kw['order_number'] + aa.logistics_way = kw['logistics_way'] logging.info('get_bfm_process_order_listaaaaaaaaaaaaaaaaaaaaaaaaaaaa================:%s' % aa.default_code) for item in bfm_process_order_list: product = request.env['product.template'].sudo().product_create(product_id, item, order_id, diff --git a/sf_bf_connect/models/jd_eclp.py b/sf_bf_connect/models/jd_eclp.py index 85092b57..49337083 100644 --- a/sf_bf_connect/models/jd_eclp.py +++ b/sf_bf_connect/models/jd_eclp.py @@ -42,6 +42,25 @@ class JdEclp(models.Model): # bill_show = fields.Binary(string='物流面单展示', readonly=True, related='self.bill.datas') bill_show = fields.Binary(string='物流面单展示', readonly=True) check_out = fields.Char(string='查询是否为出库单', compute='_check_is_out') + # 是否下了快递单 + is_bill = fields.Boolean(string='是否下了快递单', default=False) + # 物流状态 + logistics_status = fields.Selection([('0', '未下单'), ('1', '已下单'), ('2', '已获取物流面单'), ('3', '已打印物流单')], + string='物流状态', default='0', readonly=True) + + logistics_way = fields.Selection([('自提', '自提'), ('到付', '到付'), ('在线支付', '在线支付')], string='物流方式', readonly=True) + + def button_validate(self): + """ + 重写出库方法,获取物流面单 + """ + res = super(JdEclp, self).button_validate() + if self.check_out == 'OUT': + if self.logistics_way != '自提': + if self.logistics_status != '3': + raise ValidationError('非自提订单,必须先下物流单,并获取物流面单后才可出库!') + return res + @api.depends('name') def _check_is_out(self): @@ -68,6 +87,7 @@ class JdEclp(models.Model): # 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)]) + self.logistics_way = sale_order_id.logistics_way # 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: @@ -141,6 +161,8 @@ class JdEclp(models.Model): response = requests.post(url2, json=json2, data=None) # _logger.info('调用成功2', response.json()['result']['wbNo']) self.carrier_tracking_ref = response.json()['result']['wbNo'] + self.is_bill = True + self.logistics_status = '1' # else: # raise UserError("选择京东物流才能下单呦") @@ -180,3 +202,4 @@ class JdEclp(models.Model): # 'model_name': 'stock.picking', }) _logger.info(attachment) + self.logistics_status = '2' diff --git a/sf_bf_connect/views/view.xml b/sf_bf_connect/views/view.xml index c4f0e446..6db5cb1d 100644 --- a/sf_bf_connect/views/view.xml +++ b/sf_bf_connect/views/view.xml @@ -12,16 +12,30 @@ + + + + + + + + + + + 物流 stock.picking + + +