diff --git a/sf_dlm/views/product_template_view.xml b/sf_dlm/views/product_template_view.xml
index 6331d841..3748a669 100644
--- a/sf_dlm/views/product_template_view.xml
+++ b/sf_dlm/views/product_template_view.xml
@@ -42,11 +42,53 @@
- stock.group_stock_user,product.group_stock_packaging
+
+ stock.group_stock_user,product.group_stock_packaging,sf_base.group_sale_salemanager,sf_base.group_sale_director,sf_base.group_purchase,sf_base.group_purchase_director
+
+
+ product.template_procurement.form.inherit.sf
+ product.template
+
+
+
+
+ stock.group_stock_user,sf_base.group_sale_salemanager,sf_base.group_sale_director,sf_base.group_purchase,sf_base.group_purchase_director
+
+
+
+
+ stock.group_stock_user,sf_base.group_sale_salemanager,sf_base.group_sale_director,sf_base.group_purchase,sf_base.group_purchase_director
+
+
+
+
+ stock.group_stock_user,sf_base.group_sale_salemanager,sf_base.group_sale_director,sf_base.group_purchase,sf_base.group_purchase_director
+
+
+
+
+ stock.group_stock_user,sf_base.group_sale_salemanager,sf_base.group_sale_director,sf_base.group_purchase,sf_base.group_purchase_director
+
+
+
+
+
+ stock.group_stock_user,sf_base.group_sale_salemanager,sf_base.group_sale_director,sf_base.group_purchase,sf_base.group_purchase_director
+
+
+
+
+
+
+
+
+
+
+
mrp.bom.form.inherit.sf
mrp.bom
@@ -80,5 +122,6 @@
+
\ No newline at end of file
diff --git a/sf_manufacturing/models/stock.py b/sf_manufacturing/models/stock.py
index 473a9b43..4f2c43f3 100644
--- a/sf_manufacturing/models/stock.py
+++ b/sf_manufacturing/models/stock.py
@@ -201,17 +201,18 @@ class StockRule(models.Model):
sale_order = self.env['sale.order'].sudo().search([('name', '=', production.origin)])
if sale_order:
+ sale_order.write({'schedule_status': 'to schedule'})
self.env['sf.production.plan'].sudo().with_company(company_id). \
create({
- 'name': production.name,
- 'order_deadline': sale_order.deadline_of_delivery,
- 'production_id': production.id,
- 'date_planned_start': production.date_planned_start,
- 'origin': production.origin,
- 'product_qty': production.product_qty,
- 'product_id': production.product_id.id,
- 'state': 'draft',
- })
+ 'name': production.name,
+ 'order_deadline': sale_order.deadline_of_delivery,
+ 'production_id': production.id,
+ 'date_planned_start': production.date_planned_start,
+ 'origin': production.origin,
+ 'product_qty': production.product_qty,
+ 'product_id': production.product_id.id,
+ 'state': 'draft',
+ })
return True
diff --git a/sf_sale/models/sale_order.py b/sf_sale/models/sale_order.py
index d6e46786..8f3910b6 100644
--- a/sf_sale/models/sale_order.py
+++ b/sf_sale/models/sale_order.py
@@ -15,7 +15,8 @@ class ReSaleOrder(models.Model):
pay_way = fields.Selection([('转账', '转账'), ('微信', '微信'), ('支付宝', '支付宝')], '支付方式')
check_status = fields.Selection([('pending', '待审核'), ('approved', '已审核'), ('fail', '不通过')], '审核状态')
schedule_status = fields.Selection(
- [('schedule', '待排程'), ('process', '待加工'), ('deliver', '待发货'), ('receive', '待收货'), ('received', '已收货')],
+ [('to schedule', '待排程'), ('to process', '待加工'), ('to deliver', '待发货'), ('to receive', '待收货'),
+ ('received', '已收货')],
'进度状态')
payment_term_id = fields.Many2one(
comodel_name='account.payment.term',
@@ -35,7 +36,7 @@ class ReSaleOrder(models.Model):
'date_order': now_time,
'name': self.env['ir.sequence'].next_by_code('sale.order', sequence_date=now_time),
'partner_id': partner.id,
- 'check_status': 'checked',
+ 'check_status': 'approved',
'state': 'draft',
'person_of_delivery': delivery_name,
'telephone_of_delivery': delivery_telephone,
@@ -46,14 +47,17 @@ class ReSaleOrder(models.Model):
})
return order_id
+ def write(self, vals):
+ if self.env.user.has_group('sf_base.group_sale_director'):
+ if vals.get('check_status'):
+ if vals['check_status'] in ('pending', False):
+ vals['check_status'] = 'approved'
+ return super().write(vals)
+
# 提交
def submit(self):
self.check_status = 'pending'
- # 审核
- def action_check(self):
- self.check_status = 'checked'
-
def get_customer(self):
customer = self.env['res.partner'].search([('name', '=', '业务平台')])
if customer:
diff --git a/sf_sale/security/ir.model.access.csv b/sf_sale/security/ir.model.access.csv
index 92b4359b..6645b629 100644
--- a/sf_sale/security/ir.model.access.csv
+++ b/sf_sale/security/ir.model.access.csv
@@ -42,9 +42,14 @@ access_account_move_line_group_purchase,account_move_line_group_purchase,account
access_account_move_line_group_purchase_director,account_move_line_group_purchase_director,account.model_account_move_line,sf_base.group_purchase_director,1,1,1,0
access_res_users_group_purchase,res_user_group_purchase,model_res_users,sf_base.group_purchase,1,1,1,0
-access_res_users_group_purchase_director,res_user_group_purchase_director,model_res_users,sf_base.group_purchase_director,1,1,1,0
-access_res_users_sale_salemanager,res_user_group_sale_salemanager,model_res_users,sf_base.group_sale_salemanager,1,0,0,0
-access_res_users_group_sale_director,res_user_group_sale_director,model_res_users,sf_base.group_sale_director,1,1,1,0
+access_res_users_group_purchase_director,res_users_group_purchase_director,model_res_users,sf_base.group_purchase_director,1,1,1,0
+access_res_users_group_sale_salemanager,res_users_group_sale_salemanager,model_res_users,sf_base.group_sale_salemanager,1,0,0,0
+access_res_users_group_sale_director,res_users_group_sale_director,model_res_users,sf_base.group_sale_director,1,1,1,0
+
+access_mrp_bom_byproduct_group_purchase,mrp_bom_byproduct_group_purchase,mrp.model_mrp_bom_byproduct,sf_base.group_purchase,1,1,1,0
+access_mrp_bom_byproduct_group_purchase_director,mrp_bom_byproduct_group_purchase_director,mrp.model_mrp_bom_byproduct,sf_base.group_purchase_director,1,1,1,0
+access_mrp_bom_byproduct_group_sale_salemanager,mrp_bom_byproduct_group_sale_salemanager,mrp.model_mrp_bom_byproduct,sf_base.group_sale_salemanager,1,0,0,0
+access_mrp_bom_byproduct_group_sale_director,mrp_bom_byproduct_group_sale_director,mrp.model_mrp_bom_byproduct,sf_base.group_sale_director,1,1,1,0
diff --git a/sf_sale/views/sale_order_view.xml b/sf_sale/views/sale_order_view.xml
index 5b67d399..d1f0dfb8 100644
--- a/sf_sale/views/sale_order_view.xml
+++ b/sf_sale/views/sale_order_view.xml
@@ -9,7 +9,7 @@
+ attrs="{'invisible': ['|','&',('check_status', '!=', 'approved'),('state', 'in', ['draft','cancel']),'&',('check_status', '=', 'approved'),('state', 'in', ['sale','cancel'])]}"/>
-
-
+
+
@@ -33,29 +33,85 @@
+ attrs="{'invisible': ['|','&',('check_status', '!=', 'approved'),('state', 'in', ['draft','cancel']),'&',('check_status', '=', 'approved'),('state', 'in', ['sale','cancel'])]}"/>
- {'invisible': [('check_status', '!=', 'approved')]}
+ {'invisible': ['|',('check_status', '!=', 'approved'),('schedule_status',
+ 'not in', ['to schedule',False])]}
+
+ 1
+
+
+
+
+
+
+ {'readonly': [('state', 'in', ['cancel','sale'])]}
+
-
-
-
+
+
+
+
+
+ {'readonly': [('state', 'in', ['cancel','sale'])]}
+
+
+ {'readonly': [('state', 'in', ['cancel','sale'])]}
+
+
+ {'readonly': [('state', 'in', ['cancel','sale'])]}
+
+
+ {'readonly': [('state', 'in', ['cancel','sale'])]}
+
+
+ {'readonly': [('state', 'in', ['cancel','sale'])]}
+
+
+
+ {'readonly': [('state', 'in', ['cancel','sale'])]}
+
+
+ {'readonly': [('state', 'in', ['cancel','sale'])]}
+
+
+ {'readonly': [('state', 'in', ['cancel','sale'])]}
+
+
+ {'readonly': [('state', 'in', ['cancel','sale'])]}
+
+
+ {'readonly': [('state', 'in', ['cancel','sale'])]}
+
+
+ {'readonly': [('state', 'in', ['cancel','sale'])]}
+
+
+ {'readonly': [('state', 'in', ['cancel','sale'])]}
+
+
+ {'readonly': [('state', 'in', ['cancel','sale'])]}
+
+
+ {'readonly': [('state', 'in', ['cancel','sale'])]}
+
@@ -69,10 +125,13 @@
下单日期
-
-
-
-
+
+
+
+
@@ -92,8 +151,10 @@
下单时间
-
+
@@ -103,9 +164,20 @@
sale.order
+
+ False
+
订单号
+
+
+
diff --git a/sf_sale/wizard/sale_order_wizard.py b/sf_sale/wizard/sale_order_wizard.py
index 26de6d1e..bfcb6466 100644
--- a/sf_sale/wizard/sale_order_wizard.py
+++ b/sf_sale/wizard/sale_order_wizard.py
@@ -20,6 +20,4 @@ class saleOrderCheckWizard(models.TransientModel):
if not self.check_audit:
raise UserError('请输入原因')
else:
- self.order_id.check_status = 'fail'
- self.order_id.remark = self.check_audit
-
+ self.order_id.write({'check_status': 'fail', 'remark': self.check_audit})