diff --git a/sf_base/security/group_security.xml b/sf_base/security/group_security.xml index 72310cfc..dd78c2c0 100644 --- a/sf_base/security/group_security.xml +++ b/sf_base/security/group_security.xml @@ -60,7 +60,6 @@ 销售总监 - @@ -72,7 +71,7 @@ 计划总监 - + diff --git a/sf_quality/__manifest__.py b/sf_quality/__manifest__.py index d6f946e1..cec1a0f9 100644 --- a/sf_quality/__manifest__.py +++ b/sf_quality/__manifest__.py @@ -13,7 +13,7 @@ 'author': 'jikimo', 'website': 'https://sf.cs.jikimo.com', # 此处依赖sf_manufacturing是因为我要重写其中的一个字段operation_id的string,故需要sf_manufacturing先安装 - 'depends': ['quality_control', 'sf_maintenance'], + 'depends': ['quality_control'], 'data': [ 'security/ir.model.access.csv', # 'views/view.xml' diff --git a/sf_quality/security/ir.model.access.csv b/sf_quality/security/ir.model.access.csv index 0d2b16ef..0ed30ac1 100644 --- a/sf_quality/security/ir.model.access.csv +++ b/sf_quality/security/ir.model.access.csv @@ -39,6 +39,20 @@ access_quality_alert_team_group_sf_tool_user,quality_alert_team_group_sf_tool_us 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 +access_product_template_group_quality,product_template_group_quality,product.model_product_template,sf_base.group_quality,1,0,0,0 +access_product_template_group_quality_director,product_template_group_quality_director,product.model_product_template,sf_base.group_quality_director,1,0,0,0 +access_product_template_group_plan_dispatch,product_template_group_plan_dispatch,product.model_product_template,sf_base.group_plan_dispatch,1,0,0,0 +access_product_template_group_plan_director,product_template_group_plan_director,product.model_product_template,sf_base.group_plan_director,1,0,0,0 +access_product_template_group_sf_equipment_user,product_template_group_sf_equipment_user,product.model_product_template,sf_base.group_sf_equipment_user,1,0,0,0 +access_product_template_group_sf_tool_user,product_template_group_sf_tool_user,product.model_product_template,sf_base.group_sf_tool_user,1,0,0,0 +access_product_template_group_sf_order_user,product_template_group_sf_order_user,product.model_product_template,sf_base.group_sf_order_user,1,0,0,0 +access_product_template_group_sf_mrp_manager,product_template_group_sf_mrp_manager,product.model_product_template,sf_base.group_sf_mrp_manager,1,0,0,0 +access_product_template_group_equipment_user,product_template_group_equipment_user,product.model_product_template,sf_maintenance.sf_group_equipment_user,1,0,0,0 +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,quality.alert.stage,quality.model_quality_alert_stage,sf_base.group_plan_dispatch,1,0,0,0 diff --git a/sf_sale/__init__.py b/sf_sale/__init__.py index 0650744f..a22f9844 100644 --- a/sf_sale/__init__.py +++ b/sf_sale/__init__.py @@ -1 +1,3 @@ from . import models +from . import wizard + diff --git a/sf_sale/__manifest__.py b/sf_sale/__manifest__.py index a20be38b..f30bb014 100644 --- a/sf_sale/__manifest__.py +++ b/sf_sale/__manifest__.py @@ -14,6 +14,7 @@ 'data': [ 'security/group_security.xml', 'security/ir.model.access.csv', + 'wizard/sale_order_wizard_views.xml', 'views/sale_team.xml', 'views/sale_order_view.xml', 'views/purchase_order_view.xml', diff --git a/sf_sale/models/feature.sqlite b/sf_sale/models/feature.sqlite index f03f3437..e69de29b 100644 Binary files a/sf_sale/models/feature.sqlite and b/sf_sale/models/feature.sqlite differ diff --git a/sf_sale/models/price.sqlite b/sf_sale/models/price.sqlite index 50faad92..e69de29b 100644 Binary files a/sf_sale/models/price.sqlite and b/sf_sale/models/price.sqlite differ diff --git a/sf_sale/models/process_time.db b/sf_sale/models/process_time.db index 0b48a3da..e69de29b 100644 Binary files a/sf_sale/models/process_time.db and b/sf_sale/models/process_time.db differ diff --git a/sf_sale/models/sale_order.py b/sf_sale/models/sale_order.py index ec994fed..93bf5c10 100644 --- a/sf_sale/models/sale_order.py +++ b/sf_sale/models/sale_order.py @@ -1,6 +1,7 @@ import datetime import base64 -from odoo import models, fields +from odoo import models, fields, api +from odoo.osv import expression class ReSaleOrder(models.Model): @@ -81,7 +82,16 @@ class RePurchaseOrder(models.Model): check_status = fields.Selection([('unchecked', '未审核'), ('checked', '已审核')], '审核状态', default='unchecked') - # 审核 - def action_check(self): - self.check_status = 'checked' +class ResPartnerToSale(models.Model): + _inherit = 'res.partner' + + @api.model + def _name_search(self, name, args=None, operator='ilike', limit=100, name_get_uid=None): + if self._context.get('is_customer'): + if self.env.user.has_group('sf_base.group_sale_director'): + domain = [('customer_rank', '=', 1)] + else: + domain = [('user_id', '=', self.env.user.id)] + return self._search(domain, limit=limit, access_rights_uid=name_get_uid) + return super()._name_search(name, args, operator, limit, name_get_uid) diff --git a/sf_sale/security/group_security.xml b/sf_sale/security/group_security.xml index f40225e1..5afd8196 100644 --- a/sf_sale/security/group_security.xml +++ b/sf_sale/security/group_security.xml @@ -11,7 +11,7 @@ - 销售总监 + 销售总监查看所有的订单 [(1,'=',1)] @@ -20,20 +20,30 @@ - - - - - - - - + + 销售总监查看所有客户 + + [(1,'=',1),('customer_rank','=',1)] + + + + + + + 销售经理查看自己的客户 + + ['|',('user_id','=',user.id),('create_uid', '=',user.id)] + + + + + 销售经理查看自己的订单 - ['|',('partner_id','=',user.partner_id.id),('create_uid', '=',user.id)] + [('user_id', '=',user.id)] @@ -60,7 +70,7 @@ - + 采购总监查看所有供应商 [(1,'=',1)] diff --git a/sf_sale/security/ir.model.access.csv b/sf_sale/security/ir.model.access.csv index c4900a5f..7e697a8f 100644 --- a/sf_sale/security/ir.model.access.csv +++ b/sf_sale/security/ir.model.access.csv @@ -8,6 +8,40 @@ access_sale_order_line_director,sale_order_line_director,model_sale_order_line,s access_crm_team_member_manager,crm_team_manager,sales_team.model_crm_team,sf_base.group_sale_director,1,1,1,0 access_crm_team_member_director,crm_team_member_director,sales_team.model_crm_team_member,sf_base.group_sale_director,1,1,1,0 access_res_users,res_users,base.model_res_users,sf_base.group_sale_director,1,1,1,0 +access_product_template_group_sale_salemanager,product_template_group_sale_salemanager,product.model_product_template,sf_base.group_sale_salemanager,1,0,0,0 +access_product_template_group_sale_director,product_template_group_sale_director,product.model_product_template,sf_base.group_sale_director,1,0,0,0 +access_product_template_group_purchase,product_template_group_purchase,product.model_product_template,sf_base.group_purchase,1,0,0,0 +access_product_template_group_purchase_director,product_template_group_purchase_director,product.model_product_template,sf_base.group_purchase_director,1,0,0,0 +access_stock_picking_group_sale_salemanager,stock_picking_group_sale_salemanager,stock.model_stock_picking,sf_base.group_sale_salemanager,1,0,0,0 +access_stock_picking_group_sale_director,stock_picking_group_sale_director,stock.model_stock_picking,sf_base.group_sale_director,1,0,0,0 +access_stock_picking_group_purchase,stock_picking_group_purchase,stock.model_stock_picking,sf_base.group_purchase,1,0,0,0 +access_stock_picking_group_purchase_director,stock_picking_group_purchase_director,stock.model_stock_picking,sf_base.group_purchase_director,1,0,0,0 +access_account_move_group_sale_salemanager,account_move_group_sale_salemanager,account.model_account_move,sf_base.group_sale_salemanager,1,0,0,0 +access_account_move_group_sale_director,account_move_group_sale_director,account.model_account_move,sf_base.group_sale_director,1,0,0,0 +access_resource_resource_group_sale_director,resource_resource_group_sale_director,resource.model_resource_resource,sf_base.group_sale_director,1,1,1,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_stock_move_group_purchase,stock_move_group_purchase,stock.model_stock_move,sf_base.group_purchase,1,0,0,0 +access_stock_move_group_purchase_director,stock_move_group_purchase_director,stock.model_stock_move,sf_base.group_purchase_director,1,0,0,0 + +access_uom_uom_group_sale_salemanager,uom_uom_group_sale_salemanager,uom.model_uom_uom,sf_base.group_sale_salemanager,1,0,0,0 +access_uom_uom_group_sale_director,uom_uom_group_sale_director,uom.model_uom_uom,sf_base.group_sale_director,1,1,1,0 +access_uom_uom_group_purchase,uom_uom_group_purchase,uom.model_uom_uom,sf_base.group_purchase,1,0,0,0 +access_uom_uom_group_purchase_director,uom_uom_group_purchase_director,uom.model_uom_uom,sf_base.group_purchase_director,1,0,0,0 + +access_uom_category_group_sale_salemanager,uom_category_group_sale_salemanager,uom.model_uom_category,sf_base.group_sale_salemanager,1,0,0,0 +access_uom_category_group_sale_director,uom_category_group_sale_director,uom.model_uom_category,sf_base.group_sale_director,1,1,1,0 +access_uom_category_group_purchase,uom_category_group_purchase,uom.model_uom_category,sf_base.group_purchase,1,0,0,0 +access_uom_category_group_purchase_director,uom_category_group_purchase_director,uom.model_uom_category,sf_base.group_purchase_director,1,0,0,0 + +access_sale_order_check_wizard_group_sale_salemanager,sale_order_check_wizard_group_sale_salemanager,model_sale_order_check_wizard,sf_base.group_sale_salemanager,1,1,1,0 +access_sale_order_check_wizard_group_sale_director,sale_order_check_wizard_group_sale_director,model_sale_order_check_wizard,sf_base.group_sale_director,1,1,1,0 + + + + + access_sale_order,sale_order,model_sale_order,sf_base.group_plan_dispatch,1,0,0,0 diff --git a/sf_sale/views/sale_order_view.xml b/sf_sale/views/sale_order_view.xml index 0abe7989..6df5d955 100644 --- a/sf_sale/views/sale_order_view.xml +++ b/sf_sale/views/sale_order_view.xml @@ -2,6 +2,25 @@ + + + + + + + + + + + + + + + + + + + sale.order.form.inherit.sf sale.order @@ -9,13 +28,11 @@ -