db->table('partner_endorsement_request per') ->distinct() ->select(' per.id, per.client_id, per.client_policy_id, per.insurer_id, per.insurer_branch_id, per.policy_number, per.endorsement_no, per.endorsement_type, per.endorsement_description, per.created_at, per.updated_by, per.updated_at, per.is_active, per.created_by, per.manager_id, per.agent_id, per.status, i.name as insurer_name, i.short_name as insurer_short_name, c.client_name, c.short_name as client_short_name, ps.name as manager_name, pa.name as agent_name ') ->join('insurers as i', 'i.id = per.insurer_id', 'left') ->join('clients as c', 'c.id = per.client_id AND c.client_type = 2', 'left') ->join('partner_staff as ps', 'ps.id = per.manager_id AND ps.role_id = 1', 'left') ->join('partner_agent as pa', 'pa.id = per.agent_id', 'left'); if (!empty($status)) { $query->where('per.status', $status); } if (!empty($client_id)) { $query->where('per.client_id', $client_id); } if (!empty($insurers_id)) { $query->where('per.insurer_id', $insurers_id); } $query->orderBy('per.id', 'desc'); return $query->get()->getResultArray(); } }