diff --git a/app/common/service/ApprovalRecordsService.php b/app/common/service/ApprovalRecordsService.php index 9853b9d..46ceb16 100644 --- a/app/common/service/ApprovalRecordsService.php +++ b/app/common/service/ApprovalRecordsService.php @@ -2,6 +2,8 @@ namespace app\common\service; +use app\common\model\User; +use app\common\model\UserGroupMembers; use app\common\validate\ApprovalRecordsValidate; use app\common\traits\crud\CrudServiceTrait; use app\common\model\ApprovalRecords; @@ -61,7 +63,26 @@ class ApprovalRecordsService // } $roles_id = array_intersect([1,5,6], $request->user->role_ids); if(count($roles_id) == 0){ - $config['where']['approver_id'] = $request->user->uid; + if(in_array(4, $request->user->role_ids)){ + $report = User::where('report_to',$request->user->uid)->pluck('id')->toArray(); + $report = array_merge($report, [$request->user->uid]); + $config['where']['approver_id'] = ['in',$report]; + } elseif (in_array(5, $request->user->role_ids)){ //内勤 + $userGroupMember = UserGroupMembers::where('user_id',$request->user->uid) + ->where('is_leader',1) + ->first(); + if($userGroupMember){ + $report = UserGroupMembers::where('user_id',$request->user->uid) + ->pluck('id') + ->toArray(); + $report = array_merge($report, [$request->user->uid]); + $config['where']['salesperson_id'] = ['in',$report]; + }else{ //内勤没有负责的组时 + $config['where']['salesperson_id'] = $request->user->uid; + } + } else { + $config['where']['approver_id'] = $request->user->uid; + } } $config['where']['status'] = 'pending'; $config['where']['instance.status'] = 'processing'; diff --git a/app/crm/service/StockOrdersService.php b/app/crm/service/StockOrdersService.php index cfd964a..449c182 100644 --- a/app/crm/service/StockOrdersService.php +++ b/app/crm/service/StockOrdersService.php @@ -3,6 +3,7 @@ namespace app\crm\service; use app\common\model\User; +use app\common\model\UserGroupMembers; use support\Request; use support\exception\BusinessException; @@ -35,9 +36,28 @@ class StockOrdersService extends \app\common\service\StockOrdersService $config['order']['id'] = 'desc'; - $roles_id = array_intersect([1,5,6], $request->user->role_ids); - if(count($roles_id) == 0){ - $config['where']['salesperson_id'] = $request->user->uid; + $roles_id = array_intersect([1,6], $request->user->role_ids); + if (count($roles_id) == 0){ + if(in_array(4, $request->user->role_ids)){ //业务主管 + $report = User::where('report_to',$request->user->uid)->pluck('id')->toArray(); + $report = array_merge($report, [$request->user->uid]); + $config['where']['salesperson_id'] = ['in',$report]; + } elseif (in_array(5, $request->user->role_ids)){ //内勤 + $userGroupMember = UserGroupMembers::where('user_id',$request->user->uid) + ->where('is_leader',1) + ->first(); + if($userGroupMember){ + $report = UserGroupMembers::where('user_id',$request->user->uid) + ->pluck('id') + ->toArray(); + $report = array_merge($report, [$request->user->uid]); + $config['where']['salesperson_id'] = ['in',$report]; + }else{ //内勤没有负责的组时 + $config['where']['salesperson_id'] = $request->user->uid; + } + } else { + $config['where']['salesperson_id'] = $request->user->uid; + } } break; case 'print':