EVOLUTION-NINJA
Edit File: InstructorModel.php
<?php namespace App\Models; use CodeIgniter\Model; class instructorModel extends Model { protected $table = 'faculty_registration'; protected $allowedFields = [ 'login_id', 'domain_id', 'sub_domain_id', 'fullname', 'email', 'phone', 'qualification', 'teaching_experience', 'current_working', 'online_teaching_experience', 'location', 'resume', 'batch_size', ]; public function getWhereRow($login_table, $where_email) { return $this->db->table($login_table) ->select('*') ->where($where_email) ->get() ->getRow(); } public function getWhereRow1($login_table, $where) { return $this->db->table($login_table) ->select('*') ->where($where) ->get() ->getRow(); } public function update2($whereId, $loginTable, $updateData) { $builder = $this->db->table($loginTable); $builder->where($whereId); $result = $builder->update($updateData); return $result; } public function get_domain_courses() { $query = $this->db->table('courses A') ->select('*') ->join('domains B', 'B.domain_id = A.domain_id') ->where('A.delete_status', 'ACTIVE') ->where('B.delete_status', 'ACTIVE') ->where('A.user_type_id', '1') ->where('B.user_type_id', '1') ->groupBy('A.domain_id') ->get(); $result = $query->getResult(); $res_array = []; foreach ($result as $values) { $sub_domain_array = []; $sub_domain_ids = []; $query = $this->db->table('courses A') ->select('*') ->where('A.domain_id', $values->domain_id) ->where('A.delete_status', 'ACTIVE') ->where('A.user_type_id', '1') ->get(); $courses_result = $query->getResult(); foreach ($courses_result as $val) { $sub_domain_ids = array_merge($sub_domain_ids, json_decode($val->sub_domain_id)); } $sub_domain_ids = array_unique($sub_domain_ids); $query = $this->db->table('sub_domains A') ->select('A.sub_domain_id') ->whereIn('A.sub_domain_id', $sub_domain_ids) ->where('A.delete_status', 'ACTIVE') ->where('A.user_type_id', '1'); $query = $query->distinct()->get(); $sub_domains_result = $query->getResult(); foreach ($sub_domains_result as $sub_domain) { $sub_domain_array[] = $sub_domain; } $data = [ 'sub_domains' => $sub_domain_array, 'domains' => $values ]; $res_array[] = $data; } return $res_array; } public function get_user_signup_details($login_id) { $builder = $this->db->table('login A'); $builder->select('*'); $builder->join('user_registrations B', 'B.login_id = A.login_id'); $builder->where('A.delete_status', 'ACTIVE'); $builder->where('B.delete_status', 'ACTIVE'); $builder->where('A.verified_status', 'VERIFIED'); $builder->where('A.login_id', $login_id); $query = $builder->get(); return $query->getRow(); } public function get_where_row($where, $table) { return $this->db->table($table) ->select('*') ->where($where) ->get() ->getRow(); } public function get_whererow($table, $where) { return $this->db->table($table) ->select('*') ->where($where) ->get() ->getRow(); } public function getWhereResultOrderByAsc($subdomain_table, $where_subdomain, $order_by) { $builder = $this->db->table($subdomain_table); $builder->where($where_subdomain); $builder->orderBy($order_by, 'ASC'); return $builder->get()->getResult(); } public function insert1($loginTable, $loginData) { $db = db_connect(); $db->table($loginTable)->insert($loginData); return $db->insertID(); } public function insert2($domain_table, $damain_data) { $db = db_connect(); $db->table($domain_table)->insert($damain_data); return $db->insertID(); } public function insert3($sub_domain_table, $sub_damain_data) { $db = db_connect(); $db->table($sub_domain_table)->insert($sub_damain_data); return $db->insertID(); } public function insert4($subDomainTable, $subDomainData) { $db = db_connect(); $db->table($subDomainTable)->insert($subDomainData); return $db->insertID(); } public function insert5($faculty_table, $faculty_data) { $db = db_connect(); $db->table($faculty_table)->insert($faculty_data); return $db->insertID(); } public function insert6($maping_table, $maping_data) { $db = db_connect(); $db->table($maping_table)->insert($maping_data); return $db->insertID(); } public function insert7($timing_table, $timing_data) { $db = db_connect(); $db->table($timing_table)->insert($timing_data); return $db->insertID(); } public function insert8($notification_table, $notification_data) { $db = db_connect(); $db->table($notification_table)->insert($notification_data); return $db->insertID(); } public function getWhereResult($table, $where) { $builder = $this->db->table($table); $builder->select('*'); $builder->where($where); $query = $builder->get(); return $query->getResult(); } public function update1($whereId, $loginTable, $updateId) { $builder = $this->db->table($loginTable); $builder->where($whereId); $result = $builder->update($updateId); return $result; } public function approved_subjects($sub_domain_id) { $db = \Config\Database::connect(); $builder = $db->table('sub_domains A'); $builder->select('*'); $builder->whereIn('A.sub_domain_id', $sub_domain_id); $builder->where('A.delete_status', 'ACTIVE'); $query = $builder->get(); return $query->getResult(); } public function getFacultyDetails($id) { $builder = $this->db->table('faculty_registration A'); $builder->select('A.*, B.domain_name, B.delete_status as domain_delete_status, C.*'); $builder->join('domains B', 'A.domain_id = B.domain_id', 'left'); $builder->join('login C', 'C.login_id = A.login_id'); $builder->where('A.delete_status', 'ACTIVE'); $builder->where('C.delete_status', 'ACTIVE'); $builder->where('A.login_id', $id); return $builder->get()->getRow(); } public function getSubFacultyDomains($id) { $builder = $this->db->table('faculty_subject_mapping A'); $builder->select('*'); $builder->join('faculty_available_timings B', 'B.subject_mapping_id = A.mapping_id'); $builder->where('A.delete_status', 'ACTIVE'); $builder->where('B.delete_status', 'ACTIVE'); $builder->where('A.login_id', $id); $builder->where('B.faculty_id', $id); $builder->where('A.return_status', 'NOT_RETURNED'); $builder->where('B.return_status', 'NOT_RETURNED'); $builder->groupBy('B.subject_mapping_id'); $query = $builder->get(); $result = $query->getResult(); $resArray = []; foreach ($result as $val) { $subDomainId = json_decode($val->subject_id, true); // Decode JSON into an associative array // Check if decoding was successful and $subDomainId is an array if (is_array($subDomainId)) { foreach ($subDomainId as $subId) { $builder = $this->db->table('sub_domains A'); $builder->select('*'); $builder->join('domains B', 'B.domain_id = A.domain_id'); $builder->where('A.delete_status', 'ACTIVE'); $builder->where('B.delete_status', 'ACTIVE'); $builder->where('A.sub_domain_id', $subId); $subQuery = $builder->get(); $subDomain = $subQuery->getRow(); if (($val->added_from == 'REQUEST' && $val->approval_status == 'APPROVED') || ($val->added_from == 'REGISTRATION')) { $data['sub_domain'] = $subDomain->sub_domain; $data['domain_name'] = $subDomain->domain_name; $data['batch_size'] = $val->batch_size; if ($val->available_type == 'timings') { $builder = $this->db->table('faculty_available_timings A'); $builder->select('*'); $builder->where('A.delete_status', 'ACTIVE'); $builder->where('A.faculty_id', $id); $builder->where('A.return_status', 'NOT_RETURNED'); $builder->where('A.approval_status', 'APPROVED'); $builder->where('A.subject_mapping_id', $val->mapping_id); $timeQuery = $builder->get(); $timeResult = $timeQuery->getResult(); $timingsArray = []; foreach ($timeResult as $time) { if ($time->available_type == 'timings') { $timings = $time->from_time . ' To ' . $time->to_time; array_push($timingsArray, $timings); } } $fullDayArray = []; $courseType = json_decode($val->course_type); foreach ($courseType as $course) { $fullDayTime = ucfirst($course); array_push($fullDayArray, $fullDayTime); } $data['available_type'] = implode(', ', $fullDayArray); $data['faculty_timings'] = implode(', ', $timingsArray); } elseif ($val->available_type == 'full_day') { $fullDayArray = []; $data['available_type'] = 'Fullday'; $timeResult = json_decode($val->course_type); foreach ($timeResult as $time) { $fullDayTime = ucfirst($time); array_push($fullDayArray, $fullDayTime); } $data['faculty_timings'] = implode(', ', $fullDayArray); } else { $fullDayArray = []; $data['available_type'] = 'Recorded'; $timeResult = json_decode($val->course_type); foreach ($timeResult as $time) { $fullDayTime = ucfirst($time); array_push($fullDayArray, $fullDayTime); } $data['faculty_timings'] = implode(', ', $fullDayArray); } $data['sub_domain'] = $subDomain->sub_domain; $data['sub_domain'] = $subDomain->sub_domain; array_push($resArray, $data); } } } else { // Handle the case where decoding failed // You may want to log an error or take appropriate action // For now, let's skip to the next iteration continue; } } return $resArray; } }