From ec9435bb82673f52be7ad5467a40ff357c5f3b43 Mon Sep 17 00:00:00 2001 From: "jinling.yang" Date: Tue, 2 Jan 2024 17:42:06 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=80=E5=94=AE?= =?UTF-8?q?=E5=92=8C=E9=87=87=E8=B4=AD=E7=9A=84=E9=83=A8=E5=88=86bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_quality/security/ir.model.access.csv | 10 +++++----- sf_sale/models/sale_order.py | 24 +++++++++++++++++++++--- sf_sale/security/group_security.xml | 2 +- sf_sale/security/ir.model.access.csv | 4 ++++ sf_sale/views/purchase_order_view.xml | 3 +++ sf_sale/views/res_partner_view.xml | 3 ++- sf_sale/views/sale_order_view.xml | 5 ++--- 7 files changed, 38 insertions(+), 13 deletions(-) diff --git a/sf_quality/security/ir.model.access.csv b/sf_quality/security/ir.model.access.csv index a26c135b..dbcd31ee 100644 --- a/sf_quality/security/ir.model.access.csv +++ b/sf_quality/security/ir.model.access.csv @@ -1,6 +1,6 @@ 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_quality_director,quality_point_group_quality_director,quality.model_quality_point,sf_base.group_quality_director,1,1,1,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 @@ -30,8 +30,8 @@ access_quality_alert_group_sf_mrp_manager,quality_alert_group_sf_mrp_manager,qua 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_quality,quality_alert_team_group_quality,quality.model_quality_alert_team,sf_base.group_quality,1,0,0,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,1,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 @@ -51,13 +51,13 @@ access_product_template_group_equipment_user,product_template_group_equipment_us access_product_template_group_equipment_manager,product_template_group_equipment_manager,product.model_product_template,sf_maintenance.sf_group_equipment_manager,1,0,0,0 access_quality_alert_stage_group_quality,quality_alert_stage_group_quality,quality.model_quality_alert_stage,sf_base.group_quality,1,0,0,0 -access_quality_alert_stage_group_quality_director,quality_alert_stage_group_quality_director,quality.model_quality_alert_stage,sf_base.group_quality_director,1,0,0,0 +access_quality_alert_stage_group_quality_director,quality_alert_stage_group_quality_director,quality.model_quality_alert_stage,sf_base.group_quality_director,1,1,1,0 access_quality_point_test_type_group_quality,quality_point_test_type_group_quality,quality.model_quality_point_test_type,sf_base.group_quality,1,0,0,0 access_quality_point_test_type_group_quality_director,quality_point_test_type_group_quality_director,quality.model_quality_point_test_type,sf_base.group_quality_director,1,0,0,0 access_quality_tag_group_quality,quality_tag_group_quality,quality.model_quality_tag,sf_base.group_quality,1,0,0,0 -access_quality_tag_group_quality_director,quality_tag_group_quality_director,quality.model_quality_tag,sf_base.group_quality_director,1,0,0,0 +access_quality_tag_group_quality_director,quality_tag_group_quality_director,quality.model_quality_tag,sf_base.group_quality_director,1,1,1,0 access_quality_reason_type_group_quality,quality_reason_group_quality,quality.model_quality_reason,sf_base.group_quality,1,0,0,0 access_quality_reason_type_group_quality_director,quality_reason_group_quality_director,quality.model_quality_reason,sf_base.group_quality_director,1,0,0,0 diff --git a/sf_sale/models/sale_order.py b/sf_sale/models/sale_order.py index 8cbcbb31..e1d0bad0 100644 --- a/sf_sale/models/sale_order.py +++ b/sf_sale/models/sale_order.py @@ -86,6 +86,7 @@ class ResaleOrderLine(models.Model): _inherit = 'sale.order.line' model_glb_file = fields.Binary('模型的glb文件') + check_status = fields.Selection(related='order_id.check_status') class RePurchaseOrder(models.Model): @@ -144,17 +145,31 @@ class ResPartnerToSale(models.Model): else: domain = [('id', '=', False)] return self._search(domain, limit=limit, access_rights_uid=name_get_uid) + elif self._context.get('is_supplier'): + if self.env.user.has_group('sf_base.group_purchase_director'): + domain = [('supplier_rank', '>', 0)] + elif self.env.user.has_group('sf_base.group_purchase'): + customer = self.env['res.partner'].search( + [('supplier_rank', '>', 0), ('user_id', '=', self.env.user.id)]) + if customer: + ids = [t.id for t in customer] + domain = [('id', 'in', ids)] + else: + domain = [('id', '=', False)] + return self._search(domain, limit=limit, access_rights_uid=name_get_uid) return super()._name_search(name, args, operator, limit, name_get_uid) @api.onchange('user_id') def _get_salesman(self): if self.customer_rank > 0: - self.user_id = self.env.user.id + if self.env.user.has_group('sf_base.group_sale_salemanager'): + self.user_id = self.env.user.id @api.onchange('purchase_user_id') def _get_purchaseman(self): if self.supplier_rank > 0: - self.purchase_user_id = self.env.user.id + if self.env.user.has_group('sf_base.group_purchase'): + self.purchase_user_id = self.env.user.id class ResUserToSale(models.Model): @@ -166,7 +181,10 @@ class ResUserToSale(models.Model): if self.env.user.has_group('sf_base.group_sale_director'): domain = [] elif self.env.user.has_group('sf_base.group_sale_salemanager'): - domain = [('id', '=', self.env.user.id)] + if self.id != self.env.user.id: + domain = [('id', '=', self.id)] + else: + domain = [('id', '=', self.env.user.id)] return self._search(domain, limit=limit, access_rights_uid=name_get_uid) elif self._context.get('supplier_rank'): if self.env.user.has_group('sf_base.group_purchase_director'): diff --git a/sf_sale/security/group_security.xml b/sf_sale/security/group_security.xml index 431b872b..f5d080ef 100644 --- a/sf_sale/security/group_security.xml +++ b/sf_sale/security/group_security.xml @@ -32,7 +32,7 @@ 销售经理查看自己的客户 - [('user_id','=',user.id),('customer_rank','>',0)] + [('user_id', '=', user.id),('customer_rank', '>', 0)] diff --git a/sf_sale/security/ir.model.access.csv b/sf_sale/security/ir.model.access.csv index 9489a6cc..8c6e1dc3 100644 --- a/sf_sale/security/ir.model.access.csv +++ b/sf_sale/security/ir.model.access.csv @@ -29,6 +29,8 @@ access_mrp_bom_group_sale_salemanager,mrp_bom_group_sale_salemanager,mrp.model_m access_mrp_bom_group_sale_director,mrp_bom_group_sale_director,mrp.model_mrp_bom,sf_base.group_sale_director,1,0,0,0 access_mrp_bom_group_purchase,mrp_bom_group_purchase,mrp.model_mrp_bom,sf_base.group_purchase,1,0,0,0 access_mrp_bom_group_purchase_director,mrp_bom_group_purchase_director,mrp.model_mrp_bom,sf_base.group_purchase_director,1,0,0,0 +access_mrp_bom_group_quality,mrp_bom_group_quality,mrp.model_mrp_bom,sf_base.group_quality,1,0,0,0 +access_mrp_bom_group_quality_director,mrp_bom_group_quality_director,mrp.model_mrp_bom,sf_base.group_quality_director,1,0,0,0 access_stock_move_group_sale_salemanager,stock_move_group_sale_salemanager,stock.model_stock_move,sf_base.group_sale_salemanager,1,0,0,0 access_stock_move_group_sale_director,stock_move_group_sale_director,stock.model_stock_move,sf_base.group_sale_director,1,0,0,0 access_stock_move_group_purchase,stock_move_group_purchase,stock.model_stock_move,sf_base.group_purchase,1,0,0,0 @@ -67,3 +69,5 @@ access_purchase_order_wizard_group_purchase,purchase_order_wizard_group_purchase access_purchase_order_wizard_group_purchase_director,purchase_order_wizard_group_purchase_director,model_purchase_order_wizard,sf_base.group_purchase_director,1,1,1,0 access_crm_tag_group_sale_salemanager,crm_tag_group_sale_salemanager,sales_team.model_crm_tag,sf_base.group_sale_salemanager,1,0,0,0 access_crm_tag_group_sale_director,crm_tag_group_sale_director,sales_team.model_crm_tag,sf_base.group_sale_director,1,1,1,0 +access_res_partner_group_purchase,res_partner_group_purchase,base.model_res_partner,sf_base.group_purchase,1,1,1,0 +access_res_partner_group_purchase_director,res_partner_group_purchase_director,base.model_res_partner,sf_base.group_purchase_director,1,1,1,0 diff --git a/sf_sale/views/purchase_order_view.xml b/sf_sale/views/purchase_order_view.xml index 93b59032..51dfaf63 100644 --- a/sf_sale/views/purchase_order_view.xml +++ b/sf_sale/views/purchase_order_view.xml @@ -6,6 +6,9 @@ purchase.order + + + diff --git a/sf_sale/views/res_partner_view.xml b/sf_sale/views/res_partner_view.xml index 2ab384eb..284bf29d 100644 --- a/sf_sale/views/res_partner_view.xml +++ b/sf_sale/views/res_partner_view.xml @@ -6,6 +6,7 @@ res.partner + @@ -42,7 +43,7 @@ + attrs="{'required' : [('customer_rank','>', 0)]}"/> 1 diff --git a/sf_sale/views/sale_order_view.xml b/sf_sale/views/sale_order_view.xml index d1f0dfb8..db94b2c9 100644 --- a/sf_sale/views/sale_order_view.xml +++ b/sf_sale/views/sale_order_view.xml @@ -36,8 +36,7 @@ attrs="{'invisible': ['|','&',('check_status', '!=', 'approved'),('state', 'in', ['draft','cancel']),'&',('check_status', '=', 'approved'),('state', 'in', ['sale','cancel'])]}"/> - {'invisible': ['|',('check_status', '!=', 'approved'),('schedule_status', - 'not in', ['to schedule',False])]} + {'invisible': [('check_status', '=', False)]} @@ -63,7 +62,7 @@ + string="模型文件" attrs="{'readonly': [('state', 'in', ['draft'])]}"/> {'readonly': [('state', 'in', ['cancel','sale'])]} From 45e8e380db9d691fbc7d202afddf9387a854f3cc Mon Sep 17 00:00:00 2001 From: "jinling.yang" Date: Wed, 3 Jan 2024 11:42:23 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=80=E5=94=AE?= =?UTF-8?q?=E8=B4=A8=E9=87=8F=E9=87=87=E8=B4=ADbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_sale/security/group_security.xml | 3 ++- sf_sale/security/ir.model.access.csv | 3 +++ sf_sale/views/res_partner_view.xml | 7 ++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/sf_sale/security/group_security.xml b/sf_sale/security/group_security.xml index f5d080ef..c6af4225 100644 --- a/sf_sale/security/group_security.xml +++ b/sf_sale/security/group_security.xml @@ -64,8 +64,9 @@ 采购总监查看所有的订单 - [(1,'=',1),('check_status','!=', False] + [(1,'=',1)] + diff --git a/sf_sale/security/ir.model.access.csv b/sf_sale/security/ir.model.access.csv index 8c6e1dc3..682d6531 100644 --- a/sf_sale/security/ir.model.access.csv +++ b/sf_sale/security/ir.model.access.csv @@ -71,3 +71,6 @@ access_crm_tag_group_sale_salemanager,crm_tag_group_sale_salemanager,sales_team. access_crm_tag_group_sale_director,crm_tag_group_sale_director,sales_team.model_crm_tag,sf_base.group_sale_director,1,1,1,0 access_res_partner_group_purchase,res_partner_group_purchase,base.model_res_partner,sf_base.group_purchase,1,1,1,0 access_res_partner_group_purchase_director,res_partner_group_purchase_director,base.model_res_partner,sf_base.group_purchase_director,1,1,1,0 +access_sale_advance_payment_inv_group_sale_salemanager,sale_advance_payment_inv_group_sale_salemanager,sale.model_sale_advance_payment_inv,sf_base.group_sale_salemanager,1,1,1,0 +access_sale_advance_payment_inv_group_sale_director,sale_advance_payment_inv_group_sale_director,sale.model_sale_advance_payment_inv,sf_base.group_sale_director,1,1,1,0 + diff --git a/sf_sale/views/res_partner_view.xml b/sf_sale/views/res_partner_view.xml index 284bf29d..c7bb79af 100644 --- a/sf_sale/views/res_partner_view.xml +++ b/sf_sale/views/res_partner_view.xml @@ -6,7 +6,9 @@ res.partner - +
+ false +
@@ -70,6 +72,9 @@ res.partner + + false +