diff --git a/sf_base/security/group_security.xml b/sf_base/security/group_security.xml
index 89dfa51a..72310cfc 100644
--- a/sf_base/security/group_security.xml
+++ b/sf_base/security/group_security.xml
@@ -1,19 +1,29 @@
+
+ 质检岗
+
+
+
+
+ 质量总监
+
+
制造普通用户
+
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
机床操作岗
@@ -64,5 +74,17 @@
+
+
+ 采购岗
+
+
+
+
+ 采购总监
+
+
+
+
\ No newline at end of file
diff --git a/sf_base/security/ir.model.access.csv b/sf_base/security/ir.model.access.csv
index 1a550d41..6ff1f8a8 100644
--- a/sf_base/security/ir.model.access.csv
+++ b/sf_base/security/ir.model.access.csv
@@ -30,6 +30,11 @@ access_sf_tool_materials_basic_parameters,sf_tool_materials_basic_parameters,mod
access_sf_cutting_speed,sf_cutting_speed,model_sf_cutting_speed,base.group_user,1,1,1,1
access_sf_feed_per_tooth,sf_feed_per_tooth,model_sf_feed_per_tooth,base.group_user,1,1,1,1
access_maintenance_equipment_image,maintenance_equipment_image,model_maintenance_equipment_image,base.group_user,1,1,1,1
+access_purchase_order_group_purchase,access_purchase_order_group_purchase,purchase.model_purchase_order,sf_base.group_purchase,1,1,1,0
+access_purchase_order_group_purchase_director,access_purchase_order_group_purchase_director,purchase.model_purchase_order,sf_base.group_purchase_director,1,1,1,0
+access_purchase_order_line_group_purchase,access_purchase_order_line_group_purchase,purchase.model_purchase_order_line,sf_base.group_purchase,1,1,1,0
+access_purchase_order_line_group_purchase_director,access_purchase_order_line_group_purchase_director,purchase.model_purchase_order_line,sf_base.group_purchase_director,1,1,1,0
+
diff --git a/sf_maintenance/security/group_security.xml b/sf_maintenance/security/group_security.xml
index 4966ef8a..194793fe 100644
--- a/sf_maintenance/security/group_security.xml
+++ b/sf_maintenance/security/group_security.xml
@@ -13,44 +13,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/sf_quality/__manifest__.py b/sf_quality/__manifest__.py
index 12937909..c41e1a24 100644
--- a/sf_quality/__manifest__.py
+++ b/sf_quality/__manifest__.py
@@ -13,8 +13,9 @@
'author': 'jikimo',
'website': 'https://sf.cs.jikimo.com',
# 此处依赖sf_manufacturing是因为我要重写其中的一个字段operation_id的string,故需要sf_manufacturing先安装
- 'depends': ['quality_control', 'sf_manufacturing'],
+ 'depends': ['quality_control'],
'data': [
+ 'security/ir.model.access.csv',
'views/view.xml'
],
diff --git a/sf_quality/models/custom_quality.py b/sf_quality/models/custom_quality.py
index c700b88b..b6fed11a 100644
--- a/sf_quality/models/custom_quality.py
+++ b/sf_quality/models/custom_quality.py
@@ -10,5 +10,27 @@ class SfQualityPoint(models.Model):
domain="[('type', 'in', "
"('product', 'consu')), '|', ('company_id', '=', False), ('company_id', '=', company_id)]", help=
"Quality Point will apply to every selected Products.")
+
+ check_state = fields.Selection([
+ ('enable', '启用'),
+ ('close', '关闭')
+ ], string='审核状态', default='close')
+
+ # 审核
+ def action_check(self):
+ self.check_state = 'enable'
# picking_type_ids = fields.Many2many(
# 'stock.picking.type', string='执行节点', required=True, check_company=True)
+
+
+class ResQualityAlertTeam(models.Model):
+ _inherit = 'quality.alert.team'
+
+ check_state = fields.Selection([
+ ('enable', '启用'),
+ ('close', '关闭')
+ ], string='审核状态', default='close')
+
+ # 审核
+ def action_check(self):
+ self.check_state = 'enable'
diff --git a/sf_quality/security/ir.model.access.csv b/sf_quality/security/ir.model.access.csv
index e69de29b..be8cddb7 100644
--- a/sf_quality/security/ir.model.access.csv
+++ b/sf_quality/security/ir.model.access.csv
@@ -0,0 +1,43 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_quality_point_group_quality,quality_point_group_quality,quality.model_quality_point,sf_base.group_quality,1,1,1,0
+access_quality_point_group_quality_director,quality_point_group_quality_director,quality.model_quality_point,sf_base.group_quality_director,1,1,0,0
+access_quality_point_group_plan_dispatch,quality_point_group_plan_dispatch,quality.model_quality_point,sf_base.group_plan_dispatch,1,0,0,0
+access_quality_point_group_plan_director,quality_point_group_plan_director,quality.model_quality_point,sf_base.group_plan_director,1,0,0,0
+access_quality_point_group_sf_equipment_user,quality_point_group_sf_equipment_user,quality.model_quality_point,sf_base.group_sf_equipment_user,1,0,0,0
+access_quality_point_group_sf_tool_user,quality_point_group_sf_tool_user,quality.model_quality_point,sf_base.group_sf_tool_user,1,0,0,0
+access_quality_point_group_sf_order_user,quality_point_group_sf_order_user,quality.model_quality_point,sf_base.group_sf_order_user,1,0,0,0
+access_quality_point_group_sf_mrp_manager,quality_point_group_sf_mrp_manager,quality.model_quality_point,sf_base.group_sf_mrp_manager,1,0,0,0
+
+access_quality_check_group_quality,quality_check_group_quality,quality.model_quality_check,sf_base.group_quality,1,1,1,0
+access_quality_check_group_quality_director,quality_check_group_quality_director,quality.model_quality_check,sf_base.group_quality_director,1,1,1,0
+access_quality_check_group_plan_dispatch,quality_check_group_plan_dispatch,quality.model_quality_check,sf_base.group_plan_dispatch,1,0,0,0
+access_quality_check_group_plan_director,quality_check_group_plan_director,quality.model_quality_check,sf_base.group_plan_director,1,0,0,0
+access_quality_check_group_sf_equipment_user,quality_check_group_sf_equipment_user,quality.model_quality_check,sf_base.group_sf_equipment_user,1,0,0,0
+access_quality_check_group_sf_tool_user,quality_check_group_sf_tool_user,quality.model_quality_check,sf_base.group_sf_tool_user,1,0,0,0
+access_quality_check_group_sf_order_user,quality_check_group_sf_order_user,quality.model_quality_check,sf_base.group_sf_order_user,1,0,0,0
+access_quality_check_group_sf_mrp_manager,quality_check_group_sf_mrp_manager,quality.model_quality_check,sf_base.group_sf_mrp_manager,1,0,0,0
+access_quality_check_group_equipment_user,quality_check_group_equipment_user,quality.model_quality_check,sf_maintenance.sf_group_equipment_user,1,0,0,0
+access_quality_check_group_equipment_manager,quality_check_group_equipment_manager,quality.model_quality_check,sf_maintenance.sf_group_equipment_manager,1,0,0,0
+
+access_quality_alert_group_quality,quality_alert_group_quality,quality.model_quality_alert,sf_base.group_quality,1,1,1,0
+access_quality_alert_group_quality_director,quality_alert_group_quality_director,quality.model_quality_alert,sf_base.group_quality_director,1,1,1,0
+access_quality_alert_group_plan_dispatch,quality_alert_group_plan_dispatch,quality.model_quality_alert,sf_base.group_plan_dispatch,1,0,0,0
+access_quality_alert_group_plan_director,quality_alert_group_plan_director,quality.model_quality_alert,sf_base.group_plan_director,1,0,0,0
+access_quality_alert_group_sf_equipment_user,quality_alert_group_sf_equipment_user,quality.model_quality_alert,sf_base.group_sf_equipment_user,1,0,0,0
+access_quality_alert_group_sf_tool_user,quality_alert_group_sf_tool_user,quality.model_quality_alert,sf_base.group_sf_tool_user,1,0,0,0
+access_quality_alert_group_sf_order_user,quality_alert_group_sf_order_user,quality.model_quality_alert,sf_base.group_sf_order_user,1,0,0,0
+access_quality_alert_group_sf_mrp_manager,quality_alert_group_sf_mrp_manager,quality.model_quality_alert,sf_base.group_sf_mrp_manager,1,0,0,0
+access_quality_alert_group_equipment_user,quality_alert_group_equipment_user,quality.model_quality_alert,sf_maintenance.sf_group_equipment_user,1,0,0,0
+access_quality_alert_group_equipment_manager,quality_alert_group_equipment_manager,quality.model_quality_alert,sf_maintenance.sf_group_equipment_manager,1,0,0,0
+
+access_quality_alert_team_group_quality,quality_alert_team_group_quality,quality.model_quality_alert_team,sf_base.group_quality,1,1,1,0
+access_quality_alert_team_group_quality_director,quality_alert_team_group_quality_director,quality.model_quality_alert_team,sf_base.group_quality_director,1,1,0,0
+access_quality_alert_team_group_plan_dispatch,quality_alert_team_group_plan_dispatch,quality.model_quality_alert_team,sf_base.group_plan_dispatch,1,0,0,0
+access_quality_alert_team_group_plan_director,quality_alert_team_group_plan_director,quality.model_quality_alert_team,sf_base.group_plan_director,1,0,0,0
+access_quality_alert_team_group_sf_equipment_user,quality_alert_team_group_sf_equipment_user,quality.model_quality_alert_team,sf_base.group_sf_equipment_user,1,0,0,0
+access_quality_alert_team_group_sf_tool_user,quality_alert_team_group_sf_tool_user,quality.model_quality_alert_team,sf_base.group_sf_tool_user,1,0,0,0
+access_quality_alert_team_group_sf_order_user,quality_alert_team_group_sf_order_user,quality.model_quality_alert_team,sf_base.group_sf_order_user,1,0,0,0
+access_quality_alert_team_group_sf_mrp_manager,quality_alert_team_group_sf_mrp_manager,quality.model_quality_alert_team,sf_base.group_sf_mrp_manager,1,0,0,0
+
+
+
diff --git a/sf_quality/views/view.xml b/sf_quality/views/view.xml
index 136374a9..ab4208ed 100644
--- a/sf_quality/views/view.xml
+++ b/sf_quality/views/view.xml
@@ -31,4 +31,34 @@
+
+
+ quality.point.form.inherit.sf
+ quality.point
+
+
+
+
+
+
+
+
+
+
+ quality.alert.team.form.inherit.sf
+ quality.alert.team
+
+
+
+
+
+
+
+
diff --git a/sf_sale/__manifest__.py b/sf_sale/__manifest__.py
index 64d9c41a..a20be38b 100644
--- a/sf_sale/__manifest__.py
+++ b/sf_sale/__manifest__.py
@@ -16,6 +16,7 @@
'security/ir.model.access.csv',
'views/sale_team.xml',
'views/sale_order_view.xml',
+ 'views/purchase_order_view.xml',
'views/quick_easy_order_view.xml'
],
'demo': [
diff --git a/sf_sale/models/sale_order.py b/sf_sale/models/sale_order.py
index 0bb6672a..ec994fed 100644
--- a/sf_sale/models/sale_order.py
+++ b/sf_sale/models/sale_order.py
@@ -74,3 +74,14 @@ class ResaleOrderLine(models.Model):
_inherit = 'sale.order.line'
model_glb_file = fields.Binary('模型的glb文件')
+
+
+class RePurchaseOrder(models.Model):
+ _inherit = 'purchase.order'
+
+ check_status = fields.Selection([('unchecked', '未审核'), ('checked', '已审核')], '审核状态', default='unchecked')
+
+ # 审核
+ def action_check(self):
+ self.check_status = 'checked'
+
diff --git a/sf_sale/security/group_security.xml b/sf_sale/security/group_security.xml
index 0e14e0af..f40225e1 100644
--- a/sf_sale/security/group_security.xml
+++ b/sf_sale/security/group_security.xml
@@ -29,14 +29,54 @@
-
-
-
-
-
-
-
-
-
+
+
+ 销售经理查看自己的订单
+
+ ['|',('partner_id','=',user.partner_id.id),('create_uid', '=',user.id)]
+
+
+
+
+
+
+
+ 采购总监查看所有的订单
+
+ [(1,'=',1)]
+
+
+
+
+
+
+ 采购岗查看自己的订单
+
+ ['|',('user_id','=',user.id),('create_uid', '=',user.id)]
+
+
+
+
+
+
+
+
+ 采购总监查看所有供应商
+
+ [(1,'=',1)]
+
+
+
+
+
+
+ 采购岗查看自己的供应商
+
+ ['|',('user_id','=',user.id),('create_uid', '=',user.id)]
+
+
+
+
+
\ No newline at end of file
diff --git a/sf_sale/views/purchase_order_view.xml b/sf_sale/views/purchase_order_view.xml
new file mode 100644
index 00000000..4139dd19
--- /dev/null
+++ b/sf_sale/views/purchase_order_view.xml
@@ -0,0 +1,68 @@
+
+
+
+
+ purchase.order.form.inherit.sf
+ purchase.order
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sf_base.group_purchase
+
+
+
+
+
+
+
+
+
+ sf_base.group_purchase
+
+
+
+ sf_base.group_purchase
+
+
+ sf_base.group_purchase
+
+
+
+ sf_base.group_purchase
+
+
+ sf_base.group_purchase
+
+
+
+
+
\ No newline at end of file
diff --git a/sf_sale/views/sale_order_view.xml b/sf_sale/views/sale_order_view.xml
index a02a8adc..0abe7989 100644
--- a/sf_sale/views/sale_order_view.xml
+++ b/sf_sale/views/sale_order_view.xml
@@ -71,6 +71,9 @@
sale.order
+
+ False
+
订单号