load->database(); $this->load->library('Ciqrcode'); $this->load->helper('common_helper'); date_default_timezone_set("Asia/Kolkata"); $this->nepaliDateObject = new NepaliDate(); $this->nepali_current_date = cuurentNepaliDate($this->nepaliDateObject); } public function login($uname, $pwd) { $pwd = md5($pwd); $sql = $this->db->query("SELECT * FROM students WHERE studentId='$uname' AND password='$pwd'"); // echo $this->db->last_query($sql); if ($sql->num_rows() > 0) { if ($sql->row()->is_active == 'yes') { return $sql->row_object(); } else { return false; } } else { return false; } } public function get_studentMenus() { $this->db->select('*'); $this->db->from('student_menu'); $this->db->where('is_active', 'yes'); $this->db->order_by('id', 'ASC'); $query = $this->db->get(); return $query->result_array(); } public function get_courses() { $this->db->select('*'); $this->db->from('course'); $this->db->where('is_active', 'yes'); $this->db->order_by('course_name', 'ASC'); $query = $this->db->get(); return $query->result_array(); } //shankar code public function get_batch() { $this->db->select('*'); $this->db->from('batch'); $this->db->order_by('id', 'DESC'); $query = $this->db->get(); return $query->result_array(); } //end shankar code public function add_applicationinfo($data) { $inf = $data['sinfo']; $photo = $data['photo']; $medical = $data['medical']; $school = $data['school']; $exam = $data['exam']; $this->db->select_max('id'); $query = $this->db->get('applications'); $res = $query->row_array(); $pid = $res['id'] + 1; // if (strlen($pid) == 1) // $pid = "000" . $pid; // else if (strlen($pid) == 2) // $pid = "00" . $pid; // else if (strlen($pid) == 3) // $pid = "0" . $pid; $school_info = $this->get_logo_from_setting(); $school_prefix = (!empty($school_info['school_prefix_id'])) ? $school_info['school_prefix_id'] : 'BB'; $applicationid = $school_prefix . STUDENT_APPLICATION_PREFIX . date('Y', strtotime($this->nepali_current_date)) . '0' . $pid; $indata = array( 'name' => $inf['sfname'] . ' ' . $inf['ssname'], 'applicationid' => $applicationid, 'email' => $inf['semail'], 'mobile' => $inf['scontact'], 'password' => md5($inf['spaswd']), 'gender' => $inf['sgender'], 'dob' => $inf['sdob'], 'course' => $inf['scourse'], 'batch_id' => $inf['sbatch'], 'emergency_contact_name' => $inf['lgfullname'], 'emergency_contact_number' => $inf['lgcontact'], 'emergency_contact_address' => $inf['lgaddress'], 'birth_certificate' => $inf['sbirth-certificate'], 'caste' => $inf['scaste'], 'religion' => $inf['sreligion'], 'previous_school' => $inf['sprevious-school'], 'father_name' => $inf['sfathername'], 'father_citizenship' => $inf['fcitizenship-number'], 'father_mobile' => $inf['fcontact'], 'mother_name' => $inf['mfathername'], 'mother_citizenship' => $inf['mcitizenship-number'], 'mother_mobile' => $inf['mcontact'], 'country' => $inf['scountry'], 'state' => $inf['sprovince'], 'address1' => $inf['saddress'], 'address2' => '', 'zipcode' => '', 'school_certificate' => $school, 'exam_result' => $exam, 'photo' => $photo, 'medical_cerificate' => $medical, 'payment_method' => 'cash', 'description' => '', 'registered_on' => $this->nepali_current_date ); $insert = $this->db->insert('applications', $indata); $newId = $this->db->insert_id(); $result = (!empty($newId)) ? $newId : 0; return $result; } public function storeTransaction($data) { $result = $this->db->insert('student_online_transactions', $data); return $result; } public function storefeeTransaction($data) { $result = $this->db->insert('student_fee_online_transactions', $data); return $result; } public function applications_get($data, $feestyId) { $courseId = (isset($data['course']) && !empty($data['course'])) ? $data['course'] : 0; $batchId = (isset($data['batch_id']) && !empty($data['batch_id'])) ? $data['batch_id'] : 0; $this->db->select('*'); $this->db->from('course_fees'); $this->db->where('course_id', $courseId); $this->db->where('batch_id', $batchId); $this->db->where('fees_type', $feestyId); $query = $this->db->get(); return $query->row_array(); } public function installment_get($course) { $this->db->select('*'); $this->db->from('installment'); $this->db->where('course_id', $course); $query = $this->db->get(); //echo $this->db->last_query(); return $query->result_array(); } public function install_get($install_type_id) { $this->db->select('*'); $this->db->from('installment'); $this->db->where('id', $install_type_id); $query = $this->db->get(); //echo $this->db->last_query(); return $query->row_array(); } public function updateapplication($data) { $update = array( 'payment_status' => $data['payment_status'], ); $this->db->where('id', $data['product_id']); $update = $this->db->update('applications', $update); // echo $this->db->last_query(); } // Moving application info to students -start - by shivakumar public function applicationinfo_movingto_students($applicationId) { $this->db->select('*'); $this->db->from('applications'); $this->db->where('id', $applicationId); $query = $this->db->get(); $res = $query->row_array(); $appdata = (!empty($res)) ? $res : 0; if ($appdata != 0) { if ($appdata['status'] == 'moved') { return -1; } else { $this->db->select_max('id'); $query = $this->db->get('students'); $resid = $query->row_array(); $resid = (isset($resid['id']) && !empty($resid['id'])) ? $resid['id'] : 0; $studentMaxId = $resid + 1; // if (strlen($studentMaxId) == 1) // $pid = "00000" . $studentMaxId; // else if (strlen($studentMaxId) == 2) // $pid = "0000" . $studentMaxId; // else if (strlen($studentMaxId) == 3) // $pid = "000" . $studentMaxId; // else if (strlen($studentMaxId) == 4) // $pid = "00" . $studentMaxId; // else if (strlen($studentMaxId) == 5) // $pid = "00" . $studentMaxId; $pid = date('Y', strtotime($this->nepali_current_date)) . '0' . $studentMaxId; $school_info = $this->get_logo_from_setting(); $school_prefix = (!empty($school_info['school_prefix_id'])) ? $school_info['school_prefix_id'] : 'BB'; $studentid = $school_prefix . STUDENT_PREFIX . $pid; $parent_id = $school_prefix . STUDENT_PARENT_PREFIX . $pid; $qr_path = $this->generate_qrcode($studentid); $insertdata = array( 'id' => $studentMaxId, 'name' => $appdata['name'], 'studentId' => $studentid, 'course' => $appdata['course'], 'batch_id' => $appdata['batch_id'], 'email' => $appdata['email'], 'password' => $appdata['password'], 'mobile' => $appdata['mobile'], 'gender' => $appdata['gender'], 'dob' => $appdata['dob'], 'emergency_contact_name' => $appdata['emergency_contact_name'], 'emergency_contact_number' => $appdata['emergency_contact_number'], 'country' => $appdata['country'], 'state' => $appdata['state'], 'address1' => $appdata['address1'], 'address2' => $appdata['address2'], 'zipcode' => $appdata['zipcode'], 'photo' => $appdata['photo'], 'school_certificate' => $appdata['school_certificate'], 'exam_result' => $appdata['exam_result'], 'medical_cerificate' => $appdata['medical_cerificate'], 'payment_status' => $appdata['payment_status'], 'registered_on' => date('Y-m-d H:i:s', strtotime($this->nepali_current_date)), 'assign_status' => 'no', 'qr_code' => $qr_path, 'parent_username' => $parent_id, 'parent_password' => md5($parent_id), 'is_active' => 'yes' ); $insert = $this->db->insert('students', $insertdata); if ($insert) { $update = array( 'status' => 'moved', ); $this->db->where('id', $applicationId); $this->db->update('applications', $update); return $studentMaxId; } else { return "failed"; } } } } public function generate_qrcode($studentID) { $hex_data = date('YmdHis', strtotime($this->nepali_current_date)) . '-' . $studentID; $save_name = $hex_data . '.png'; $dir = 'assets_student/studentqrcode/'; if (!file_exists($dir)) { mkdir($dir, 0775, true); } /* QR Configuration */ $config['cacheable'] = true; $config['imagedir'] = $dir; $config['quality'] = true; $config['size'] = '1024'; $config['black'] = array(255, 255, 255); $config['white'] = array(255, 255, 255); $this->ciqrcode->initialize($config); /* QR Data */ $params['data'] = $studentID; $params['level'] = 'L'; $params['size'] = 10; $params['savename'] = $config['imagedir'] . $save_name; $result = $this->ciqrcode->generate($params); return $result; } // Moving application info to students -end - by shivakuamr public function move_applicationinfo($appid) { $this->db->select('*'); $this->db->from('applications'); $this->db->where('id', $appid); $query = $this->db->get(); $res = $query->result_array(); // echo $this->db->last_query(); foreach ($res as $r) { $appStatus = $r['status']; } if ($r['status'] == "moved") { return -1; } else { $this->db->select_max('id'); $query = $this->db->get('students'); $resid = $query->row_array(); $pid = $resid['id'] + 1; if (strlen($pid) == 1) $pid = "00000" . $pid; else if (strlen($pid) == 2) $pid = "0000" . $pid; else if (strlen($pid) == 3) $pid = "000" . $pid; else if (strlen($pid) == 4) $pid = "00" . $pid; else if (strlen($pid) == 5) $pid = "00" . $pid; $studentid = "ECS" . date('Y', strtotime($this->nepali_current_date)) . $pid; // print_r($res); foreach ($res as $r) { $name = $r['name']; $applicationid = $r['applicationid']; $email = $r['email']; $mobile = $r['mobile']; $password = $r['password']; $gender = $r['gender']; $dob = $r['dob']; $course = $r['course']; $emergency_contact_name = $r['emergency_contact_name']; $emergency_contact_number = $r['emergency_contact_number']; $country = $r['country']; $state = $r['state']; $address1 = $r['address1']; $address2 = $r['address2']; $zipcode = $r['zipcode']; $school_certificate = $r['school_certificate']; $exam_result = $r['exam_result']; $photo = $r['photo']; $medical_cerificate = $r['medical_cerificate']; $registered_on = $r['registered_on']; $payment_status = "Success"; } $s = array( 'name' => $name, 'studentId' => $studentid, 'email' => $email, 'mobile' => $mobile, 'password' => $password, 'gender' => $gender, 'dob' => $dob, 'course' => $course, 'emergency_contact_name' => $emergency_contact_name, 'emergency_contact_number' => $emergency_contact_number, 'country' => $country, 'state' => $state, 'address1' => $address1, 'address2' => $address2, 'zipcode' => $zipcode, 'school_certificate' => $school_certificate, 'exam_result' => $exam_result, 'photo' => $photo, 'medical_cerificate' => $medical_cerificate, 'registered_on' => $registered_on, 'payment_status' => $payment_status ); // print_r($s); $insert = $this->db->insert('students', $s); $newId = $this->db->insert_id(); $update = array( 'status' => 'moved', ); $this->db->where('id', $appid); $update = $this->db->update('applications', $update); // echo $this->db->last_query(); return $studentid; } } public function get_myClasses($id) { $nowMonth = date('m', strtotime($this->nepali_current_date)); $nowYear = date('Y', strtotime($this->nepali_current_date)); $nowDay = date('d', strtotime($this->nepali_current_date)); $obj = new NepaliDate(); // Convert BS to AD. $nowArr = $obj->convertBsToAd($nowYear, $nowMonth, $nowDay); $currConvDate = $nowArr['year'] . '-' . $nowArr['month'] . '-' . $nowArr['day']; $pday = strtolower(date('l', strtotime($currConvDate))); $query = "select classroom.id,classroom_name,classroom_session.id,session_details.subject_id,subject_name,start,join_link, classroom.classroom_name,day,duration from students left join classroom on students.classroom = classroom.id left join classroom_session on classroom_session.classroom_id = classroom.id left join session_details on session_details.session_id = classroom_session.id left join subject on subject.id = session_details.subject_id where students.id = " . $id . " and day = '" . $pday . "'"; $q = $this->db->query($query); // echo $this->db->last_query(); return $q->result_array(); } public function get_mydayClasses($id, $pday) { $query = "select classroom.id,classroom_name,classroom_session.id,session_details.subject_id,subject_name,subject_icon,start,join_link, classroom.classroom_name,day,duration from students left join classroom on students.classroom = classroom.id left join classroom_session on classroom_session.classroom_id = classroom.id left join session_details on session_details.session_id = classroom_session.id left join subject on subject.id = session_details.subject_id where students.id= " . $id . " and day = '" . $pday . "' order by day,start asc"; $q = $this->db->query($query); //echo $this->db->last_query(); return $q->result_array(); } public function get_teacher($sid, $cname) { $query = "select teacher_name,photo from classroom,teacher where classroom.subject_id = " . $sid . " and classroom_name = '" . $cname . "' and classroom.teacher_id =teacher.id"; $q = $this->db->query($query); // echo $this->db->last_query(); return $q->result_array(); } /*********************************/ //-----shankar code of assignment starts from here---// /******************************* */ public function get_assignment_list($student_id, $asgn_id = '', $month = '', $year = '') { if ($asgn_id == 0 || empty($asgn_id)) { $this->db->select('a.id as assignment_id, a.classroom_id, a.teacher_id, a.subject_id, a.title, a.remark, a.due_date, t.teacher_name, s.subject_name,s.subject_icon'); $this->db->from('assignment a, subject s, teacher t, students stu, student_batch sb'); $this->db->where('stu.id', $student_id); $this->db->where('stu.id = sb.student_id'); $this->db->where('stu.batch_id = sb.batch_id'); $this->db->where('sb.classroom_id = a.classroom_id'); // $this->db->where('a.subject_id', $val); $this->db->where('a.subject_id = s.id'); $this->db->where('a.teacher_id = t.id'); if ($month != 00 || $year != 0) { $this->db->where("DATE_FORMAT(due_date,'%m')", $month); $this->db->where("DATE_FORMAT(due_date,'%Y')", $year); } $this->db->order_by('a.id desc'); $query = $this->db->get(); return $query->result_array(); } else { $this->db->select('a.id as assignment_id, a.classroom_id, a.teacher_id, a.subject_id, a.title, a.remark, a.due_date, t.teacher_name, s.subject_name, s.subject_icon'); $this->db->from('assignment a, subject s, teacher t'); $this->db->where('a.id', $asgn_id); $this->db->where('a.subject_id = s.id'); $this->db->where('a.teacher_id = t.id'); if ($month != 00 || $year != 0) { $this->db->where("DATE_FORMAT(due_date,'%m')", $month); $this->db->where("DATE_FORMAT(due_date,'%Y')", $year); } $query = $this->db->get(); return $query->result_array(); } } public function upload_assignment($data) { $check = $this->db->query('select id from assignments_uploaded where Path= "' . $data['Path'] . '"'); $res = $check->result_array(); if ($res) { $data['modified'] = $this->nepali_current_date; $this->db->where('id', $res[0]['id']); $this->db->update('assignments_uploaded', $data); return true; } else { $data['created'] = $this->nepali_current_date; $this->db->insert('assignments_uploaded', $data); return true; } } public function uploaded_assignent($student_id, $asgn_id) { $this->db->select('*'); $this->db->from('assignments_uploaded'); $this->db->where('student_id', $student_id); $this->db->where('assignment_id', $asgn_id); $query = $this->db->get(); return $query->result_array(); } public function upload_assignment_submit($data) { $this->db->where('assignment_id', $data['assignment_id']); $this->db->where('student_id', $data['student_id']); $this->db->update('assignments_uploaded', $data); return true; } public function upload_assignment_cancel($asgn_id, $student_id) { $this->db->where('assignment_id', $asgn_id); $this->db->where('student_id', $student_id); $this->db->delete('assignments_uploaded'); return true; } /**********************************************/ //-----shankar code of assignment end ---// /**********************************************/ // Notification models - 13-10-2021 public function getStudentNotification($id, $date) { $query = "SELECT students.name, students.email,classroom.id as classroom_id, classroom.classroom_name, classroom.course_id FROM students INNER JOIN student_batch sb ON students.id = sb.student_id AND sb.batch_id = students.batch_id INNER JOIN classroom ON sb.classroom_id = classroom.id WHERE students.id = $id"; $res = $this->db->query($query); if ($res->num_rows() > 0) { $month = $date['month']; $year = $date['year']; $classRoomId = $res->row()->classroom_id; $notRes = $this->db->query("Select * from notifications where (notification_to = 'student' OR notification_to = 'both') AND ((month(created_at)= '$month') AND (year(created_at) = '$year')) AND student_classroom = '$classRoomId' ORDER BY notification_id DESC"); if ($notRes->num_rows() > 0) { return $notRes->result_array(); } else { return false; } } else { return false; } } public function getAllStudentNotification($id, $notif_id = '') { $query = "SELECT students.name, students.email,classroom.id as classroom_id, classroom.classroom_name, classroom.course_id FROM students INNER JOIN student_batch sb ON students.id = sb.student_id AND students.batch_id = sb.batch_id INNER JOIN classroom ON sb.classroom_id = classroom.id WHERE students.id = $id"; $res = $this->db->query($query); if ($res->num_rows() > 0) { $classRoomName = $res->row()->classroom_id; if ($notif_id != '') { $where = "n.notification_id = $notif_id"; } else { $where = "n.student_classroom = '$classRoomName'"; } $notRes = $this->db->query("Select n.*, t.teacher_name from notifications n left join teacher t on n.teacher_id = t.id where $where ORDER BY n.notification_id DESC"); if ($notRes->num_rows() > 0) { $notRes = $notRes->result_array(); foreach ($notRes as $key => $value) { $notRes[$key]['teacher_id'] = $value['teacher_id'] ? $value['teacher_id'] : ''; } return $notRes; } else { return false; } } else { return false; } } public function getSingleNotification($id) { $query = $this->db->query('SELECT * FROM notifications WHERE notification_id = ' . $id); if ($query->num_rows() > 0) { $result = $query->row(); return $result; } else { return 'failed'; } } // Notification Models End - 13-10-2021 //shankar code of Student Syllybus Models start - 29-10-2021 public function get_student_syllabus($student_id) { $this->db->select('student_id, subject_id, subject_name, classroom.course_id, syllabus,subject_icon, subject_syllabus.id as subject_syllabus_id'); $this->db->from('students , classroom, subject_syllabus, student_batch, subject'); $this->db->where('students.id', $student_id); $this->db->where('student_batch.batch_id = students.batch_id'); $this->db->where('students.id = student_batch.student_id'); $this->db->where('student_batch.classroom_id = classroom.id'); $this->db->where('subject_syllabus.course_id = classroom.course_id'); $this->db->where('subject.id = subject_syllabus.subject_id'); $this->db->group_by('subject_syllabus.subject_id'); $query = $this->db->get(); return $query->result_array(); } //shankar code of Student Syllybus Models end - 29-10-2021 // Student Attendance - 03-11-21 Afras Khan public function get_table_info($table_name, $where = '', $sqlQry = '', $order = 'DESC', $limit = FALSE, $offset = FALSE) { if ($limit) $this->db->limit($limit, $offset); if ($where != '') $this->db->where($where); $this->db->order_by($table_name . '.id', $order); $query = $this->db->get($table_name); if ($sqlQry != '') $query = $this->db->query($sqlQry); return $query->result_array(); } public function get_student_attendance($where) { $this->db->select('student_id, classroom_id, subject_id, DATE_FORMAT(attendence_date, "%d/%m/%Y") as date, status, attendence_date, DATE_FORMAT(attendence_date,"%r") as time'); $this->db->where($where); $this->db->order_by('DAY(attendence_date)', 'ASC'); $query = $this->db->get('student_attendence'); return $query->result_array(); } // Student Attendance End - 03-11-21 Afras Khan //Start code of Up- Coming Test/Exams 08-11-21 - Shankar public function upcoming_Test_or_Exams($student_id, $exam_que_id = '') { $this->db->select('questions.id as question_id, exam_id, e_name, classroom_id, classroom_name, subject_id, subject_name, exam_date, exam_starttime, exam_endtime, total_marks '); $this->db->from('classroom, student_batch,students, subject, questions,exam'); if ($exam_que_id == '' || empty($exam_que_id)) { $this->db->where('students.id', $student_id); $this->db->where('students.id = student_batch.student_id'); $this->db->where('students.batch_id = student_batch.batch_id'); $this->db->where('student_batch.classroom_id = classroom.id'); $this->db->where('exam_date >=', date('Y-m-d', strtotime($this->nepali_current_date))); } else { $this->db->where('questions.id', $exam_que_id); } $this->db->where('classroom.course_id = questions.course_id'); $this->db->where('questions.exam_id = exam.id'); $this->db->where('subject.id = questions.subject_id'); $this->db->group_by('questions.id'); $query = $this->db->get(); // echo $this->db->last_query(); return $query->result_array(); } public function get_allQuestions($que_exam_id) { $query = 'SELECT option_a , option_b , option_c , option_d , question_type_id , question_name, exam_questions.id as id , questions.course_id, questions.exam_date, questions.exam_starttime,question_name, questions.exam_endtime,exam_questions.image,subject_name, e_name, questions.id as test_id, exam_questions.question_mark as marks from exam_questions LEFT JOIN questions ON questions.id = exam_questions.exam_id LEFT JOIN subject ON exam_questions.subject_id = subject.id LEFT JOIN exam ON exam.id = questions.exam_id where exam_questions.exam_id = ' . $que_exam_id . ' order by exam_questions.id asc'; $q = $this->db->query($query); // echo $this->db->last_query(); return $q->result_array(); } public function storeAnswer($ans_array_json, $student_id) { $ans_array = json_decode($ans_array_json, true); $length = count($ans_array); $i = 0; $response = 0; for ($i = 0; $i < $length; $i++) { $ans_array[$i]['created'] = $this->nepali_current_date; $this->db->insert('exam_answers', $ans_array[$i]); $res = $this->db->insert_id(); $query = $this->db->query('select ea.answer, eq.correct_answer, eq.question_mark from exam_questions eq, exam_answers ea where ea.id=' . $res . ' and ea.exam_questions_id = eq.id'); $data = $query->row_array(); if ($data['answer'] == $data['correct_answer']) { $this->db->set('review', $data['question_mark']); } else if ($data['correct_answer'] == '') { $this->db->set('review', ''); } else { $this->db->set('review', 0); } $this->db->set('modified', $this->nepali_current_date); $this->db->where('id', $res); $this->db->update('exam_answers'); $updated_status = $this->db->affected_rows(); if ($updated_status) { $response = 1; } } return $response; } //End code of Up- Coming Test/Exams 10-11-21 - Shankar // to get application fee by shivu -start public function get_query_result($sqlQry) { if ($sqlQry != '') $query = $this->db->query($sqlQry); return $query->result_array(); } public function get_query_row($sqlQry) { if ($sqlQry != '') $query = $this->db->query($sqlQry); return $query->row_array(); } public function get_general_row_details($table_name, $where = '', $sqlQry = '', $order_by = 'ASC', $limit = FALSE, $offset = FALSE) { if ($limit) $this->db->limit($limit, $offset); if ($where != '') $this->db->where($where); $this->db->order_by($table_name . '.id', $order_by); $query = $this->db->get($table_name); if ($sqlQry != '') $query = $this->db->query($sqlQry); return $query->row_array(); } // to get application fee by shivu -end // Hostel Afras Khan function add_edit_table($table, $id, $data, $update_where = '') { if ($id == 0) { $this->db->insert($table, $data); if ($this->db->affected_rows() > 0) return $insert_id = $this->db->insert_id(); else return 0; } else { if ($update_where != '') $this->db->where($update_where); else $this->db->where('id', $id); $this->db->update($table, $data); if ($this->db->trans_status() === FALSE) return 0; return true; } } // Hostel End //getStudent_id from user_api public function getStudentId($id) { $result = $this->db->query('select id,studentId from students where studentId = "' . $id . '"')->row_array(); return $result; } public function get_logo_from_setting() { $this->db->select('*'); $this->db->from('school_settings'); $query = $this->db->get(); return $query->row_array(); } }