load->model('Student_model'); $this->load->model('Admin_model'); $this->load->library('paypal_lib'); $this->load->helper(array('form', 'url')); $this->load->library('email'); $this->load->library('Ciqrcode'); $this->load->helper('common_helper'); $this->load->database(); date_default_timezone_set('Asia/Kathmandu'); // date_default_timezone_set("Asia/Kolkata"); $this->nepaliDateObject = new NepaliDate(); $this->nepali_current_date = cuurentNepaliDate($this->nepaliDateObject); } public function index() { $data['school_info'] = $this->Admin_model->get_logo_from_setting(); $this->load->view('student/header', $data); $this->load->view('student/login', $data); $this->load->view('student/footer', $data); } public function admission_process() { $data['school_info'] = $this->Admin_model->get_logo_from_setting(); $this->load->view('student/header', $data); $this->load->view('student/admission-process'); $this->load->view('student/footer'); } public function admission() { $data['courses'] = $this->Student_model->get_courses(); //shankar code //end shankar code $data['school_info'] = $this->Admin_model->get_logo_from_setting(); $CI = &get_instance(); $mainListDb = $CI->load->database('schoolSetting', TRUE); $data['batch'] = $this->db->query("SELECT * FROM batch where id = " . $data['school_info']['batch_id'])->result_array(); $data['provinces'] = $mainListDb->query('SELECT * FROM provinces')->result_array(); $this->load->view('student/header', $data); $this->load->view('student/admission', $data); $this->load->view('student/footer'); } // public function student_reset() // { // $this->load->view('student/header'); // $this->load->view('student/student-reset'); // $this->load->view('student/footer'); // } public function student_login() { $uname = $this->input->post('email'); $pwd = $this->input->post('password'); //echo md5($pwd); // print_r($this->input->post()); if ($this->Student_model->login($uname, $pwd)) { if (isset($_POST['remember_me']) && $_POST['remember_me'] == 'on') { //set 0 instead of time to remove the cookie once the browser is closed setcookie("username", $_POST["email"], time() + 86400); //86400 seconds in a day setcookie("password", $_POST["password"], time() + 86400); setcookie("rem_me", 'On', time() + 86400); } else { if (isset($_COOKIE['username'])) { unset($_COOKIE['username']); setcookie('username', ''); } if (isset($_COOKIE['password'])) { unset($_COOKIE['password']); setcookie('password', ''); } if (isset($_COOKIE['rem_me'])) { unset($_COOKIE['rem_me']); setcookie('rem_me', ''); } } $student_info = $this->Student_model->login($uname, $pwd); //getting values from database $student_id = $student_info->id; $student_email = $student_info->email; $student_name = $student_info->name; $student_payment = $student_info->payment_status; $student_status = $student_info->is_active; //create required sessions $this->session->set_userdata('student_id', $student_id); $this->session->set_userdata('student_email', $student_email); $this->session->set_userdata('student_name', $student_name); if ($student_status == 'yes') { echo '1'; } } else { echo '0'; } } public function student_logout() { $this->session->sess_destroy(); redirect(base_url() . 'Student', 'refresh'); } public function dashboard() { if (isset($_SESSION['student_id'])) { $this->load->helper('url'); $student_id = $_SESSION['student_id']; $data['currentURL'] = current_url(); $data['menulist'] = $this->Student_model->get_studentMenus(); $data['subject_names'] = $this->my_classes_Function(); //assignment $month = date('m', strtotime($this->nepali_current_date)); $year = date('Y', strtotime($this->nepali_current_date)); $curr_naepali_date = $this->nepali_current_date; $data['list_assignmet'] = $this->Student_model->get_assignment_list($student_id, '', $month, $year); // attendence data $sql = "Select sb.student_id, sb.classroom_id, c.course_id as course_id, cs.subject_id as subject_id, s.subject_name as subject_name, s.subject_icon as icon from students std inner join student_batch sb on std.id = sb.student_id AND std.batch_id = sb.batch_id inner join classroom c on sb.classroom_id = c.id inner join course_subjects cs on c.course_id = cs.course_id inner join subject s on s.id = cs.subject_id WHERE std.id = $student_id"; $data['attendece_subject_names'] = $this->Student_model->get_table_info('student_batch', '', $sql); $data['count'] = []; foreach ($data['attendece_subject_names'] as $key => $value) { $countSql = "SELECT student_id, count(*) as total_count, SUM(CASE when STATUS = 'present' then 1 else 0 end) AS present_count FROM `student_attendence` where student_id = '$student_id' AND subject_id = '$value[subject_id]' AND classroom_id = '$value[classroom_id]'"; $data['count'][] = $this->db->query($countSql)->row_array(); } //student grades $query_examId = $this->db->query('select q.exam_id from questions q, student_exam_results ses where ses.student_id=' . $student_id . ' and ses.exams_id = q.id and date_format(ses.created,"%y-%m-%d") <=' . date('Y-m-d', strtotime($curr_naepali_date)) . ' order by q.exam_id desc limit 1'); $exam_id = $query_examId->row_array(); if ($exam_id) { $query_grade = $this->db->query(' SELECT e_name,q.exam_date, subject_name, q.total_marks, passing_marks, get_marks ,grade_name, name FROM student_exam_results ser INNER JOIN grades g ON ser.grades_id = g.id INNER JOIN questions q ON q.id = ser.exams_id INNER JOIN subject s ON s.id = q.subject_id INNER JOIN students st on st.id = ser.student_id AND st.course = q.course_id INNER JOIN student_batch sb on sb.id = ser.student_batch_id AND sb.student_id = st.id AND sb.batch_id = sb.batch_id INNER JOIN exam e ON e.id = q.exam_id WHERE q.exam_id = ' . $exam_id['exam_id'] . ' AND ser.student_id = ' . $student_id . ' GROUP BY subject_name'); $data['student_results'] = $query_grade->result_array(); } else { $data['student_results'] = FALSE; } //echo"
";print_r($data['student_results']);exit();
			$this->load->view('student/header', $data);
			$this->load->view('student/dashboard');
			$this->load->view('student/footer');
		} else {
			redirect(base_url() . 'Student');
		}
	}

	public function attendance_detail()
	{
		if (isset($_SESSION['student_id'])) {
			$this->load->helper('url');
			$data['currentURL'] = current_url();
			$data['menulist'] = $this->Student_model->get_studentMenus();
			$this->load->view('student/header', $data);
			$this->load->view('student/attendance-detail');
			$this->load->view('student/footer');
		} else {
			redirect(base_url() . 'Student');
		}
	}

	public function my_calendar_old()
	{
		if (isset($_SESSION['student_id'])) {
			$this->load->helper('url');
			$data['currentURL'] = current_url();
			$data['menulist'] = $this->Student_model->get_studentMenus();
			$pday = trim(date("l"));

			$data['classes'] = $this->Student_model->get_mydayClasses($_SESSION['student_id'], $pday);

			if (!empty($data['classes'])) {
				$k = 0;
				foreach ($data['classes'] as $c) {

					$res = $this->Student_model->get_teacher($c['subject_id'], $c['classroom_name']);
					//    print_r($res);
					$student_sess[$k]['teacher_name']   = $res[0]['teacher_name'];
					$student_sess[$k]['photo']          = $res[0]['photo'];
					$student_sess[$k]['classroom_name'] = $c['classroom_name'];
					$student_sess[$k]['subject_id']     = $c['subject_id'];
					$student_sess[$k]['subject_name']   = $c['subject_name'];
					$student_sess[$k]['subject_icon']   = $c['subject_icon'];
					$student_sess[$k]['start']          = $c['start'];
					$student_sess[$k]['duration']       = $c['duration'];
					$student_sess[$k]['id']             = $c['id'];
					$student_sess[$k]['join_link']      = $c['join_link'];
					$student_sess[$k]['day']            = $c['day'];
					$k++;
				}
			} else {
				$student_sess = '';
			}

			//  print_r($student_sess);
			$data['student_sess'] = $student_sess;
			$this->load->view('student/header', $data);
			$this->load->view('student/my-calendar');
			$this->load->view('student/footer');
		} else {
			redirect(base_url() . 'Student');
		}
	}

	public function calenderSessions()
	{
		if (isset($_SESSION['student_id'])) {
			$this->load->helper('url');
			$data['currentURL'] = current_url();
			$data['menulist'] = $this->Student_model->get_studentMenus();
			if (($this->input->post('dateval'))) {
				$t = 	 $this->input->post('dateval');
				$day = strtotime($t);
				$pday = trim(date('l', $day));
			}


			$data['classes'] = $this->Student_model->get_mydayClasses($_SESSION['student_id'], $pday);
			if (!empty($data['classes'])) {
				$k = 0;
				foreach ($data['classes'] as $c) {

					$res = $this->Student_model->get_teacher($c['subject_id'], $c['classroom_name']);
					//    print_r($res);
					$student_sess[$k]['teacher_name']   = $res[0]['teacher_name'];
					$student_sess[$k]['photo']          = $res[0]['photo'];
					$student_sess[$k]['classroom_name'] = $c['classroom_name'];
					$student_sess[$k]['subject_id']     = $c['subject_id'];
					$student_sess[$k]['subject_name']   = $c['subject_name'];
					$student_sess[$k]['subject_icon']   = $c['subject_icon'];
					$student_sess[$k]['start']          = $c['start'];
					$student_sess[$k]['duration']       = $c['duration'];
					$student_sess[$k]['id']             = $c['id'];
					$student_sess[$k]['join_link']      = $c['join_link'];
					$student_sess[$k]['day']            = $c['day'];
					$k++;
				}
			} else {
				$student_sess = '';
			}
			$data['student_sess'] = $student_sess;
			$data['day'] = $t;
			$this->load->view('student/my-calendar-session', $data);
		} else {
			redirect(base_url() . 'Student');
		}
	}



	public function my_assignments()
	{
		if (isset($_SESSION['student_id'])) {
			$this->load->helper('url');
			$data['currentURL'] = current_url();
			$data['menulist'] = $this->Student_model->get_studentMenus();
			$this->load->view('student/header', $data);
			$this->load->view('student/my-assignments');
			$this->load->view('student/footer');
		} else {
			redirect(base_url() . 'Student');
		}
	}

	//Start code of Up- Coming Test/Exams 08-11-21 - Shankar

	public function my_tests_exams()
	{
		if (isset($_SESSION['student_id'])) {
			$this->load->helper('url');
			$data['currentURL'] = current_url();
			$data['menulist'] = $this->Student_model->get_studentMenus();
			$data['upcoming_exam_data'] = $this->Student_model->upcoming_Test_or_Exams($_SESSION['student_id']);

			$data['nepali_curr_date'] = $this->nepali_current_date;

			$student_data = array();
			if (isset($data['upcoming_exam_data']) || !empty($data['upcoming_exam_data'])) {

				foreach ($data['upcoming_exam_data'] as $key => $val) {

					$query = $this->db->query('select student_id, exams_id as questions_id from exam_answers where student_id =' . $_SESSION['student_id'] . ' and exams_id = ' . $val['question_id'] . ' group by student_id, exams_id');

					$count_mark = $this->db->query('select sum(question_mark) as tot_marks from exam_questions where exam_id =' . $val['question_id'])->row_array();



					if ($query->num_rows() > 0) {

						$exam_attempt = $query->row_array();

						array_push($student_data, array(
							'questions_id'		=> $val['question_id'],
							'exam_id'			=> $val['exam_id'],
							'e_name'			=> $val['e_name'],
							'classroom_id'		=> $val['classroom_id'],
							'classroom_name'	=> $val['classroom_name'],
							'subject_id'		=> $val['subject_id'],
							'subject_name'		=> $val['subject_name'],
							'exam_date'			=> $val['exam_date'],
							'exam_starttime'	=> $val['exam_starttime'],
							'exam_endtime'		=> $val['exam_endtime'],
							'total_marks'		=> $val['total_marks'],
							'attempt' 			=> 'yes',
							'counting_mark'		=> $count_mark['tot_marks'] ? $count_mark['tot_marks'] : '',
						));
					} else {

						array_push($student_data, array(
							'questions_id'		=> $val['question_id'],
							'exam_id'			=> $val['exam_id'],
							'e_name'			=> $val['e_name'],
							'classroom_id'		=> $val['classroom_id'],
							'classroom_name'	=> $val['classroom_name'],
							'subject_id'		=> $val['subject_id'],
							'subject_name'		=> $val['subject_name'],
							'exam_date'			=> $val['exam_date'],
							'exam_starttime'	=> $val['exam_starttime'],
							'exam_endtime'		=> $val['exam_endtime'],
							'total_marks'		=> $val['total_marks'],
							'attempt' 			=> 'No',
							'counting_mark'		=> $count_mark['tot_marks'] ? $count_mark['tot_marks'] : '',
						));
					}
				}
			}

			usort($student_data, function ($item1, $item2) {
				return $item1['exam_date'] <=> $item2['exam_date'];
			});

			$data['exams_data'] = $student_data;

			$data['NDate']	= date('Y-m-d', strtotime($this->nepali_current_date));

			$this->load->view('student/header', $data);
			$this->load->view('student/my-tests-exams');
			$this->load->view('student/footer');
		} else {
			redirect(base_url() . 'Student');
		}
	}


	public function view_test_detail()
	{
		if (isset($_SESSION['student_id'])) {
			$this->load->helper('url');
			$data['currentURL'] = current_url();
			$data['menulist'] = $this->Student_model->get_studentMenus();

			$exam_question_Id = $this->uri->segment(3);

			$data['exams_data'] = $this->Student_model->upcoming_Test_or_Exams($_SESSION['student_id'], $exam_question_Id);


			$this->load->view('student/header', $data);
			$this->load->view('student/view-test-detail');
			$this->load->view('student/footer');
		} else {
			redirect(base_url() . 'Student');
		}
	}

	public function question_paper()
	{
		if (isset($_SESSION['student_id'])) {
			$this->load->helper('url');
			$data['currentURL'] = current_url();
			$data['menulist'] = $this->Student_model->get_studentMenus();
			$data['exam_question_Id'] = $this->uri->segment(3);
			$data['student_id'] =  $_SESSION['student_id'];

			$data['exams_data'] = $this->Student_model->upcoming_Test_or_Exams($_SESSION['student_id'], $this->uri->segment(3));

			$this->load->view('student/header', $data);
			$this->load->view('student/question-paper');
			$this->load->view('student/footer');
		} else {
			redirect(base_url() . 'Student');
		}
	}


	public function getAllQues()
	{
		$id = $_SESSION['student_id'];
		$exam_question_id = $this->input->post('test_id');

		$questions = $this->Student_model->get_allQuestions($exam_question_id);
		print_r(json_encode($questions));
	}

	public function submit_exam_answer()
	{
		$id = $_SESSION['student_id'];
		$ans_array_json = $this->input->post('ans_array');

		if ($this->Student_model->storeAnswer($ans_array_json, $id)) {
			echo '1';
		}
	}


	//End code of Up- Coming Test/Exams 10-11-21 - Shankar

	public function my_grades()
	{
		if (isset($_SESSION['student_id'])) {
			$this->load->helper('url');
			$data['currentURL'] = current_url();
			$data['menulist'] = $this->Student_model->get_studentMenus();

			$query = $this->db->query('SELECT exam.e_name, questions.course_id, questions.exam_date,questions.exam_id
				FROM exam , questions , classroom, student_batch , students
				WHERE students.id = ' . $_SESSION['student_id'] . ' 
				AND student_batch.student_id = students.id
				AND students.batch_id = student_batch.batch_id  
				AND student_batch.classroom_id = classroom.id
				AND classroom.course_id = questions.course_id
				AND questions.exam_id = exam.id
				GROUP BY questions.course_id, exam.e_name
		   		ORDER BY exam_date desc');

			$data['exam_details'] = $query->result_array();
			if (!empty($data['exam_details'])) {
				$bs_date_info = get_complete_BS_date_info($this->nepaliDateObject, $data['exam_details'][0]['exam_date']);
				$data['exam_details'][0]['bs_date'] = $bs_date_info['F'] . '-' . $bs_date_info['Y'];
			}

			$this->load->view('student/header', $data);
			$this->load->view('student/my-grades');
			$this->load->view('student/footer');
		} else {
			redirect(base_url() . 'Student');
		}
	}

	public function view_grade_detail()
	{
		if (isset($_SESSION['student_id'])) {
			$this->load->helper('url');
			$data['currentURL'] = current_url();
			$data['menulist'] = $this->Student_model->get_studentMenus();
			$exam_id = $this->uri->segment(3);
			$query = $this->db->query(' SELECT e_name,q.exam_date, subject_name, q.total_marks, passing_marks, get_marks ,grade_name, name
				FROM student_exam_results ser
				INNER JOIN grades g ON ser.grades_id = g.id
				INNER JOIN questions q ON q.id = ser.exams_id
				INNER JOIN subject s ON s.id = q.subject_id                
				INNER JOIN students st on st.id = ser.student_id
				INNER JOIN exam e ON e.id = q.exam_id
				WHERE q.exam_id = ' . $exam_id . '
				AND ser.student_id = ' . $_SESSION['student_id'] . '
				GROUP BY subject_name');

			$data['student_results'] = $query->result_array();

			if (!empty($data['student_results'])) {
				$bs_date_info = get_complete_BS_date_info($this->nepaliDateObject, $data['student_results'][0]['exam_date']);
				$data['student_results'][0]['bs_date'] = $bs_date_info['F'] . '-' . $bs_date_info['Y'];
			}


			$this->load->view('student/header', $data);
			$this->load->view('student/view-grade-detail');
			$this->load->view('student/footer');
		} else {
			redirect(base_url() . 'Student');
		}
	}

	// 	public function my_notifications()
	// 	{
	// 	    if(isset($_SESSION['student_id'])){
	// 	        $this->load->helper('url');
	//             $data['currentURL'] = current_url();
	// 	        $data['menulist'] = $this->Student_model->get_studentMenus();
	// 	        $this->load->view('student/header',$data);
	//     	    $this->load->view('student/my-notifications');
	//     	    $this->load->view('student/footer');
	// 	    }else{
	// 	        redirect(base_url().'Student');
	// 	    }
	// 	}

	public function settings()
	{
		if (isset($_SESSION['student_id'])) {
			$this->load->helper('url');
			$data['currentURL'] = current_url();
			$data['menulist'] = $this->Student_model->get_studentMenus();
			$this->load->view('student/header', $data);
			$this->load->view('student/settings');
			$this->load->view('student/footer');
		} else {
			redirect(base_url() . 'Student');
		}
	}
	//shankar code of Student Syllybus Models start - 29-10-2021
	public function my_syllabus()
	{
		if (isset($_SESSION['student_id'])) {
			$this->load->helper('url');
			$data['currentURL'] = current_url();
			$data['menulist'] = $this->Student_model->get_studentMenus();
			$data['student_syllabus'] = $this->Student_model->get_student_syllabus($_SESSION['student_id']);
			$this->load->view('student/header', $data);
			$this->load->view('student/my-syllabus');
			$this->load->view('student/footer');
		} else {
			redirect(base_url() . 'Student');
		}
	}
	//shankar code of Student Syllybus Models end - 29-10-2021
	public function my_profile()
	{
		if (isset($_SESSION['student_id'])) {
			$this->load->helper('url');
			$data['currentURL'] = current_url();
			$data['menulist'] = $this->Student_model->get_studentMenus();
			$this->load->view('student/header', $data);
			$this->load->view('student/my-profile');
			$this->load->view('student/footer');
		} else {
			redirect(base_url() . 'Student');
		}
	}

	public function addedit_apllication()
	{

		$this->load->helper('url');
		$this->load->helper(array('form', 'url'));

		$config['upload_path'] = 'assets_student/application/';
		$config['allowed_types'] = 'gif|jpg|png';
		$this->load->library('upload', $config);
		$this->upload->initialize($config);
		$data['currentURL'] = current_url();
		$data['sinfo'] = $_POST;



		if (!$this->upload->do_upload('photo')) {
			$data['photo'] = "No-Image.jpg";
		} else {
			$photo = array('upload_data' => $this->upload->data());
			//   print_r($photo);
			$data['photo'] = $photo['upload_data']['file_name'];
		}
		if (!$this->upload->do_upload('school')) {
			$data['school'] = "No-Image.jpg";
		} else {
			$school = array('upload_data' => $this->upload->data());
			$data['school'] = $school['upload_data']['file_name'];
		}

		if (!$this->upload->do_upload('exam')) {
			$data['exam'] = "No-Image.jpg";
		} else {
			$exam = array('upload_data' => $this->upload->data());
			$data['exam'] = $exam['upload_data']['file_name'];
		}

		if (!$this->upload->do_upload('medical')) {
			$data['medical'] = "No-Image.jpg";
		} else {
			$medical = array('upload_data' => $this->upload->data());
			$data['medical'] = $medical['upload_data']['file_name'];
		}

		// dd($data);

		$app_new_id = $this->Student_model->add_applicationinfo($data);
		if ($app_new_id > 0) {
			$this->session->set_flashdata('success', 'Application has been submitted. Please visit school for further process.');
			redirect(base_url() . 'student/admission');
			//paypal integration
			//Set variables for paypal form
			// $returnURL = base_url() . 'student/application_paymentSuccess'; //payment success url
			// $failURL = base_url() . 'student/paymentFail'; //payment fail url
			// $notifyURL = base_url() . 'student/paypalipn'; //ipn url

			// //  $userID = $_SESSION['student_id'];
			// $amount = $_POST['amount'];
			// //$logo = base_url().'Your_logo_url';
			// $this->paypal_lib->add_field('return',  $returnURL);
			// $this->paypal_lib->add_field('fail_return', $failURL);
			// $this->paypal_lib->add_field('notify_url', $notifyURL);
			// $this->paypal_lib->add_field('item_name', "Application Fee");
			// $this->paypal_lib->add_field('custom', $_POST['scourse']);
			// $this->paypal_lib->add_field('item_number',  $app_new_id);
			// $this->paypal_lib->add_field('amount', $amount);
			// //   $this->paypal_lib->image($logo);
			// $this->paypal_lib->paypal_auto_form();
			// // echo $app_new_id;
			// return $app_new_id;




		} else {
			return 0;
		}
	}




	function fees_paymentSuccess()
	{
		$data['school_info'] = $this->Admin_model->get_logo_from_setting();
		$this->load->view('student/header', $data);
		$this->load->view('student/payment-success-modal');
		$this->load->view('student/footer');
	}

	function application_paymentSuccess()
	{
		$raw_post_data = file_get_contents('php://input');
		$raw_post_array = explode('&', $raw_post_data);
		$paypalInfo = array();
		foreach ($raw_post_array as $keyval) {
			$keyval = explode('=', $keyval);
			if (count($keyval) == 2)
				$paypalInfo[$keyval[0]] = urldecode($keyval[1]);
		}
		$this->db->where('id', $paypalInfo['item_number']);
		$query  = $this->db->get('applications');
		$res = $query->row_array();
		$application_no = (!empty($res['applicationid'])) ? $res['applicationid'] : $paypalInfo['item_number'];
		$data['studentId'] = $application_no;
		$data['payment_for'] = $paypalInfo['item_name'];
		$data['txn_id'] = $paypalInfo["txn_id"];
		$data['payment_amt'] = $paypalInfo["payment_gross"];
		$data['currency_code'] = $paypalInfo["mc_currency"];
		$data['status'] = $paypalInfo["payment_status"];
		// $data['payment_date'] = $paypalInfo["payment_date"];
		$data['payment_recived_id'] = $paypalInfo["receiver_id"];
		$data['payment_date'] = convert_ADdateTime_to_BSdateTime($this->nepaliDateObject, $paypalInfo['payment_date']);
		$rst = $this->Student_model->storefeeTransaction($data);
		if ($rst) {
			$this->db->where('id', $paypalInfo['item_number']);
			$this->db->update('applications', array('payment_status' => 'yes'));
		}
		$data['school_info'] = $this->Admin_model->get_logo_from_setting();

		if ($this->mail_Send_Application_Approved($data['studentId'], $data['payment_amt'], $data['payment_date'])) {
			$data['sent_mail'] = true;
		} else {
			$data['sent_mail'] = false;
		}
		$this->load->view('student/header', $data);
		$this->load->view('student/application-payment-success', $data);
		$this->load->view('student/footer');
	}


	function paymentFail()
	{
		$this->load->view('paypal/paymentFail');
	}




	function admission_payment()
	{
		//paypal return transaction details array
		$appid = $this->uri->segment(3);
		$data = array();
		if ($appid != '') {
			$sqlQuery = "SELECT a.*,c.course_name FROM applications a LEFT JOIN course c ON c.id=a.course WHERE a.id=$appid";
			$result = $this->Student_model->get_query_row($sqlQuery);
			$feestypeId = 2;
			if ($result != '') {
				$course_fees = $this->Student_model->applications_get($result, $feestypeId);

				$course_fee_id = ($course_fees != '') ? $course_fees['id'] : 0;
				$sqlQuery1 = "SELECT * FROM installment WHERE course_fee_id=$course_fee_id AND is_active='yes'";
				$data['installment'] = $this->Student_model->get_query_row($sqlQuery1);
				$data['course_fees'] = $course_fees;
			}
			$data['appinfo'] = $result;
		}


		$data['school_info'] = $this->Admin_model->get_logo_from_setting();
		$this->load->view('student/header', $data);
		$this->load->view('student/admission_payment', $data);
		$this->load->view('student/footer');
	}

	function get_installdetails()
	{
		//paypal return transaction details array
		$install_type = $this->input->post('install_type');
		$installment_id = $this->input->post('installment_id');
		$install = $this->Student_model->install_get($installment_id);
		$array_install = json_decode($install['due_amount_date']);
		$html = '';
		foreach ($array_install as $key => $installvalue) {
			if ($key == $install_type) {
				foreach ($installvalue as $inskey => $val) {
					$due_date = ($inskey == 0) ? " Instant Payment " : "" . $val->due_date . "";
					$checkbox = ($inskey == 0) ? "style='color:green'" : "style='color:red'";
					$html .= '
'; } } } // //

Due dates :

' . str_replace(',', '
', $n["duedates"]) . ' //
echo $html; } function process_coursefee() { $studfees = array(); $amount = $_POST['totalamount']; $course_fee_id = $_POST['coursefeeid']; $app_new_id = $_POST['appid']; $installType = $_POST['install_typeid']; //$cutom_arr = array('course_fee' => $course_fee_id, 'install_type' => $installType); // $install = $this->Student_model->move_applicationinfo($app_new_id); // $stid = $this->Student_model->move_applicationinfo($app_new_id); $stid = $this->Student_model->applicationinfo_movingto_students($app_new_id); if ($stid == -1) { $this->session->set_flashdata('danger', 'Payment Failed'); redirect(base_url() . 'Student'); } else { $studentappId = $this->db->get_where('students', array('id' => $stid))->row()->studentId; $coursefees = $this->Student_model->get_query_row("SELECT id,due_amount_date FROM installment WHERE course_fee_id=$course_fee_id"); $coursefeesarr = json_decode($coursefees['due_amount_date']); foreach ($coursefeesarr as $k => $cf_value) { if ($k == $installType) { $sno = 1; foreach ($cf_value as $val) { $studfees[] = array( 'install_sno' => $sno, 'due_date' => $val->due_date, 'feeamount' => $val->amount, 'paid_amount' => "0", 'payment_status' => 'no', 'paid_date' => date('Y-m-d H:i:s') ); $sno++; } } } $stdentfee = array( 'student_id' => $stid, 'course_fee_id' => $course_fee_id, 'installment_type_id' => $installType, 'payment_details' => json_encode($studfees), 'created' => date('Y-m-d H:i:s', strtotime($this->nepali_current_date)), 'modified' => date('Y-m-d H:i:s', strtotime($this->nepali_current_date)) ); $this->db->insert('students_online_payments', $stdentfee); echo "Success!!Please use this studentId:" . $studentappId . " and the password you had given with application to login."; // //Set variables for paypal form $returnURL = base_url() . 'student/coursefees_paymentSuccess'; //payment success url $failURL = base_url() . 'student/paymentFail'; //payment fail url $notifyURL = base_url() . 'student/paypalipn'; //ipn url $this->paypal_lib->add_field('rm', 2); $this->paypal_lib->add_field('return', $returnURL); $this->paypal_lib->add_field('fail_return', $failURL); $this->paypal_lib->add_field('notify_url', $notifyURL); $this->paypal_lib->add_field('item_name', "Course Fee"); $this->paypal_lib->add_field('custom', $course_fee_id); $this->paypal_lib->add_field('item_number', $studentappId); $this->paypal_lib->add_field('amount', $amount); $this->paypal_lib->paypal_auto_form(); } } public function pay_from_student($encryptedInfo) { $decrypted = urlsafe_b64decode($encryptedInfo); $param = $array = explode(',', $decrypted); list($studentappId, $course_fee_id, $item, $amount, $s_no) = $param; $this->session->set_userdata('s_no', $s_no); $returnURL = base_url() . 'student/unpaid_fee_success'; $failURL = base_url() . 'student/paymentFail'; $notifyURL = base_url() . 'student/paypalipn'; $this->paypal_lib->add_field('rm', 2); $this->paypal_lib->add_field('return', $returnURL); $this->paypal_lib->add_field('fail_return', $failURL); $this->paypal_lib->add_field('notify_url', $notifyURL); $this->paypal_lib->add_field('item_name', $item); $this->paypal_lib->add_field('custom', $course_fee_id); $this->paypal_lib->add_field('item_number', $studentappId); $this->paypal_lib->add_field('amount', $amount); $this->paypal_lib->paypal_auto_form(); } public function coursefees_paymentSuccess() { $paidfee = array(); $raw_post_data = file_get_contents('php://input'); $raw_post_array = explode('&', $raw_post_data); $paypalInfo = array(); $flag = true; foreach ($raw_post_array as $keyval) { $keyval = explode('=', $keyval); if (count($keyval) == 2) $paypalInfo[$keyval[0]] = urldecode($keyval[1]); } if ($paypalInfo['payment_status'] == 'Completed') { $studentId = $paypalInfo['item_number']; $courseFeeId = $paypalInfo['custom']; $stud_id = $this->db->get_where('students', array('studentId' => $studentId))->row()->id; $studentfee = $this->db->get_where('students_online_payments', array('student_id' => $stud_id, 'course_fee_id' => $courseFeeId))->row(); $studentfee_arr = json_decode($studentfee->payment_details); $data['studentId'] = (!empty($studentId)) ? $studentId : $stud_id; $data['payment_for'] = $paypalInfo['item_name']; $data['txn_id'] = $paypalInfo["txn_id"]; $data['payment_amt'] = $paypalInfo["payment_gross"]; $data['currency_code'] = $paypalInfo["mc_currency"]; $data['status'] = $paypalInfo["payment_status"]; $data['payment_date'] = $paypalInfo["payment_date"]; $data['payment_recived_id'] = $paypalInfo["receiver_id"]; $data['course_fee_id'] = $courseFeeId; $data['payment_date'] = convert_ADdateTime_to_BSdateTime($this->nepaliDateObject, $data['payment_date']); foreach ($studentfee_arr as $k => $sf_val) { if ($sf_val->payment_status == 'no' && $flag == true) { $paidfee[] = array( 'install_sno' => $sf_val->install_sno, 'due_date' => $sf_val->due_date, 'feeamount' => $sf_val->feeamount, 'paid_amount' => $paypalInfo['payment_gross'], 'payment_status' => 'yes', 'paid_date' => date('Y-m-d H:i:s', strtotime($this->nepali_current_date)) ); $flag = false; } else { $paidfee[] = array( 'install_sno' => $sf_val->install_sno, 'due_date' => $sf_val->due_date, 'feeamount' => $sf_val->feeamount, 'paid_amount' => $sf_val->paid_amount, 'payment_status' => $sf_val->payment_status, 'paid_date' => $sf_val->paid_date ); } } $payment_details = array('payment_details' => json_encode($paidfee)); if (!empty($payment_details)) { $payment_details['modified'] = $this->nepali_current_date; $this->db->where(array('student_id' => $stud_id, 'course_fee_id' => $courseFeeId)); $this->db->update('students_online_payments', $payment_details); $this->mail_Send_Fees_Approved($stud_id, $courseFeeId); } $rst = $this->Student_model->storefeeTransaction($data); $this->session->set_flashdata('success', 'Payment Success'); } else { $this->session->set_flashdata('danger', 'Payment Failed'); } if (isset($_SESSION['s_no'])) { $_SESSION['s_no'] = null; redirect(base_url() . 'student/my-payments'); } redirect(base_url() . 'Student'); } /* [payer_email] => sb-pndsf8465536@personal.example.com [payer_id] => SVJ97L4ZBX4BY [payer_status] => VERIFIED [first_name] => John [last_name] => Doe [address_name] => John Doe [address_street] => Flat no. 507 Wing A Raheja Residency [address_city] => Mumbai [address_state] => Maharashtra [address_country_code] => IN [address_zip] => 400097 [residence_country] => IN [txn_id] => 7X442182MW3678513 [mc_currency] => USD [mc_fee] => 107.78 [mc_gross] => 2150.00 [protection_eligibility] => ELIGIBLE [payment_fee] => 107.78 [payment_gross] => 2150.00 [payment_status] => Completed [payment_type] => instant [handling_amount] => 0.00 [shipping] => 0.00 [item_name] => Coursefee [item_number] => ECS2021000002 [quantity] => 1 [txn_type] => web_accept [payment_date] => 2021-11-20T10:36:10Z [business] => sb-jfjqt8277261@business.example.com [receiver_id] => 6JPEJAGNJCGW8 [notify_version] => UNVERSIONED [custom] => 1 [verify_sign] => AWOxO3gj01NbyLVXRfVGrDWGA9VwA9uMONy61vZgWHJ0Ke2.-LTv9pTU }*/ public function convert() { $date = date('Y-m-d H:i:s'); $r = convert_ADdateTime_to_BSdateTime($this->nepaliDateObject, $date); test_view_array($r); } //shankar code of assignment start from here public function get_assignment() { if (isset($_SESSION['student_id'])) { $student_id = $_SESSION['student_id']; $asgn_id = $this->uri->segment(3); $m = $this->uri->segment(4); $year = $this->uri->segment(5); if ($m < 10) { $month = '0' . $m; } else { $month = $m; } $list_subjects = $this->Student_model->get_assignment_list($student_id, $asgn_id, $month, $year); // echo"
";
			// print_r($list_subjects);
			// exit();

			if (empty($asgn_id)) {
				$asgn_id = $list_subjects[0]['assignment_id'];
			}
			$std_folder = $student_id . '_' . $asgn_id;

			$remark_by_teacher = $this->Student_model->uploaded_assignent($student_id, $asgn_id);

			$file_extensions = array('jpg', 'png', 'jpeg');
			$img = array();
			if (is_dir("student_assignment/" . $std_folder . '/')) {
				$files = scandir("student_assignment/" . $std_folder . '/');
				for ($i = 0; $i < count($files); $i++) {
					if ($files[$i] != '.' && $files[$i] != '..') {
						// file name
						// echo "File Name -> $files[$i]
"; //get file extension $file = pathinfo($files[$i]); $extension = $file['extension']; // echo "file extension $extension
"; if (in_array($extension, $file_extensions)) { $img[$i] = "student_assignment/$std_folder/$files[$i]"; } } } } $result = array(); $result['subject'] = $list_subjects; $result['remark_by_teacher'] = $remark_by_teacher; $result['images'] = $img ? $img : ''; if (empty($result['subject']) and empty($result['remark_by_teacher']) and empty($result['images'])) { echo 0; } else { echo json_encode($result); } } else { redirect(base_url() . 'Student'); } } public function get_assignment_list() { if (isset($_SESSION['student_id'])) { $student_id = $_SESSION['student_id']; $m = $this->uri->segment(3); $year = $this->uri->segment(4); if ($m < 10) { $month = '0' . $m; } else { $month = $m; } $data['list_subjects'] = $this->Student_model->get_assignment_list($student_id, '', $month, $year); $list_subjects = array(); foreach ($data['list_subjects'] as $key => $value) { $assignmentData = $this->Student_model->uploaded_assignent($student_id, $value['assignment_id']); if ($assignmentData) { array_push($list_subjects, array( 'assignment_id' => $value['assignment_id'], 'classroom_id' => $value['classroom_id'], 'teacher_id' => $value['teacher_id'], 'subject_id' => $value['subject_id'], 'title' => $value['title'], 'remark' => $value['remark'], 'due_date' => $value['due_date'], 'teacher_name' => $value['teacher_name'], 'subject_name' => $value['subject_name'], 'subject_icon' => $value['subject_icon'], 'flag' => $assignmentData[0]['Flag'], 'status' => 1 )); } else { array_push($list_subjects, array( 'assignment_id' => $value['assignment_id'], 'classroom_id' => $value['classroom_id'], 'teacher_id' => $value['teacher_id'], 'subject_id' => $value['subject_id'], 'title' => $value['title'], 'remark' => $value['remark'], 'due_date' => $value['due_date'], 'teacher_name' => $value['teacher_name'], 'subject_name' => $value['subject_name'], 'subject_icon' => $value['subject_icon'], 'status' => 0 )); } } echo json_encode($list_subjects); } else { redirect(base_url() . 'Student'); } } public function assignment_image() { if (isset($_SESSION['student_id'])) { $student_id = $_SESSION['student_id']; $asgn_id = $this->input->post('asgn_id'); $std_folder = $student_id . '_' . $asgn_id; if (!is_dir('student_assignment')) { mkdir('./student_assignment', 0777, true); } if (!is_dir('student_assignment/' . $std_folder)) { mkdir('./student_assignment/' . $std_folder, 0777, true); } $check_file = glob('./student_assignment/' . $std_folder . '/*'); foreach ($check_file as $delete_file) { // iterate files if (is_file($delete_file)) { unlink($delete_file); // delete file } } $das = array(); if (isset($_FILES["images"]["name"]) && !empty($_FILES["images"]["name"])) { $output = ''; $config['upload_path'] = './student_assignment/' . $std_folder; $config['allowed_types'] = 'gif|jpg|png|jpeg|jfif|jiff'; $this->load->library('upload', $config); $this->upload->initialize($config); //initialize upload library for ($count = 0; $count < count($_FILES["images"]["name"]); $count++) { $_FILES["file"]["name"] = $_FILES["images"]["name"][$count]; $_FILES["file"]["type"] = $_FILES["images"]["type"][$count]; $_FILES["file"]["tmp_name"] = $_FILES["images"]["tmp_name"][$count]; $_FILES["file"]["error"] = $_FILES["images"]["error"][$count]; $_FILES["file"]["size"] = $_FILES["images"]["size"][$count]; if ($this->upload->do_upload('file')) { $data = $this->upload->data(); $das[$count] = base_url() . 'student_assignment/' . $std_folder . '/' . $data["file_name"]; } } } if ($das) { $data = array( 'assignment_id' => $asgn_id, 'student_id' => $student_id, 'Path' => $std_folder, 'remark' => '', 'Flag' => 0 ); $stid = $this->Student_model->upload_assignment($data); } echo json_encode($das); } } function assignment_class_submit() { if (isset($_SESSION['student_id'])) { $student_id = $_SESSION['student_id']; $asgn_id = $this->uri->segment(3); $asgn_data = array( 'assignment_id' => $asgn_id, 'student_id' => $student_id, 'uploaded_date' => date('Y-m-d', strtotime($this->nepali_current_date)), 'Flag' => 2 ); $stid = $this->Student_model->upload_assignment_submit($asgn_data); echo $stid; } else { redirect(base_url() . 'Student'); } } function assignment_class_cancel() { if (isset($_SESSION['student_id'])) { $student_id = $_SESSION['student_id']; $asgn_id = $this->uri->segment(3); $stid = $this->Student_model->upload_assignment_cancel($asgn_id, $student_id); $std_folder = $student_id . '_' . $asgn_id; if (!is_dir('student_assignment')) { mkdir('./student_assignment', 0777, true); } if (!is_dir('student_assignment/' . $std_folder)) { mkdir('./student_assignment/' . $std_folder, 0777, true); } $check_file = glob('./student_assignment/' . $std_folder . '/*'); foreach ($check_file as $delete_file) { // iterate files if (is_file($delete_file)) { unlink($delete_file); // delete file } } echo true; } else { redirect(base_url() . 'Student'); } } //shankar code end here // Notification Module - 13-10-2021 public function my_notifications() { if (isset($_SESSION['student_id'])) { $date = date('Y-m-d', strtotime($this->nepali_current_date)); $time = strtotime($date); $month = date("m", $time); $year = date("Y", $time); $currDate = $year . '-' . $month; $dateArr = array('month' => $month, 'year' => $year); $data['date'] = $currDate; $sql = $this->Student_model->getStudentNotification($_SESSION['student_id'], $dateArr); if (!$sql) { $this->load->helper('url'); $data['currentURL'] = current_url(); $data['menulist'] = $this->Student_model->get_studentMenus(); $this->load->view('student/header', $data); $this->load->view('student/my-notifications', $data); $this->load->view('student/footer'); } else { $data['result'] = $sql; $this->load->helper('url'); $data['currentURL'] = current_url(); $data['menulist'] = $this->Student_model->get_studentMenus(); $this->load->view('student/header', $data); $this->load->view('student/my-notifications', $data); $this->load->view('student/footer'); } } else { $this->load->helper('url'); $data['currentURL'] = current_url(); $data['menulist'] = $this->Student_model->get_studentMenus(); $this->load->view('student/header', $data); $this->load->view('student/my-notifications', $data); $this->load->view('student/footer'); } } public function ajax_displayNotificationByDate() { $json = $this->input->post('dateArr'); $data = json_decode($json); $dateArr = array('month' => $data[1], 'year' => $data[0]); $sql = $this->Student_model->getStudentNotification($_SESSION['student_id'], $dateArr); if ($sql == false) { $json = json_encode('failed'); echo $json; } else { $notifyArr = array(); // $count = 1; foreach ($sql as $row) { $originalDate = $row['created_at']; $newDate = date("d-m-Y", strtotime($originalDate)); $newTime = date("h:i", strtotime($originalDate)); $holder = ''; // if($count == 1) { // $holder = '
'; // } else { // $holder = '
'; // } $holder = '
'; $holder .= '
'; $holder .= '
'; $holder .= "
" . $row['notification_title'] . "
"; $holder .= '
'; $holder .= '
'; $holder .= '
'; $holder .= "

" . $row['description'] . "

"; $holder .= '
'; $holder .= '
'; $holder .= '
  • Date : ' . $newDate . '
  • '; $holder .= '
  • Date : ' . $newTime . '
  • '; $holder .= '
  • '; $holder .= '
    '; $holder .= '
    '; // $count++; array_push($notifyArr, $holder); } $json = json_encode($notifyArr); echo $json; } } public function ajax_getNotificationDescription() { $id = $this->input->post('notifid'); $sql = $this->Admin_model->getSingleNotification($id); if ($sql) { echo json_encode($sql); } else { echo json_encode('failed'); } } public function ajax_hide_notification_msg() { $id = $this->input->post('notifid'); $update_read = $this->Admin_model->notification_update_read($id); if (!$update_read) echo json_encode('failed'); else echo json_encode('success'); } // Notification Module - 13-10-2021 // Shankar Code Forgot_Password functionality Start from here 25-10-21 public function student_fp_password() { $data['school_info'] = $this->Admin_model->get_logo_from_setting(); $this->load->view('student/header', $data); $this->load->view('student/student-password-reset'); $this->load->view('student/footer'); } public function fp_check_is_emailid_valid() { $emailId = $_POST['email']; $query = $this->db->get_where('students', array('email' => $emailId)); if (!empty($query->row_array())) { echo ('success'); } else { echo ('failure'); } } public function send_email_reset_password() { if ($_POST) { $url = str_replace("send_email_reset_password", "create-password", current_url()); $emailId = $_POST['studentID']; $query = $this->db->get_where('students', array('email' => $emailId)); $student_name = $query->row_array(); $base_url = str_replace("index.php/student/send_email_reset_password", "", current_url()); $mail_url = urlsafe_b64encode($emailId); $replace_url = $url . '/' . $mail_url; $approve_data = array( "studname" => $student_name['name'], "reset_link" => $replace_url, "baseurl" => $base_url ); $approve_data['school_info'] = $this->Admin_model->get_logo_from_setting(); $msg = $this->load->view('reset_password_email', $approve_data, TRUE); $this->load->config('email'); $from = $this->config->item('smtp_user'); $this->email->from($from); $this->email->set_newline("\r\n"); $this->email->to($emailId); //$this->email->to('shankar@erisn.com'); $this->email->subject('Reset Password'); $this->email->message($msg); if ($this->email->send()) { $this->session->set_flashdata('success', 'A mail has been sent to your Email-Id, Please check and reset your password'); redirect(base_url() . 'student/reset-password'); } else { $this->session->set_flashdata('failed', "Mailer Error: " . $this->email->print_debugger()); redirect(base_url() . 'student/reset-password'); } } else { redirect(base_url() . 'Student', 'refresh'); } } public function student_create_password($emailId) { $decode_mail = urlsafe_b64decode($emailId); $query = $this->db->get_where('students', array('email' => $decode_mail)); if (!empty($query->row_array())) { $data['student_data'] = $query->row_array(); } else { $data['student_data'] = '0'; } $data['school_info'] = $this->Admin_model->get_logo_from_setting(); $this->load->view('student/header', $data); $this->load->view('student/student-new-password', $data); $this->load->view('student/footer'); } public function change_student_password() { if ($_POST) { $data = array( 'password' => md5($_POST['password']) ); $this->db->where('id', $_POST['student_id']); $this->db->where('email', $_POST['student_email']); $this->db->update('students', $data); $this->db->trans_complete(); if ($this->db->trans_status() === FALSE) { $this->session->set_flashdata('danger', str_replace('%s', 'Password', THE_ADD_ERROR_MSG)); } else { $this->session->set_flashdata('success', str_replace('%s', 'Password', THE_UPDATE_SUCCESS_MSG)); } redirect(base_url() . 'Student'); } else { redirect(base_url() . 'Student', 'refresh'); } } // Forgot_Password functionality ENd here 25-10-21 // Student's Attendance - 03-11-2021 - Afras Khan public function attendance() { if (!isset($_SESSION['student_id'])) redirect(base_url() . 'student'); if (!file_exists(APPPATH . 'views/student/attendance.php')) show_404(); $sql = "Select sb.student_id, sb.classroom_id, c.course_id as course_id, cs.subject_id as subject_id, s.subject_name as subject_name, s.subject_icon as icon from students std inner join student_batch sb on std.id = sb.student_id AND std.batch_id = sb.batch_id inner join classroom c on sb.classroom_id = c.id inner join course_subjects cs on c.course_id = cs.course_id inner join subject s on s.id = cs.subject_id WHERE std.id = '$_SESSION[student_id]'"; $data['subject_names'] = $this->Student_model->get_table_info('student_batch', '', $sql); // $sub_ids = array_column($data['subject_names'], 'subject_id'); $data['count'] = []; foreach ($data['subject_names'] as $key => $value) { $countSql = "SELECT student_id, count(*) as total_count, SUM(CASE when STATUS = 'present' then 1 else 0 end) AS present_count FROM `student_attendence` where student_id = '$_SESSION[student_id]' AND subject_id = '$value[subject_id]' AND classroom_id = '$value[classroom_id]'"; $data['count'][] = $this->db->query($countSql)->row_array(); } // test_view_array($data['subject_names']); $this->load->helper('url'); $data['currentURL'] = current_url(); $data['menulist'] = $this->Student_model->get_studentMenus(); $this->load->view('student/header', $data); $this->load->view('student/attendance'); $this->load->view('student/footer'); } public function view_attendance() { if (!isset($_SESSION['student_id'])) redirect(base_url() . 'student'); if (!file_exists(APPPATH . 'views/student/view_attendance.php')) show_404(); if (count($_POST) == 0) { $this->session->set_flashdata('failed', 'Please select one subject below to view its attendance'); redirect(base_url() . 'student/attendance'); } $data['classroom_id'] = $this->input->post('classroom_id'); $data['subject_id'] = $this->input->post('subject_id'); $student_id = $_SESSION['student_id']; $data['icon'] = $this->input->post('icon'); $total_count = $this->input->post('total_count'); $present_count = $this->input->post('present_count'); $data['total_present_count'] = $present_count . '/' . $total_count; $data['total_present_percentage'] = ($present_count / $total_count) * 100; $data['subject_name'] = $this->input->post('subject_name'); $month = date('m', strtotime($this->nepali_current_date)); $year = date('Y', strtotime($this->nepali_current_date)); $whereClause = array( 'student_id' => $_SESSION['student_id'], 'subject_id' => $data['subject_id'], 'classroom_id' => $data['classroom_id'], 'MONTH(attendence_date)' => $month, 'YEAR(attendence_date)' => $year ); $data['result'] = $this->Student_model->get_student_attendance($whereClause); $this->load->helper('url'); $data['currentURL'] = current_url(); $data['menulist'] = $this->Student_model->get_studentMenus(); $this->load->view('student/header', $data); $this->load->view('student/view_attendance'); $this->load->view('student/footer'); } public function ajax_get_attendance_by_month() { $whereClause = array( 'student_id' => $_SESSION['student_id'], 'subject_id' => $this->input->post('subId'), 'classroom_id' => $this->input->post('cId'), 'MONTH(attendence_date)' => $this->input->post('monthNum'), 'YEAR(attendence_date)' => $this->input->post('yearNum') ); $result = $this->Student_model->get_student_attendance($whereClause); if (empty($result)) { echo 'failed'; return; } $tableString = 'DateTimePresent (P)/ Absent (A)'; $totalCount = count($result); $presentCount = 0; foreach ($result as $key => $value) { $presentCount += $value['status'] == 'present' ? 1 : 0; $class_name = $value['status'] == 'present' ? 'att-present' : 'att-absent'; $attendance_key = $value['status'] == 'present' ? 'P' : 'A'; $tableString .= ' ' . $value["date"] . ' ' . date('g:i A', strtotime($value['time'])) . ' ' . $attendance_key . ''; } $tableString .= 'Total Days (Current Month)'; $tableString .= '' . $presentCount . '/' . $totalCount . ''; echo $tableString; } // Student's Attendance End - 03-11-2021 - Afras Khan // Student's Info - Afras Khan - 03-11-2021 public function view_info() { if (!isset($_SESSION['student_id'])) redirect(base_url() . 'student'); if (!file_exists(APPPATH . 'views/student/my-info.php')) show_404(); $data['result'] = $this->db->get_where('students', array('id' => $_SESSION['student_id']))->row_array(); $roll = $this->db->order_by('id', 'DESC')->get_where('student_batch', array('student_id' => $data['result']['id'], 'batch_id' => $data['result']['batch_id']))->row_array(); (!empty($roll)) ? $data['result']['roll_no'] = $roll['roll_no'] : 0; // test_view_array($data['result']); $this->load->helper('url'); $data['currentURL'] = current_url(); $data['menulist'] = $this->Student_model->get_studentMenus(); $this->load->view('student/header', $data); $this->load->view('student/my-info'); $this->load->view('student/footer'); } public function view_course() { if (!isset($_SESSION['student_id'])) redirect(base_url() . 'student'); if (!file_exists(APPPATH . 'views/student/my-info.php')) show_404(); $data['student'] = $this->db->get_where('students', array('id' => $_SESSION['student_id']))->row_array(); $sql = $this->db->order_by('id', 'DESC')->get_where('student_batch', array('student_id' => $_SESSION['student_id']))->row_array(); if (empty($sql)) { $data['student_exist'] = false; } else { $data['student_exist'] = true; $studentbatch = $this->db->get_where('batch', array('id' => $sql['batch_id']))->row_array(); $query = 'SELECT crs.course_name,c.classroom_name, s.subject_name from classroom c inner join course crs on crs.id = c.course_id inner join course_subjects cs on c.course_id = cs.course_id inner join subject s on s.id = cs.subject_id WHERE c.id =' . $sql["classroom_id"] . ''; $data['course_subject'] = $this->Student_model->get_table_info('classroom', '', $query); // test_view_array($data['course_subject']); $fromMonth = date("M", strtotime($studentbatch['b_from'])); $toMonth = date("M", strtotime($studentbatch['b_end'])); $fromYear = date("y", strtotime($studentbatch['b_from'])); $toYear = date("y", strtotime($studentbatch['b_end'])); $data['startEndDate'] = $fromMonth . ' ' . $fromYear . ' to ' . $toMonth . ' ' . $toYear; } $this->load->helper('url'); $data['currentURL'] = current_url(); $data['menulist'] = $this->Student_model->get_studentMenus(); $this->load->view('student/header', $data); $this->load->view('student/my-course'); $this->load->view('student/footer'); } public function ajax_update_student_password() { $pwd = md5($this->input->post('pwd')); $data = array( 'password' => $pwd ); $this->db->trans_start(); $this->db->where('id', $_SESSION['student_id']); $this->db->update('students', $data); $this->db->trans_complete(); if ($this->db->trans_status() === FALSE) { echo 'failed'; } else { echo 'success'; } } public function view_payments() { if (!isset($_SESSION['student_id'])) redirect(base_url() . 'student'); if (!file_exists(APPPATH . 'views/student/my-payments.php')) show_404(); //Student Info $data['student_info_array'] = $this->Admin_model->get_table_info_row('students', array('id' => $_SESSION['student_id'])); // ALREADY PAID INSTALLMENTS $sql = "Select sop.*,ft.feetype_name, s.StudentId as student_code, pt.payment_type_name, cf.amount from students_online_payments sop inner join payment_types pt on pt.id = sop.installment_type_id inner join course_fees cf on cf.id = sop.course_fee_id inner join students s on sop.student_id = s.id inner join fee_types ft on ft.id = cf.fees_type WHERE sop.student_id = '$_SESSION[student_id]' AND ft.id != 3 AND ft.id != 4 AND cf.course_id = s.course AND cf.batch_id = s.batch_id"; $data['payments'] = $this->Admin_model->get_table_info('students_online_payments', '', $sql); if (!empty($data['payments'])) { foreach ($data['payments'] as $index => $ele) { $student_installments = json_decode($ele['payment_details']); $encryptedString = $ele['student_code'] . ',' . $ele['course_fee_id'] . ',' . $ele['feetype_name']; foreach ($student_installments as $key => $value) { $due_date = date('Y-m-d', strtotime($value->due_date)); $current_date = date('Y-m-d', strtotime($this->nepali_current_date)); if ($value->payment_status == 'no') { $encryptedString .= ',' . $value->feeamount . ',' . $value->install_sno . ',' . 1; break; } } $data['payments'][$index]['encrypted'] = urlsafe_b64encode($encryptedString); // Studentid,CourseFee,Feetype,Amount,S_no } } // Not Paid Fees $not_paid_query = "Select s.studentId,cf.amount, ft.feetype_name, i.course_fee_id, i.due_amount_date from installment i inner JOIN course_fees cf on cf.id = i.course_fee_id inner join students s on s.id = $_SESSION[student_id] inner join fee_types ft on ft.id = cf.fees_type WHERE cf.batch_id = s.batch_id AND cf.course_id = s.course AND ft.id != 3 AND ft.id != 4 AND cf.id NOT IN (SELECT course_fee_id from students_online_payments WHERE student_id = $_SESSION[student_id])"; $not_paid_installments = $this->Student_model->get_table_info('installment', '', $not_paid_query); foreach ($not_paid_installments as $key => $value) { $decoded = json_decode($value['due_amount_date']); $count = count((array)$decoded); $not_paid_installments[$key]['single_payment'] = $count == 1 ? 'Yes' : 'No'; $encrypted = $value['studentId'] . ',' . $value['course_fee_id'] . ',' . $value['feetype_name']; $flag = true; foreach ($decoded as $index => $ele) { foreach ($ele as $key2 => $val) { $due_date = date('Y-m-d', strtotime($val->due_date)); $current_date = date('Y-m-d', strtotime($this->nepali_current_date)); if ($flag) { $encrypted .= ',' . $val->amount . ',' . $key2 . ',' . 1; $flag = false; break; } } break; } $not_paid_installments[$key]['encrypted'] = urlsafe_b64encode($encrypted); if ($count > 1) { $decoded_installment = array_keys((array)json_decode($value['due_amount_date'])); $feetype_clause = ''; foreach ($decoded_installment as $index => $ele) { if ($index == 0) { $feetype_clause .= "id = '$ele'"; } else { $feetype_clause .= " or id = '$ele'"; } } $fee_types = $this->Student_model->get_table_info('payment_types', $feetype_clause, '', 'ASC'); $html = ''; $not_paid_installments[$key]['dropdown'] = $html; } // If Count > 0 } $data['not_paid_fees'] = $not_paid_installments; // dd($data['not_paid_fees']); // Student Code - Course_fee_id - Feetype-Name - Fee-Amount - S.NO $query = "Select sf.*,cf.fee_values from student_fee_online_transactions sf inner join students s on sf.studentId = s.studentId inner join course_fees cf on cf.id = sf.course_fee_id WHERE s.id = '$_SESSION[student_id]'"; $data['transactions'] = $this->Admin_model->get_table_info('student_fee_online_transactions', '', $query); $this->load->helper('url'); $data['currentURL'] = current_url(); $data['menulist'] = $this->Student_model->get_studentMenus(); $this->load->view('student/header', $data); $this->load->view('student/my-payments'); $this->load->view('student/footer'); } public function ajax_get_fee_installments() { $course_fee_id = $this->input->post('course_fee_id'); $installment_key = $this->input->post('installment_type'); $sql_item_name = "Select f.feetype_name from fee_types f inner join course_fees cf on cf.fees_type = f.id WHERE cf.id = $course_fee_id"; $fee_type_col = $this->Student_model->get_general_row_details('fee_types', '', $sql_item_name); $fee_type_name = $fee_type_col['feetype_name']; $whereClause = "Select cf.id,cf.amount, i.id as installment_id, i.due_amount_date from course_fees cf inner join installment i on cf.id = i.course_fee_id WHERE cf.id = '$course_fee_id'"; $selected_installment = $query = $this->Student_model->get_general_row_details('course_fees', '', $whereClause); if (!empty($query)) { // decoding due_amount_date from installments $selected_installment['due_amount_date'] = (array)json_decode($query['due_amount_date']); $first_due_amount = ''; $s_no_new = ''; $signal = true; // filtering the array with user selected option with $installment_key foreach ($selected_installment['due_amount_date'] as $key => $value) { if ($key != $installment_key) { unset($selected_installment['due_amount_date'][$key]); } else { foreach ($value as $index => $ele) { $due_date = date('Y-m-d', strtotime($ele->due_date)); $current_date = date('Y-m-d', strtotime($this->nepali_current_date)); if ($signal) { $first_due_amount = $ele->amount; $s_no_new = $index + 1; $signal = false; } $selected_installment['due_amount_date'][$key][$index]->payment_status = 'no'; } } } // test_view_array($decoded); // In the above forloop, Check the duedate is greater than current date. and concatinate that index value + 1 to encrypted variable instead of 1. $data['installment'] = $selected_installment; // Re arranging keys of $data['installment']['due_amount_date'] below $data['installment']['due_amount_date'] = array_values($data['installment']['due_amount_date']); $student_identification = $this->db->get_where('students', array('id' => $_SESSION['student_id']))->row()->studentId; $code_encryption = $student_identification . ',' . $course_fee_id . ',' . $fee_type_name . ',' . $first_due_amount . ',' . $installment_key . ',' . $s_no_new; // Studentid,CourseFee,Feetype,Amount,S_no $encrypted = urlsafe_b64encode($code_encryption); $html = ''; } echo $html; } else { echo 'failed'; } } public function pay_unpaid_fees($encrypt) { $decrypted = urlsafe_b64decode($encrypt); $param = $array = explode(',', $decrypted); list($studentappId, $course_fee_id, $item, $amount, $installment_key, $s_no) = $param; $this->session->set_userdata('s_no', $s_no); $returnURL = base_url() . 'student/unpaid_fee_success'; $failURL = base_url() . 'student/paymentFail'; $notifyURL = base_url() . 'student/paypalipn'; $this->paypal_lib->add_field('rm', 2); $this->paypal_lib->add_field('return', $returnURL); $this->paypal_lib->add_field('fail_return', $failURL); $this->paypal_lib->add_field('notify_url', $notifyURL); $this->paypal_lib->add_field('item_name', $item); $this->paypal_lib->add_field('custom', $course_fee_id); $this->paypal_lib->add_field('item_number', $studentappId); $this->paypal_lib->add_field('amount', $amount); $this->paypal_lib->add_field('on1', $installment_key); $this->paypal_lib->add_field('on2', $s_no); $this->paypal_lib->paypal_auto_form(); } public function unpaid_fee_success() { $raw_post_data = file_get_contents('php://input'); $raw_post_array = explode('&', $raw_post_data); $paypalInfo = array(); $flag = true; foreach ($raw_post_array as $keyval) { $keyval = explode('=', $keyval); if (count($keyval) == 2) $paypalInfo[$keyval[0]] = urldecode($keyval[1]); } if ($paypalInfo['payment_status'] == 'Completed') { $studentId = $paypalInfo['item_number']; $item_type = $paypalInfo['item_name']; $courseFeeId = $paypalInfo['custom']; $stud_id = $this->db->get_where('students', array('studentId' => $studentId))->row()->id; $data['studentId'] = (!empty($studentId)) ? $studentId : $stud_id; $data['payment_for'] = $paypalInfo['item_name']; $data['txn_id'] = $paypalInfo["txn_id"]; $data['payment_amt'] = $paypalInfo["payment_gross"]; $data['currency_code'] = $paypalInfo["mc_currency"]; $data['status'] = $paypalInfo["payment_status"]; $data['payment_date'] = $paypalInfo["payment_date"]; $data['payment_recived_id'] = $paypalInfo["receiver_id"]; $data['course_fee_id'] = $courseFeeId; $installment_key = $paypalInfo['option_name1']; $s_no = $paypalInfo['option_name2']; $data['payment_date'] = convert_ADdateTime_to_BSdateTime($this->nepaliDateObject, $data['payment_date']); $rst = $this->Student_model->storefeeTransaction($data); $check_id_record_exist = $this->db->get_where('students_online_payments', array('student_id' => $stud_id, 'course_fee_id' => $courseFeeId))->row(); if ($check_id_record_exist) { $payment_installments = $check_id_record_exist->payment_details; $payment_row_id = $check_id_record_exist->id; $flag = true; $installment_data = (array)json_decode($payment_installments); foreach ($installment_data as $key => $value) { if ($value->payment_status == 'no' && $value->install_sno == $installment_key) { $installment_data[$key]->paid_amount = $paypalInfo['payment_gross']; $installment_data[$key]->payment_status = 'yes'; $installment_data[$key]->paid_date = $this->nepali_current_date; $flag = false; } } $update_data['payment_details'] = json_encode($installment_data); $update_data['modified'] = date('Y-m-d H:i:s', strtotime($this->nepali_current_date)); $update_payment = $this->Student_model->add_edit_table('students_online_payments', $payment_row_id, $update_data); if (!$update_payment) { $this->session->set_flashdata('failed', "Fees could not be paid, Please try again later"); redirect(base_url() . "student/my-payments"); } else { $updated_installments = $this->db->get_where('students_online_payments', array('id' => $payment_row_id))->row_array(); $response['status'] = true; $response['data'] = $updated_installments; $response['student_code'] = $studentId; $response['item'] = $item_type; $response['installment_key'] = $installment_key; //send mail start $this->mail_Send_Fees_Approved($stud_id, $courseFeeId); //send mail end $this->session->set_flashdata('success', "You have paid the fees successfully"); redirect(base_url() . "student/my-payments"); } } else { $installment_data_query = $this->db->get_where('installment', array('course_fee_id' => $courseFeeId))->row()->due_amount_date; $installment_data = (array)json_decode($installment_data_query); $flag = true; $to_be_inserted = array(); foreach ($installment_data as $key => $value) { if ($key != $installment_key) { unset($installment_data[$key]); } else { foreach ($value as $index => $ele) { if ($flag && ($s_no == $index + 1)) { $to_be_inserted[] = array( 'install_sno' => $index + 1, 'due_date' => $ele->due_date, 'feeamount' => $ele->amount, 'paid_amount' => $paypalInfo['payment_gross'], 'payment_status' => 'yes', 'paid_date' => date('Y-m-d H:i:s', strtotime($this->nepali_current_date)) ); $flag = false; } else { $to_be_inserted[] = array( 'install_sno' => $index + 1, 'due_date' => $ele->due_date, 'feeamount' => $ele->amount, 'paid_amount' => "0", 'payment_status' => 'no', 'paid_date' => '' ); } } } } $stdentfee = array( 'student_id' => $stud_id, 'course_fee_id' => $courseFeeId, 'installment_type_id' => $installment_key, 'payment_details' => json_encode($to_be_inserted), 'created' => $this->nepali_current_date, 'modified' => $this->nepali_current_date ); $insert_payment = $this->db->insert('students_online_payments', $stdentfee); if (!$insert_payment) { $this->session->set_flashdata('failed', "Fees could not be paid, Please try again later"); redirect(base_url() . 'student/my-payments'); } else { //send mail start $this->mail_Send_Fees_Approved($stud_id, $courseFeeId); //send mail end $this->session->set_flashdata('success', "You have paid the fees successfully"); redirect(base_url() . 'student/my-payments'); } } } } // Student's Info End - Afras Khan - 03-11-2021 // Calendarn - 08-11-2021 - Afras Khan public function my_calendar() { if (isset($_SESSION['student_id'])) { $this->load->helper('url'); $data['currentURL'] = current_url(); $data['menulist'] = $this->Student_model->get_studentMenus(); $data['curr_date'] = $current_date = date('Y-m-d', strtotime($this->nepali_current_date)); $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']; $presentDay = strtolower(date('l', strtotime($currConvDate))); // $presentDay = strtolower(date('l', strtotime($this->nepali_current_date))); $sql = "Select sd.*, sb.classroom_id, c.course_id as course_id, cs.subject_id as subject_id, s.subject_name as subject_name, s.subject_icon as icon from students std inner join student_batch sb on std.id = sb.student_id AND std.batch_id = sb.batch_id inner join classroom c on sb.classroom_id = c.id inner join course_subjects cs on c.course_id = cs.course_id inner join subject s on s.id = cs.subject_id inner join session_details sd on sd.subject_id = s.id inner join classroom_session cse on cse.id = sd.session_id AND cse.classroom_id = c.id WHERE std.id = '$_SESSION[student_id]' AND (sb.student_id = std.id AND std.batch_id = sb.batch_id AND sb.batch_id = cse.batch_id) AND LOWER(sd.day) = '$presentDay' AND ('$current_date' between cse.start_date and cse.end_date) AND cse.is_active = 'yes' ORDER BY sd.start"; $data['subject_names'] = $this->Student_model->get_table_info('student_batch', '', $sql); if (!empty($data['subject_names'])) { $teachersArray = array(); $teacherInfo = ''; foreach ($data['subject_names'] as $key => $value) { if ($key == 0) { $teacherInfo .= "(cts.classroom_id = '$value[classroom_id]' AND cts.subject_id = '$value[subject_id]')"; } else { $teacherInfo .= " OR (cts.classroom_id = '$value[classroom_id]' AND cts.subject_id = '$value[subject_id]')"; } } $teacherInfoQuery = "Select cts.subject_id as SubjectId, t.id as Id, t.teacherId as TeacherId, t.teacher_name as TeacherName from teacher t inner join classroom_teacher_subject cts on t.id = cts.teacher_id where $teacherInfo"; $teachersArray = $this->Student_model->get_table_info('teacher', '', $teacherInfoQuery); foreach ($teachersArray as $key => $value) { foreach ($data['subject_names'] as $key2 => $value2) { if ($value['SubjectId'] == $value2['subject_id']) { $data['subject_names'][$key2]['teacher_name'] = $value['TeacherName']; } } } } else { $data['subject_names'] = null; } $this->load->view('student/header', $data); $this->load->view('student/my-calendar'); $this->load->view('student/footer'); } else { redirect(base_url() . 'Student'); } } public function ajax_get_sessions_from_date() { $date = $this->input->post('dateval'); $date = date('Y-m-d', strtotime(str_replace('-', '/', $date))); $nowMonth = date('m', strtotime($date)); $nowYear = date('Y', strtotime($date)); $nowDay = date('d', strtotime($date)); $obj = new NepaliDate(); // Convert BS to AD. $nowArr = $obj->convertBsToAd($nowYear, $nowMonth, $nowDay); $currConvDate = $nowArr['year'] . '-' . $nowArr['month'] . '-' . $nowArr['day']; $day = strtolower(date('l', strtotime($currConvDate))); // $day = strtolower(date('l', strtotime($date))); $sql = "Select sd.*, sb.classroom_id, c.course_id as course_id, cs.subject_id as subject_id, s.subject_name as subject_name, s.subject_icon as icon from students std inner join student_batch sb on std.id = sb.student_id AND std.batch_id = sb.batch_id inner join classroom c on sb.classroom_id = c.id inner join course_subjects cs on c.course_id = cs.course_id inner join subject s on s.id = cs.subject_id inner join session_details sd on sd.subject_id = s.id inner join classroom_session cse on cse.id = sd.session_id AND cse.classroom_id = c.id WHERE (std.id = '$_SESSION[student_id]' AND sb.batch_id = cse.batch_id) AND LOWER(sd.day) = '$day' AND (DATE('$date') between cse.start_date and cse.end_date) AND cse.is_active = 'yes' ORDER BY sd.start"; $data = $this->Student_model->get_table_info('student_batch', '', $sql); // echo $this->db->last_query(); if (!empty($data)) { $teacherInfo = ''; foreach ($data as $key => $value) { if ($key == 0) { $teacherInfo .= "(cts.classroom_id = '$value[classroom_id]' AND cts.subject_id = '$value[subject_id]')"; } else { $teacherInfo .= " OR (cts.classroom_id = '$value[classroom_id]' AND cts.subject_id = '$value[subject_id]')"; } } $teacherInfoQuery = "Select cts.subject_id as SubjectId, t.id as Id, t.teacherId as TeacherId, t.teacher_name as TeacherName from teacher t inner join classroom_teacher_subject cts on t.id = cts.teacher_id where $teacherInfo"; $teachersArray = $this->Student_model->get_table_info('teacher', '', $teacherInfoQuery); foreach ($teachersArray as $key => $value) { foreach ($data as $key2 => $value2) { if ($value['SubjectId'] == $value2['subject_id']) { $data[$key2]['teacher_name'] = $value['TeacherName']; } } } $sessions = '
    '; $sessions .= '

    ' . date("d/m/Y", strtotime($date)) . '

    '; $sessions .= '
    '; $sessions .= '
    '; foreach ($data as $key => $value) { $pday = date("l"); $sessionDay = $value['day']; $s = $value['start']; // $s = "15:03"; $p = date("H:i"); $mins = (strtotime($s) - strtotime($p)) / 60; $duration = $value['duration']; $end = date('H:i', strtotime($s) + ($duration * 60)); $now = new Datetime("now"); $begintime = new DateTime($s); $endtime = new DateTime($end); $teacher_info = array_key_exists('teacher_name', $value) ? 'By: ' . $value["teacher_name"] . '' : 'Teacher not assigned'; $sessions .= '
    '; $sessions .= '
    '; $sessions .= '
    '; $sessions .= '

    ' . $value["subject_name"] . '

    '; $sessions .= '

    ' . $teacher_info . '

    '; $sessions .= '
    '; $sessions .= '
    '; if (strtolower($pday) === strtolower($sessionDay) && ($now >= $begintime && $now <= $endtime) && $date == date('Y-m-d')) { $sessions .= ''; } else { $sessions .= '' . date('h:i a', strtotime($value['start'])) . ''; } $sessions .= '
    '; } echo $sessions; } else { echo 'failed'; } } // Calendar End - 08-11-2021 - Afras Khan // My Classes - 09-11-2021 - Afras Khan public function my_classes() { if (!isset($_SESSION['student_id'])) redirect(base_url() . 'student'); if (!file_exists(APPPATH . 'views/student/my-classes.php')) show_404(); $this->load->helper('url'); $data['currentURL'] = current_url(); $data['menulist'] = $this->Student_model->get_studentMenus(); $data['subject_names'] = $this->my_classes_Function(); $this->load->view('student/header', $data); $this->load->view('student/my-classes'); $this->load->view('student/footer'); } public function my_classes_Function() { $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']; $presentDay = strtolower(date('l', strtotime(date('Y-m-d H:i:s')))); // $presentDay = strtolower(date('l', strtotime($this->nepali_current_date))); $current_date = date('Y-m-d', strtotime($this->nepali_current_date)); $sql = "Select sd.*, sb.classroom_id, c.course_id as course_id, cs.subject_id as subject_id, s.subject_name as subject_name, s.subject_icon as icon from students std inner join student_batch sb on std.id = sb.student_id AND std.batch_id = sb.batch_id inner join classroom c on sb.classroom_id = c.id inner join course_subjects cs on c.course_id = cs.course_id inner join subject s on s.id = cs.subject_id inner join session_details sd on sd.subject_id = cs.subject_id inner join classroom_session cse on cse.id = sd.session_id AND cse.classroom_id = c.id WHERE (std.id = '$_SESSION[student_id]' AND sb.batch_id = cse.batch_id) AND LOWER(sd.day) = '$presentDay' AND ('$current_date' between cse.start_date and cse.end_date) AND cse.is_active = 'yes' ORDER BY sd.start ASC"; $data['subject_names'] = $this->Student_model->get_table_info('student_batch', '', $sql); // dd($data['subject_names']); if (!empty($data['subject_names'])) { $teachersArray = array(); $teacherInfo = ''; foreach ($data['subject_names'] as $key => $value) { if ($key == 0) { $teacherInfo .= "(cts.classroom_id = '$value[classroom_id]' AND cts.subject_id = '$value[subject_id]')"; } else { $teacherInfo .= " OR (cts.classroom_id = '$value[classroom_id]' AND cts.subject_id = '$value[subject_id]')"; } } $teacherInfoQuery = "Select cts.subject_id as SubjectId, t.id as Id,t.photo, t.teacherId as TeacherId, t.teacher_name as TeacherName from teacher t inner join classroom_teacher_subject cts on t.id = cts.teacher_id where $teacherInfo"; $teachersArray = $this->Student_model->get_table_info('teacher', '', $teacherInfoQuery); // echo $this->db->last_query(); // test_view_array($teachersArray); foreach ($teachersArray as $key => $value) { foreach ($data['subject_names'] as $key2 => $value2) { if ($value['SubjectId'] == $value2['subject_id']) { $data['subject_names'][$key2]['teacher_name'] = $value['TeacherName']; $data['subject_names'][$key2]['teacher_image'] = $value['photo']; } } } foreach ($data['subject_names'] as $key => $value) { $sessionDay = $value['day']; $s = $value['start']; $pday = date("l"); // $s = "15:03"; $p = date("H:i"); $mins = (strtotime($s) - strtotime($p)) / 60; $duration = $value['duration']; $end = date('H:i', strtotime($s) + ($duration * 60)); $now = new Datetime("now"); $begintime = new DateTime($s); $endtime = new DateTime($end); if (strtolower($pday) === strtolower($sessionDay) && ($now >= $begintime && $now <= $endtime)) { $class_session = 'Active'; } else { $class_session = 'InActive'; } $class_time = date('h:i A', strtotime($value['start'])) . ' - ' . date('h:i A', strtotime($end)); $data['subject_names'][$key]['class_time'] = $class_time; $data['subject_names'][$key]['class_session'] = $class_session; } } else { $data['subject_names'] = null; } return $data['subject_names']; } // My Classes End - 09-11-2021 - Afras Khan // to get application fee by shivakumar start public function get_applicationfee() { $courseId = $_REQUEST['course_id']; $batchId = $_REQUEST['batch_id']; $feesType = 1; // In feesType table - 1st vlaue should be Application Fee $sql = "SELECT * FROM `course_fees` WHERE batch_id=$batchId AND course_id=$courseId AND fees_type=$feesType AND due_date >= DATE(now())"; $result = $this->Student_model->get_query_row($sql); echo $rst = ($result != '') ? json_encode($result) : 0; } public function library() { if (!isset($_SESSION['student_id'])) redirect(base_url() . 'student'); if (!file_exists(APPPATH . 'views/student/library.php')) show_404(); $data['currentURL'] = current_url(); $data['menulist'] = $this->Student_model->get_studentMenus(); $studentID = $this->db->get_where("students", array('id' => $_SESSION['student_id']))->row()->studentId; $CI = &get_instance(); $ecDB = $CI->load->database('erisnClassroom_lms', TRUE); $gsData = $ecDB->query("SELECT * FROM lms_general_settings")->row_array(); if (isset($gsData) && !empty($gsData)) { $data['general_setting'] = $gsData; } if (!empty($_POST['searchfilter']) == 'search_filter') { $from_date = (isset($_POST['start_date']) && !empty($_POST['start_date'])) ? date('Y-m-d', strtotime($_POST['start_date'])) : date('Y-m-1', strtotime($this->nepali_current_date)); $enddate = (isset($_POST['end_date']) && !empty($_POST['end_date'])) ? date('Y-m-d', strtotime($_POST['end_date'])) : date('Y-m-d', strtotime($this->nepali_current_date)); $status = (isset($_POST['status']) && !empty($_POST['status'])) ? $_POST['status'] : ''; $q = ''; if ($from_date != '' && $enddate != '') $q .= "AND lbt.issued_date BETWEEN '$from_date' AND '$enddate'"; $data['start_date'] = $from_date; $data['end_date'] = $enddate; if ($status != '') $data['status'] = $status; $data['book_data'] = $ecDB->query("SELECT lbt.*,lb.title,lb.fine_per_day as fine FROM lms_book_transactions lbt JOIN lms_books lb ON lbt.book_id=lb.id WHERE lbt.eu_unique_id='$studentID' $q")->result_array(); } else { $data['book_data'] = $ecDB->query("SELECT lbt.*,lb.title,lb.fine_per_day as fine FROM lms_book_transactions lbt JOIN lms_books lb ON lbt.book_id=lb.id WHERE lbt.eu_unique_id='$studentID'")->result_array(); } $data['todayDate'] = date('Y-m-d', strtotime($this->nepali_current_date)); $this->load->view('student/header', $data); $this->load->view('student/library'); $this->load->view('student/footer'); } // to get application fee by shivakumar end // Hostel - Afras Khan - 09/12/2021 public function hostel() { if (!isset($_SESSION['student_id'])) redirect(base_url() . 'student'); if (!file_exists(APPPATH . 'views/student/hostel.php')) show_404(); $data['currentURL'] = current_url(); $data['menulist'] = $this->Student_model->get_studentMenus(); $data['student_id'] = $student_id = $_SESSION['student_id']; $course_query = "Select b.id as batch_id,b.b_name,c.id as course_id,c.course_name from batch b INNER JOIN students s on s.batch_id = b.id INNER JOIN course c on c.id = s.course WHERE s.id = $student_id"; $data['course_details'] = $course_details = $this->Admin_model->get_table_info_row('students', '', $course_query); $hostel_query = "Select IFNULL(c.amount,'-') as amount,hp.plan_name as fee_values from hostel_plans hp LEFT JOIN course_fees c on hp.id = c.hostel_plan_id INNER JOIN students s on s.batch_id = c.batch_id AND c.batch_id = $course_details[batch_id] AND c.course_id = $course_details[course_id] AND c.fees_type = 3 AND c.course_id = s.course GROUP BY c.id"; $data['hostel_details'] = $hostel_details = $this->Admin_model->get_table_info('course_fees', '', $hostel_query); // dd($hostel_details); $this->load->view('student/header', $data); $this->load->view('student/hostel'); $this->load->view('student/footer'); } public function hostel_fee() { if (!isset($_SESSION['student_id'])) redirect(base_url() . 'student'); if (!file_exists(APPPATH . 'views/student/hostel-fee.php')) show_404(); $data['currentURL'] = current_url(); $data['menulist'] = $this->Student_model->get_studentMenus(); $batch_id = $this->db->order_by('id', 'DESC')->get_where('student_batch', array('student_id' => $_SESSION['student_id']))->row(); if (!empty($batch_id)) { $batch_id = $batch_id->batch_id; $hostel_fee_sql = "Select ft.id, ft.feetype_name, cf.amount,cf.fee_values, cf.id as cf_id from fee_types ft inner join course_fees cf on ft.id = cf.fees_type inner join students s on s.id = $_SESSION[student_id] WHERE ft.id = 3 AND cf.batch_id = $batch_id AND cf.course_id = s.course AND cf.course_id = s.course"; $data['hostel_fees'] = $get_hostel_types = $this->Student_model->get_table_info('fee_types', '', $hostel_fee_sql); } else { $data['hostel_fees'] = []; } $this->load->view('student/header', $data); $this->load->view('student/hostel-fee'); $this->load->view('student/footer'); } public function ajax_get_hostel_installments() { $course_fee_id = $this->input->post('id'); $installments_column_query = $this->db->get_where('installment', array('course_fee_id' => $course_fee_id)); $check_installment = $installments_column_query->row(); $installments_column = ''; if (!$check_installment) { echo false; exit(); } else { $installments_column = $check_installment->due_amount_date; } // Decoded Installment and convert to array and fetched the keys (feetype_ids) $decoded_installment = array_keys((array)json_decode($installments_column)); $feetype_clause = ''; foreach ($decoded_installment as $key => $value) { if ($key == 0) { $feetype_clause .= "id = '$value'"; } else { $feetype_clause .= " or id = '$value'"; } } $fee_types = $this->Student_model->get_table_info('payment_types', $feetype_clause, '', 'ASC'); $html = ''; echo $html; } public function get_hostel_details() { if (!isset($_SESSION['student_id'])) redirect(base_url() . 'student'); if (!file_exists(APPPATH . 'views/student/hostel-info.php')) show_404(); $data['currentURL'] = current_url(); $data['menulist'] = $this->Student_model->get_studentMenus(); if (count($_POST) < 1) { $this->session->set_flashdata('failed', "Please select a Hostel Plan"); redirect(base_url() . 'student/hostel_fee'); } $course_fee_id = $this->input->post('course_fee_id'); $installment_key = $this->input->post('installment_type'); $sql_item_name = "Select f.feetype_name from fee_types f inner join course_fees cf on cf.fees_type = f.id WHERE cf.id = $course_fee_id"; $fee_type_col = $this->Student_model->get_general_row_details('fee_types', '', $sql_item_name); $fee_type_name = $fee_type_col['feetype_name']; $whereClause = "Select cf.id,cf.amount, i.id as installment_id, i.due_amount_date from course_fees cf inner join installment i on cf.id = i.course_fee_id WHERE cf.id = '$course_fee_id'"; $selected_installment = $query = $this->Student_model->get_general_row_details('course_fees', '', $whereClause); if (!empty($query)) { // decoding due_amount_date from installments $selected_installment['due_amount_date'] = (array)json_decode($query['due_amount_date']); $first_due_amount = ''; // filtering the array with user selected option with $installment_key foreach ($selected_installment['due_amount_date'] as $key => $value) { if ($key != $installment_key) { unset($selected_installment['due_amount_date'][$key]); } else { foreach ($value as $index => $ele) { if ($index == 0) { $first_due_amount = $ele->amount; } $selected_installment['due_amount_date'][$key][$index]->payment_status = 'no'; } } } $data['installment'] = $selected_installment; // Re arranging keys of $data['installment']['due_amount_date'] below $data['installment']['due_amount_date'] = array_values($data['installment']['due_amount_date']); $student_identification = $this->db->get_where('students', array('id' => $_SESSION['student_id']))->row()->studentId; $encrypted = $student_identification . '*' . $course_fee_id . '*' . $first_due_amount . '*' . $fee_type_name . '*' . $installment_key . '*' . 1; $data['encrypted'] = urlsafe_b64encode($encrypted); } else { $this->session->set_flashdata('failed', "We are facing a technical issue, Please try again in sometime"); redirect(base_url() . 'student/hostel_fee'); } $this->load->view('student/header', $data); $this->load->view('student/hostel-info'); $this->load->view('student/footer'); } public function pay_hostel_fees($encrypt) { $decrypted = urlsafe_b64decode($encrypt); $param = $array = explode('*', $decrypted); list($studentappId, $course_fee_id, $amount, $item, $installment_key, $s_no) = $param; $returnURL = base_url() . 'student/hostel_success'; $failURL = base_url() . 'student/paymentFail'; $notifyURL = base_url() . 'student/paypalipn'; $this->paypal_lib->add_field('rm', 2); $this->paypal_lib->add_field('return', $returnURL); $this->paypal_lib->add_field('fail_return', $failURL); $this->paypal_lib->add_field('notify_url', $notifyURL); $this->paypal_lib->add_field('item_name', $item); $this->paypal_lib->add_field('custom', $course_fee_id); $this->paypal_lib->add_field('item_number', $studentappId); $this->paypal_lib->add_field('amount', $amount); $this->paypal_lib->add_field('on1', $installment_key); $this->paypal_lib->add_field('on2', $s_no); $this->paypal_lib->paypal_auto_form(); } public function hostel_success() { $raw_post_data = file_get_contents('php://input'); $raw_post_array = explode('&', $raw_post_data); $paypalInfo = array(); $flag = true; foreach ($raw_post_array as $keyval) { $keyval = explode('=', $keyval); if (count($keyval) == 2) $paypalInfo[$keyval[0]] = urldecode($keyval[1]); } // test_view_array($paypalInfo); if ($paypalInfo['payment_status'] == 'Completed') { $studentId = $paypalInfo['item_number']; $item_type = $paypalInfo['item_name']; $courseFeeId = $paypalInfo['custom']; $stud_id = $this->db->get_where('students', array('studentId' => $studentId))->row()->id; $data['studentId'] = (!empty($studentId)) ? $studentId : $stud_id; $data['payment_for'] = $paypalInfo['item_name']; $data['txn_id'] = $paypalInfo["txn_id"]; $data['payment_amt'] = $paypalInfo["payment_gross"]; $data['currency_code'] = $paypalInfo["mc_currency"]; $data['status'] = $paypalInfo["payment_status"]; $data['payment_date'] = $paypalInfo["payment_date"]; $data['payment_recived_id'] = $paypalInfo["receiver_id"]; $data['course_fee_id'] = $courseFeeId; $installment_key = $paypalInfo['option_name1']; $s_no = $paypalInfo['option_name2']; $data['payment_date'] = convert_ADdateTime_to_BSdateTime($this->nepaliDateObject, $data['payment_date']); $rst = $this->Student_model->storefeeTransaction($data); $check_id_record_exist = $this->db->get_where('students_online_payments', array('student_id' => $stud_id, 'course_fee_id' => $courseFeeId))->row(); if ($check_id_record_exist) { $payment_installments = $check_id_record_exist->payment_details; $payment_row_id = $check_id_record_exist->id; $flag = true; $installment_data = (array)json_decode($payment_installments); foreach ($installment_data as $key => $value) { if ($value->payment_status == 'no' && $flag && $value->install_sno == $s_no) { $installment_data[$key]->paid_amount = $paypalInfo['payment_gross']; $installment_data[$key]->payment_status = 'yes'; $installment_data[$key]->paid_date = $this->nepali_current_date; $flag = false; } } $update_data['payment_details'] = json_encode($installment_data); $update_data['modified'] = date('Y-m-d H:i:s', strtotime($this->nepali_current_date)); $update_payment = $this->Student_model->add_edit_table('students_online_payments', $payment_row_id, $update_data); if (!$update_payment) { $response['status'] = false; $response['data'] = $data; $this->session->set_userdata('hostel_data', $response); redirect(base_url() . "student/navigate_to_hostel"); } else { $updated_installments = $this->db->get_where('students_online_payments', array('id' => $payment_row_id))->row_array(); $response['status'] = true; $response['data'] = $updated_installments; $response['student_code'] = $studentId; $response['item'] = $item_type; $response['installment_key'] = $installment_key; // Mail sent to student about fess - Shankar $this->mail_Send_Fees_Approved($stud_id, $courseFeeId); // Mail sent to student about fess - Shankar $this->session->set_userdata('hostel_data', $response); redirect(base_url() . "student/navigate_to_hostel"); } } else { $update_clause['hostel'] = 'yes'; $update_student = $this->Student_model->add_edit_table('students', $stud_id, $update_clause); if (!$update_student) { $response['status'] = false; $response['data'] = $data; $this->session->set_userdata('hostel_data', $response); redirect(base_url() . "student/navigate_to_hostel"); } $installment_data_query = $this->db->get_where('installment', array('course_fee_id' => $courseFeeId))->row()->due_amount_date; $installment_data = (array)json_decode($installment_data_query); $flag = true; $to_be_inserted = array(); foreach ($installment_data as $key => $value) { if ($key != $installment_key) { unset($installment_data[$key]); } else { foreach ($value as $index => $ele) { if ($flag) { $to_be_inserted[] = array( 'install_sno' => $index + 1, 'due_date' => $ele->due_date, 'feeamount' => $ele->amount, 'paid_amount' => $paypalInfo['payment_gross'], 'payment_status' => 'yes', 'paid_date' => date('Y-m-d H:i:s', strtotime($this->nepali_current_date)) ); $flag = false; } else { $to_be_inserted[] = array( 'install_sno' => $index + 1, 'due_date' => $ele->due_date, 'feeamount' => $ele->amount, 'paid_amount' => "0", 'payment_status' => 'no', 'paid_date' => '' ); } } } } $stdentfee = array( 'student_id' => $stud_id, 'course_fee_id' => $courseFeeId, 'installment_type_id' => $installment_key, 'payment_details' => json_encode($to_be_inserted), 'created' => $this->nepali_current_date, 'modified' => $this->nepali_current_date ); $insert_payment = $this->db->insert('students_online_payments', $stdentfee); if (!$insert_payment) { $response['status'] = false; $response['data'] = $data; $this->session->set_userdata('hostel_data', $response); redirect(base_url() . "student/navigate_to_hostel"); } else { // Mail sent to student about fess - Shankar $this->mail_Send_Fees_Approved($stud_id, $courseFeeId); // Mail sent to student about fess - Shankar $response['status'] = true; $response['data'] = $stdentfee; $response['student_code'] = $studentId; $response['item'] = $item_type; $response['installment_key'] = $installment_key; $this->session->set_userdata('hostel_data', $response); redirect(base_url() . "student/navigate_to_hostel"); } } } } public function navigate_to_hostel() { $response = $this->session->userdata('hostel_data'); $data['currentURL'] = current_url(); $data['menulist'] = $this->Student_model->get_studentMenus(); if ($response['status']) { $installment = $response['data']; // Payment Data $student_code = $response['student_code']; // Code for encryption $item = $response['item']; // item for encryption $installment_key = $response['installment_key']; // key for encryption $installment['payment_details'] = (array)json_decode($installment['payment_details']); // test_view_array($installment); $course_fee_id = $installment['course_fee_id']; $course_fees_info = $this->db->get_where('course_fees', array('id' => $installment['course_fee_id']))->row(); $whereClause = "Select cf.id,cf.amount, i.id as installment_id, i.due_amount_date from course_fees cf inner join installment i on cf.id = i.course_fee_id WHERE cf.id = '$installment[course_fee_id]'"; $data['installment'] = $this->Student_model->get_general_row_details('course_fees', '', $whereClause); $flag = true; $amount_encrypt = 0; foreach ($installment['payment_details'] as $key => $value) { if ($flag && $value->payment_status == 'no') { $amount_encrypt = $value->feeamount; $flag = false; } $installment['payment_details'][$key]->amount = $value->feeamount; unset($installment['payment_details'][$key]->feeamount); } $encrypted = $student_code . '*' . $course_fee_id . '*' . $amount_encrypt . '*' . $item . '*' . $installment_key; $data['encrypted'] = urlsafe_b64encode($encrypted); $data['installment']['due_amount_date'] = array(); $data['installment']['due_amount_date'][] = $installment['payment_details']; $_SESSION['hostel_data'] = null; $this->session->set_flashdata('success', "You have successfully paid the fees"); redirect(base_url() . 'student/hostel'); } } // Hostel Ends - Afras Khan - 09/12/2021 //-*-- Bus Facility Module start here - Shankar -*-// public function BusFacility() { if (!isset($_SESSION['student_id'])) redirect(base_url() . 'student'); $data['currentURL'] = current_url(); $data['menulist'] = $this->Student_model->get_studentMenus(); $student_id = $_SESSION['student_id']; $query = $this->db->query('select cf.amount,cf.fees_type, installment_type_id, course_fee_id, payment_details from students_online_payments sop, fee_types ft, course_fees cf, students s where sop.student_id= ' . $student_id . ' and sop.course_fee_id = cf.id and cf.fees_type = ft.id and ft.id = 4 AND s.id = sop.student_id AND s.course = cf.course_id AND s.batch_id = cf.batch_id')->row_array(); if ($query) { $BTSdb = $this->load->database('erisnClassroom_bts', TRUE); // the TRUE paramater tells CI that you'd like to return the database object. $data['route_name'] = $BTSdb->query('select sbrd.route_id, r.route_name,rd.place_name, pick_up_id, drop_id from bt_students_bus_route_details sbrd, bt_routes_details rd, bt_routes r where student_id=' . $student_id . ' and r.id = sbrd.route_id and sbrd.pick_up_id = rd.id and sbrd.drop_id = rd.id ORDER BY sbrd.id DESC')->row_array(); $data['payment_details'] = $query; $this->load->view('student/header', $data); $this->load->view('student/bus_details_info'); $this->load->view('student/footer'); } else { $this->load->view('student/header', $data); $this->load->view('student/bus'); $this->load->view('student/footer'); } } public function BusFacilityDetails() { if (!isset($_SESSION['student_id'])) redirect(base_url() . 'student'); $data['currentURL'] = current_url(); $data['menulist'] = $this->Student_model->get_studentMenus(); $sqlQuery = 'select cf.id as course_fee_id, cf.amount, cf.fees_type from course_fees cf, students s where s.id=' . $_SESSION['student_id'] . ' and s.is_active = "yes" and cf.batch_id = s.batch_id and cf.course_id = s.course and cf.fees_type = 4 and s.course = cf.course_id AND s.batch_id = cf.batch_id'; $data['bus_fee'] = $this->Student_model->get_query_row($sqlQuery); if (isset($data['bus_fee']) && !empty($data['bus_fee'])) { $course_id = $data['bus_fee']['course_fee_id']; $sqlQuery1 = ' select id as installment_id, course_fee_id, due_amount_date from installment where course_fee_id = ' . $course_id . ' and is_active = "yes"'; $data['installment'] = $this->Student_model->get_query_row($sqlQuery1); } $BTSdb = $this->load->database('erisnClassroom_bts', TRUE); // the TRUE paramater tells CI that you'd like to return the database object. $data['route_name'] = $BTSdb->query('select * from bt_routes')->result_array(); // echo "
    ";print_r($data);exit();
    
    		$this->load->view('student/header', $data);
    		$this->load->view('student/bus_details');
    		$this->load->view('student/footer');
    	}
    
    	public function get_bus_stops_name($id)
    	{
    		$BTSdb = $this->load->database('erisnClassroom_bts', TRUE);
    		$route_name = $BTSdb->query('select id, place_name from bt_routes_details where route_id=' . $id . ' order by route_order ASC')->result_array();
    		echo json_encode($route_name);
    	}
    
    	public function get_bus_payment_json($method_id, $course_fee_id)
    	{
    		$route_name =  $this->db->query('select JSON_EXTRACT(due_amount_date,"$.' . $method_id . '") as pay from installment where course_fee_id =' . $course_fee_id)->row_array();
    
    		//echo json_decode($route_name['pay']);
    		echo json_encode(json_decode($route_name['pay']));
    	}
    
    	public function bus_fee_management()
    	{
    		// echo"
    ";print_r($_POST);exit();
    		if (!isset($_SESSION['student_id']))
    			redirect(base_url() . 'student');
    
    		// $BTSdb = $this->load->database('erisnClassroom_bts', TRUE);
    		// $query = $BTSdb->query('select * from bt_students_bus_route_details where student_id='. $_SESSION['student_id']);
    
    		// $update_array = array(
    		// 	'route_id' 		=> $_POST['route_name'],
    		// 	'student_id' 	=> $_SESSION['student_id'],
    		// 	'pick_up_id'	=> $_POST['stop_name'],
    		// 	'drop_id' 		=> $_POST['stop_name'],
    		// 	'is_active'		=> 'yes'
    
    		// );
    
    		// $arr = json_encode($update_array);
    
    		// if ($query->num_rows() > 0) {			
    
    		// 	$BTSdb->where('student_id', $_SESSION['student_id']);
    		// 	$BTSdb->update('bt_students_bus_route_details', $update_array);
    		// 	if ($this->db->trans_status() === FALSE)
    		// 		redirect(base_url() . 'student');		 	
    
    		// }else{
    		// 	$BTSdb->insert('bt_students_bus_route_details', $update_array);
    		// }	
    
    		$student_identification = $this->db->get_where('students', array('id' => $_SESSION['student_id']))->row()->studentId;
    
    		$returnURL = base_url() . 'student/bus_fee_success';
    		$failURL = base_url() . 'student/paymentFail';
    		$notifyURL = base_url() . 'student/paypalipn';
    
    		$course_fee_id = $_POST['course_fee_id'];
    		$amount = $_POST['paying_amount'];
    		$installment_key = $_POST['mode_payment'];
    
    		$item = $this->db->get_where('fee_types', array('id' => $_POST['fee_type_id']))->row()->feetype_name;
    
    
    		$this->paypal_lib->add_field('rm', 2);
    		$this->paypal_lib->add_field('return',  $returnURL);
    		$this->paypal_lib->add_field('fail_return', $failURL);
    		$this->paypal_lib->add_field('notify_url', $notifyURL);
    		$this->paypal_lib->add_field('item_name', $item);
    		$this->paypal_lib->add_field('custom', $course_fee_id);
    		$this->paypal_lib->add_field('item_number', $student_identification);
    		$this->paypal_lib->add_field('amount', $amount);
    		$this->paypal_lib->add_field('on1', $installment_key);
    		$this->paypal_lib->add_field('on2', $_POST['route_name']);
    		$this->paypal_lib->add_field('on3', $_POST['stop_name']);
    		$this->paypal_lib->add_field('on4', $_POST['stop_name']);
    		$this->paypal_lib->paypal_auto_form();
    	}
    
    	public function bus_fee_success()
    	{
    		$raw_post_data = file_get_contents('php://input');
    		$raw_post_array = explode('&', $raw_post_data);
    
    
    		$paypalInfo = array();
    		$flag = true;
    		foreach ($raw_post_array as $keyval) {
    			$keyval = explode('=', $keyval);
    			if (count($keyval) == 2)
    				$paypalInfo[$keyval[0]] = urldecode($keyval[1]);
    		}
    
    
    		if ($paypalInfo['payment_status'] == 'Completed') {
    			$studentId = $paypalInfo['item_number'];
    			$item_type = $paypalInfo['item_name'];
    			$courseFeeId = $paypalInfo['custom'];
    			$stud_id = $this->db->get_where('students', array('studentId' => $studentId))->row()->id;
    
    			$data['studentId'] = (!empty($studentId)) ? $studentId : $stud_id;
    			$data['payment_for'] = $paypalInfo['item_name'];
    			$data['txn_id'] = $paypalInfo["txn_id"];
    			$data['payment_amt'] = $paypalInfo["payment_gross"];
    			$data['currency_code'] = $paypalInfo["mc_currency"];
    			$data['status'] = $paypalInfo["payment_status"];
    			$data['payment_date'] = $paypalInfo["payment_date"];
    
    			$data['payment_date'] = convert_ADdateTime_to_BSdateTime($this->nepaliDateObject, $data['payment_date']);
    
    			$data['payment_recived_id'] = $paypalInfo["receiver_id"];
    			$data['course_fee_id'] = $courseFeeId;
    			$installment_key = $paypalInfo['option_name1'];
    			$route_name = $paypalInfo['option_name2'];
    			$pick_id = $paypalInfo['option_name3'];
    			$drop_id = $paypalInfo['option_name4'];
    			$rst = $this->Student_model->storefeeTransaction($data);
    
    			$check_id_record_exist = $this->db->get_where('students_online_payments', array('student_id' => $stud_id, 'course_fee_id' => $courseFeeId))->row();
    
    			if ($check_id_record_exist) {
    
    				$payment_installments = $check_id_record_exist->payment_details;
    				$payment_row_id = $check_id_record_exist->id;
    				$flag = true;
    				$installment_data = (array)json_decode($payment_installments);
    
    				foreach ($installment_data as $key => $value) {
    					if ($value->payment_status == 'no' && $flag) {
    						$installment_data[$key]->paid_amount = $paypalInfo['payment_gross'];
    						$installment_data[$key]->payment_status = 'yes';
    						$installment_data[$key]->paid_date = date('Y-m-d H:i:s', strtotime($this->nepali_current_date));
    						$flag = false;
    					}
    				}
    
    				$update_data['payment_details'] = json_encode($installment_data);
    				$update_data['modified'] = date('Y-m-d H:i:s', strtotime($this->nepali_current_date));
    
    				$update_payment = $this->Student_model->add_edit_table('students_online_payments', $payment_row_id, $update_data);
    
    				if (!$update_payment) {
    					$response['status'] = false;
    					$response['data'] = $data;
    
    					$this->session->set_userdata('bus_data', $response);
    					redirect(base_url() . "student/navigate_to_Bus");
    				} else {
    					$updated_installments = $this->db->get_where('students_online_payments', array('id' => $payment_row_id))->row_array();
    
    					$response['status'] = true;
    					$response['data'] = $updated_installments;
    					$response['student_code'] = $studentId;
    					$response['item']  = $item_type;
    					$response['installment_key'] = $installment_key;
    
    					// Mail sent to student about fess - Shankar
    					$this->mail_Send_Fees_Approved($stud_id, $courseFeeId);
    					// Mail sent to student about fess - Shankar
    
    					$this->session->set_userdata('bus_data', $response);
    					redirect(base_url() . "student/navigate_to_Bus");
    				}
    			} else {
    
    				$BTSdb = $this->load->database('erisnClassroom_bts', TRUE);
    				$query = $BTSdb->query('select * from bt_students_bus_route_details where student_id=' . $stud_id);
    				$BusFacility_array = array(
    					'route_id' 		=> $route_name,
    					'student_id' 	=> $stud_id,
    					'pick_up_id'	=> $pick_id,
    					'drop_id' 		=> $drop_id,
    					'is_active'		=> 'yes'
    				);
    
    				if ($query->num_rows() > 0) {
    					$BusFacility_array['modified'] = $this->nepali_current_date;
    					$BTSdb->where('student_id', $_SESSION['student_id']);
    					$BTSdb->update('bt_students_bus_route_details', $BusFacility_array);
    					if ($this->db->trans_status() === FALSE)
    						redirect(base_url() . 'student');
    				} else {
    					$BusFacility_array['created'] = $this->nepali_current_date;
    					$BTSdb->insert('bt_students_bus_route_details', $BusFacility_array);
    				}
    
    				$installment_data_query = $this->db->get_where('installment', array('course_fee_id' => $courseFeeId))->row()->due_amount_date;
    
    				$installment_data = (array)json_decode($installment_data_query);
    
    				$flag = true;
    				$to_be_inserted = array();
    				foreach ($installment_data as $key => $value) {
    					if ($key != $installment_key) {
    						unset($installment_data[$key]);
    					} else {
    						foreach ($value as $index => $ele) {
    							if ($flag) {
    								$to_be_inserted[] = array(
    									'install_sno' => $index + 1,
    									'due_date' => $ele->due_date,
    									'feeamount' => $ele->amount,
    									'paid_amount' => $paypalInfo['payment_gross'],
    									'payment_status' => 'yes',
    									'paid_date' => date('Y-m-d H:i:s', strtotime($this->nepali_current_date))
    								);
    								$flag = false;
    							} else {
    								$to_be_inserted[] = array(
    									'install_sno' => $index + 1,
    									'due_date' => $ele->due_date,
    									'feeamount' => $ele->amount,
    									'paid_amount' => "0",
    									'payment_status' => 'no',
    									'paid_date' => ''
    								);
    							}
    						}
    					}
    				}
    
    				$stdentfee = array(
    					'student_id' => $stud_id,
    					'course_fee_id' => $courseFeeId,
    					'installment_type_id' => $installment_key,
    					'payment_details' => json_encode($to_be_inserted),
    					'created' => $this->nepali_current_date,
    					'modified' => $this->nepali_current_date
    				);
    
    				$insert_payment = $this->db->insert('students_online_payments', $stdentfee);
    				if (!$insert_payment) {
    					$response['status'] = false;
    					$response['data'] = $data;
    					$this->session->set_userdata('bus_data', $response);
    					redirect(base_url() . "student/navigate_to_Bus");
    				} else {
    					// Mail sent to student about fess - Shankar
    					$this->mail_Send_Fees_Approved($stud_id, $courseFeeId);
    					// Mail sent to student about fess - Shankar
    					$response['status'] = true;
    					$response['data'] = $stdentfee;
    					$response['student_code'] = $studentId;
    					$response['item']  = $item_type;
    					$response['installment_key'] = $installment_key;
    					$this->session->set_userdata('bus_data', $response);
    					redirect(base_url() . "student/navigate_to_Bus");
    				}
    			}
    		}
    	}
    
    	public function navigate_to_Bus()
    	{
    
    		$response = $this->session->userdata('bus_data');
    		// echo"
    ";print_r($response);exit();
    		$data['currentURL'] = current_url();
    		$data['menulist'] = $this->Student_model->get_studentMenus();
    
    		if ($response['status']) {
    
    			$_SESSION['bus_data'] = null;
    			$this->session->set_flashdata('success', "You have successfully paid the fees");
    			redirect(base_url() . 'student/BusFacility');
    		}
    	}
    	//-*--- Bus Facility Module End here - Shankar ---*-//
    
    	// application email send
    
    	public function mail_Send_Application_Approved($student_id, $amount, $payment_date)
    	{
    		$data['school_info'] = $this->Admin_model->get_logo_from_setting();
    		$data['baseurl']	= base_url();
    
    		$result = $this->db->query("select a.name as student_name, a.email,  c.course_name from applications a, course c where a.applicationid = '$student_id' and a.course = c.id")->row_array();
    
    		$data['student_data'] = array(
    			'student_name'	=> $result['student_name'],
    			'course_name'	=> $result['course_name'],
    			'student_id'	=> $student_id,
    			'amount'		=> $amount,
    			'date'			=> $payment_date
    		);
    
    		$msg = $this->load->view('email-applicationfee', $data, TRUE);
    
    		$this->load->config('email');
    		$from = $this->config->item('smtp_user');
    		$this->email->from($from);
    		$this->email->set_newline("\r\n");
    		$this->email->to($result['email']);
    		//$this->email->to('shankar@erisn.com');
    
    		$this->email->subject('Application Fee');
    		$this->email->message($msg);
    
    		if ($this->email->send()) {
    			return true;
    		} else {
    			return false;
    		}
    	}
    
    	// Application Email End 
    
    	// Fee Installment Email send Start
    
    	public function mail_Send_Fees_Approved($student_id, $course_fee_id)
    	{
    
    		$data['school_info'] = $this->Admin_model->get_logo_from_setting();
    		$data['baseurl']	= base_url();
    
    		$result = $this->db->query("select studentId, a.name as student_name, a.email,  c.course_name from students a, course c where a.id = '$student_id' and a.course = c.id")->row_array();
    
    		$get_json = $this->db->query(" select pt.payment_type_name, sop.payment_details, ft.feetype_name from students_online_payments sop, payment_types pt, course_fees cf, fee_types ft where sop.student_id = '$student_id' and sop.course_fee_id = '$course_fee_id' and sop.installment_type_id = pt.id and sop.course_fee_id = cf.id and cf.fees_type = ft.id")->row_array();
    
    
    		$data['student_data'] = array(
    			'student_name'	=> $result['student_name'],
    			'course_name'	=> $result['course_name'],
    			'student_id'	=> $result['studentId'],
    			'fee_details'	=> $get_json['payment_type_name'],
    			'payment_method' => $get_json['payment_details'],
    			'fee_type_name'	=> $get_json['feetype_name']
    
    		);
    
    		$msg = $this->load->view('email-payment', $data, TRUE);
    
    		$this->load->config('email');
    		$from = $this->config->item('smtp_user');
    		$this->email->from($from);
    		$this->email->set_newline("\r\n");
    		$this->email->to($result['email']);
    		//$this->email->to('shankar@erisn.com');
    
    		$this->email->subject('Application Fee');
    		$this->email->message($msg);
    
    		if ($this->email->send()) {
    			return true;
    		} else {
    			return false;
    		}
    	}
    
    	// Fee Installment Email send End
    
    	public function student_fees()
    	{
    		if (!isset($_SESSION['student_id']))
    			redirect(base_url() . 'student');
    
    
    		$data['currentURL'] = current_url();
    		$data['menulist'] = $this->Student_model->get_studentMenus();
    
    		$data['result'] = $this->db->query('select o.* from student_fee_online_transactions o, students s where s.id =' . $_SESSION['student_id'] . ' and s.studentId = o.studentId order by o.id DESC')->result_array();
    
    		$this->load->view('student/header', $data);
    		$this->load->view('student/student-fee-details');
    		$this->load->view('student/footer');
    	}
    
    	public function invoice($studID, $txn_ID)
    	{
    		if (!isset($_SESSION['student_id']))
    			redirect(base_url() . 'student');
    
    
    		$data['currentURL'] = current_url();
    		$data['logo'] = $this->Admin_model->get_logo();
    		$data['school_info'] = $this->Admin_model->get_logo_from_setting();
    
    
    		$data['menulist'] = $this->Student_model->get_studentMenus();
    
    		$studentID = urlsafe_b64decode($studID);
    		$txnID = urlsafe_b64decode($txn_ID);
    
    		if ($studentID != '' && $txnID != '') {
    			$student_ID = $this->db->get_where('students', array('studentId' => $studentID))->row();
    
    			if ($student_ID != '') {
    				$sql1 = "SELECT sfot.*,course_fees.fee_values,s.course as courseID,s.name,s.studentId,b.b_from,b.b_name as batch_name,b.b_end,sb.batch_id,cl.course_id,cl.section_id, sfot.invoice_no FROM student_fee_online_transactions sfot LEFT JOIN students s ON sfot.studentId=s.studentId LEFT JOIN student_batch sb ON s.id=sb.student_id AND s.batch_id = sb.batch_id LEFT JOIN classroom cl ON cl.id=sb.classroom_id LEFT JOIN batch b ON sb.batch_id=b.id 
    					INNER JOIN course_fees ON sfot.course_fee_id = course_fees.id
    				WHERE sfot.studentId='$studentID' AND sfot.txn_id='$txnID' order by sb.id desc";
    				$payment_data = $this->Admin_model->get_query_row($sql1);
    				$student_data = array(
    					'student_fee_online_transactions_id'	=> $payment_data['id'],
    					'studentId' 							=> $payment_data['studentId'],
    					'payment_for' 							=> $payment_data['fee_values'] . '(' . $payment_data['payment_for'] . ')',
    					'txn_id' 								=> $payment_data['txn_id'],
    					'payment_amt' 							=> $payment_data['payment_amt'],
    					'paid_date' 							=> $payment_data['payment_date'],
    					'studentname' 							=> $payment_data['name'],
    					'batch_name' 							=> $payment_data['batch_name'],
    					'batch_from' 							=> $payment_data['b_from'],
    					'batch_end' 							=> $payment_data['b_end'],
    					'course_id' 							=> (isset($payment_data['course_id']) && !empty($payment_data['course_id'])) ? $payment_data['course_id'] : $payment_data['courseID'],
    					'received_by' 							=> $payment_data['payment_recived_id'],
    					'payment_method' 						=> $payment_data['payment_method'],
    					'fine_amount'							=> $payment_data['fine_amount'],
    					'tdt'									=> date('Y-m-d H:i:s', strtotime($this->nepali_current_date)),
    					'deduction_type'						=> $payment_data['deduction_type'],
    					'deduction_amount'						=> $payment_data['deduction_amount'],
    					'section_id' 							=> $payment_data['section_id'],
    					'bill_print_count'						=> $payment_data['bill_print_count'],
    					'course_fee_id'							=> $payment_data['course_fee_id'],
    					'install_sno'							=> $payment_data['install_sno'],
    					'invoice_no'							=> $payment_data['invoice_no'],
    					'parent_pan'							=> $student_ID->parent_pan
    				);
    				$data['invoice_data'] = $student_data;
    			} else {
    				$sql2 = "SELECT soft.*,course_fees.fee_values,a.name,a.course,b.b_name as batch_name,b.b_from,b.b_end, soft.invoice_no FROM student_fee_online_transactions soft LEFT JOIN applications a ON a.applicationid=soft.studentId LEFT JOIN batch b ON b.id=a.batch_id INNER JOIN course_fees ON sfot.course_fee_id = course_fees.id WHERE soft.studentId='$studentID' AND soft.txn_id='$txnID' order by sb.id desc";
    				$paymentdata = $this->Admin_model->get_query_row($sql2);
    				if (count($paymentdata) > 0) {
    					$application_data = array(
    						'student_fee_online_transactions_id' 	=> $paymentdata['id'],
    						'studentId' 							=> $paymentdata['studentId'],
    						'payment_for' 							=> $paymentdata['fee_values'] . '(' . $paymentdata['payment_for'] . ')',
    						'txn_id' 								=> $paymentdata['txn_id'],
    						'payment_amt' 							=> $paymentdata['payment_amt'],
    						'paid_date' 							=> $paymentdata['payment_date'],
    						'studentname' 							=> $paymentdata['name'],
    						'batch_name' 							=> $paymentdata['batch_name'],
    						'batch_from' 							=> $paymentdata['b_from'],
    						'batch_end' 							=> $paymentdata['b_end'],
    						'course_id' 							=> $paymentdata['course'],
    						'received_by' 							=> $paymentdata['payment_recived_id'],
    						'payment_method' 						=> $paymentdata['payment_method'],
    						'fine_amount'							=> $paymentdata['fine_amount'],
    						'tdt'									=> date('Y-m-d H:i:s', strtotime($this->nepali_current_date)),
    						'deduction_type'						=> $paymentdata['deduction_type'],
    						'deduction_amount'						=> $paymentdata['deduction_amount'],
    						'section_id' 							=> 0,
    						'bill_print_count'						=> $paymentdata['bill_print_count'],
    						'course_fee_id'							=> $paymentdata['course_fee_id'],
    						'install_sno'							=> $paymentdata['install_sno'],
    						'invoice_no'							=> $paymentdata['invoice_no'],
    						'parent_pan'							=> $student_ID->parent_pan
    					);
    					$data['invoice_data'] = $application_data;
    				}
    			}
    		}
    
    		$this->load->view('student/header', $data);
    		$this->load->view('student/student-fee-invoice');
    		$this->load->view('student/footer');
    	}
    
    	public function invoicedownload($studID, $txn_ID)
    	{
    		if (!isset($_SESSION['student_id']))
    			redirect(base_url() . 'student');
    
    
    
    		$this->load->library('m_pdf');
    		$data['school_info'] = $this->Admin_model->get_logo_from_setting();
    		$studentID = urlsafe_b64decode($studID);
    		$txnID = urlsafe_b64decode($txn_ID);
    
    		if ($studentID != '' && $txnID != '') {
    			$student_ID = $this->db->get_where('students', array('studentId' => $studentID))->row();
    			if ($student_ID != '') {
    				$this->db->where('studentId', $studentID);
    				$this->db->where('txn_id', $txnID);
    				$this->db->set('bill_print_count', 'bill_print_count+1', FALSE);
    				$update = $this->db->update('student_fee_online_transactions');
    				$sql1 = "SELECT sfot.*,course_fees.fee_values,s.course as courseID,s.name,s.studentId,b.b_name as batch_name,b.b_from,b.b_end,sb.batch_id,cl.course_id,cl.section_id, sfot.invoice_no FROM student_fee_online_transactions sfot LEFT JOIN students s ON sfot.studentId=s.studentId LEFT JOIN student_batch sb ON s.id=sb.student_id AND sb.batch_id = s.batch_id LEFT JOIN classroom cl ON cl.id=sb.classroom_id LEFT JOIN batch b ON sb.batch_id=b.id
    					INNER JOIN course_fees ON sfot.course_fee_id = course_fees.id
    				WHERE sfot.studentId='$studentID' AND sfot.txn_id='$txnID' order by sb.id desc";
    				$payment_data = $this->Admin_model->get_query_row($sql1);
    				$student_data = array(
    					'student_fee_online_transactions_id' => $payment_data['id'],
    					'studentId' => $payment_data['studentId'],
    					'payment_for' => $payment_data['fee_values'] . '(' . $payment_data['payment_for'] . ')',
    					'txn_id' => $payment_data['txn_id'],
    					'payment_amt' => $payment_data['payment_amt'],
    					'paid_date' => $payment_data['payment_date'],
    					'studentname' => $payment_data['name'],
    					'batch_name' => $payment_data['batch_name'],
    					'batch_from' => $payment_data['b_from'],
    					'batch_end' => $payment_data['b_end'],
    					'received_by' => $payment_data['payment_recived_id'],
    					'payment_method' => $payment_data['payment_method'],
    					'course_id' => (isset($payment_data['course_id']) && !empty($payment_data['course_id'])) ? $payment_data['course_id'] : $payment_data['courseID'],
    
    					'tdt'		=> date('Y-m-d H:i:s', strtotime($this->nepali_current_date)),
    					'section_id' => $payment_data['section_id'],
    					'payment_method' => $payment_data['payment_method'],
    					'fine_amount'	=> $payment_data['fine_amount'],
    					'deduction_type'	=> $payment_data['deduction_type'],
    					'deduction_amount'	=> $payment_data['deduction_amount'],
    					'bill_print_count'	=> $payment_data['bill_print_count'],
    					'course_fee_id'		=> $payment_data['course_fee_id'],
    					'install_sno'		=> $payment_data['install_sno'],
    					'invoice_no'		=> $payment_data['invoice_no'],
    					'parent_pan'		=> $student_ID->parent_pan
    				);
    				$data['invoice_data'] = $student_data;
    			} else {
    				$this->db->where('studentId', $studentID);
    				$this->db->where('txn_id', $txnID);
    				$this->db->set('bill_print_count', 'bill_print_count+1', FALSE);
    				$update = $this->db->update('student_fee_online_transactions');
    				$sql2 = "SELECT soft.*,course_fees.fee_values,a.name,a.course,b.b_name as batch_name,b.b_from,b.b_end, soft.invoice_no FROM student_fee_online_transactions soft LEFT JOIN applications a ON a.applicationid=soft.studentId LEFT JOIN batch b ON b.id=a.batch_id INNER JOIN course_fees ON sfot.course_fee_id = course_fees.id WHERE soft.studentId='$studentID' AND soft.txn_id='$txnID' order by sb.id desc";
    				$paymentdata = $this->Admin_model->get_query_row($sql2);
    				if (count($paymentdata) > 0) {
    					$application_data = array(
    						'student_fee_online_transactions_id' => $paymentdata['id'],
    						'studentId' => $paymentdata['studentId'],
    						'payment_for' => $paymentdata['fee_values'] . '(' . $paymentdata['payment_for'] . ')',
    						'txn_id' => $paymentdata['txn_id'],
    						'payment_amt' => $paymentdata['payment_amt'],
    						'paid_date' => $paymentdata['payment_date'],
    						'studentname' => $paymentdata['name'],
    						'batch_name' => $paymentdata['batch_name'],
    						'batch_from' => $paymentdata['b_from'],
    						'batch_end' => $paymentdata['b_end'],
    						'received_by' => $paymentdata['payment_recived_id'],
    						'payment_method' => $paymentdata['payment_method'],
    						'course_id' => $paymentdata['course'],
    						'tdt'		=> date('Y-m-d H:i:s', strtotime($this->nepali_current_date)),
    						'section_id' => 0,
    						'payment_method' => $paymentdata['payment_method'],
    						'fine_amount'	=> $paymentdata['fine_amount'],
    						'deduction_type'	=> $paymentdata['deduction_type'],
    						'deduction_amount'	=> $paymentdata['deduction_amount'],
    						'bill_print_count'  => $paymentdata['bill_print_count'],
    						'course_fee_id'		=> $paymentdata['course_fee_id'],
    						'install_sno'		=> $paymentdata['install_sno'],
    						'invoice_no'		=> $paymentdata['invoice_no'],
    						'parent_pan'		=> $student_ID->parent_pan
    					);
    					$data['invoice_data'] = $application_data;
    				}
    			}
    		}
    		// $this->load->view('student/invoicepdf', $data);
    		$html = $this->load->view('student/invoicepdf', $data, true);
    		$pdfFilePath = $studentID . '-' . date('Y-m-dHis') . ".pdf";
    		$pdf = $this->m_pdf->loadforinvoice();
    		$pdf->WriteHTML($html, 2);
    		$pdf->Output($pdfFilePath, "D");
    	}
    
    	//shankar code for batch wise route list
    
    	public function routes_list_batch_wise()
    	{
    		if (!isset($_SESSION['student_id']))
    			redirect(base_url() . 'student');
    
    		$data['currentURL'] = current_url();
    		$data['logo'] = $this->Admin_model->get_logo();
    		$data['school_info'] = $this->Admin_model->get_logo_from_setting();
    
    
    		$data['menulist'] = $this->Student_model->get_studentMenus();
    
    		$student_id = $_SESSION['student_id'];
    
    		$get_student_batch = $this->db->query('select batch_id, id,course from students where is_active="yes" and id=' . $student_id)->row_array();
    
    		$busTrack = $this->load->database('erisnClassroom_bts', TRUE);
    
    		$batch_wise_route = $busTrack->query('select route_ids from bt_batch_routes where batch_id=' . $get_student_batch['batch_id'])->row_array();
    
    		$data_array = array();
    
    		if (!empty($batch_wise_route)) {
    
    			$bus_routes = $busTrack->query('select * from  bt_routes  where  id IN (' . $batch_wise_route['route_ids'] . ')')->result_array();
    
    			if (!empty($bus_routes)) {
    				foreach ($bus_routes as $key => $val) {
    					$t_amount = $this->db->query('select amount from course_fees where route_id=' . $val['id'] . ' AND batch_id = ' . $get_student_batch['batch_id'] . ' AND course_id=' . $get_student_batch['course'])->row_array();
    
    					array_push($data_array, array(
    						'id' 			=> $val['id'],
    						'route_name' 	=> $val['route_name'],
    						'pickup_start'	=> $val['pickup_start'],
    						'drop_start'	=> $val['drop_start'],
    						'amount'		=> (!empty($t_amount) && isset($t_amount)) ? $t_amount['amount'] : '--',
    						'color'			=> (!empty($t_amount) && isset($t_amount)) ? 'inherit' : 'red'
    					));
    				}
    			}
    		}
    		$data['route_data'] = $data_array;
    		$this->load->view('student/header', $data);
    		$this->load->view('student/student-route-batch');
    		$this->load->view('student/footer');
    	}
    
    	public function get_route_price_list()
    	{
    		$busTrack = $this->load->database('erisnClassroom_bts', TRUE);
    		$batch_wise_route = $busTrack->query('select place_name from bt_routes_details where route_id=' . $_POST['route_id'] . ' ORDER BY route_order ASC')->result_array();
    		if (!empty($batch_wise_route)) {
    			echo json_encode($batch_wise_route);
    		} else {
    			echo json_encode('');
    		}
    	}
    
    	public function hostel_old_function()
    	{
    
    		if (!isset($_SESSION['student_id']))
    			redirect(base_url() . 'student');
    
    		if (!file_exists(APPPATH . 'views/student/hostel.php'))
    			show_404();
    
    		$data['currentURL'] = current_url();
    		$data['menulist'] = $this->Student_model->get_studentMenus();
    
    		$hostel_status = $this->db->get_where('students', array('id' => $_SESSION['student_id']))->row()->hostel;
    
    		if ($hostel_status == 'yes') {
    
    			/*HOSTEL BED INFORMATION */
    
    			$hmsDb = $this->load->database('hms', TRUE);
    
    			$h_sql = "Select b.block_name,f.floor_name,r.room_name,r.room_ac,be.bed_name,s.food_type,
    			s.joined_date from hms_students s 
    			inner join hms_blocks b on s.block_id = b.id
    			inner join hms_floors f on s.floor_id = f.id
    			inner join hms_rooms r on s.room_id = r.id
    			inner join hms_beds be on s.bed_id = be.id
    			WHERE s.student_id = $_SESSION[student_id] 
    			ORDER By s.id DESC ";
    
    			$hostel_room_info =  $hmsDb->query($h_sql)->row_array();
    
    			$data['hostel_room'] = $hostel_room_info;
    
    
    			$this->load->view('student/header', $data);
    			$this->load->view('student/hostel-info');
    			$this->load->view('student/footer');
    		} else {
    			$this->load->view('student/header', $data);
    			$this->load->view('student/hostel_old');
    			$this->load->view('student/footer');
    		}
    	}
    
    	public function printcount_increment()
    	{
    		$this->db->query('update student_fee_online_transactions set bill_print_count = bill_print_count + 1 where id =' . $_REQUEST['inoviceids']);
    		return true;
    	}
    }