GWM : staffListForEnquiryAssignDropdown changes

This commit is contained in:
Gowtham M 2025-12-04 12:05:53 +05:30
parent 50ef5d609a
commit fcd84c791a

View File

@ -8,11 +8,13 @@ use App\Models\ManagerIncentiveFileModel;
class StaffController extends ResourceController
{
protected $db;
protected $StaffModel;
protected $ManagerIncentiveFileModel;
public function __construct()
{
$this->db = \Config\Database::connect();
$this->StaffModel = new StaffModel();
$this->ManagerIncentiveFileModel = new ManagerIncentiveFileModel();
}
@ -60,36 +62,92 @@ class StaffController extends ResourceController
if(!empty($manager_id))
{
$staffData = $this->StaffModel->select('partner_staff.id, partner_staff.name , R.role')
->join('partner_role_master R', 'R.id = partner_staff.role_id', 'left')
->where('partner_staff.manager_id' , $manager_id )
->where('partner_staff.role_id' , 3 )
->where('partner_staff.is_active' , 1 )
->findAll();
$managerData = $this->StaffModel->select('partner_staff.id, partner_staff.name , R.role')
->join('partner_role_master R', 'R.id = partner_staff.role_id', 'left')
->where('partner_staff.id', $manager_id )
->where('partner_staff.is_active' , 1 )
->first();
$data = array_values(array_unique(array_merge($staffData, [$managerData]), SORT_REGULAR));
$staffData = $this->db->table('partner_staff ps')
->select("
ps.id,
ps.name,
R.role,
-- today's assigned count
SUM(CASE WHEN DATE(pe.created_on) = CURDATE() THEN 1 ELSE 0 END) AS today_assigned,
-- not completed today
SUM(CASE WHEN pe.enquiry_status != 'Completed'
AND DATE(pe.created_on) = CURDATE()
THEN 1 ELSE 0 END) AS total_pending
")
->join('partner_role_master R', 'R.id = ps.role_id', 'left')
->join('partner_enquiry pe', 'pe.assigned_to = ps.id AND pe.is_active = 1', 'left')
->where('ps.manager_id', $manager_id)
->groupStart()
->where('ps.role_id', 3)
->orWhere('ps.id', $manager_id)
->groupEnd()
->where('ps.is_active', 1)
->groupBy('ps.id')
->orderBy('ps.name', 'ASC')
->get()
->getResultArray();
// $staffData = $this->StaffModel->select('partner_staff.id, partner_staff.name , R.role')
// ->join('partner_role_master R', 'R.id = partner_staff.role_id', 'left')
// ->where('partner_staff.manager_id' , $manager_id )
// ->where('partner_staff.role_id' , 3 )
// ->where('partner_staff.is_active' , 1 )
// ->findAll();
// $managerData = $this->StaffModel->select('partner_staff.id, partner_staff.name , R.role')
// ->join('partner_role_master R', 'R.id = partner_staff.role_id', 'left')
// ->where('partner_staff.id', $manager_id )
// ->where('partner_staff.is_active' , 1 )
// ->first();
// $data = array_values(array_unique(array_merge($staffData, [$managerData]), SORT_REGULAR));
}else if(!empty($handler_id)){
$staffData = $this->StaffModel->select('partner_staff.id, partner_staff.name , R.role')
->join('partner_role_master R', 'R.id = partner_staff.role_id', 'left')
->where("JSON_CONTAINS(partner_staff.handler_id, '\"$handler_id\"')")
->where('partner_staff.role_id' , 3 )
->where('partner_staff.is_active' , 1 )
->findAll();
$handlerData = $this->StaffModel->select('partner_staff.id, partner_staff.name , R.role')
->join('partner_role_master R', 'R.id = partner_staff.role_id', 'left')
->where('partner_staff.id', $handler_id )
->where('partner_staff.is_active' , 1 )
->first();
$data = array_values(array_unique(array_merge($staffData, [$handlerData]), SORT_REGULAR));
$staffData = $this->db->table('partner_staff ps')
->select("
ps.id,
ps.name,
R.role,
-- today's assigned count
SUM(CASE WHEN DATE(pe.created_on) = CURDATE() THEN 1 ELSE 0 END) AS today_assigned,
-- not completed today
SUM(CASE WHEN pe.enquiry_status != 'Completed'
AND DATE(pe.created_on) = CURDATE()
THEN 1 ELSE 0 END) AS total_pending
")
->join('partner_role_master R', 'R.id = ps.role_id', 'left')
->join('partner_enquiry pe', 'pe.assigned_to = ps.id AND pe.is_active = 1', 'left')
->where("JSON_CONTAINS(ps.handler_id, '\"$handler_id\"')")
->groupStart()
->where('ps.role_id', 3)
->orWhere('ps.id', $handler_id)
->groupEnd()
->where('ps.is_active', 1)
->groupBy('ps.id')
->orderBy('ps.name', 'ASC')
->get()
->getResultArray();
// $staffData = $this->StaffModel->select('partner_staff.id, partner_staff.name , R.role')
// ->join('partner_role_master R', 'R.id = partner_staff.role_id', 'left')
// ->where("JSON_CONTAINS(partner_staff.handler_id, '\"$handler_id\"')")
// ->where('partner_staff.role_id' , 3 )
// ->where('partner_staff.is_active' , 1 )
// ->findAll();
// $handlerData = $this->StaffModel->select('partner_staff.id, partner_staff.name , R.role')
// ->join('partner_role_master R', 'R.id = partner_staff.role_id', 'left')
// ->where('partner_staff.id', $handler_id )
// ->where('partner_staff.is_active' , 1 )
// ->first();
// $data = array_values(array_unique(array_merge($staffData, [$handlerData]), SORT_REGULAR));
}
return $this->respond(['status' => 'success', 'code' => 200, 'data' => $data], 200);
return $this->respond(['status' => 'success', 'code' => 200, 'data' => $staffData], 200);
} catch (\Exception $e) {
return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $e->getMessage()], 500);