EVOLUTION-NINJA
Edit File: Faculty_Model.php
<?php namespace App\Models\Admin; use CodeIgniter\Model; use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; class Faculty_Model extends Model { protected $table = 'faculty_registration'; protected $primaryKey = 'faculty_reg_id'; protected $allowedFields = ['delete_status']; public function getFacultiesDetails() { $builder = $this->db->table('faculty_registration A'); $builder->select('A.*, C.approval_status, C.mapping_id, C.return_status'); $builder->join('login B', 'B.login_id = A.login_id'); $builder->join('faculty_subject_mapping C', 'C.login_id = A.login_id'); $builder->where('A.delete_status', 'ACTIVE'); $builder->where('B.delete_status', 'ACTIVE'); $builder->where('C.delete_status', 'ACTIVE'); $builder->where('C.added_from', 'REGISTRATION'); $builder->where('B.verified_status', 'VERIFIED'); $builder->where('A.institution_id', 0); $query = $builder->get(); $result = $query->getResultArray(); $facultyDetails = []; foreach ($result as $val) { $data['faculty_reg_id'] = $val['faculty_reg_id']; $data['login_id'] = $val['login_id']; $data['fullname'] = $val['fullname']; $data['email'] = $val['email']; $data['phone'] = $val['phone']; $data['qualification'] = $val['qualification']; $data['created_at'] = date("d-m-Y H:i:s", strtotime($val['created_at'])); $data['approval_status'] = $val['approval_status']; $data['return_status'] = $val['return_status']; $data['mapping_id'] = $val['mapping_id']; if ($val['approval_status'] == 'APPROVED') { $retVal = ''; if ($val['return_status'] == 'NOT_RETURNED') { $retVal = '<b>APPROVED/</b><input type="button" value="Return" onclick="fun_return(' . $val['login_id'] . ',' . $val['mapping_id'] . ')" />'; } $data['approval_status'] = $retVal; } else { $retVal = ''; if ($val['return_status'] == 'NOT_RETURNED') { $retVal = '<input type="button" value="Approve" onclick="fun_approve(' . $val['login_id'] . ',' . $val['mapping_id'] . ')" /><b>/</b><input type="button" value="Return" onclick="fun_return(' . $val['login_id'] . ',' . $val['mapping_id'] . ')" />'; } else { $retVal = '<input type="button" value="Approve" onclick="fun_approve(' . $val['login_id'] . ',' . $val['mapping_id'] . ')" /><b>/ RETURNED</b>'; } $data['approval_status'] = $retVal; } array_push($facultyDetails, $data); } return $facultyDetails; } public function getSubDomains($id) { $builder = $this->db->table('faculty_subject_mapping'); $builder->select('faculty_available_timings.*, faculty_subject_mapping.*, sub_domains.sub_domain, domains.domain_name'); $builder->join('faculty_available_timings', 'faculty_available_timings.subject_mapping_id = faculty_subject_mapping.mapping_id'); $builder->join('sub_domains', 'sub_domains.sub_domain_id = faculty_available_timings.subject_id'); $builder->join('domains', 'domains.domain_id = sub_domains.domain_id'); $builder->where('faculty_subject_mapping.delete_status', 'ACTIVE'); $builder->where('faculty_available_timings.delete_status', 'ACTIVE'); $builder->where('faculty_subject_mapping.login_id', $id); $builder->where('faculty_available_timings.faculty_id', $id); $builder->where('faculty_subject_mapping.return_status', 'NOT_RETURNED'); $builder->where('faculty_available_timings.return_status', 'NOT_RETURNED'); $builder->groupBy('faculty_available_timings.subject_mapping_id'); $query = $builder->get(); $result = $query->getResult(); $res_array = []; foreach ($result as $val) { $sub_domain_id = json_decode($val->subject_id); foreach ($sub_domain_id as $sub_id) { $subDomainQuery = $this->db->table('sub_domains'); $subDomainQuery->select('*'); $subDomainQuery->join('domains', 'domains.domain_id = sub_domains.domain_id'); $subDomainQuery->where('sub_domains.delete_status', 'ACTIVE'); $subDomainQuery->where('domains.delete_status', 'ACTIVE'); $subDomainQuery->where('sub_domains.sub_domain_id', $sub_id); $subDomain = $subDomainQuery->get()->getRow(); $data = []; if (($val->added_from == 'REQUEST' && $val->approval_status == 'APPROVED') || ($val->added_from == 'REGISTRATION')) { if ($subDomain) { $data['sub_domain'] = $subDomain->sub_domain; $data['domain_name'] = $subDomain->domain_name; $data['batch_size'] = $val->batch_size; } else { $data['sub_domain'] = ''; $data['domain_name'] = ''; $data['batch_size'] = ''; } if ($val->available_type == 'timings') { $facultyQuery = $this->db->table('login'); $facultyQuery->select('*'); $facultyQuery->where('delete_status', 'ACTIVE'); $facultyQuery->where('login_id', $id); $faculty = $facultyQuery->get()->getRow(); $facultyTimingsQuery = $this->db->table('faculty_available_timings'); $facultyTimingsQuery->select('*'); $facultyTimingsQuery->where('delete_status', 'ACTIVE'); $facultyTimingsQuery->where('faculty_id', $id); $facultyTimingsQuery->where('return_status', 'NOT_RETURNED'); if ($faculty->approval_status == 'APPROVED') { $facultyTimingsQuery->where('approval_status', 'APPROVED'); } $facultyTimingsQuery->where('subject_mapping_id', $val->mapping_id); $time_result = $facultyTimingsQuery->get()->getResult(); $timings_array = []; foreach ($time_result as $time) { if ($time->available_type == 'timings') { $timings = $time->from_time . ' To ' . $time->to_time; array_push($timings_array, $timings); } } $full_day_array = []; $course_type = json_decode($val->course_type); foreach ($course_type as $course) { $full_day_time = ucfirst($course); array_push($full_day_array, $full_day_time); } $data['available_type'] = implode(', ', $full_day_array); $data['faculty_timings'] = implode(', ', $timings_array); } elseif ($val->available_type == 'full_day') { $full_day_array = []; $data['available_type'] = 'Fullday'; $time_result = json_decode($val->course_type); foreach ($time_result as $time) { $full_day_time = ucfirst($time); array_push($full_day_array, $full_day_time); } $data['faculty_timings'] = implode(', ', $full_day_array); } else { $full_day_array = []; $data['available_type'] = 'Recorded'; $time_result = json_decode($val->course_type); foreach ($time_result as $time) { $full_day_time = ucfirst($time); array_push($full_day_array, $full_day_time); } $data['faculty_timings'] = implode(', ', $full_day_array); } array_push($res_array, $data); } } } return $res_array; } public function getWhereResult($table, $where) { $builder = $this->db->table($table); $builder->select('*'); $builder->where($where); $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); $query = $builder->get(); return $query->getRow(); } //return // public function updateData($where, $table, $data) // { // // Update data in your table based on the provided conditions // return $this->db->table($this->$table)->where($where)->update($data); // } public function updateData($where, $table, $data) { // Update data in your table based on the provided conditions return $this->db->table($table)->where($where)->update($data); } public function insertData($table, $data) { // Insert data into your table return $this->db->table($this->table)->insert($data); } // public function getWhereRow($table,$where) // { // // Retrieve a single row based on the provided conditions // return $this->db->table('faculty_registration')->where($where)->get()->getRow(); // } public function getWhereRow($table, $where) { return $this->db->table($table) ->select('*') ->where($where) ->get() ->getRow(); } protected function transformDataToArray($data, string $type): array { // Implement your logic to transform data to an array if necessary if ($type === 'update') { // Example: Transform $data to an array if (!is_array($data)) { $data = ['update_column' => $data]; } } return $data; } public function getWhereResultOrderByAsc($table, $where, $orderBy) { $builder = $this->db->table($table); $builder->select('*'); $builder->where($where); $builder->orderBy($orderBy, 'ASC'); $query = $builder->get(); return $query->getResult(); } // public function getRequestList($user_type_id, $login_id) // { // $builder = $this->db->table('faculty_subject_mapping A'); // $builder->select('A.*, B.domain_name, C.username'); // $builder->join('domains B', 'A.domain_id = B.domain_id'); // $builder->join('login C', 'C.login_id = A.login_id'); // $builder->where('A.delete_status', 'ACTIVE'); // $builder->where('B.delete_status', 'ACTIVE'); // $builder->where('C.delete_status', 'ACTIVE'); // $builder->where('A.added_from', 'REQUEST'); // $builder->where('A.mapping_institution_id', '0'); // $builder->orderBy('A.created_at', 'DESC'); // if ($user_type_id == 2) { // $builder->where('A.login_id', $login_id); // } // $query = $builder->get(); // $result = $query->getResultArray(); // $array = []; // // foreach ($result as $value) { // // // Rest of your data processing logic... // // // Modify $data accordingly and push it to the $array. // // } public function getRequestList($user_type_id, $login_id) { $builder = $this->db->table('faculty_subject_mapping A'); $builder->select('A.*, B.domain_name, C.username'); $builder->join('domains B', 'A.domain_id = B.domain_id'); $builder->join('login C', 'C.login_id = A.login_id'); $builder->where('A.delete_status', 'ACTIVE'); $builder->where('B.delete_status', 'ACTIVE'); $builder->where('C.delete_status', 'ACTIVE'); $builder->where('A.added_from', 'REQUEST'); $builder->where('A.mapping_institution_id', '0'); $builder->orderBy('A.created_at', 'DESC'); if ($user_type_id == 2) { $builder->where('A.login_id', $login_id); } $query = $builder->get(); $result = $query->getResultArray(); $array = []; foreach ($result as $value) { $timing_array = []; $builder = $this->db->table('faculty_available_timings A'); $builder->select('*'); $builder->where('A.delete_status', 'ACTIVE'); $builder->where('A.subject_mapping_id', $value['mapping_id']); $builder->where('A.faculty_id', $value['login_id']); $builder->orderBy('A.created_at', 'DESC'); $query = $builder->get(); $timings = $query->getResultArray(); $time_result = $query->getRow(); $data = []; if ($time_result->available_type == 'full_day') { $data['available_type'] = 'Fullday'; } elseif ($time_result->available_type == 'timings') { $data['available_type'] = 'Timings'; } else { $data['available_type'] = ''; } $timings_array = []; if ($time_result->available_type != '') { if ($time_result->available_type == 'full_day') { $course_type = json_decode($time_result->course_type); if (count($course_type) == 2) { $data['timings'] = 'Fullday'; $data['available_type'] = 'Live, Recorded'; } else { foreach ($course_type as $type) { if ($type == 'live') { $data['timings'] = 'Fullday'; $data['available_type'] = 'Live'; } else { $data['timings'] = 'Fullday'; $data['available_type'] = 'Recorded'; } } } } else { foreach ($timings as $vals) { $time = $vals['from_time'] . ' To ' . $vals['to_time']; $timings_array[] = $time; } $course_type = json_decode($time_result->course_type); if (count($course_type) == 2) { $data['available_type'] = 'Live, Recorded'; } else { $data['available_type'] = 'Live'; } $data['timings'] = implode(', ', $timings_array); } } else { $data['available_type'] = 'Recorded'; $data['timings'] = ''; } $sub_domain_ids = json_decode($value['sub_domain_id']); $sub_domain_array = []; $builder = $this->db->table('sub_domains B'); $builder->select('B.sub_domain'); $builder->where('B.delete_status', 'ACTIVE'); $builder->whereIn('B.sub_domain_id', $sub_domain_ids); $query = $builder->get(); $res = $query->getResultArray(); foreach ($res as $val) { $sub_domain_array[] = $val['sub_domain']; } $data['sub_domains'] = implode(', ', $sub_domain_array); $data['comments'] = $value['comments']; $data['batch_size'] = $value['batch_size']; $data['domain_name'] = $value['domain_name']; $data['domain_id'] = $value['domain_id']; $data['mapping_id'] = $value['mapping_id']; $data['login_id'] = $value['login_id']; $data['user_name'] = $value['username']; $data['created_at'] = date("d-m-Y H:i:s", strtotime($value['created_at'])); if ($value['approval_status'] == 'APPROVED') { $retVal = ''; if ($value['return_status'] == 'NOT_RETURNED') { $retVal = '<b>APPROVED/</b><input type="button" value="Return" onclick="fun_return(' . $value['login_id'] . ',' . $value['mapping_id'] . ')"; />'; } $data['approval_status'] = $retVal; } else { $retVal = ''; if ($value['return_status'] == 'NOT_RETURNED') { $retVal = '<input type="button" value="Approve" onclick="fun_approve(' . $value['login_id'] . ',' . $value['mapping_id'] . ')"; /><b>/</b><input type="button" value="Return" onclick="fun_return(' . $value['login_id'] . ',' . $value['mapping_id'] . ')"; />'; } else { $retVal = '<input type="button" value="Approve" onclick="fun_approve(' . $value['login_id'] . ',' . $value['mapping_id'] . ')"; /><b>/ RETURNED</b>'; } $data['approval_status'] = $retVal; } $retdel = '<a data-toggle="tooltip" title="Delete" class="delete" onclick="fun_del(' . $value['mapping_id'] . ', ' . $value['login_id'] . ')"; href="javascript:void(0);"><span class="glyphicon glyphicon-trash"></span></a>'; $data['delete'] = $retdel; $array[] = $data; } return $array; } public function getSubjects($mappingId) { $builder = $this->db->table('faculty_subject_mapping'); $builder->select('*'); $builder->where('mapping_id', $mappingId); $builder->where('delete_status', 'ACTIVE'); $res = $builder->get()->getRow(); if ($res) { $subDomainIds = json_decode($res->sub_domain_id); $builder = $this->db->table('sub_domains'); $builder->select('*'); $builder->whereIn('sub_domain_id', $subDomainIds); $builder->where('delete_status', 'ACTIVE'); return $builder->get()->getResult(); } return []; } public function get_subjects($mapping_id) { $this->select('*'); $this->from('faculty_subject_mapping AS fsm'); // Add table alias $this->where('fsm.mapping_id', $mapping_id); // Use table alias $this->where('fsm.delete_status', 'ACTIVE'); // Use table alias $res = $this->first(); if ($res) { // ... rest of your code ... } return []; } public function getWhereAllFacultyList($domain_id, $sub_domain_id) { $builder = $this->db->table('faculty_subject_mapping A'); $builder->select('*'); $builder->join('faculty_registration B', 'B.faculty_reg_id = A.faculty_reg_id'); $builder->join('faculty_available_timings C', 'C.faculty_id = B.login_id'); $builder->where('A.domain_id', $domain_id); // Check if $sub_domain_id is not null before using it in the like condition if ($sub_domain_id !== null) { $builder->like('A.sub_domain_id', $sub_domain_id); } $builder->where('A.delete_status', 'ACTIVE'); $builder->where('A.approval_status', 'APPROVED'); $builder->where('B.delete_status', 'ACTIVE'); $builder->where('C.approval_status', 'APPROVED'); $builder->where('C.delete_status', 'ACTIVE'); $builder->groupBy('A.faculty_reg_id'); $query = $builder->get(); $res = $query->getResult(); $faculty_array = array(); foreach ($res as $value) { $data['faculty_id'] = $value->login_id; $data['faculty_name'] = $value->fullname; array_push($faculty_array, $data); } return $faculty_array; } public function approvedSubjects($subDomainIds) { return $this->whereIn('sub_domain_id', $subDomainIds) ->where('delete_status', 'ACTIVE') ->findAll(); } // protected $table = 'user_course_mapping'; // Update with your actual table name public function getNotEnrolledFacTimings($facId, $subDomainId, $domainId) { $subDomainIds = json_encode($subDomainId); $facultyId = json_encode($facId); $builder = $this->db->table('user_course_mapping'); $builder->select('*'); if (!is_null($facultyId)) { $builder->like('faculty_ids', $facultyId); } if (!is_null($subDomainIds)) { $builder->like('sub_domain_ids', $subDomainIds); } $builder->where('delete_status', 'ACTIVE'); $query = $builder->get(); $res = $query->getResult(); $array = []; if (!empty($res)) { foreach ($res as $result) { $userId = $result->user_id; $facultyIds = json_decode($result->faculty_ids); $facultyFromTime = trim($result->from_time, '["'); $facFromTime = trim($facultyFromTime, '"]'); $facultyToTime = trim($result->to_time, '["'); $facToTime = trim($facultyToTime, '"]'); $builder = $this->db->table('faculty_subject_mapping A'); $builder->select('*'); $builder->join('faculty_available_timings B', 'B.faculty_id = A.login_id AND B.subject_id = A.sub_domain_id'); $builder->where('A.domain_id', $domainId); $builder->like('B.course_type', 'live'); $builder->whereIn('B.faculty_id', $facultyIds); $builder->like('B.subject_id', $subDomainIds); $builder->where('B.from_time !=', $facFromTime); $builder->where('B.to_time !=', $facToTime); $builder->where('A.approval_status', 'APPROVED'); $builder->where('B.approval_status', 'APPROVED'); $builder->groupBy('B.from_time'); $builder->groupBy('B.to_time'); $builder->where('A.delete_status', 'ACTIVE'); $builder->where('B.delete_status', 'ACTIVE'); $query = $builder->get(); $res1 = $query->getResult(); foreach ($res1 as $result1) { $data['available_type'] = $result1->available_type; $data['from_time'] = $result1->from_time; $data['to_time'] = $result1->to_time; $data['from_to_time'] = $data['from_time'] . ' - ' . $data['to_time']; $array[] = $data; } } } else { $builder = $this->db->table('faculty_available_timings'); $builder->select('*'); $builder->where('faculty_id', $facId); if (!is_null($subDomainId)) { $builder->like('subject_id', $subDomainId); } $builder->where('approval_status', 'APPROVED'); $builder->where('delete_status', 'ACTIVE'); $query = $builder->get(); $res = $query->getResult(); foreach ($res as $result1) { $data['available_type'] = $result1->available_type; $data['from_time'] = $result1->from_time; $data['to_time'] = $result1->to_time; $data['from_to_time'] = $data['from_time'] . ' - ' . $data['to_time']; $array[] = $data; } } return $array; } // public function getTrainingPlanDuration($faculty_id, $sub_domain_id, $domain_id) // { // $query = $this->select('session_time') // ->where('delete_status', 'ACTIVE') // ->where('approval_status', 'APPROVED') // ->where('domain_id', $domain_id) // ->where('sub_domain_id', $sub_domain_id) // ->where('created_by', $faculty_id) // ->findAll(); // $minutes = 0; // foreach ($query as $row) { // list($hour, $minute) = explode(':', $row['session_time']); // $minutes += $hour * 60; // $minutes += $minute; // } // $hours = floor($minutes / 60); // $minutes -= $hours * 60; // $totalDuration = sprintf('%02d:%02d', $hours, $minutes); // return $totalDuration; // } public function getTrainingPlanDuration($facultyId, $subDomainId, $domainId) { $table = 'training_plans'; // Include the table name here $builder = $this->builder($table); $builder->select('*'); $builder->where('delete_status', 'ACTIVE'); $builder->where('approval_status', 'APPROVED'); $builder->where('domain_id', $domainId); $builder->where('sub_domain_id', $subDomainId); $builder->where('created_by', $facultyId); $query = $builder->get(); $results = $query->getResult(); $array = []; foreach ($results as $value) { $sessionDuration = $value->session_time; array_push($array, $sessionDuration); } $minutes = 0; foreach ($array as $time) { list($hour, $minute) = explode(':', $time); $minutes += $hour * 60; $minutes += $minute; } $hours = floor($minutes / 60); $minutes -= $hours * 60; $totalDuration = sprintf('%02d:%02d', $hours, $minutes); return $totalDuration; } // public function get_all_batch_list() // { // $builder = $this->db->table('batches A'); // $builder->select('A.*, B.domain_name'); // $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.institution_id', 0); // $query = $builder->get(); // $result = $query->getResultArray(); // $batchList = []; // foreach ($result as $row) { // $batchData = [ // 'batch_id' => $row['batch_id'], // 'domain_name' => $row['domain_name'], // 'sub_domains' => '', // You'll populate this later // 'faculty_name' => '', // You'll populate this later // 'batch_size' => $row['batch_size'], // 'from_time' => $row['from_time'], // 'batch_name' => $row['batch_name'], // 'course_type' => $row['course_type'], // 'batch_type' => $row['batch_type'], // ]; // // Fetch sub_domain using Query Builder // $subDomainQuery = $this->db->table('sub_domains') // ->select('sub_domain') // ->where('sub_domain_id', $row['sub_domain_id']) // ->where('delete_status', 'ACTIVE') // ->get(); // $subDomainRow = $subDomainQuery->getRow(); // if ($subDomainRow) { // $batchData['sub_domains'] = $subDomainRow->sub_domain; // } // // Fetch faculty_name using Query Builder // if (!empty($row['faculty_id'])) { // $facultyQuery = $this->db->table('faculty_registration') // ->select('fullname') // ->where('login_id', $row['faculty_id']) // ->where('delete_status', 'ACTIVE') // ->get(); // $facultyRow = $facultyQuery->getRow(); // if ($facultyRow) { // $batchData['faculty_name'] = $facultyRow->fullname; // } // } // $batchList[] = $batchData; // } // return $batchList; // } public function get_all_batch_list() { $builder = $this->db->table('batches A'); $builder->select('A.*, B.*'); $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.institution_id', 0); $query = $builder->get(); $result = $query->getResultArray(); $batchList = []; foreach ($result as $val) { $data['batch_id'] = $val['batch_id']; $data['domain_name'] = $val['domain_name']; $sql = "SELECT sub_domain FROM sub_domains WHERE sub_domain_id = ? AND delete_status = 'ACTIVE'"; $domainResult = $this->db->query($sql, [$val['sub_domain_id']])->getRow(); $data['sub_domains'] = $domainResult->sub_domain ?? ''; if (!empty($val['faculty_id'])) { $sql = "SELECT fullname FROM faculty_registration WHERE login_id = ? AND delete_status = 'ACTIVE'"; $facultyResult = $this->db->query($sql, [$val['faculty_id']])->getRow(); $data['faculty_name'] = $facultyResult->fullname ?? ''; } else { $data['faculty_name'] = ''; } $data['batch_size'] = $val['batch_size']; $data['from_time'] = $val['from_time']; $data['batch_name'] = $val['batch_name']; $data['course_type'] = $val['course_type']; $data['batch_type'] = $val['batch_type']; switch ($val['batch_status']) { case 'IN_PROGRESS': $data['batch_status'] = 'IN PROGRESS'; break; case 'COMPLETED': $data['batch_status'] = 'COMPLETED'; break; default: $data['batch_status'] = 'NOT YET STARTED'; break; } $data['batch_from_date'] = date('Y-m-d', strtotime($val['batch_from_date'])); $data['batch_to_date'] = date('Y-m-d', strtotime($val['batch_to_date'])); if (!empty($val['batch_from_date']) && !empty($val['batch_to_date'])) { $data['batch_from_to_date'] = $val['batch_from_date'] . ' to ' . $val['batch_to_date']; } else { $data['batch_from_to_date'] = ''; } $data['batch_duration'] = $val['batch_duration']; $batchList[] = $data; } return $batchList; } public function deleteFaculty($facultyId) { // Assuming you have properly configured the PHPMailer library $email = new PHPMailer(); $email->isSMTP(); $email->Host = "smtp-relay.gmail.com"; $email->SMTPAuth = true; $email->Username = "healthcare@medusyspty.com"; $email->Password = "Password@1236"; $email->SMTPSecure = "tls"; $email->Port = 587; $email->isHTML(true); $email->CharSet = "UTF-8"; $email->setFrom("healthcare@medusyspty.com", "Nparrots"); $table = 'login'; $where = ['login_id' => $facultyId]; $data = ['delete_status' => 'INACTIVE']; $result = $this->updateData($where, $table, $data); if ($result) { $faculty_table = 'faculty_registration'; $faculty_result = $this->updateData($where, $faculty_table, $data); if ($faculty_result) { $timings_table = 'faculty_available_timings'; $where_timing = ['faculty_id' => $facultyId]; $this->updateData($where_timing, $timings_table, $data); $subject_table = 'faculty_subject_mapping'; $where_faculty = ['login_id' => $facultyId]; $delete_result = $this->updateData($where_faculty, $subject_table, $data); $email_result = $this->getWhereRow($table, $where); if ($delete_result && $email_result) { $full_name = $email_result->username; $email_content = '<body style="background:#f3f3f3;">'; // ... (your email content code) ... $email->addAddress($email_result->email); $email->Subject = "Faculty Account Deactivate"; $email->Body = $email_content; if ($email->send()) { return true; } } } } return false; } public function getApprovalSubjects($mappingId, $loginId) { $builder = $this->db->table('faculty_subject_mapping A'); $builder->select('*'); $builder->where('A.mapping_id', $mappingId); $builder->where('A.login_id', $loginId); $builder->join('faculty_available_timings B', 'B.subject_mapping_id = A.mapping_id'); $builder->where('B.faculty_id', $loginId); $builder->where('A.delete_status', 'ACTIVE'); $builder->where('B.delete_status', 'ACTIVE'); $query = $builder->get(); $data = []; if ($query->getNumRows() > 0) { $res = $query->getRow(); $courseType = json_decode($res->course_type); if (!empty($res->available_type)) { if ($res->available_type == 'full_day') { $data['course_type'] = 'fullday'; $data['timings'] = $res; } elseif ($res->available_type == 'timings') { $data['timings'] = $query->getResult(); $courseType = $query->getRow()->course_type; $data['course_type'] = $courseType; } } else { $data['course_type'] = 'recorded'; $data['timings'] = $res; } $subDomainId = json_decode($res->sub_domain_id); $builder = $this->db->table('sub_domains B'); $builder->select('*'); $builder->whereIn('B.sub_domain_id', (array) $subDomainId); // Ensure $subDomainId is cast to an array $builder->where('B.delete_status', 'ACTIVE'); $query = $builder->get(); $data['result'] = $query->getResult(); } else { $data['timings'] = ''; $data['result'] = ''; } return $data; } }