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
+
+
+
+ attrs="{'invisible': ['|', '|', '|', ('check_out', '!=', 'OUT'), ('state', '!=', 'assigned'), ('is_bill', '=', True), ('logistics_way', '=', '自提')]}"/>
+ attrs="{'invisible': ['|', '|', '|', '|', ('check_out', '!=', 'OUT'), ('state', '!=', 'assigned'), ('logistics_status', '=', '2'), ('is_bill', '=', False), ('logistics_way', '=', '自提')]}"/>
@@ -31,6 +45,12 @@
stock.picking
+
+
+
+
+
+
@@ -48,6 +68,7 @@
+
diff --git a/sf_maintenance/security/ir.model.access.csv b/sf_maintenance/security/ir.model.access.csv
index 575afec5..0853ee77 100644
--- a/sf_maintenance/security/ir.model.access.csv
+++ b/sf_maintenance/security/ir.model.access.csv
@@ -15,7 +15,8 @@ access_sf_robot_axis_num,sf_robot_axis_num,model_sf_robot_axis_num,sf_group_equi
access_sf_robot_axis_num,sf_robot_axis_num,model_sf_robot_axis_num,sf_group_equipment_manager,1,1,1,0
-access_maintenance_request_group_plan_dispatch,maintenance.request,maintenance.model_maintenance_request,sf_base.group_plan_dispatch,1,0,0,0
+access_maintenance_system_user,equipment.request system user,maintenance.model_maintenance_request,base.group_user,1,0,0,0
+
access_maintenance_equipment_group_plan_dispatch,maintenance.equipment,maintenance.model_maintenance_equipment,sf_base.group_plan_dispatch,1,0,0,0
access_sf_maintenance_logs_group_plan_dispatch,sf_maintenance_logs,model_sf_maintenance_logs,sf_base.group_plan_dispatch,1,0,0,0
access_maintenance_standard_image_group_plan_dispatch,maintenance_standard_image,model_maintenance_standard_image,sf_base.group_plan_dispatch,1,0,0,0
diff --git a/sf_maintenance/security/ir_rule_data.xml b/sf_maintenance/security/ir_rule_data.xml
index 3aa4366f..411afb45 100644
--- a/sf_maintenance/security/ir_rule_data.xml
+++ b/sf_maintenance/security/ir_rule_data.xml
@@ -11,5 +11,18 @@
False
False
+
+
+
+ Maintenance Request Plan Dispatch Rule
+
+
+
+ True
+ False
+ False
+ False
+
+
diff --git a/sf_manufacturing/views/mrp_production_addional_change.xml b/sf_manufacturing/views/mrp_production_addional_change.xml
index e45f4a6e..6ba4d4d5 100644
--- a/sf_manufacturing/views/mrp_production_addional_change.xml
+++ b/sf_manufacturing/views/mrp_production_addional_change.xml
@@ -85,7 +85,7 @@
@@ -96,7 +96,7 @@
'|',
('state', 'not in', ('confirmed', 'progress')),
('qty_producing', '!=', 0),
- ('state', '!=', 'to_close')]}" string="Mark as Done" type="object" class="oe_highlight"
+ ('state', '!=', 'to_close')]}" string="标记完成" type="object" class="oe_highlight"
data-hotkey="g" groups="sf_base.group_sf_mrp_user"/>
@@ -107,7 +107,7 @@
'|',
('state', 'not in', ('confirmed', 'progress')),
('qty_producing', '!=', 0),
- ('state', '!=', 'to_close')]}" string="Mark as Done" type="object" class="oe_highlight"
+ ('state', '!=', 'to_close')]}" string="标记完成" type="object" class="oe_highlight"
data-hotkey="g"
confirm="There are no components to consume. Are you still sure you want to continue?"
groups="sf_base.group_sf_mrp_user"/>
@@ -125,7 +125,7 @@
-
@@ -179,12 +179,59 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -195,7 +242,7 @@
-
@@ -225,8 +272,38 @@
+ =======
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
diff --git a/sf_sale/models/sale_order.py b/sf_sale/models/sale_order.py
index 8a7e68f6..96103530 100644
--- a/sf_sale/models/sale_order.py
+++ b/sf_sale/models/sale_order.py
@@ -7,6 +7,7 @@ from odoo.exceptions import UserError
class ReSaleOrder(models.Model):
_inherit = 'sale.order'
+ logistics_way = fields.Selection([('自提', '自提'), ('到付', '到付'), ('在线支付', '在线支付')], string='物流方式')
state = fields.Selection(
selection=[
('draft', "报价"),
@@ -19,7 +20,6 @@ class ReSaleOrder(models.Model):
readonly=True, copy=False, index=True,
tracking=3,
default='draft')
-
deadline_of_delivery = fields.Date('订单交期', tracking=True)
person_of_delivery = fields.Char('交货人')
telephone_of_delivery = fields.Char('交货人电话号码')