load->database(); $this->load->helper('common_helper'); $this->nepaliDateObject = new NepaliDate(); $this->nepali_current_date = cuurentNepaliDate($this->nepaliDateObject); } /**************************************** START of Admin Menu - Nandini ************************************/ function recursive_menue($parentId = 0) { $this->db->where('parent_id', $parentId); $this->db->where('is_active', 'yes'); $this->db->order_by('order_number', 'ASC'); $query = $this->db->get('admin_menu'); $result = $query->result_array(); $adminMenu = array(); if (!empty($result)) { foreach ($result as $res) { array_push($adminMenu, $res); } } // echo '
';
		// var_dump($adminMenu);
		return $adminMenu;
	}

	function get_admin_menu($parentId = 0)
	{
		$zeroMenu = $this->recursive_menue(0);
		$adminMenu = array();
		if (!empty($zeroMenu)) {
			foreach ($zeroMenu as $zero) {
				$adminMenu[$zero['id']] = $zero;

				$oneMenu = $this->recursive_menue($zero['id']);
				if (!empty($oneMenu)) {
					foreach ($oneMenu as $one) {
						$adminMenu[$zero['id']][$zero['id']][$one['id']] = $one;

						$twoMenu = $this->recursive_menue($one['id']);
						if (!empty($twoMenu)) {
							foreach ($twoMenu as $two) {
								$adminMenu[$zero['id']][$zero['id']][$one['id']][$one['id']][$two['id']] = $two;

								/*$threeMenu = $this->recursive_menue($two['id']);
								if(!empty($threeMenu))
								{
									foreach($threeMenu as $three)
									{
										$adminMenu[$zero['id']][$zero['id']][$one['id']][$one['id']][$two['id']][$two['id']][$three['id']] = $three;
									}						
								}*/
							}
						}
					}
				}
			}
		}
		//echo '
';print_r($adminMenu);
		return $adminMenu;
	}

	public function get_admin_role_permissions($where = '', $sqlQry = '', $limit = FALSE, $offset = FALSE)
	{
		if ($limit)
			$this->db->limit($limit, $offset);

		if ($where != '')
			$this->db->where($where);

		$this->db->order_by('admin_role_permissions.id', 'DESC');
		$query = $this->db->get('admin_role_permissions');

		if ($sqlQry != '')
			$query = $this->db->query($sqlQry);

		return $query->result_array();
	}
	/**************************************** END of Admin Menu - Nandini ************************************/

	public function login($uname, $pwd)
	{
		$pwd = md5($pwd);
		$sql = $this->db->query("SELECT * FROM admin WHERE email='$uname' AND password='$pwd'");
		if ($sql->num_rows() > 0) {
			return $sql->row_object();
		} else {
			return false;
		}
	}

	public function getAdminId($id)
	{
		$result = $this->db->query('select id from teacher where teacherId = "' . $id . '"')->row_array();
		return $result;
	}

	public function get_adminMenu()
	{
		// $this->db->order_by('id', 'ASC');
		$this->db->select('*');
		$this->db->from('admin_menu');
		$this->db->where(array('is_active' => 'yes'));
		$this->db->order_by('order_number');
		$query = $this->db->get();
		return $query->result_array();
	}

	public function get_logo()
	{
		$this->db->select('*');
		$this->db->from('erisn_classroom_logo');
		$query = $this->db->get();
		return $query->row_array();
	}

	public function get_logo_from_setting()
	{
		$this->db->select('*');
		$this->db->from('school_settings');
		$query = $this->db->get();
		return $query->row_array();
	}

	public function addedit_subject($s_id, $s_name, $s_icon, $sylabus)
	{

		$aid = $_SESSION['admin_id'];
		if ($s_id == 0) {
			$data_array = array(
				'subject_name' => $s_name,
				'subject_icon' => $s_icon,
				'subject_syllabus' => $sylabus,
				'created_by' => $aid,
				'created_on' => date('Y-m-d H:i:s')
			);

			$this->db->select('subject_name');
			$this->db->from('subject');
			$this->db->where('subject_name', $s_name);
			$query = $this->db->get();

			if ($query->num_rows() == 0) {
				$insert = $this->db->insert('subject', $data_array);
				if ($insert) {
					echo '1';
				}
			} else {
				echo '0';
			}
		} else {
			if ($sylabus != '') {
				$data_array = array(
					'subject_name' => $s_name,
					'subject_icon' => $s_icon,
					'subject_syllabus' => $sylabus,
					'modified_by' => $aid,
					'modified_on' => date('Y-m-d H:i:s')
				);
			} else {
				$data_array = array(
					'subject_name' => $s_name,
					'subject_icon' => $s_icon,
					'modified_by' => $aid,
					'modified_on' => date('Y-m-d H:i:s')
				);
			}
			$this->db->where('id', $s_id);
			$update = $this->db->update('subject', $data_array);
			if ($update) {
				echo '2';
			}
		}
	}

	public function add_subject($s_name, $s_icon, $subcode)
	{
		$aid = $_SESSION['admin_id'];

		$data_array = array(
			'subject_name' => $s_name,
			'subject_icon' => $s_icon,
			'subject_code' => $subcode,
			'created' => date('Y-m-d H:i:s')
		);
		$insert = $this->db->insert('subject', $data_array);
		if ($insert) {
			return 1;
		} else {
			return 0;
		}
	}


	public function update_subject($sub_id, $s_name, $s_icon, $subcode, $is_acive)
	{
		$aid = $_SESSION['admin_id'];

		$data_array = array(
			'subject_name' => $s_name,
			'subject_icon' => $s_icon,
			'subject_code' => $subcode,
			'is_active'   => $is_acive,
			'modified' => date('Y-m-d H:i:s')
		);
		$this->db->where('id', $sub_id);
		$update = $this->db->update('subject', $data_array);

		if ($update) {
			return 1;
		} else {
			return 0;
		}
	}
	public function get_subjects($sid = '')
	{
		$this->db->select('*');
		$this->db->from('subject');
		if ($sid != '') {
			$this->db->where('id', $sid);
			// 			$this->db->where('is_active', 'yes');
			$query = $this->db->get();
			return $query->row_array();
		} else {
			// 			$this->db->where('is_active', 'yes');
			$query = $this->db->get();
			return $query->result_array();
		}
	}

	public function get_students($course_id = '', $batch='')
	{
		$school_info = $this->get_logo_from_setting();
		$batch_id = $batch;
		$this->db->order_by('id', 'DESC');
		$this->db->select('*');
		$this->db->from('students');
		$this->db->where('is_active', 'yes');
		$course_id = (int)$course_id;

		if (isset($course_id) && !empty($course_id))
			$this->db->where('course', $course_id);

		if (isset($batch_id) && !empty($batch_id))
			$this->db->where('batch_id', $batch_id);

		// if ($s_date != '' && $e_date != '') {
		// 	$this->db->where('DATE(registered_on) >=', date('Y-m-d', strtotime($s_date)));
		// 	$this->db->where('DATE(registered_on) <=', date('Y-m-d', strtotime($e_date)));
		// } else {
		// 	if ($s_date != '')
		// 		$this->db->like('DATE(registered_on)', date('Y-m-d', strtotime($s_date)));
		// 	else if ($e_date != '')
		// 		$this->db->like('DATE(registered_on)', date('Y-m-d', strtotime($e_date)));
		// }
		// if($s_date !=''){
		// 	$this->db->where("DATE(registered_on) >=", date('Y-m-d',strtotime($s_date)));
		// }
		// if ($e_date != ''){
		// 	$this->db->where("DATE(registered_on) <=", date('Y-m-d',strtotime($e_date)));
		// }

		// if ($s_date != '' && isset($e_date) && !empty($s_date)){
		// 	$s_date = date('Y-m-d', strtotime($s_date));
		// 	$this->db->where("DATE(registered_on) >=", $s_date);
		// }


		// if ($e_date != '' && isset($e_date) && !empty($e_date)) {
		// 	$e_date = date('Y-m-d', strtotime($e_date));
		// 	$this->db->where("DATE(registered_on) <=", $e_date);
		// }

		$query = $this->db->get();

		// $query = "SELECT * FROM students WHERE batch_id = $batch_id AND course = $course"

		// var_dump($query);
		// exit();

		return $query->result_array();
	}

	public function get_delsubjects()
	{

		$this->db->order_by('id', 'DESC');
		$this->db->select('*');
		$this->db->from('subject');
		$this->db->where('flag', 'N');
		$query = $this->db->get();
		return $query->result_array();
	}

	public function get_delteacher()
	{

		$this->db->order_by('id', 'DESC');
		$this->db->select('*');
		$this->db->from('teacher');
		$this->db->where('flag', 'N');
		$query = $this->db->get();
		return $query->result_array();
	}

	public function delete_data($id, $table)
	{

		$query = $this->db->query(
			'
			SELECT teacher.id
			FROM teacher
			WHERE ' . $id . ' IN (SELECT teacher_id FROM questions where teacher_id=' . $id . ')
			OR ' . $id . ' IN (SELECT teacher_id from classroom_teacher_subject where teacher_id=' . $id . ')
			OR ' . $id . ' IN (SELECT teacher_id from assignment where teacher_id=' . $id . ')'
		);

		if ($query->num_rows() > 0) {
			echo '0';
		} else {

			$update = $this->db->delete($table, array('id' => $id));

			$delete = $this->db->delete('teacher_subjects', array('teacher_id' => $id));
			if ($delete) {
				echo '1';
			}
		}
	}

	public function delete_classroom($clsroomId)
	{
		$status = "exists";
		$res1 = $this->get_general_result_details('student_batch', 'ASC', array('classroom_id' => $clsroomId));
		if (count($res1) > 0) {
			return $status;
		} else {
			$res2 = $this->get_general_result_details('classroom_teacher_subject', 'ASC', array('classroom_id' => $clsroomId));
			if (count($res2) > 0) {
				return $status;
			} else {
				$res3 = $this->get_general_result_details('student_attendence', 'ASC', array('classroom_id' => $clsroomId));
				if (count($res3) > 0) {
					return $status;
				} else {
					$res4 = $this->get_general_result_details('classroom_session', 'ASC', array('classroom_id' => $clsroomId));
					if (count($res4) > 0) {
						return $status;
					} else {
						$this->db->where('id', $clsroomId);
						$del = $this->db->delete('classroom');
						if ($del)
							return $status = "no";
						else
							return $status;
					}
				}
			}
		}
	}



	public function delete_classroom_permanent($clsname, $table)
	{


		$this->db->select('*');
		$this->db->from('classroom');
		$this->db->where('classroom_name', $clsname);
		$query = $this->db->get();
		//   echo $this->db->last_query();

		$res = $query->result_array();
		$crouseId = array();
		$k = 0;
		foreach ($res as $r) {
			$crouseId[$k] = $r['id'];
			$k++;
		}


		$this->db->where('classroom_name', $clsname);
		$this->db->delete($table);

		$data = array(
			'classroom' => 0
		);
		$this->db->where_in('classroom', $crouseId);
		$update = $this->db->update('students', $data);

		//	echo $this->db->last_query();
		if ($update) {
			echo '1';
		}
	}


	/**************************************** START of Batches - Nandini ************************************/
	public function get_batches($where = '', $sqlQry = '', $limit = FALSE, $offset = FALSE)
	{
		if ($limit)
			$this->db->limit($limit, $offset);

		if ($where != '')
			$this->db->where($where);

		$this->db->order_by('batch.id', 'DESC');
		$query = $this->db->get('batch');

		if ($sqlQry != '')
			$query = $this->db->query($sqlQry);

		return $query->result_array();
	}

	function check_batch_name_already_exists($idVal, $bname)
	{
		$query = $this->db->get_where('batch', array('b_name' => $bname));
		if (!empty($query->row_array())) {
			if ($idVal == 0)
				return 'Duplicate';											//Duplicate
			else {
				if ($query->row(0)->id != $idVal)
					return 'Duplicate';										//Duplicate			
			}
		}
		return 'No Duplicate';													//No duplicate
	}

	function add_edit_batch($id, $data)
	{
		if ($id == 0) {
			$data['created'] = $this->nepali_current_date;
			$data['modified'] = $this->nepali_current_date;
			$this->db->insert('batch', $data);
			if ($this->db->affected_rows() > 0)
				return  $insert_id = $this->db->insert_id();
			else
				return 0;
		} else {
			$data['modified'] = $this->nepali_current_date;
			$this->db->where('id', $id);
			$this->db->update('batch', $data);
			if ($this->db->trans_status() === FALSE)
				return 0;

			return true;
		}
	}
	/**************************************** END of Batches - Nandini ************************************/


	public function delete_data_permanent($id, $table)
	{

		$this->db->where('id', $id);
		$this->db->delete($table);

		if ($table == 'subject') {
			$data = array(
				'flag' => 'N'
			);
			$this->db->where('subject_id', $id);
			$update = $this->db->update('classroom', $data);
		}

		if ($table == 'teacher') {
			$data = array(
				'flag' => 'N'
			);
			$this->db->where('teacher_id', $id);
			$update = $this->db->update('classroom', $data);
		}

		if ($table == 'classroom') {
			$this->db->select('*');
			$this->db->from('classroom');
			$this->db->where('id', $id);
			$query = $this->db->get();
			print_r($query);
			$data = array(
				'classroom' => 0
			);
			$this->db->where('classroom', $id);
			$update = $this->db->update('students', $data);
		}
		//	echo $this->db->last_query();

		echo '1';
	}

	public function delete_installment($cid, $table)
	{
		$data = array(
			'flag' => 'N'
		);
		$this->db->where('course_id', $cid);
		$update = $this->db->update($table, $data);
		if ($update) {
			echo '1';
		}
	}

	public function restore_installment($cid, $table)
	{
		$data = array(
			'flag' => 'Y'
		);
		$this->db->where('course_id', $cid);
		$update = $this->db->update($table, $data);
		if ($update) {
			echo '1';
		}
	}

	public function restore_data($id, $table)
	{


		$data = array(
			'flag' => 'Y'
		);
		$this->db->where('id', $id);
		$update = $this->db->update($table, $data);
		if ($update) {
			echo '1';
		}
	}
	//subject end

	//course start
	public function get_course($cid)
	{
		if (empty($cid)) {
			$this->db->order_by('id', 'DESC');
			$this->db->select('*');
			$this->db->from('course');
			$this->db->where('is_active', 'yes');
			$query = $this->db->get();
			return $query->result_array();
		} else {
			$this->db->select('*');
			$this->db->from('course');
			$this->db->where('id', $cid);
			$query = $this->db->get();
			return $query->row_array();
		}
	}

	//course start
	public function get_install_batch()
	{
		$q = "Select b.id, b.b_name,b.b_from,b.b_end from course_fees cf inner join batch b on cf.batch_id = b.id GROUP BY b.b_name order by b.id DESC";

		$res = $this->db->query($q);
		return $res->result_array();
	}

	public function get_install_course()
	{
		$q = "Select c.id, c.course_name from course_fees cf inner join course c on cf.course_id = c.id GROUP BY c.course_name";

		$res = $this->db->query($q);
		return $res->result_array();
	}


	public function get_delcourse()
	{
		if (empty($cid)) {
			$this->db->order_by('id', 'DESC');
			$this->db->select('*');
			$this->db->from('course');
			$this->db->where('flag', 'N');
			$query = $this->db->get();
			return $query->result_array();
		}
	}


	public function get_delinstall()
	{

		$this->db->select('installment.id,course_name,payment_installment,payable_amount,installment.course_id,duedates');
		$this->db->where('installment.flag', 'N');
		$this->db->from('installment');
		$this->db->join('course', 'installment.course_id = course.id');
		$this->db->order_by('installment.course_id');
		$query = $this->db->get();
		return $query->result_array();
	}

	public function addedit_course($c_id, $data_array)
	{
		$aid = $_SESSION['admin_id'];
		if ($c_id == 0) {
			$this->db->select('course_name');
			$this->db->from('course');
			$this->db->where('course_name', $data_array['course_name']);
			$query = $this->db->get();

			if ($query->num_rows() == 0) {
				$data_array['created_by'] = $aid;
				$data_array['created_on'] = date('Y-m-d H:i:s');
				$insert = $this->db->insert('course', $data_array);
				if ($insert) {
					echo '1';
				}
			} else {
				echo '0';
			}
		} else {
			$data_array['modified_by'] = $aid;
			$data_array['modified_on'] = date('Y-m-d H:i:s');
			$this->db->where('id', $c_id);
			$update = $this->db->update('course', $data_array);
			if ($update) {
				echo '2';
			}
		}
	}

	public function get_subjectName($sids)
	{
		$where = "id IN($sids)";
		$this->db->select('subject_name');
		$this->db->from('subject');
		$this->db->where($where);
		$query = $this->db->get();

		return $query->result_array();
	}
	//course end

	//teacher start
	public function get_teacher($tid, $token = '')
	{
		if (empty($tid)) {
			$this->db->order_by('id', 'DESC');
			$this->db->select('*');
			$this->db->from('teacher');
			$this->db->where('is_active', 'yes');

			$query = $this->db->get();
			return $query->result_array();
		}
		//shankar code start here
		else if ($token == 1) {
			$this->db->select('s.id , subject_name, subject_icon,s.is_active,s.created,s.modified');
			$this->db->from('subject s, teacher_subjects ts, teacher t');
			$this->db->where('t.id', $tid);
			$this->db->where('ts.teacher_id = t.id');
			$this->db->where('s.id = ts.subject_id');
			$this->db->where('s.is_active', 'yes');
			$this->db->where('ts.is_active', 'yes');
			$query = $this->db->get();
			return $query->result_array();
		}
		//shankar code end here

		else {
			$this->db->select('*');
			$this->db->from('teacher');
			$this->db->where('id', $tid);
			$query = $this->db->get();
			return $query->row_array();
		}
	}

	public function get_staff($tid, $token = '')
	{
		if (empty($tid)) {
			// $this->db->order_by('id', 'DESC');
			// $this->db->select('*');
			// $this->db->from('teacher');
			// $this->db->where('is_active', 'yes');
			$q = "Select * from teacher WHERE role != 'teacher' ORDER BY id DESC";

			$res = $this->db->query($q);
			return $res->result_array();


			// $query = $this->db->get();
			// return $query->result_array();
		} else {
			$this->db->select('*');
			$this->db->from('teacher');
			$this->db->where('id', $tid);
			$query = $this->db->get();
			return $query->row_array();
		}
	}

	public function addedit_teacher($t_id, $t_password, $profile_image, $data_array,  $sub_list)
	{
		$aid = $_SESSION['admin_id'];

		$pwd = base64_encode($t_password);
		if ($t_id == 0) {
			$this->db->select('*');
			$this->db->from('teacher');
			$this->db->where('email', $data_array['email']);
			$query = $this->db->get();

			if ($query->num_rows() == 0) {
				$this->db->select_max('id');
				$query  = $this->db->get('teacher');
				$res = $query->row_array();

				$pid = $res['id'] + 1;

				// if (strlen($pid) == 1)
				// 	$pid = "000" . $pid;
				// else if (strlen($pid) == 2)
				// 	$pid = "00" . $pid;
				// else if (strlen($pid) == 3)
				// 	$pid = "0" . $pid;

				$school_info = $this->get_logo_from_setting();
				$school_prefix = (!empty($school_info['school_prefix_id'])) ? $school_info['school_prefix_id'] : 'BB';

				$teacherId = $school_prefix . TEACHER_ID_PREFIX . date('Ymd', strtotime($this->nepali_current_date)) . '0' . $pid;
				$data_array['teacherId'] = $teacherId;
				$data_array['photo'] = $profile_image;
				$data_array['password'] = $pwd;
				$data_array['created_by'] = $aid;
				$data_array['created_on'] = $this->nepali_current_date;
				// $insert = $this->db->insert('teacher', $data_array);
				// if($insert){
				//     echo '1';
				// }

				//shankar code start here
				$this->db->insert('teacher', $data_array);
				$last_id = $this->db->insert_id();
				if ($last_id) {

					for ($i = 0; $i < count($sub_list); $i++) {
						$d_array = array(
							'teacher_id' => $last_id,
							'subject_id' => $sub_list[$i]
						);
						$assign_sub_t = $this->db->insert('teacher_subjects', $d_array);
					}
					return 1;
				}
				//shankar code end here

			} else {
				return 0;
			}
		} else {
			if (!empty($pwd)) {
				$data_array['password'] = $pwd;
			}
			if (!empty($profile_image)) {
				$data_array['photo'] = $profile_image;
			}
			$data_array['modified_by'] = $aid;
			$data_array['modified_on'] = $this->nepali_current_date;


			$this->db->where('id', $t_id);
			$update = $this->db->update('teacher', $data_array);

			//shankar code start here

			$update_rows = array('is_active' => 'no');
			$this->db->where('teacher_id', $t_id);
			$this->db->update('teacher_subjects', $update_rows);
			$i = 0;



			for ($i = 0; $i < count($sub_list); $i++) {
				// echo '
';
				// var_dump('Subject Id ' . $i + 1 . '= ' . $sub_list[$i]);
				$this->db->select('*');
				$this->db->from('teacher_subjects');
				$this->db->where('teacher_id', $t_id);
				$this->db->where('subject_id', $sub_list[$i]);
				$query = $this->db->get();
				$d = $query->row_array();

				if ($d) {
					// echo '
 Teacher Subjects';
					// var_dump($d);
					$update_rows = array('is_active' => 'yes');
					$this->db->where('teacher_id', $t_id);
					$this->db->where('subject_id', $sub_list[$i]);
					$this->db->update('teacher_subjects', $update_rows);
					// 	echo '
';
					// 	print_r($this->db);
					// // 	echo '
';
					// // 		print_r($this->db->get()->row_array());
				} else {
					$d_array = array(
						'teacher_id' => $t_id,
						'subject_id' => $sub_list[$i]
					);
					$this->db->insert('teacher_subjects', $d_array);
				}
			}
			//shankar code end here

			if ($update) {
				return 2;
			}
		}
	}
	//teacher end

	//classroom start
	public function get_classroom($crid)
	{
		if (empty($crid)) {
			$this->db->order_by('id', 'DESC');
			$this->db->select('*');
			$this->db->from('classroom');
			$this->db->where('flag', 'Y');
			$query = $this->db->get();
			return $query->result_array();
		} else {
			$this->db->select('*');
			$this->db->from('classroom');
			$this->db->where('id', $crid);
			$query = $this->db->get();
			return $query->row_array();
		}
	}

	//classroom start
	public function get_delclassroom($crid)
	{
		if (empty($crid)) {
			$this->db->order_by('id', 'DESC');
			$this->db->select('*');
			$this->db->from('classroom');
			$this->db->where('flag', 'N');
			$query = $this->db->get();
			return $query->result_array();
		} else {
			$this->db->select('*');
			$this->db->from('classroom');
			$this->db->where('id', $crid);
			$query = $this->db->get();
			return $query->row_array();
		}
	}

	public function get_coursesubject($cid)
	{
		$this->db->select('subject_id');
		$this->db->from('course');
		$this->db->where('id', $cid);
		$query = $this->db->get();
		$res = $query->row_array();
		$s_id = $res['subject_id'];

		$where = "id IN($s_id)";
		$this->db->select('*');
		$this->db->from('subject');
		$this->db->where($where);
		$query = $this->db->get();
		return $query->result_array();
	}

	public function get_classroomsubject($classname)
	{
		$this->db->select('id,subject_id,teacher_id');
		$this->db->from('classroom');
		$this->db->where('classroom_name', $classname);
		$this->db->order_by('teacher_id', 'desc');
		$query = $this->db->get();
		// echo $this->db->last_query();
		return $query->result_array();
	}

	public function addedit_classroom($cr_id, $cr_name, $cr_batch_from, $cr_batch_to, $cr_course, $cr_subject, $cr_teacher)
	{
		$aid = $_SESSION['admin_id'];

		if ($cr_id == 0) {
			$this->db->select('classroom_name');
			$this->db->from('classroom');
			$this->db->where('classroom_name', $cr_name);
			$query = $this->db->get();

			if ($query->num_rows() == 0) {
				for ($i = 0; $i < count($cr_subject); $i++) {
					$crname = $cr_name;
					$cbfrom = $cr_batch_from;

					$cbto = $cr_batch_to;

					$cbcourse = $cr_course;
					$crsub = $cr_subject[$i];
					$crtea = $cr_teacher[$i];

					$data = array(
						'course_id' => $cbcourse,
						'subject_id' => $crsub,
						'teacher_id' => $crtea,
						'classroom_name' => $crname,
						'batch_from' => $cbfrom,
						'batch_to' => $cbto,
						'created_by' => $aid,
						'created_on' => date('Y-m-d H:i:s')
					);

					$insert = $this->db->insert('classroom', $data);
				}
				if ($insert) {
					echo '1';
				}
			} else {
				echo '0';
			}
		} else {

			$this->db->where('classroom_name', $cr_name);
			$this->db->delete('classroom');
			//echo $this->db->last_query();
			for ($i = 0; $i < count($cr_subject); $i++) {
				$crname = $cr_name;
				$cbfrom = $cr_batch_from;

				$cbto = $cr_batch_to;

				$cbcourse = $cr_course;
				$crsub = $cr_subject[$i];
				$crtea = $cr_teacher[$i];

				$data = array(
					'course_id' => $cbcourse,
					'subject_id' => $crsub,
					'teacher_id' => $crtea,
					'classroom_name' => $crname,
					'batch_from' => $cbfrom,
					'batch_to' => $cbto,
					'created_by' => $aid,
					'created_on' => date('Y-m-d H:i:s')
				);

				$update = $this->db->insert('classroom', $data);
			}
			if ($update) {
				echo '2';
			} else {
				echo '3';
			}
		}
	}
	//classroom end

	//installment strat
	public function get_coursefee($course, $installment, $start)
	{
		//get course fee
		//SELECT * FROM `classroom`,course WHERE classroom.course_id = course.id group by classroom.course_id
		$this->db->select('course_fee');
		$this->db->from('course');
		$this->db->where('course.id', $course);
		$query_cf = $this->db->get();
		// echo $this->db->last_query();
		$result_cf = $query_cf->row_array();
		//   print_r($result_cf);
		$course_fee = $result_cf['course_fee'];

		$start = $start;

		$html = '';
		if ($installment == 1) {
			$payment_method = 'Full Payment';
			$duedate = $start;
			$amount = $course_fee;

			$html = '
			
			
			
			
			';
		} elseif ($installment == 2) {
			$payment_method = 'Payable in 2 parts';
			$duedate = $start . ',' . date('Y-m-d', strtotime("+6 months", strtotime($start)));
			$amount = number_format((float)($course_fee / 2), 2, '.', '');

			$html .= '
			
			
			
			 
			';
		} elseif ($installment == 4) {
			$payment_method = 'Payable in 4 parts';
			$duedate = $start . ',' . date('Y-m-d', strtotime("+3 months", strtotime($start))) . ',' . date('Y-m-d', strtotime("+6 months", strtotime($start))) . ',' . date('Y-m-d', strtotime("+9 months", strtotime($start)));
			$amount = number_format((float)($course_fee / 4), 2, '.', '');

			$html .= '
			
			
			
			 
			';
		} elseif ($installment == 6) {
			$payment_method = 'Payable in 6 parts';
			$duedate = $start . ',' . date('Y-m-d', strtotime("+2 months", strtotime($start))) . ',' . date('Y-m-d', strtotime("+4 months", strtotime($start))) . ',' . date('Y-m-d', strtotime("+6 months", strtotime($start))) . ',' . date('Y-m-d', strtotime("+8 months", strtotime($start))) . ',' . date('Y-m-d', strtotime("+10 months", strtotime($start)));
			$amount = number_format((float)($course_fee / 6), 2, '.', '');

			$html .= '
			
			
			
			 
			';
		}
		echo $html;
	}

	//installment strat
	public function get_duedates($course_fee, $installment, $start)
	{

		$this->db->select('amount');
		$this->db->from('course_fees');
		$this->db->where('course_fees.id', $course_fee);
		$query_cf = $this->db->get();
		$result_cf = $query_cf->row_array();


		$course_fee = $result_cf['amount'];
		$query_instal = array();

		foreach ($installment as $key => $value) {
			$this->db->select('*');
			$this->db->from('payment_types');
			$this->db->where('number_of_payment', $value);
			$inst_quer = $this->db->get();
			$query_instal[$key] = $inst_quer->row_array();
		}

		$start = $start;

		$html = '';
		for ($k = 0; $k < count($query_instal); $k++) {

			if ($query_instal[$k]['number_of_payment'] == 1) {
				$payment_method = $query_instal[$k]['payment_type_name'];
				$payment_id = $query_instal[$k]['id'];
				$duedate = $start;
				$amount = $course_fee;

				$html = '
				' . $payment_method . '
				
				

				';

				$returnArr = array(
					'payment_type' => $payment_method,
					'total_amount' => $course_fee,
					'html' => $html,
					'due_date' => $duedate

				);
			}
			if ($query_instal[$k]['number_of_payment'] == 2) {
				$payment_method = $query_instal[$k]['payment_type_name'];
				$payment_id = $query_instal[$k]['id'];
				$dateArr = [];
				$dateArr[] = $start;

				$AdDate = convert_BSdate_to_ADdate($this->nepaliDateObject, $start);
				$AdDate = date('Y-m-d', strtotime("+6 months", strtotime($AdDate)));
				$BsDate = convert_ADdate_to_BSdate($this->nepaliDateObject, $AdDate);

				$dateArr[] = $BsDate;
				$amount = number_format((float)($course_fee / 2), 2, '.', '');

				$html .= '
				' . $payment_method . '';
				$html .= '';
				foreach ($dateArr as $key => $value) {
					$html .= '
'; } $html .= ''; $html .= ''; foreach ($dateArr as $key => $value) { $html .= '
'; } $html .= ''; $html .= ''; $returnArr = array( 'payment_type' => $payment_method, 'total_amount' => $course_fee, 'html' => $html, 'due_dates' => $dateArr, 'id' => 'two' ); } if ($query_instal[$k]['number_of_payment'] == 4) { $payment_method = $query_instal[$k]['payment_type_name']; $payment_id = $query_instal[$k]['id']; $dateArr = []; $dateArr[] = $start; $AdDate = convert_BSdate_to_ADdate($this->nepaliDateObject, $start); $AdDate = date('Y-m-d', strtotime("+3 months", strtotime($AdDate))); $BsDateOne = convert_ADdate_to_BSdate($this->nepaliDateObject, $AdDate); $dateArr[] = $BsDateOne; $AdDate = convert_BSdate_to_ADdate($this->nepaliDateObject, $start); $AdDate = date('Y-m-d', strtotime("+6 months", strtotime($AdDate))); $BsDateTwo = convert_ADdate_to_BSdate($this->nepaliDateObject, $AdDate); $dateArr[] = $BsDateTwo; $AdDate = convert_BSdate_to_ADdate($this->nepaliDateObject, $start); $AdDate = date('Y-m-d', strtotime("+9 months", strtotime($AdDate))); $BsDateThree = convert_ADdate_to_BSdate($this->nepaliDateObject, $AdDate); $dateArr[] = $BsDateThree; $amount = number_format((float)($course_fee / 4), 2, '.', ''); $html .= ' ' . $payment_method . ''; $html .= ''; foreach ($dateArr as $key => $value) { $html .= '
'; } $html .= ''; $html .= ''; foreach ($dateArr as $key => $value) { $html .= '
'; } $html .= ''; $html .= ''; $returnArr = array( 'payment_type' => $payment_method, 'total_amount' => $course_fee, 'html' => $html, 'due_dates' => $dateArr, 'id' => 'three' ); } if ($query_instal[$k]['number_of_payment'] == 6) { $payment_method = $query_instal[$k]['payment_type_name']; $payment_id = $query_instal[$k]['id']; $dateArr = []; $dateArr[] = $start; $AdDate = convert_BSdate_to_ADdate($this->nepaliDateObject, $start); $AdDate = date('Y-m-d', strtotime("+2 months", strtotime($AdDate))); $BsDateOne = convert_ADdate_to_BSdate($this->nepaliDateObject, $AdDate); $dateArr[] = $BsDateOne; $AdDate = convert_BSdate_to_ADdate($this->nepaliDateObject, $start); $AdDate = date('Y-m-d', strtotime("+4 months", strtotime($AdDate))); $BsDateTwo = convert_ADdate_to_BSdate($this->nepaliDateObject, $AdDate); $dateArr[] = $BsDateTwo; $AdDate = convert_BSdate_to_ADdate($this->nepaliDateObject, $start); $AdDate = date('Y-m-d', strtotime("+6 months", strtotime($AdDate))); $BsDateThree = convert_ADdate_to_BSdate($this->nepaliDateObject, $AdDate); $dateArr[] = $BsDateThree; $AdDate = convert_BSdate_to_ADdate($this->nepaliDateObject, $start); $AdDate = date('Y-m-d', strtotime("+8 months", strtotime($AdDate))); $BsDateFour = convert_ADdate_to_BSdate($this->nepaliDateObject, $AdDate); $dateArr[] = $BsDateFour; $AdDate = convert_BSdate_to_ADdate($this->nepaliDateObject, $start); $AdDate = date('Y-m-d', strtotime("+10 months", strtotime($AdDate))); $BsDateFive = convert_ADdate_to_BSdate($this->nepaliDateObject, $AdDate); $dateArr[] = $BsDateFive; $amount = number_format((float)($course_fee / 6), 2, '.', ''); $html .= ' ' . $payment_method . ''; $html .= ''; foreach ($dateArr as $key => $value) { $html .= '
'; } $html .= ''; $html .= ''; foreach ($dateArr as $key => $value) { $html .= '
'; } $html .= ''; $html .= ''; $returnArr = array( 'payment_type' => $payment_method, 'total_amount' => $course_fee, 'html' => $html, 'due_dates' => $dateArr, 'id' => 'three' ); } if ($query_instal[$k]['number_of_payment'] == 12) { $payment_method = $query_instal[$k]['payment_type_name']; $payment_id = $query_instal[$k]['id']; $dateArr = []; $dateArr[] = $start; $AdDate = convert_BSdate_to_ADdate($this->nepaliDateObject, $start); $AdDate = date('Y-m-d', strtotime("+1 months", strtotime($AdDate))); $BsDateOne = convert_ADdate_to_BSdate($this->nepaliDateObject, $AdDate); $dateArr[] = $BsDateOne; $AdDate = convert_BSdate_to_ADdate($this->nepaliDateObject, $start); $AdDate = date('Y-m-d', strtotime("+2 months", strtotime($AdDate))); $BsDateTwo = convert_ADdate_to_BSdate($this->nepaliDateObject, $AdDate); $dateArr[] = $BsDateTwo; $AdDate = convert_BSdate_to_ADdate($this->nepaliDateObject, $start); $AdDate = date('Y-m-d', strtotime("+3 months", strtotime($AdDate))); $BsDateThree = convert_ADdate_to_BSdate($this->nepaliDateObject, $AdDate); $dateArr[] = $BsDateThree; $AdDate = convert_BSdate_to_ADdate($this->nepaliDateObject, $start); $AdDate = date('Y-m-d', strtotime("+4 months", strtotime($AdDate))); $BsDateFour = convert_ADdate_to_BSdate($this->nepaliDateObject, $AdDate); $dateArr[] = $BsDateFour; $AdDate = convert_BSdate_to_ADdate($this->nepaliDateObject, $start); $AdDate = date('Y-m-d', strtotime("+5 months", strtotime($AdDate))); $BsDateFive = convert_ADdate_to_BSdate($this->nepaliDateObject, $AdDate); $dateArr[] = $BsDateFive; $AdDate = convert_BSdate_to_ADdate($this->nepaliDateObject, $start); $AdDate = date('Y-m-d', strtotime("+6 months", strtotime($AdDate))); $BsDateOne = convert_ADdate_to_BSdate($this->nepaliDateObject, $AdDate); $dateArr[] = $BsDateOne; $AdDate = convert_BSdate_to_ADdate($this->nepaliDateObject, $start); $AdDate = date('Y-m-d', strtotime("+7 months", strtotime($AdDate))); $BsDateTwo = convert_ADdate_to_BSdate($this->nepaliDateObject, $AdDate); $dateArr[] = $BsDateTwo; $AdDate = convert_BSdate_to_ADdate($this->nepaliDateObject, $start); $AdDate = date('Y-m-d', strtotime("+8 months", strtotime($AdDate))); $BsDateThree = convert_ADdate_to_BSdate($this->nepaliDateObject, $AdDate); $dateArr[] = $BsDateThree; $AdDate = convert_BSdate_to_ADdate($this->nepaliDateObject, $start); $AdDate = date('Y-m-d', strtotime("+9 months", strtotime($AdDate))); $BsDateFour = convert_ADdate_to_BSdate($this->nepaliDateObject, $AdDate); $dateArr[] = $BsDateFour; $AdDate = convert_BSdate_to_ADdate($this->nepaliDateObject, $start); $AdDate = date('Y-m-d', strtotime("+10 months", strtotime($AdDate))); $BsDateFive = convert_ADdate_to_BSdate($this->nepaliDateObject, $AdDate); $dateArr[] = $BsDateFive; $AdDate = convert_BSdate_to_ADdate($this->nepaliDateObject, $start); $AdDate = date('Y-m-d', strtotime("+11 months", strtotime($AdDate))); $BsDateFive = convert_ADdate_to_BSdate($this->nepaliDateObject, $AdDate); $dateArr[] = $BsDateFive; $amount = number_format((float)($course_fee / 12), 2, '.', ''); $html .= ' ' . $payment_method . ''; $html .= ''; foreach ($dateArr as $key => $value) { $html .= '
'; } $html .= ''; $html .= ''; foreach ($dateArr as $key => $value) { $html .= '
'; } $html .= ''; $html .= ''; $returnArr = array( 'payment_type' => $payment_method, 'total_amount' => $course_fee, 'html' => $html, 'due_dates' => $dateArr, 'id' => 'three' ); } } return $returnArr; } //installment strat public function addedit_installment($details) { // print_r($details); $length = sizeof($details['pay_method']); for ($i = 0; $i < $length; $i++) { $data_array = array( 'course_id' => $details['course_id'], 'payment_installment' => $details['pay_method'][$i], 'payable_amount' => $details['amount'][$i], 'duedates' => $details['duedate'][$i] ); $insert = $this->db->insert('installment', $data_array); } if ($insert) { echo '1'; } else { echo '0'; } } public function get_feeinstallment() { $this->db->select('installment.id,course_name,payment_installment,payable_amount,installment.course_id,duedates'); $this->db->where('installment.flag', 'Y'); $this->db->from('installment'); $this->db->join('course', 'installment.course_id = course.id'); $this->db->order_by('installment.course_id'); $query = $this->db->get(); return $query->result_array(); } public function get_coursefeeinstall($cid) { $this->db->select('installment.id,course_name,batch_from,payment_installment,payable_amount,installment.course_id,duedates'); // $this->db->where('installment.flag', 'Y'); $this->db->where('installment.course_id', $cid); $this->db->from('installment'); $this->db->join('course', 'installment.course_id = course.id'); $this->db->order_by('installment.course_id'); $query = $this->db->get(); return $query->result_array(); } public function get_application($start, $end, $course) { $this->db->select('applicationid,applications.id,course_name,b_name,b_from,b_end,photo,email,mobile,name,applications.registered_on,applications.gender'); $this->db->from('applications'); $this->db->join('course', 'applications.course = course.id'); $this->db->join('batch', 'applications.batch_id = batch.id'); $this->db->order_by('applications.id', 'desc'); $this->db->where('status', 'new'); // $this->db->where("registered_on BETWEEN '{$start}' AND '{$end}'"); $course = (int)$course; if (isset($course) && !empty($course)) $this->db->where('applications.course', $course); if ($start != '' && isset($start) && !empty($start)) $this->db->where("DATE_FORMAT(registered_on,'%Y-%m-%d') >=", $start); if ($end != '' && isset($end) && !empty($end)) $this->db->where("DATE_FORMAT(registered_on,'%Y-%m-%d') <=", $end); $this->db->order_by('applications.id', 'desc'); $query = $this->db->get(); // echo $this->db->last_query(); return $query->result_array(); } public function get_rejected_application($start, $end, $course) { $this->db->select('applicationid,applications.id,course_name,b_name,b_from,b_end,photo,email,mobile,name,applications.registered_on,applications.gender'); $this->db->from('applications'); $this->db->join('course', 'applications.course = course.id'); $this->db->join('batch', 'applications.batch_id = batch.id'); $this->db->where('status', 'rejected'); $course = (int)$course; if (isset($course) && !empty($course)) $this->db->where('applications.course', $course); if ($start != '' && isset($start) && !empty($start)) $this->db->where("DATE_FORMAT(registered_on,'%Y-%m-%d') >=", $start); if ($end != '' && isset($end) && !empty($end)) $this->db->where("DATE_FORMAT(registered_on,'%Y-%m-%d') <=", $end); $this->db->order_by('applications.id', 'desc'); $query = $this->db->get(); // echo $this->db->last_query(); return $query->result_array(); } public function get_approved_application($start, $end, $course) { $this->db->select('applicationid,applications.id,course_name,b_name,b_from,b_end,photo,email,mobile,name,applications.registered_on,applications.payment_status,applications.gender'); $this->db->from('applications'); $this->db->join('course', 'applications.course = course.id'); $this->db->join('batch', 'applications.batch_id = batch.id'); $this->db->where('status', 'approved'); $course = (int)$course; if (isset($course) && !empty($course)) $this->db->where('applications.course', $course); if ($start != '' && isset($start) && !empty($start)) $this->db->where("DATE_FORMAT(registered_on,'%Y-%m-%d') >=", $start); if ($end != '' && isset($end) && !empty($end)) $this->db->where("DATE_FORMAT(registered_on,'%Y-%m-%d') <=", $end); $this->db->order_by('applications.id', 'desc'); $query = $this->db->get(); // echo $this->db->last_query(); return $query->result_array(); } //installment end public function view_applicant($id) { $this->db->select('applicationid,applications.id,course_name,b_name,b_from,b_end,photo,email,mobile,name,registered_on,dob,gender,address1,address2,state,country,zipcode,exam_result,medical_cerificate,school_certificate'); $this->db->from('applications'); $this->db->join('course', 'applications.course = course.id'); $this->db->join('batch', 'applications.batch_id = batch.id'); $this->db->where('applications.id', $id); $this->db->order_by('applications.id', 'desc'); $query = $this->db->get(); return $query->result_array(); } public function process_application($id, $data) { // $application = $this->db->where('id', $id); $update = $this->db->update('applications', $data); if ($update) return 1; else return 0; // echo $this->db->last_query(); } public function get_allcourse() { $this->db->order_by('id', 'ASC'); $this->db->select('*'); $this->db->from('course'); $this->db->where('is_active', 'yes'); $query = $this->db->get(); //echo $this->db->last_query(); return $query->result_array(); } public function update_applicationdoc($data) { if (isset($data['photo'])) $data_array['photo'] = $data['photo']; if (isset($data['exam_result'])) $data_array['exam_result'] = $data['exam_result']; if (isset($data['medical_cerificate'])) $data_array['medical_cerificate'] = $data['medical_cerificate']; if (isset($data['school_certificate'])) $data_array['school_certificate'] = $data['school_certificate']; $id = $data['id']; $this->db->where('id', $id); $update = $this->db->update('applications', $data_array); } public function update_studentsdoc($data) { if (isset($data['photo'])) $data_array['photo'] = $data['photo']; if (isset($data['exam_result'])) $data_array['exam_result'] = $data['exam_result']; if (isset($data['medical_cerificate'])) $data_array['medical_cerificate'] = $data['medical_cerificate']; if (isset($data['school_certificate'])) $data_array['school_certificate'] = $data['school_certificate']; $id = $data['id']; $data['modified'] = $this->nepali_current_date; $this->db->where('id', $id); $update = $this->db->update('students', $data_array); } public function view_student($id) { $this->db->select('students.batch_id,classroom.classroom_name,b_name, students.id,students.qr_code,students.iemis,students.father_name,students.mother_name,students.studentId,course_name,photo,email,mobile,name,registered_on,dob,gender,address1,address2,state,country,zipcode,exam_result,medical_cerificate,school_certificate,emergency_contact_name,emergency_contact_number,students.is_active,suspend_reason,has_sibling,parent_pan'); $this->db->from('students'); $this->db->join('course', 'students.course = course.id'); $this->db->join('student_batch', 'student_batch.student_id = students.id AND student_batch.batch_id = students.batch_id'); $this->db->join('classroom', 'student_batch.classroom_id = classroom.id'); $this->db->join('batch', 'students.batch_id = batch.id'); $this->db->where('students.id', $id); $this->db->order_by('student_batch.id', 'desc'); $this->db->limit(1); $query = $this->db->get(); //echo $this->db->last_query(); return $query->result_array(); } public function get_coursestudents($cid) { $this->db->order_by('id', 'DESC'); $this->db->select('students.id,course_name,photo,email,mobile,name,studentId'); $this->db->from('students'); $this->db->join('course', 'students.course = course.id'); $this->db->where('students.flag', 'Y'); $this->db->where('students.course', $cid); $this->db->where('classroom', 0); $query = $this->db->get(); //echo $this->db->last_query(); return $query->result_array(); } public function get_classstudents($clsid) { $this->db->order_by('id', 'DESC'); $this->db->select('students.id,course_name,photo,email,mobile,name,studentId'); $this->db->from('students'); $this->db->join('course', 'students.course = course.id'); $this->db->where('students.flag', 'Y'); $this->db->where('students.classroom', $clsid); $query = $this->db->get(); return $query->result_array(); } public function assign_clssroom($clsid, $id) { $data = array( 'classroom' => $clsid ); $this->db->where('id', $id); $update = $this->db->update("students", $data); // echo $this->db->last_query(); if ($update) { return 1; } } //course start public function get_studentcourse($sid) { $this->db->select('*'); $this->db->from('students'); $this->db->where('id', $sid); $query = $this->db->get(); return $query->row_array(); } public function get_removestudent($sid) { $data = array( 'classroom' => 0 ); $this->db->where('id', $sid); $update = $this->db->update("students", $data); // echo $this->db->last_query(); if ($update) { echo '1'; } } /* public function get_classsubject($id){ $this->db->select('class_id,subject_id,subject_name'); $this->db->from('classroom_session'); $this->db->where('classroom_session.flag', 'Y'); $this->db->where('classroom_session.class_id', $id); $this->db->join('classroom', 'classroom_session.class_id = classroom.id','left'); $this->db->join('subject', 'subject.id = classroom.subject_id','left'); $query = $this->db->get(); echo $this->db->last_query(); return $query->result_array(); }*/ public function get_classsubject($id) { $query = 'Select subject_id,subject_name from classroom left join subject on subject.id = classroom.subject_id WHERE course_id = (select course_id from classroom where classroom_name ="' . $id . '" group by classroom_name ) and classroom.flag = "Y" group by subject_id'; $q = $this->db->query($query); // echo $this->db->last_query(); return $q->result_array(); } public function get_student_details($table_name, $condtion) { $this->db->select('name,email,applicationid'); $this->db->from('applications'); $this->db->where($condtion); $query = $this->db->get(); return $query->row_array(); } // Section Models 06/10/2021 - Afras Khan public function get_section_details($where = '', $sqlQry = '', $limit = FALSE, $offset = FALSE) { if ($limit) $this->db->limit($limit, $offset); if ($where != '') $this->db->where($where); $this->db->order_by('section.id', 'DESC'); $query = $this->db->get('section'); if ($sqlQry != '') $query = $this->db->query($sqlQry); if (($query->num_rows() == 1)) return $query->row_array(); return $query->result_array(); } public function deleteSection($id) { $this->db->where('id', $id); $this->db->delete('section'); if ($this->db->affected_rows()) { return true; } else { return false; } } public function checkSectioninCourse($crid) { $this->db->select('*'); $this->db->from('course_sections'); $this->db->where('section_id', $crid); $query = $this->db->get(); if ($query->num_rows() > 0) { $firstResult = $query->result_array(); $courseNames = array(); foreach ($firstResult as $key => $value) { $courseId = $value['course_id']; $courseQuery = $this->db->query("Select course_name from course WHERE id = '$courseId' GROUP BY id"); if ($courseQuery->num_rows() > 0) { $res = $courseQuery->result_array(); foreach ($res as $key => $value) { array_push($courseNames, $value['course_name']); } } else { return 'Course Error'; } } return $courseNames; } else { return 'failed'; } } public function add_edit_section($id, $data) { if ($id == 0) { $data['created'] = $this->nepali_current_date; $data['modified'] = $this->nepali_current_date; $this->db->insert('section', $data); if ($this->db->affected_rows() > 0) return $insert_id = $this->db->insert_id(); else return 0; } else { // $check_section_course = $this->db->query('Select * from course_sections where section_id = ' . $id); // $check_section_class = $this->db->query('Select * from classroom where section_id = ' . $id); // if ($check_section_course->num_rows() > 0 || $check_section_class->num_rows() > 0) { // return 0; // } $check_section_in_classroom = $this->db->query("SELECT * FROM classroom WHERE section_id=$id")->result_array(); // $check_section_in_classroom = $this->Admin_model->get_table_info_row('classroom', array('section_id' => $id)); if (!empty($check_section_in_classroom)) { // echo "
";
				// print_r($check_section_in_classroom);
				foreach ($check_section_in_classroom as $each_section) {
					$arr = explode(' - ', $each_section['classroom_name']);
					$arr[1] = $_POST['section_name'];
					$class_name = implode(' - ', $arr);
					$this->db->set('classroom_name', $class_name)
						->where('id', $each_section['id'])
						->update('classroom');
					// 	echo "
";
					// print_r($class_name);

				}
				// exit;
				// $arr = explode(' - ', $check_section_in_classroom['classroom_name']);
				// $arr[1] = $_POST['section_name'];
				// $class_name = implode(' - ', $arr);

				// $this->db->set('classroom_name', $class_name)
				// ->where('section_id', $id)
				// ->update('classroom');
			}
			$data['modified'] = $this->nepali_current_date;
			$this->db->where('id', $id);
			$this->db->update('section', $data);
			if ($this->db->trans_status() === FALSE)
				return 0;

			return true;
		}
	}

	// Section Models End 06/10/2021 - Afras Khan

	// subject start by shivu

	public function get_subject_details($where = '', $sqlQry = '', $limit = FALSE, $offset = FALSE)
	{
		if ($limit)
			$this->db->limit($limit, $offset);

		if ($where != '')
			$this->db->where($where);

		$this->db->order_by('subject.id', 'DESC');
		$query = $this->db->get('subject');

		if ($sqlQry != '')
			$query = $this->db->query($sqlQry);

		if (($query->num_rows() == 1))
			return $query->row_array();

		return $query->result_array();
	}

	public function add_edit_subject($id, $data)
	{
		if ($id == 0) {
			$data['created'] = $this->nepali_current_date;
			$data['modified'] = $this->nepali_current_date;
			$this->db->insert('subject', $data);
			if ($this->db->affected_rows() > 0)
				return $insert_id = $this->db->insert_id();
			else
				return 0;
		} else {
			$data['modified'] = $this->nepali_current_date;
			$this->db->where('id', $id);
			$this->db->update('subject', $data);
			if ($this->db->trans_status() === FALSE)
				return 0;

			return true;
		}
	}



	public function check_subject($id)
	{

		$this->db->select('*');
		$this->db->from('subject');
		$this->db->where('id', $id);
		$query = $this->db->get();
		if ($query->num_rows() > 0)
			return 1;
		else
			return 0;
	}



	public function get_general_details($table_name, $order_by, $where = '', $sqlQry = '', $limit = FALSE, $offset = FALSE)
	{
		if ($limit)
			$this->db->limit($limit, $offset);

		if ($where != '')
			$this->db->where($where);

		$this->db->order_by($table_name . '.id', $order_by);
		$query = $this->db->get($table_name);

		if ($sqlQry != '')
			$query = $this->db->query($sqlQry);

		if (($query->num_rows() == 1))
			return $query->row_array();

		return $query->result_array();
	}

	public function get_query_result($sqlQry)
	{
		if ($sqlQry != '')
			$query = $this->db->query($sqlQry);
		return $query->result_array();
	}

	public function get_query_row($sqlQry)
	{
		if ($sqlQry != '')
			$query = $this->db->query($sqlQry);
		return $query->row_array();
	}

	public function insert_update_data($data, $filename)
	{
		$whereClause = array('subject_id' => $data['subject_id'], 'course_id' => $data['course_id']);
		$result = $this->get_general_details('subject_syllabus', 'DESC', $whereClause);
		if (count($result) > 0) {
			$update_data = array('syllabus' => $filename, 'modified' => date('Y-m-d H:i:s', strtotime($this->nepali_current_date)));
			$this->db->where($whereClause);
			$update_rst = $this->db->update('subject_syllabus', $update_data);
			if ($update_rst)
				return 1;
			else
				return 0;
		} else {
			$insertdata = array('subject_id' => $data['subject_id'], 'course_id' => $data['course_id'], 'syllabus' => $filename, '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)));
			$insert = $this->db->insert('subject_syllabus', $insertdata);
			if ($insert)
				return 2;
			else
				return 0;
		}
	}

	// subject end by shivu

	// Course Models 12-10-2021 Afras Khan


	public function get_course_details($where = '', $sqlQry = '', $limit = FALSE, $offset = FALSE)
	{
		if ($limit)
			$this->db->limit($limit, $offset);

		if ($where != '')
			$this->db->where($where);

		$this->db->order_by('course.id', 'DESC');
		$query = $this->db->get('course');

		if ($sqlQry != '')
			$query = $this->db->query($sqlQry);

		if (($query->num_rows() == 1))
			return $query->row_array();

		return $query->result_array();
	}

	public function get_course_subject_section($sql)
	{
		$query = $this->db->query($sql);
		if (($query->num_rows() == 0))
			return 'failed';
		return $query->result_array();
	}

	public function check_value_exists($table, $where, $id)
	{

		$query = $this->db->get_where($table, $where);

		if (!empty($query->row_array())) {
			if ($id == 0)
				return false;
			else {
				if ($query->row(0)->id != $id)
					return false;
			}
		}
		return true;
	}


	public function add_edit_course($id, $data, $subsecid)
	{

		// $data['batch'] = $this->Admin_model->getBatch();
		// echo '
';
		// var_dump($data['batch']);
		// var_dump($data['batch'][0]['batch_id']);
		// $currentBatch = $data['batch'][0]['batch_id'];

		$currentBatch = $this->Admin_model->getBatch()[0]['batch_id'];

		if ($id == 0) {
			$this->db->insert('course', $data);
			if ($this->db->affected_rows() > 0) {
				$flag = false;
				$last_id = $this->db->insert_id();

				foreach ($subsecid['section'] as $key => $value) {
					$insertSectionArr = array(
						'course_id' => $last_id,
						'section_id' => $value,
						'created' => $this->nepali_current_date,
						'modified' => $this->nepali_current_date
					);
					$this->db->trans_start();
					$insertCourseSec = $this->db->insert('course_sections', $insertSectionArr);
					$this->db->trans_complete();

					if ($this->db->trans_status() === FALSE) {
						return FALSE;
					} else {
						$flag = true;
					}
				}

				if (!$flag)
					return false;

				foreach ($subsecid['subject'] as $key => $value) {
					$insertSubjectArr = array(
						'course_id' => $last_id,
						'subject_id' => $value,
						'created' => $this->nepali_current_date,
						'modified' => $this->nepali_current_date
					);

					$this->db->trans_start();
					$insertCourseSub = $this->db->insert('course_subjects', $insertSubjectArr);
					$this->db->trans_complete();

					if ($this->db->trans_status() === FALSE) {
						$flag = false;
						return FALSE;
					} else {
						$flag = true;
					}
				}

				return $flag;
			}
		} else if ($id > 0) { // Checking ID == 0 Condition

			$this->db->where('id', $id);
			$this->db->update('course', $data);
			if ($this->db->trans_status() === FALSE)
				return 0;
		}
	}



	public function get_course_sections($cid)
	{

		$cse_sql = "SELECT c.course_name, c.id,s.id as section_id, s.section_name from course c inner join course_sections ce on c.id = ce.course_id inner join section s on s.id = ce.section_id where c.id = '$cid' ";

		$query = $this->db->query($cse_sql);

		if (($query->num_rows() > 0))
			return $query->result_array();
	}


	public function get_course_subjects($cid)
	{

		$cs_sql = "SELECT c.course_name, c.id,s.id as subject_id, s.subject_name from course c inner join course_subjects cs on c.id = cs.course_id inner join subject s on s.id = cs.subject_id where c.id = '$cid'";

		$query = $this->db->query($cs_sql);

		if (($query->num_rows() > 0))
			return $query->result_array();
	}

	public function unselected_subject_section($dataArr, $item)
	{

		if ($item == 'section') {
			$this->db->select('*');
			$this->db->from('section');
			foreach ($dataArr as $key => $value) {
				$this->db->where($value);
			}

			$query = $this->db->get();

			if ($query->num_rows() > 0) {
				return $query->result_array();
			}
		} else if ($item == 'subject') {
			$this->db->select('*');
			$this->db->from('subject');

			foreach ($dataArr as $key => $value) {
				$this->db->where($value);
			}

			$query = $this->db->get();

			if ($query->num_rows() > 0) {
				return $query->result_array();
			}
		}
	}

	public function check_course_in_classroom($cid)
	{

		$this->db->select('*');
		$this->db->from('classroom');
		$this->db->where('course_id', $cid);
		$query = $this->db->get();

		if ($query->num_rows() > 0) {
			$firstResult = $query->result_array();
			$classroomNames = array();

			foreach ($firstResult as $key => $value) {
				$classId = $value['id'];

				$classroomQuery = $this->db->query("Select classroom_name from classroom WHERE id = '$classId' GROUP BY classroom_name");

				if ($classroomQuery->num_rows() > 0) {
					$res = $classroomQuery->result_array();
					foreach ($res as $key => $value) {
						if (!in_array($value['classroom_name'], $classroomNames)) {
							array_push($classroomNames, $value['classroom_name']);
						}
					}
				} else {
					return 'Classroom Error';
				}
			}

			return $classroomNames;
		} else {
			return 'failed';
		}
	}

	public function deleteCourse($cid)
	{

		$this->db->delete('course', array('id' => $cid));
		$this->db->delete('course_sections', array('course_id' => $cid));
		$this->db->delete('course_subjects', array('course_id' => $cid));

		if ($this->db->affected_rows()) {
			return true;
		} else {
			return false;
		}
	}





	public function update_course_section($newSecId, $secIdArr, $cid)
	{

		if (!empty($secIdArr)) {
			$where = '';
			foreach ($secIdArr as $key => $value) {
				if ($key == 0) {
					$where .= "section_id = '$value'";
				} else {
					$where .= " or section_id = '$value'";
				}
			}

			$this->db->select('c.id, c.classroom_name, c.section_id');
			$this->db->from('classroom c');
			$this->db->join('students s', 's.classroom = c.id');
			$this->db->where("(" . $where . ")");
			$this->db->where('c.course_id', $cid);
			$this->db->where('c.id = s.classroom');
			$query = $this->db->get();

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


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

				$classroomNamesArr = array_values(array_unique(array_column($response['classroom-data'], "classroom_name")));
				dd($classroomNamesArr);
				$secArr = array_values(array_unique(array_column($response['classroom-data'], "section_id")));
				$secName_where = '';
				foreach ($secArr as $key => $value) {
					if ($key == 0) {
						$secName_where .= "id = '$value'";
					} else {
						$secName_where .= " or id = '$value'";
					}
				}

				$decQuery = "SELECT section_name  from section where " . $secName_where . " GROUP BY section_name;";
				$secNamesQuery = $this->get_section_details('', $decQuery);

				$secNames = implode(', ', array_column($secNamesQuery, "section_name"));

				if (count($secNamesQuery) == 1)
					$secNames = $secNamesQuery['section_name'];

				$classes = implode(', ', $classroomNamesArr);

				if (count($classroomNamesArr) == 1)
					$classes = $classroomNamesArr[0];

				$response['class-name'] = $classes;
				$response['status'] = 'failed';
				$response['section-names'] = $secNames;

				return $response;
			}
		}


		$this->db->where('course_id', $cid);
		$this->db->delete('course_sections');

		if ($this->db->affected_rows()) {


			foreach ($newSecId as $key => $value) {
				$insertData[$key] = array(
					'course_id' => $cid,
					'section_id' => $value,
					'created' => $this->nepali_current_date
				);
			}

			$this->db->trans_start();
			$insertUpdatedSections = $this->db->insert_batch('course_sections', $insertData);
			$this->db->trans_complete();

			if ($this->db->trans_status() === FALSE) {
				return false;
			} else {
				return true;
			}
		} else {
			return false;
		}
	}


	public function update_course_subject($newSubId, $cid)
	{

		$this->db->where('course_id', $cid);
		$this->db->delete('course_subjects');

		if ($this->db->affected_rows()) {


			foreach ($newSubId as $key => $value) {
				$insertData[$key] = array(
					'course_id' => $cid,
					'subject_id' => $value,
					'created' => $this->nepali_current_date
				);
			}

			$this->db->trans_start();
			$insertUpdatedSubjects = $this->db->insert_batch('course_subjects', $insertData);
			$this->db->trans_complete();

			if ($this->db->trans_status() === FALSE) {
				return false;
			} else {
				return true;
			}
		} else {
			return false;
		}
	}

	// Yogesh Update Offline Exam Is Active

	public function update_course_offline_exam($newSubId, $offlineExams, $cid)
	{

		// echo '
';
		// print_r($newSubId);
		// print_r('Course Id => ' . $cid);
		// print_r($offlineExams);
		$data['school_info'] = $this->Admin_model->get_logo_from_setting();
		$currentBatch = $data['school_info']['batch_id'];

		// print_r($_SESSION);

		// Setting all subjects is_active in offline_exam_marks table to no
		foreach ($offlineExams as $offlineExam) {
			if ($cid == $offlineExam['course_id'] && $currentBatch == $offlineExam['batch_id']) {

				$updateData = array(
					'is_active' => 'no',
					'modified_by' => $_SESSION['admin_id'],
					'modified_on' => $this->nepali_current_date,
				);
				$this->db->where('id', $offlineExam['oem_id']);
				$this->db->update('offline_exam_marks', $updateData);
			}
		}

		foreach ($newSubId as $value) {


			foreach ($offlineExams as $offlineExam) {


				if ($value == $offlineExam['subject_id'] && $currentBatch == $offlineExam['batch_id'] && $cid == $offlineExam['course_id']) {
					echo $value . ' => ' . $offlineExam['subject_id'] . ' => Batch ' . $offlineExam['batch_id'] . ' Offline Exam Mark Id = ' . $offlineExam['oem_id'] . ' 
'; $updateData = array( 'is_active' => 'yes', 'modified_by' => $_SESSION['admin_name'], 'modified_on' => $this->nepali_current_date, ); $this->db->where('id', $offlineExam['oem_id']); $this->db->update('offline_exam_marks', $updateData); } } } $offlineExams = $this->Admin_model->get_course_offfline_exam($cid); // var_dump($offlineExams); // $this->db->where('course_id', $cid); // $this->db->delete('course_subjects'); // if ($this->db->affected_rows()) { // foreach ($newSubId as $key => $value) { // $insertData[$key] = array( // 'course_id' => $cid, // 'subject_id' => $value, // 'created' => $this->nepali_current_date // ); // } // $this->db->trans_start(); // $insertUpdatedSubjects = $this->db->insert_batch('course_subjects', $insertData); // $this->db->trans_complete(); // if ($this->db->trans_status() === FALSE) { // return false; // } else { // return true; // } // } else { // return false; // } } // -- Yogesh // Course Models Ends 12-10-2021 Afras Khan // Notification Model 13-10-2021 Afras Khan public function insertNotificationData($data) { $data['created_at'] = $this->nepali_current_date; $insert_query = $this->db->insert('notifications', $data); if ($this->db->affected_rows() > 0) { return true; } else { return false; } } public function get_notification_details($where = '', $sqlQry = '', $limit = FALSE, $offset = FALSE) { if ($limit) $this->db->limit($limit, $offset); if ($where != '') $this->db->where($where); $this->db->order_by('notifications.notification_id', 'DESC'); $query = $this->db->get('notifications'); if ($sqlQry != '') $query = $this->db->query($sqlQry); return $query->result_array(); } public function getAllNotifications() { $this->db->order_by('notification_id', 'DESC'); $this->db->select('*'); $this->db->from('notifications'); $query = $this->db->get(); return $query->result_array(); } public function getDistinctNotifications() { $classroom = $this->db->query('SELECT * FROM notifications GROUP BY student_classroom'); $teacher = $this->db->query('SELECT * FROM notifications GROUP BY teacher_id'); $title = $this->db->query('SELECT * FROM notifications GROUP BY notification_title'); $filterData = array( 'class' => $classroom->result_array(), 'teacher' => $teacher->result_array(), 'title' => $title->result_array(), ); return $filterData; } public function deleteNotification($id) { $this->db->where('notification_id', $id); $this->db->delete('notifications'); if ($this->db->affected_rows()) { return true; } else { return false; } } public function getSingleNotification($id) { $query = $this->db->query('SELECT * FROM notifications WHERE notification_id = ' . $id); if ($query->num_rows() > 0) { $result = $query->row(); return $result; } else { return 'failed'; } } public function get_classroomUnique($crid) { if (empty($crid)) { $this->db->group_by('classroom_name'); $this->db->order_by('id', 'DESC'); $this->db->select('*'); $this->db->from('classroom'); $query = $this->db->get(); return $query->result_array(); } else { $this->db->select('*'); $this->db->from('classroom'); $this->db->where('id', $crid); $query = $this->db->get(); return $query->row_array(); } } public function get_teacherUnique($tid) { if (empty($tid)) { $this->db->group_by('id'); $this->db->order_by('id', 'DESC'); $this->db->select('*'); $this->db->from('teacher'); $this->db->where('is_active', 'yes'); $query = $this->db->get(); return $query->result_array(); } else { $this->db->select('*'); $this->db->from('teacher'); $this->db->where('id', $tid); $query = $this->db->get(); return $query->row_array(); } } public function getFilterNotifications($name, $class, $teacher, $date) { $query = $this->db->query('SELECT * FROM notifications WHERE notification_title = "' . $name . '" OR student_classroom = "' . $class . '" OR teacher_id = "' . $teacher . '" OR date(created_at) = "' . $date . '"'); if ($query->num_rows() > 0) { $result = $query->result_array(); return $result; } else { return 'failed'; } } public function getNotificationAPI($id) { if (empty($id)) { $this->db->order_by('notification_id', 'DESC'); $this->db->select('*'); $this->db->from('notifications'); $query = $this->db->get(); return $query->result_array(); } else { $this->db->select('*'); $this->db->from('notifications'); $this->db->where('notification_id', $id); $query = $this->db->get(); return $query->row_array(); } } public function notification_update_read($nId) { $sql = "SELECT * from notifications where notification_id = '$nId' AND notification_read = 'Yes'"; $result = $this->db->query($sql); if (empty($result->result_array())) { $data = array('notification_read' => 'Yes'); $this->db->where('notification_id', $nId); $this->db->update('notifications', $data); if ($this->db->trans_status() === FALSE) return 0; return true; } return true; } // Notification Model Ends 13-10-2021 Afras Khan // shankar code for exam secton 13-10-21 public function get_exam_details($where = '', $sqlQry = '', $limit = FALSE, $offset = FALSE) { if ($limit) $this->db->limit($limit, $offset); if ($where != '') $this->db->where($where); $this->db->order_by('exam.id', 'DESC'); $query = $this->db->get('exam'); if ($sqlQry != '') $query = $this->db->query($sqlQry); return $query->result_array(); } public function deleteExam($id) { $query = $this->db->query( ' SELECT exam.id FROM exam WHERE ' . $id . ' IN (SELECT exam_id FROM questions where exam_id=' . $id . ')' ); if ($query->num_rows() > 0) { return false; } else { $this->db->where('id', $id); $this->db->delete('exam'); if ($this->db->affected_rows()) { return true; } else { return false; } } } public function add_edit_exam($id, $data) { if ($id == 0) { $this->db->insert('exam', $data); if ($this->db->affected_rows() > 0) return $insert_id = $this->db->insert_id(); else return 0; } else { $this->db->where('id', $id); $this->db->update('exam', $data); if ($this->db->trans_status() === FALSE) return 0; return true; } } // shankar code end for exam secton 13-10-21 /* Admin Role Model Starts 16-10-21 Afras Khan */ public function get_role_details($where = '', $sqlQry = '', $limit = FALSE, $offset = FALSE) { if ($limit) $this->db->limit($limit, $offset); if ($where != '') $this->db->where($where); $this->db->order_by('admin_roles.id', 'DESC'); $query = $this->db->get('admin_roles'); if ($sqlQry != '') $query = $this->db->query($sqlQry); return $query->result_array(); } public function add_edit_role($id, $data) { if ($id == 0) { $this->db->insert('admin_roles', $data); if ($this->db->affected_rows() > 0) return $insert_id = $this->db->insert_id(); else return 0; } else { $this->db->where('id', $id); $this->db->update('admin_roles', $data); if ($this->db->trans_status() === FALSE) return 0; return true; } } public function add_edit_role_permissions($id, $data) { if ($id == 0) { $data['modified'] = $this->nepali_current_date; $this->db->insert('admin_role_permissions', $data); if ($this->db->affected_rows() > 0) return $insert_id = $this->db->insert_id(); else return 0; } else { $checkifExists = $this->get_table_info('admin_role_permissions', array('admin_role_ids' => $id)); if (empty($checkifExists)) { $permids = array( 'admin_role_ids' => $id, 'menu_ids' => $data['menu_ids'] ); $this->db->insert('admin_role_permissions', $permids); if ($this->db->affected_rows() > 0) return $insert_id = $this->db->insert_id(); else return 0; } else { $data['modified'] = $this->nepali_current_date; $this->db->where('admin_role_ids', $id); $this->db->update('admin_role_permissions', $data); if ($this->db->trans_status() === FALSE) return 0; return true; } } } public function delete_role($id) { $this->db->delete('admin_roles', array('id' => $id)); $this->db->delete('admin_role_permissions', array('admin_role_ids' => $id)); if ($this->db->affected_rows()) { return true; } else { return false; } } public function get_table_info($table_name, $where = '', $sqlQry = '', $order = 'DESC', $limit = FALSE, $offset = FALSE) { if ($limit) $this->db->limit($limit, $offset); if ($where != '') $this->db->where($where); $this->db->order_by($table_name . '.id', $order); $query = $this->db->get($table_name); if ($sqlQry != '') $query = $this->db->query($sqlQry); return $query->result_array(); } public function get_table_info_row($table_name, $where = '', $sqlQry = '', $order = 'DESC', $limit = FALSE, $offset = FALSE) { if ($limit) $this->db->limit($limit, $offset); if ($where != '') $this->db->where($where); $this->db->order_by($table_name . '.id', $order); $query = $this->db->get($table_name); if ($sqlQry != '') $query = $this->db->query($sqlQry); return $query->row_array(); } /* Admin Role Model Ends 16-10-21 Afras Khan */ /* General functions start for get deatils 18-102021 SHVIU-*/ public function get_general_row_details($table_name, $order_by = 'ASC', $where = '', $sqlQry = '', $limit = FALSE, $offset = FALSE) { if ($limit) $this->db->limit($limit, $offset); if ($where != '') $this->db->where($where); $this->db->order_by($table_name . '.id', $order_by); $query = $this->db->get($table_name); if ($sqlQry != '') $query = $this->db->query($sqlQry); if (($query->num_rows() == 1)) return $query->row_array(); } public function get_general_result_details($table_name, $order_by = 'ASC', $where = '', $sqlQry = '', $limit = FALSE, $offset = FALSE) { if ($limit) $this->db->limit($limit, $offset); if ($where != '') $this->db->where($where); $this->db->order_by($table_name . '.id', $order_by); $query = $this->db->get($table_name); if ($sqlQry != '') $query = $this->db->query($sqlQry); return $query->result_array(); } // General functions Ends for get deatils 18-102021 SHVIU /* Class Room Start -Shivu */ // public function add_update_classroom($classroom_id, $data) // { // if ($classroom_id == 0) { // $result = $this->db->insert('classroom', $data); // if (!empty($result)) // return 1; // else // return 0; // } else { // $this->db->where('id', $classroom_id); // $result = $this->db->update('classroom', $data); // if (!empty($result)) // return 2; // else // return 0; // } // } public function add_update_classroom($classroom_id, $data) { $pre_teacher_subject_info = array(); $flag = true; if ($classroom_id == 0) { $userdata = array('course_id' => $data['course_id'], 'section_id' => $data['section_id'], 'classroom_name' => $data['classroom_name'], 'created' => $this->nepali_current_date, 'modified' => $this->nepali_current_date); $this->db->insert('classroom', $userdata); $insert_id = $this->db->insert_id(); for ($i = 0; $i < count($data['classroom_subjects']); $i++) { $subjects_teachers = array( 'classroom_id' => $insert_id, 'subject_id' => $data['classroom_subjects'][$i], 'teacher_id' => $data['classroom_teacher'][$i] ); $exists = $this->db->get_where('classroom_teacher_subject', $subjects_teachers)->row(); if (empty($exists)) { $subjects_teachers['created'] = $this->nepali_current_date; $result = $this->db->insert('classroom_teacher_subject', $subjects_teachers); if (!$result) { $flag = false; } } else { $pre_teacher_subject_info[] = $subjects_teachers; } } if ($flag) return 1; else return 0; } else { $userdata = array( 'course_id' => $data['course_id'], 'section_id' => $data['section_id'], 'classroom_name' => $data['classroom_name'], 'is_active' => $data['is_active'], 'modified' => $this->nepali_current_date ); $afftectedRows = 0; echo '
';

			for ($i = 0; $i < count($data['subject_id']); $i++) {



				$teacher_arr = array('teacher_id' => $data['teacher_id'][$i]);
				// if ($data['teacher_id'][$i] == $data['isClassTeacher'][0]) {
				// 	$teacher_arr['is_class_teacher'] = 'yes';
				// } else {
				// 	$teacher_arr['is_class_teacher'] = 'no';
				// }
				$teacher_arr['modified'] = $this->nepali_current_date;
				// print_r($data['teacher_id'][$i]);
				// print_r($teacher_arr);
				// exit();
				$rowcount = $this->db->get_where('classroom_teacher_subject', array('classroom_id' => $classroom_id, 'subject_id' => $data['subject_id'][$i]))->result_array();

				if (count($rowcount) > 0) {
					$this->db->where(array(
						'classroom_id' => $classroom_id, 'subject_id' => $data['subject_id'][$i]
					));
					$result = $this->db->update('classroom_teacher_subject', $teacher_arr);
				} else {
					$teacher_subject_arr = array('classroom_id' => $classroom_id, 'subject_id' => $data['subject_id'][$i], 'teacher_id' => $data['teacher_id'][$i], 'created' => $this->nepali_current_date, 'modified' => $this->nepali_current_date);
					$result = $this->db->insert('classroom_teacher_subject', $teacher_subject_arr);
				}
				$afftectedRows = $this->db->affected_rows();
			}
			$this->db->where('id', $classroom_id);
			$result = $this->db->update('classroom', $userdata);
			$afftectedRows1 = $this->db->affected_rows();
			$affected = ($afftectedRows1 != 0) ? $afftectedRows1 : $afftectedRows;
			if ($affected > 0)
				return 2;
			else
				return 3;
		}
	}

	public function get_filterstudents()
	{
		$this->db->select('*')->from('students');
		$this->db->where('is_active', 'yes');
		$this->db->where('assign_status', 'no');
		$this->db->order_by('id', 'desc');
		$query = $this->db->get();
		return $query->result_array();
	}

	public function insert_assign_classroom($insertData)
	{
		$insertData['created'] = $this->nepali_current_date;
		$this->db->insert('student_batch', $insertData);
		$insert_id = $this->db->insert_id();
		return $insert_id;
	}


	/*  classroom  by shivu */

	/* User Module Starts */

	public function add_edit_users($id, $data)
	{
		if ($id == 0) {
			$this->db->insert('admin', $data);
			if ($this->db->affected_rows() > 0)
				return $insert_id = $this->db->insert_id();
			else
				return 0;
		} else {
			$this->db->where('id', $id);
			$this->db->update('admin', $data);
			if ($this->db->trans_status() === FALSE)
				return 0;

			return true;
		}
	}

	public function delete_user($id)
	{

		$this->db->delete('admin', array('id' => $id));

		if ($this->db->affected_rows()) {
			return true;
		} else {
			return false;
		}
	}

	/* User Module Ends */


	// 	SHANKAR CODE OF EXAM CREATION START FROM HERE 20-10-2021

	public function get_exam_name()
	{
		$this->db->order_by('id', 'DESC');
		$this->db->select('*');
		$this->db->from('exam');
		$this->db->where('is_active', 'yes');
		$query = $this->db->get();
		//echo $this->db->last_query();
		return $query->result_array();
	}

	public function get_sections_from_classroom($id)
	{
		$this->db->select('section.id, section_name');
		$this->db->from('course_sections ,section');
		$this->db->where('course_sections.course_id', $id);
		$this->db->where('course_sections.section_id = section.id');
		$this->db->where('section.is_active', 'yes');
		$query = $this->db->get();
		//echo $this->db->last_query();
		return $query->result_array();
	}

	public function get_subject_teachers($subject_id)
	{
		// dd($subject_id);
		$this->db->select('teacher.id, teacher_name');
		$this->db->from('teacher ,teacher_subjects');
		$this->db->where('teacher_subjects.subject_id', $subject_id);
		$this->db->where('teacher_subjects.is_active', 'yes');
		$query = $this->db->get();

		$teacher_query = "SELECT ts.teacher_id ,ts.subject_id, ts.is_active FROM teacher_subjects ts WHERE ts.is_active='yes' AND ts.subject_id=$subject_id";
		$teacherList = $this->Admin_model->get_query_result($teacher_query);
		//echo $this->db->last_query();
		// return $teacher_query->result_array();

		return $teacherList;
	}

	public function get_subjects_from_course($course_id)
	{
		$this->db->select('subject.id, subject_name');
		$this->db->from('subject ,course_subjects');
		$this->db->where('course_subjects.course_id', $course_id);
		$this->db->where('subject.id = course_subjects.subject_id');
		$this->db->where('subject.is_active', 'yes');
		$query = $this->db->get();
		//echo $this->db->last_query();
		return $query->result_array();
	}

	public function get_teacher_from_subject($course_id, $sec_id, $sub_id)
	{
		$this->db->select('teacher.id, teacher_name');
		$this->db->from('teacher ,classroom_teacher_subject, classroom');
		$this->db->where('classroom.course_id', $course_id);
		$this->db->where('classroom.section_id', $sec_id);
		$this->db->where('classroom_teacher_subject.classroom_id = classroom.id');
		$this->db->where('classroom_teacher_subject.subject_id', $sub_id);
		$this->db->where('teacher.id = classroom_teacher_subject.teacher_id');
		$this->db->where('teacher.is_active', 'yes');
		$query = $this->db->get();
		//echo $this->db->last_query();
		return $query->result_array();
	}

	//	shankar code end


	public function add_exam_exam_paper($id, $data)
	{


		if ($id == 0) {
			$this->db->insert('questions', $data);
			if ($this->db->affected_rows() > 0)
				return $insert_id = $this->db->insert_id();
			else
				return 0;
		} else {
			$this->db->where('id', $id);
			$this->db->update('questions', $data);
			if ($this->db->trans_status() === FALSE) {
				$this->db->where('exam_id', $id);
				$this->db->delete('exam_questions');
				if ($this->db->affected_rows())
					return 0;
			}

			return true;
		}
	}


	public function get_all_questions($s_date = '', $e_date = '', $course_id = '', $que_id = '')
	{
		$this->db->select('questions.id as question_id,course_name ,questions.section_id,questions.exam_duration, exam.e_name,classroom.classroom_name,subject.subject_name,teacher.teacher_name, questions.total_marks,questions.exam_date,questions.exam_starttime, questions.exam_endtime,questions.passing_marks, questions.exam_id, questions.course_id,questions.subject_id, questions.teacher_id,questions.exam_question_format');
		$this->db->from('questions, classroom, subject, teacher, exam, course');
		$this->db->where('questions.subject_id = subject.id');
		$this->db->where('questions.teacher_id = teacher.id');
		$this->db->where('questions.exam_id = exam.id');
		// $this->db->where('questions.course_id = subject_syllabus.course_id');
		// $this->db->where('questions.subject_id = subject_syllabus.subject_id');
		$this->db->where('questions.course_id = classroom.course_id');
		$this->db->where('questions.course_id = course.id');

		if ($que_id != '' && !empty($que_id))
			$this->db->where('questions.id', $que_id);

		if (!empty($course_id) && $course_id != '')
			$this->db->where('questions.course_id', $course_id);


		if ($s_date != '' && $e_date == '')
			$this->db->where('exam_date >', $s_date);

		if ($e_date != '' && $s_date == '')
			$this->db->where('exam_date <', $s_date);

		if ($s_date != '' && $e_date != '') {
			$this->db->where("exam_date BETWEEN '$s_date' AND '$e_date'");
		}

		$this->db->where('questions.is_active', 'yes');

		$this->db->group_by('questions.id');
		$this->db->order_by('questions.id', 'DESC');
		$query = $this->db->get();
		// echo $this->db->last_query();

		if ($que_id != 0) {
			return $query->row_array();
		} else {
			return $query->result_array();
		}
	}

	// 	SHANKAR CODE OF EXAM CREATION END HERE 20-10-2021

	/* Forgot Password Model - Afras Khan 23/10/2021 */

	public function update_admin_password($id, $data)
	{
		$data['modified'] = $this->nepali_current_date;
		$this->db->where('id', $id);
		$this->db->update('admin', $data);
		if ($this->db->trans_status() === FALSE)
			return 0;

		return true;
	}

	public function delete_row($table, $condtion)
	{
		$this->db->where($condtion);
		$this->db->delete($table);
		if ($this->db->affected_rows()) {
			return true;
		} else {
			return false;
		}
	}

	// 	SHANKAR CODE OF EXAM CREATION start HERE 27-10-2021
	public function get_course_subjects_teacher($tid, $count = '')
	{
		$this->db->select('cts.teacher_id,cts.classroom_id, cl.classroom_name, cl.course_id, co.course_name, cts.subject_id, s.subject_name');
		$this->db->from(' classroom cl,classroom_teacher_subject cts, subject s, course co');
		$this->db->where('cts.teacher_id', $tid);
		$this->db->where('cts.subject_id = s.id');
		$this->db->where('cts.classroom_id = cl.id');
		$this->db->where('cl.course_id = co.id');
		if ($count == 1) {
			$this->db->group_by('cl.classroom_name');
		}

		$query = $this->db->get();
		// echo $this->db->last_query();
		return $query->result_array();
	}


	// 	SHANKAR CODE OF EXAM CREATION END HERE 27-10-2021

	// online session start by shivu

	public function createMeetingLink($details)
	{
		$durationInMinute = $details['duration'];
		$Byday = $details['day'];
		$startTime = $details['start'];
		$classroom_session_id = $details['sessid'];
		$duration = date('H:i', strtotime('+' . $durationInMinute . 'minutes', strtotime($startTime)));

		$teacherID = (!empty($details['sub_teacher_id'])) ? $details['sub_teacher_id'] : 0;
		$today = date('Y-m-d', strtotime($this->nepali_current_date));
		// (start >= '10:10' OR end <= '10:20')
		$checkteacherResult = $this->db->query("SELECT sd.* FROM session_details sd JOIN classroom_session cs ON cs.id =sd.session_id WHERE (DATE('$today') BETWEEN cs.start_date AND cs.end_date) AND ('$startTime' BETWEEN sd.start AND sd.end) AND sd.day='$Byday' AND sd.teacher_id=$teacherID ")->result_array();
		// $checkteacherResult=$this->db->query("SELECT sd.* FROM session_details sd JOIN classroom_session cs ON cs.id =sd.session_id WHERE (DATE('$today') BETWEEN cs.start_date AND cs.end_date) AND (sd.start >= '$startTime' OR  sd.end <= '$duration') AND sd.day='$Byday' AND sd.teacher_id=$teacherID ")->result_array();
		$checkTeacher = (!empty($checkteacherResult)) ? count($checkteacherResult) : 0;
		if ($checkTeacher === 0) {
			$sqlquery = "SELECT * FROM session_details WHERE ('$startTime' BETWEEN start AND end) AND day='$Byday' AND session_id='$classroom_session_id'";
			$rst = $this->Admin_model->get_query_result($sqlquery);

			$CheckClass = (isset($rst) && !empty($rst)) ? count($rst) : 0;
			if ($CheckClass == 0) {
				$details['end'] = $duration;
				$data_array = array(
					'session_id' => $details['sessid'],
					'teacher_id' => $details['sub_teacher_id'],
					'subject_id' => $details['subject'],
					'start'      => $details['start'],
					'duration'   => $details['duration'],
					'join_link'  => $details['join_link'],
					'start_link' => $details['start_link'],
					'day'        => $details['day'],
					'end' => $details['end'],
					'password' => 'test'
				);
				$insert = $this->db->insert('session_details', $data_array);
				$id = (!empty($insert)) ? $this->db->insert_id() : 0;
				if ($id > 0)
					return "success";
				else
					return "failed";
			} else {
				return "exists";
			}
		} else {
			return "teacher_exists";
		}
	}

	public function get_classroomlist()
	{

		$this->db->select('*');
		$this->db->from('classroom');
		$this->db->where('is_active', 'yes');
		$this->db->group_by('classroom_name');
		$query = $this->db->get();
		return $query->result_array();
	}

	public function get_classsession($id)
	{

		$this->db->select('*');
		$this->db->from('classroom_session');
		$this->db->where('is_active', 'yes');
		$this->db->where('id', $id);
		$query = $this->db->get();
		return $query->result_array();
	}

	public function get_classsessiononday($id, $day)
	{

		$this->db->select('*');
		$this->db->from('session_details');
		$this->db->where('session_id', $id);
		$this->db->where('day', $day);
		$this->db->order_by('start', 'ASC');
		$query = $this->db->get();
		$result = $query->result_array();
		if ($result != '') {
			return $result;
		} else {
			return 0;
		}
	}

	public function get_allsession()
	{

		$this->db->select('cls.id,cls.start_date,cls.end_date,cls.number_session,cl.classroom_name,cls.batch_id');
		$this->db->from('classroom_session as cls');
		$this->db->join('classroom as cl', 'cl.id = cls.classroom_id', 'left');
		$this->db->where('cls.is_active', 'yes');

		$query = $this->db->get();
		return $query->result_array();
	}
	public function add_classsession($details)
	{
		if ($details['id'] == 0) {
			$details['created'] = $this->nepali_current_date;
			$details['modified'] = $this->nepali_current_date;
			$this->db->insert('classroom_session', $details);
			$id = $this->db->insert_id();
			return $id;
		} else {
			$details['modified'] = $this->nepali_current_date;
			$this->db->where('id', $details['id']);
			$this->db->update('classroom_session', $details);
			if ($this->db->affected_rows() > 0) {
				return $details['id'];
			} else {
				return 0;
			}
		}
	}

	public function updateMeetingLink($details)
	{
		$durationInMinute = $details['duration'];
		$Byday = $details['day'];
		$startTime = $details['start'];
		$classroom_session_id = $details['sessid'];
		$session_details_id = $details['mid'];
		$duration = date('H:i', strtotime('+' . $durationInMinute . 'minutes', strtotime($startTime)));
		// $duration = date('H:i', strtotime('+' . $durationInMinute . 'minutes', strtotime($startTime)));
		$today = date('Y-m-d', strtotime($this->nepali_current_date));

		$teacherID = (!empty($details['sub_teacher_id'])) ? $details['sub_teacher_id'] : 0;
		// echo "SELECT sd.* FROM session_details sd JOIN classroom_session cs ON cs.id =sd.session_id WHERE  (sd.id != $session_details_id AND (DATE('$today') BETWEEN cs.start_date AND cs.end_date)) AND (('$startTime' BETWEEN sd.start AND sd.end) AND sd.day='$Byday') AND sd.teacher_id=$teacherID";
		// exit;
		$checkteacherResult = $this->db->query("SELECT sd.* FROM session_details sd JOIN classroom_session cs ON cs.id =sd.session_id WHERE  (sd.id != $session_details_id AND (DATE('$today') BETWEEN cs.start_date AND cs.end_date)) AND (('$startTime' BETWEEN sd.start AND sd.end) AND sd.day='$Byday') AND sd.teacher_id=$teacherID ")->result_array();
		// dd($checkteacherResult);
		$checkTeacher = (!empty($checkteacherResult)) ? count($checkteacherResult) : 0;
		if ($checkTeacher === 0) {

			$sqlquery = "SELECT * FROM session_details WHERE ('$startTime' BETWEEN start AND end) AND day='$Byday' AND session_id='$classroom_session_id' AND id !=$session_details_id";
			$rst = $this->Admin_model->get_query_result($sqlquery);

			$CheckClass = (isset($rst) && !empty($rst)) ? count($rst) : 0;
			if ($CheckClass == 0) {
				$details['end'] = $duration;
				$data_array = array(
					'subject_id' => $details['subject'],
					'start'      => $details['start'],
					'teacher_id' => $details['sub_teacher_id'],
					'duration'   => $details['duration'],
					'join_link'  => $details['join_link'],
					'start_link' => $details['start_link'],
					'end' => $details['end'],
					'password' => 'test'
				);
				$this->db->where(array('id' => $details['mid'], 'session_id' => $classroom_session_id, 'day' => $details['day']));
				$result = $this->db->update('session_details', $data_array);
				// print_r($result);
				// die();
				$id = (!empty($result)) ? $details['sessid'] : 0;
				if ($id > 0)
					return 'success';
				else
					return 'failed';
			} else {
				return 'exists';
			}
		} else {
			return "teacher_exists";
		}
	}


	public function get_teacher_onlinesession($teacher_id)
	{
		$sqlQry = "SELECT cl.classroom_name,cts.classroom_id,cts.subject_id,cts.teacher_id,s.subject_name,cls.id as cl_session_id, sd.* FROM classroom_teacher_subject cts 
		LEFT JOIN classroom_session cls ON cls.classroom_id=cts.classroom_id 
		LEFT JOIN classroom cl ON cl.id = cts.classroom_id 
		LEFT JOIN session_details sd ON sd.session_id=cls.id AND sd.subject_id=cts.subject_id 
		LEFT JOIN subject s ON s.id=cts.subject_id
		WHERE cts.teacher_id=$teacher_id ORDER BY sd.start ASC";
		$query = $this->db->query($sqlQry);
		return $query->result_array();
	}

	// Fee Course - Afras Khan - 11/11/2021

	public function add_edit_fee_course($id, $data)
	{
		if ($id == 0) {
			$this->db->insert('course_fees', $data);
			if ($this->db->affected_rows() > 0)
				return  $insert_id = $this->db->insert_id();
			else
				return 0;
		} else {
			$this->db->where('id', $id);
			$this->db->update('course_fees', $data);
			if ($this->db->trans_status() === FALSE)
				return 0;

			return true;
		}
	}

	public function delete_course_fees($id)
	{

		$this->db->delete('course_fees', array('id' => $id));

		if ($this->db->affected_rows()) {
			return true;
		} else {
			return false;
		}
	}

	// Fee Course End - Afras Khan - 11/11/2021

	// delete subject by shivakumar -start

	public function delete_subject($subject_id)
	{
		$status = '';
		// $result = $this->get_general_result_details('subject_syllabus', 'ASC', array('subject_id' => $subject_id));
		// if (count($result) != 0) {
		// 	$status = "exists";
		// } else {
		$result1 = $this->get_general_result_details('course_subjects', 'ASC', array('subject_id' => $subject_id));
		if (count($result1) != 0) {
			$status = "exists";
		} else {
			$result2 = $this->get_general_result_details('classroom_teacher_subject', 'ASC', array('subject_id' => $subject_id));
			if (count($result2) != 0) {
				$status = "exists";
			} else {
				$rst = $this->db->delete('subject', array('id' => $subject_id));
				if ($rst) {
					$status = "success";
				} else {
					$status = "failed";
				}
			}
		}
		// }
		return $status;
	}
	// delete subject by shivakumar -end

	// Fee Installments - Afrs Khan - 11/17/21

	public function add_edit_table($table, $id, $data)
	{
		if ($id == 0) {
			$this->db->insert($table, $data);
			if ($this->db->affected_rows() > 0)
				return  $insert_id = $this->db->insert_id();
			else
				return 0;
		} else {
			$this->db->where('id', $id);
			$this->db->update($table, $data);
			if ($this->db->trans_status() === FALSE)
				return 0;

			return true;
		}
	}

	public function delete_course_installment($id)
	{

		$this->db->delete('installment', array('id' => $id));

		if ($this->db->affected_rows()) {
			return true;
		} else {
			return false;
		}
	}

	// Fee Installments End - Afras Khan 

	// Students Files Update - Afras Khan

	public function update_student_files($data, $id)
	{
		$this->db->where('id', $id);
		$this->db->update('students', $data);
		if ($this->db->trans_status() === FALSE)
			return 0;

		return true;
	}

	// Students Files Update - Afras Khan

	// batch delete process - shivakumar -> start
	public function delete_batch($batch_id)
	{
		$status = '';
		$result1 = $this->get_general_result_details('applications', 'ASC', array('batch_id' => $batch_id));
		if (count($result1) != 0) {
			$status = "exists";
		} else {
			$result2 = $this->get_general_result_details('course_fees', 'ASC', array('batch_id' => $batch_id));
			if (count($result2) != 0) {
				$status = "exists";
			} else {
				$result3 = $this->get_general_result_details('student_batch', 'ASC', array('batch_id' => $batch_id));
				if (count($result3) != 0) {
					$status = "exists";
				} else {
					$rst = $this->db->delete('batch', array('id' => $batch_id));
					if ($rst) {
						$status = "success";
					} else {
						$status = "failed";
					}
				}
			}
		}

		return $status;
	}
	// batch delete process -shivakumar -> end
	// online session delete process by shivakumar start 
	public function delete_onlinesession($ClassroomSessionId)
	{
		$status = '';
		$result1 = $this->get_general_result_details('session_details', 'ASC', array('session_id' => $ClassroomSessionId));

		if (count($result1) != 0) {
			$status = "exists";
		} else {
			$rst = $this->db->delete('classroom_session', array('id' => $ClassroomSessionId));
			if ($rst) {
				$status = "success";
			} else {
				$status = "failed";
			}
		}
		return $status;
	}
	// online session delete process by shivakumar end 

	// Report section - start -by shivakumar
	public function currentMonth_fee($start_date, $last_date, $feetype)
	{
		$sql = "Select s.id,s.name,s.batch_id,cf.course_id,cf.fees_type,cf.amount as fee_amount, (cf.amount * (SELECT COUNT(*) from students where course = s.course AND batch_id = s.batch_id)) as total_amount,DATE(cf.due_date) as cf_due_date, sop.payment_details from students s 
		INNER JOIN course_fees cf on s.batch_id = cf.batch_id 
		LEFT JOIN students_online_payments sop on sop.student_id = s.id AND sop.course_fee_id = cf.id
		WHERE s.course = cf.course_id
		AND cf.fees_type = $feetype
		GROUP BY s.id";

		$complete_query = $this->db->query($sql)->result_array();

		if (!empty($complete_query)) {
			// $total_amount = array_sum(array_unique(array_column($complete_query, 'total_amount')));
			$paid_amount = 0;
			$total_amount = 0;
			$due_amount = 0;
			foreach ($complete_query as $key => $value) {

				if (!empty($value['payment_details'])) {
					$decoded = json_decode($value['payment_details']);
					// dd($decoded);
					foreach ($decoded as $index => $ele) {
						$monthStartDate = date('Y-m-d', strtotime($start_date));
						$monthEndDate = date('Y-m-d', strtotime($last_date));
						$paymentDate = date('Y-m-d', strtotime($ele->due_date));

						if ($ele->payment_status == 'yes') {
							if (($paymentDate >= $monthStartDate) && ($paymentDate <= $monthEndDate)) {
								$paid_amount = $paid_amount + (int)$ele->paid_amount;
								$total_amount = $total_amount + (int)$ele->paid_amount;
							}
						} else {
							if ((date('Y-m-d', strtotime($ele->paid_date)) >= $monthStartDate) && (date('Y-m-d', strtotime($ele->paid_date)) <= $monthEndDate)) {
								$due_amount = $due_amount + (int)$ele->paid_amount;
								$total_amount = $total_amount + (int)$ele->paid_amount;
							}
						}
					}
				} else {
					// $total_amount = $total_amount + $value['fee_amount'];
					// $due_amount = $due_amount + $value['fee_amount'];

					$present_month = date('m', strtotime($this->nepali_current_date));
					$due_month = date('m', strtotime($value['cf_due_date']));

					if ($present_month == $due_month) {
						$total_amount = $total_amount + $value['fee_amount'];
						$due_amount = $due_amount + $value['fee_amount'];
					}
				}
			}


			$res = array(
				'total_course_fee' => $total_amount,
				'pending_fee' => $due_amount,
				'paid_amount' => $paid_amount
			);

			// dd($res);
			return $res;
		} else {
			return $res = array(
				'total_course_fee' => 0,
				'pending_fee' => 0,
				'paid_amount' => 0
			);
		}
	}

	public function get_monthdata($values, $start_date, $current_date)
	{
		$paid_array = array();
		$due_array = array();
		for ($i = $start_date; $i <= $current_date; $i += 86400) {
			$find = date('Y-m-d', $i);
			foreach ($values as $row_key => $row_value) {
				$paid_date = date('Y-m-d', strtotime($row_value->paid_date));
				$due_date = date('Y-m-d', strtotime($row_value->due_date));
				if ($row_value->payment_status == 'yes') {
					if ($paid_date == $find) {
						$paid_array[] = $row_value;
					}
				} else {
					if ($due_date == $find) {
						$due_array[] = $row_value;
					}
				}
			}
		}
		$data['paidamt'] = $paid_array;
		$data['dueamt'] = $due_array;

		return $data;
	}



	public function get_currentmonthfee($startdate, $enddate, $feetype_name, $table)
	{
		$sqlQuery = "SELECT SUM(payment_amt) as total_amt FROM $table WHERE DATE(payment_date) BETWEEN '$startdate' AND '$enddate' AND status='Completed' AND payment_for LIKE '$feetype_name'";
		$result = $this->Admin_model->get_query_row($sqlQuery);
		return (isset($result) && !empty($result)) ? $result['total_amt'] : 0;
	}

	public function get_application_fee($feeTypeName)
	{
		$sqlQuery = "SELECT stf.*,a.name,a.course,a.photo,a.payment_status FROM student_fee_online_transactions stf LEFT JOIN applications a ON stf.studentId = a.applicationid WHERE stf.payment_for LIKE '%$feeTypeName%' ORDER BY stf.id DESC";
		return $this->get_query_result($sqlQuery);
	}
	public function get_student_fee($feeTypeName)
	{
		$sqlQuery = "SELECT stf.*,s.name,s.course,s.photo,s.payment_status FROM student_fee_online_transactions stf LEFT JOIN students s ON stf.studentId = s.studentId WHERE stf.payment_for LIKE '%$feeTypeName%' ORDER BY stf.id DESC";

		return $this->get_query_result($sqlQuery);
	}


	public function get_payment_by_filter($search, $feesTypeName)
	{
		$courseId = (isset($search['course_id']) && !empty($search['course_id'])) ? $search['course_id'] : 0;
		$start_date = (isset($search['start_date']) && !empty($search['start_date'])) ? $search['start_date'] : date('y-m-01');
		$end_date = (isset($search['end_date']) && !empty($search['end_date'])) ? $search['end_date'] : date('y-m-t');
		$by_payment_status = (isset($search['by_payment_status']) && !empty($search['by_payment_status'])) ? $search['by_payment_status'] : '';
		// $feesTypeName = $this->db->get_where('fee_types', array('id' => $feesTypeId))->row()->feetype_name;
		return $this->getapplicationFeesByFilter($feesTypeName, $courseId, $start_date, $end_date, $by_payment_status);
	}

	public function getapplicationFeesByFilter($feesTypeName, $courseId, $start_date = null, $end_date = null, $by_payment_status = null)
	{
		$q = "";
		if ($courseId != 0)
			$q .= " AND a.course='" . $courseId . "'";
		if ($start_date != null && $end_date != null)
			$q .= " AND date(stf.payment_date) BETWEEN '$start_date' AND '$end_date'";
		if ($by_payment_status != null)
			$q .= " AND stf.status='$by_payment_status'";
		$sqlQuery = "SELECT stf.*,a.name,a.course,a.photo,a.payment_status FROM student_fee_online_transactions stf LEFT JOIN applications a ON stf.studentId = a.applicationid WHERE stf.payment_for LIKE '%$feesTypeName%' $q  ORDER BY stf.id DESC";

		return $this->get_query_result($sqlQuery);
	}

	public function get_payment_by_filter_student($search, $feesTypeName)
	{
		$courseId = (isset($search['course_id']) && !empty($search['course_id'])) ? $search['course_id'] : 0;
		$start_date = (isset($search['start_date']) && !empty($search['start_date'])) ? $search['start_date'] : date('y-m-01');
		$end_date = (isset($search['end_date']) && !empty($search['end_date'])) ? $search['end_date'] : date('y-m-t');
		$by_payment_status = (isset($search['by_payment_status']) && !empty($search['by_payment_status'])) ? $search['by_payment_status'] : '';
		return $this->getStudentFeesByFilter($feesTypeName, $courseId, $start_date, $end_date, $by_payment_status);
	}

	public function getStudentFeesByFilter($feesTypeName, $courseId, $start_date = null, $end_date = null, $by_payment_status = null)
	{
		$q = "";
		if ($courseId != 0)
			$q .= " AND s.course='" . $courseId . "'";
		if ($start_date != null && $end_date != null)
			$q .= " AND date(stf.payment_date) BETWEEN '$start_date' AND '$end_date'";
		if ($by_payment_status != null) {
			if ($by_payment_status == 'Completed')
				$q .= " AND stf.status='Completed'";
			else
				$q .= " AND stf.status !='Completed'";
		}

		$sqlQuery = "SELECT stf.*,s.name,s.course,s.photo,s.payment_status FROM student_fee_online_transactions stf LEFT JOIN students s ON stf.studentId = s.studentId WHERE stf.payment_for LIKE '%$feesTypeName%' $q  ORDER BY stf.id DESC";
		return $this->get_query_result($sqlQuery);
	}


	public function getstudentRow($studentId)
	{
		$this->db->select('course.course_name,section.section_name,classroom.classroom_name,students.id,students.qr_code,students.emergency_contact_name,students.emergency_contact_number,students.studentId,course_name,photo,email,mobile,name,registered_on,dob,gender,address1,address2,state,country,zipcode,exam_result,medical_cerificate,school_certificate,students.batch_id');
		$this->db->from('students');
		$this->db->join('student_batch', 'student_batch.student_id=students.id AND student_batch.batch_id=students.batch_id');
		$this->db->join('classroom', 'student_batch.classroom_id=classroom.id');
		$this->db->join('course', 'classroom.course_id = course.id');
		$this->db->join('section', 'classroom.section_id = section.id');
		$this->db->where('students.id', $studentId);
		$this->db->order_by("student_batch.id", "desc");
		$query = $this->db->get();
		return $query->row_array();
	}


	// Report section - end -by shivakumar



	public function delete_test_exam_question($id)
	{
		$query = $this->db->query(
			'
			SELECT questions.id
			FROM questions
			WHERE ' . $id . ' IN (SELECT exam_id FROM exam_questions where exam_id=' . $id . ')'
		);
		if ($query->num_rows() > 0) {
			return false;
		} else {
			$this->db->where('id', $id);
			$this->db->delete('questions');

			if ($this->db->affected_rows()) {
				return true;
			} else {
				return false;
			}
		}
	}

	public function get_courses()
	{
		$this->db->select('*');
		$this->db->from('course');
		$this->db->where('is_active', 'yes');
		$this->db->order_by('course_name', 'ASC');
		$query = $this->db->get();
		return $query->result_array();
	}

	//shankar code 
	public function get_batch()
	{
		$this->db->select('*');
		$this->db->from('batch');
		$this->db->where(array('is_active' => 'yes'));
		$this->db->order_by('id', 'DESC');
		$query = $this->db->get();
		return $query->result_array();
	}
	//end shankar code

	public function add_applicationinfo($data)
	{
		$inf = $data['sinfo'];
		$photo = $data['photo'];
		$medical = $data['medical'];
		$school = $data['school'];
		$exam = $data['exam'];

		$this->db->select_max('id');
		$query  = $this->db->get('applications');
		$res = $query->row_array();

		$pid = $res['id'] + 1;

		// if (strlen($pid) == 1)
		// 	$pid = "000" . $pid;
		// else if (strlen($pid) == 2)
		// 	$pid = "00" . $pid;
		// else if (strlen($pid) == 3)
		// 	$pid = "0" . $pid;

		// $applicationid = STUDENT_APPLICATION_PREFIX . date('Y',strtotime($this->nepali_current_date)) . $pid;

		$school_info = $this->get_logo_from_setting();
		$school_prefix = (!empty($school_info['school_prefix_id'])) ? $school_info['school_prefix_id'] : 'BB';
		$applicationid = $school_prefix . STUDENT_APPLICATION_PREFIX . date('Ymd', strtotime($this->nepali_current_date)) . '0' . $pid;



		$indata =  array(
			'name'   => $inf['sfname'] . ' ' . $inf['ssname'],
			'applicationid' => $applicationid,
			'email'  => $inf['semail'],
			'mobile' => $inf['scontact'],
			'password' => md5($inf['spaswd']),
			'gender' => $inf['sgender'],
			'dob' =>   $inf['sdob'],
			'course'   => $inf['scourse'],
			'batch_id' => $inf['sbatch'],
			'emergency_contact_name'  => $inf['semfname'] . ' ' . $inf['semlname'],
			'emergency_contact_number' => $inf['semphone'],
			'country' => $inf['scountry'],
			'state' => $inf['sstate'],
			'address1' =>   $inf['saddress1'],
			'address2' =>   $inf['saddress2'],
			'zipcode' =>   $inf['szipcode'],
			'school_certificate' => $school,
			'exam_result' => $exam,
			'photo' => $photo,
			'medical_cerificate' => $medical,
			'payment_method' => $inf['payment_method'],
			'description' => (isset($inf['description']) && !empty($inf['description'])) ? $inf['description'] : '',
			'registered_on' => date('Y-m-d', strtotime($this->nepali_current_date))
		);

		$insert = $this->db->insert('applications', $indata);
		$newId =  $this->db->insert_id();
		$result = (!empty($newId)) ? $newId : 0;
		return $result;
	}

	public function storefeeTransaction($data)
	{
		$data['created']  = $this->nepali_current_date;
		$data['modified'] = $this->nepali_current_date;
		$result = $this->db->insert('student_fee_online_transactions', $data);
		if (!empty($result))
			return $result;
		else
			return 0;
	}


	public function applications_get($data, $feestyId)
	{
		$courseId = (isset($data['course']) && !empty($data['course'])) ? $data['course'] : 0;
		$batchId = (isset($data['batch_id']) && !empty($data['batch_id'])) ? $data['batch_id'] : 0;
		$this->db->select('*');
		$this->db->from('course_fees');
		$this->db->where('course_id', $courseId);
		$this->db->where('batch_id', $batchId);
		$this->db->where('fees_type', $feestyId);
		$query = $this->db->get();
		return $query->row_array();
	}


	public function installment_get($course)
	{
		$this->db->select('*');
		$this->db->from('installment');
		$this->db->where('course_id', $course);
		$query = $this->db->get();
		return $query->result_array();
	}
	public function install_get($install_type_id)
	{
		$this->db->select('*');
		$this->db->from('installment');
		$this->db->where('id', $install_type_id);
		$query = $this->db->get();
		return $query->row_array();
	}
	// Moving application info to students -start - by shivakumar
	public function applicationinfo_movingto_students($applicationId, $parentId = null)
	{
		$this->db->select('*');
		$this->db->from('applications');
		$this->db->where('applicationid', $applicationId);
		$query = $this->db->get();
		$res = $query->row_array();
		$appdata = (!empty($res)) ? $res : 0;
		if ($appdata != 0) {
			if ($appdata['status'] == 'moved') {
				return -1;
			} else {
				$this->db->select_max('id');
				$query  = $this->db->get('students');
				$resid = $query->row_array();
				$resid = (isset($resid['id']) && !empty($resid['id'])) ? $resid['id'] : 0;
				$studentMaxId = $resid + 1;
				$pid = date('Y', strtotime($this->nepali_current_date)) . '0' . $studentMaxId;
				// if (strlen($studentMaxId) == 1)
				// 	$pid = "00000" . $studentMaxId;
				// else if (strlen($studentMaxId) == 2)
				// 	$pid = "0000" . $studentMaxId;
				// else if (strlen($studentMaxId) == 3)
				// 	$pid = "000" . $studentMaxId;
				// else if (strlen($studentMaxId) == 4)
				// 	$pid = "00" . $studentMaxId;
				// else if (strlen($studentMaxId) == 5)
				// 	$pid = "00" . $studentMaxId;

				$school_info = $this->get_logo_from_setting();
				$school_prefix = (!empty($school_info['school_prefix_id'])) ? $school_info['school_prefix_id'] : 'BB';
				$studentid = $school_prefix . STUDENT_PREFIX . $pid;
				$parent_id = '';
				if ($parentId) {
					$parent_id = $parentId;
				} else {
					$parent_id = $school_prefix . STUDENT_PARENT_PREFIX . $pid;
				}


				$qr_path = $this->generate_qrcode($studentid);

				$insertdata = array(
					'id' => $studentMaxId,
					'name' => $appdata['name'],
					'studentId' => $studentid,
					'course' => $appdata['course'],
					'batch_id' => $appdata['batch_id'],
					'email' => $appdata['email'],
					'password' => $appdata['password'],
					'mobile' => $appdata['mobile'],
					'gender' => $appdata['gender'],
					'dob' => $appdata['dob'],
					'emergency_contact_name' => $appdata['emergency_contact_name'],
					'emergency_contact_number' => $appdata['emergency_contact_number'],
					'country' => $appdata['country'],
					'state' => $appdata['state'],
					'address1' => $appdata['address1'],
					'address2' => $appdata['address2'],
					'zipcode' => $appdata['zipcode'],
					'photo' => $appdata['photo'],
					'school_certificate' => $appdata['school_certificate'],
					'exam_result' => $appdata['exam_result'],
					'medical_cerificate' => $appdata['medical_cerificate'],
					'payment_status' => $appdata['payment_status'],
					'registered_on' => date('Y-m-d H:i:s', strtotime($this->nepali_current_date)),
					'assign_status' => 'no',
					'qr_code' => $qr_path,
					'parent_username' => $parent_id,
					'parent_password' => md5($parent_id),
					'is_active' => 'yes',
					'modified'	=> $this->nepali_current_date
				);

				$insert = $this->db->insert('students', $insertdata);
				if ($insert) {
					$update = array(
						'status' => 'moved',
					);
					$this->db->where('applicationid',  $applicationId);
					$this->db->update('applications', $update);
					return $studentMaxId;
				} else {
					return "failed";
				}
			}
		}
	}
	public function generate_qrcode($studentID)
	{
		$hex_data   = date('YmdHis') . '-' . $studentID;
		$save_name  = $hex_data . '.png';
		$dir = 'assets_student/studentqrcode/';
		if (!file_exists($dir)) {
			mkdir($dir, 0775, true);
		}
		/* QR Configuration  */
		$config['cacheable']    = true;
		$config['imagedir']     = $dir;
		$config['quality']      = true;
		$config['size']         = '1024';
		$config['black']        = array(255, 255, 255);
		$config['white']        = array(255, 255, 255);
		$this->ciqrcode->initialize($config);
		/* QR Data  */
		$params['data']     = $studentID;
		$params['level']    = 'L';
		$params['size']     = 10;
		$params['savename'] = $config['imagedir'] . $save_name;
		$result = $this->ciqrcode->generate($params);
		return $result;
	}

	public function update_table($id, $data, $table)
	{
		$this->db->trans_start();
		$this->db->where('id', $id);
		$this->db->update($table, $data);
		$this->db->trans_complete();

		if ($this->db->trans_status() === FALSE)
			return 0;

		return true;
	}

	public function insert_data($table, $data)
	{
		$this->db->insert($table, $data);
		if ($this->db->affected_rows() > 0)
			return $insert_id = $this->db->insert_id();
		else
			return 0;
	}


	public function getbatchlist()
	{
		$sql = $this->db->query("SELECT * FROM batch WHERE is_active='yes' ORDER BY id DESC");
		if ($sql->num_rows() > 0) {
			$res = $sql->result_array();
		}
		return $res;
	}

	public function getclassroomlist()
	{
		$sql = $this->db->query("SELECT * FROM classroom WHERE is_active='yes' ORDER BY id DESC");
		if ($sql->num_rows() > 0) {
			$res = $sql->result_array();
		}
		return $res;
	}

	public function getcourselist()
	{
		$sql = $this->db->query("SELECT * FROM course WHERE is_active='yes' ORDER BY id DESC");
		if ($sql->num_rows() > 0) {
			$res = $sql->result_array();
		}
		return $res;
	}

	public function getexamlist()
	{
		$sql = $this->db->query("SELECT * FROM exam WHERE is_active='yes' ORDER BY id DESC");
		if ($sql->num_rows() > 0) {
			$res = $sql->result_array();
		}
		return $res;
	}

	public function getteacherRow($teacherId)
	{
		$sql = "SELECT * FROM teacher WHERE is_active='yes' AND id='$teacherId'";
		return $this->get_query_row($sql);
	}

	public function get_students_suspend($s_date = '', $e_date = '', $course_id = '')
	{
		$this->db->order_by('id', 'DESC');
		$this->db->select('*');
		$this->db->from('students');
		$this->db->where('is_active', 'no');
		$course_id = (int)$course_id;

		if (isset($course_id) && !empty($course_id))
			$this->db->where('course', $course_id);


		if ($s_date != '' && isset($e_date) && !empty($s_date)) {
			$s_date = date('Y-m-d', strtotime($s_date));
			$this->db->where("DATE(registered_on) >=", $s_date);
		}


		if ($e_date != '' && isset($e_date) && !empty($e_date)) {
			$e_date = date('Y-m-d', strtotime($e_date));
			$this->db->where("DATE(registered_on) <=", $e_date);
		}


		$query = $this->db->get();
		return $query->result_array();
	}

	//application reupload images by shankar

	public function application_update_studentsdoc($data)
	{
		if (isset($data['photo']))
			$data_array['photo'] = $data['photo'];
		if (isset($data['exam_result']))
			$data_array['exam_result'] = $data['exam_result'];
		if (isset($data['medical_cerificate']))
			$data_array['medical_cerificate'] = $data['medical_cerificate'];
		if (isset($data['school_certificate']))
			$data_array['school_certificate'] = $data['school_certificate'];
		$id = $data['id'];

		$check_query = $this->db->get_where('applications', array('id' => $id))->row_array();
		if (!empty($data_array)) {
			if (strtolower($check_query['status']) == 'moved') {

				$check_student = $this->db->get_where('students', array('name' => $check_query['name'], 'course' => $check_query['course'], 'batch_id' => $check_query['batch_id']))->row_array();

				if ($check_student) {

					if (isset($data_array['photo'])) {
						$photo = 'assets_student/application/' . $check_student['photo'];
						unlink($photo);
					}

					if (isset($data_array['exam_result'])) {
						$exam_result = 'assets_student/application/$exam_result' . $check_student['exam_result'];
						unlink($exam_result);
					}
					if (isset($data_array['medical_cerificate'])) {
						$medical_cerificate = 'assets_student/application/$exam_result' . $check_student['medical_cerificate'];
						unlink($medical_cerificate);
					}

					if (isset($data_array['school_certificate'])) {
						$school_certificate = 'assets_student/application/$exam_result' . $check_student['school_certificate'];
						unlink($school_certificate);
					}
				}
				$data_array['modified'] = $this->nepali_current_date;
				$update = $this->db->update('students', $data_array, array('name' => $check_query['name'], 'course' => $check_query['course'], 'batch_id' => $check_query['batch_id']));
			} else {

				if (isset($data_array['photo'])) {
					$photo = 'assets_student/application/' . $check_query['photo'];
					unlink($photo);
				}

				if (isset($data_array['exam_result'])) {
					$exam_result = 'assets_student/application/$exam_result' . $check_query['exam_result'];
					unlink($exam_result);
				}
				if (isset($data_array['medical_cerificate'])) {
					$medical_cerificate = 'assets_student/application/$exam_result' . $check_query['medical_cerificate'];
					unset($medical_cerificate);
				}

				if (isset($data_array['school_certificate'])) {
					$school_certificate = 'assets_student/application/$exam_result' . $check_query['school_certificate'];
					unlink($school_certificate);
				}

				$update = $this->db->update('applications', $data_array, array('id' => $id));
			}
		} else {
			$update = 0;
		}
		return $update;
	}

	public function get_sections_from_course_id($id)
	{
		$this->db->select('section.id, section_name');
		$this->db->from('classroom ,section');
		$this->db->where('classroom.course_id', $id);
		$this->db->where('classroom.section_id = section.id');
		$this->db->where('section.is_active', 'yes');
		$query = $this->db->get();
		//echo $this->db->last_query();
		return $query->result_array();
	}


	public function delete_expenses($id)
	{
		$query_id = $this->db->get_where('expenses', array('id' => $id))->row()->id;
		$image = $this->db->get_where('expenses', array('id' => $id))->row()->file_path;
		if ($query_id) {
			$this->db->where('id', $id);
			$this->db->delete('expenses');

			if ($this->db->affected_rows()) {
				unlink($image);
				return true;
			} else {
				return false;
			}
		} else {
			return false;
		}
	}

	function addNewStudent($studentdata, $parentId = null)
	{

		$studentinfo = $studentdata['sinfo'];
		$photo = $studentdata['photo'];
		$medical = $studentdata['medical'];
		$school = $studentdata['school'];
		$exam = $studentdata['exam'];
		// dd($studentdata);
		// $res = $this->db->query("SELECT count(id) as student_count FROM students WHERE email = '" . $studentinfo['semail'] . "' OR mobile = '" . $studentinfo['scontact'] . "'")->row_array();

		// $exist_data = (isset($res['student_count']) && ($res['student_count'] != 0)) ? $res['student_count'] : 0;
		// if ($exist_data === 0) {
		$this->db->select_max('id');
		$query  = $this->db->get('students');
		$resid = $query->row_array();
		$resid = (isset($resid['id']) && !empty($resid['id'])) ? $resid['id'] : 0;
		$studentMaxId = $resid + 1;
		$pid = date('Y', strtotime($this->nepali_current_date)) . '0' . $studentMaxId;
		// if (strlen($studentMaxId) == 1)
		// 	$pid = "00000" . $studentMaxId;
		// else if (strlen($studentMaxId) == 2)
		// 	$pid = "0000" . $studentMaxId;
		// else if (strlen($studentMaxId) == 3)
		// 	$pid = "000" . $studentMaxId;
		// else if (strlen($studentMaxId) == 4)
		// 	$pid = "00" . $studentMaxId;
		// else if (strlen($studentMaxId) == 5)
		// 	$pid = "00" . $studentMaxId;

		$school_info = $this->get_logo_from_setting();
		$school_prefix = (!empty($school_info['school_prefix_id'])) ? $school_info['school_prefix_id'] : 'BB';
		$studentid = $school_prefix . STUDENT_PREFIX . $pid;
		$parent_id = '';
		if ($parentId) {
			$parent_id = $parentId;
		} else {
			$parent_id = $school_prefix . STUDENT_PARENT_PREFIX . $pid;
		}

		$school_info = $this->db->query("SELECT * FROM school_settings")->row_array();

		$school_code = $school_info['code'];

		$std_email = str_replace(' ', '_', strtolower($studentinfo['sname'])) . '@' . $school_code . '.com';


		$emergency_c_name = '';
		$emergency_c_number = '';


		if (empty($studentinfo['slgcontact'])) {
			if (!empty($studentinfo['sfcontact'])) {
				$emergency_c_number = $studentinfo['sfcontact'];
			} else if (!empty($studentinfo['smcontact'])) {
				$emergency_c_number = $studentinfo['smcontact'];
			} else {
				$emergency_c_number = '0000000000';
			}
		} else {
			$emergency_c_number = $studentinfo['slgcontact'];
		}

		if (empty($studentinfo['slgname'])) {
			if (!empty($studentinfo['sfathername'])) {
				$emergency_c_name = $studentinfo['sfathername'];
			} else if (!empty($studentinfo['smothername'])) {
				$emergency_c_name = $studentinfo['smothername'];
			} else {
				$emergency_c_name = '0000000000';
			}
		} else {
			$emergency_c_name = $studentinfo['slgname'];
		}


		// dd($studentinfo);



		$qr_path = $this->generate_qrcode($studentid);
		$insertdata = array(
			'id' => $studentMaxId,
			'name' => $studentinfo['sname'],
			'studentId' => $studentid,
			'course' => $studentinfo['scourse'],
			'batch_id' => $studentinfo['sbatch'],
			'email' => $std_email,
			'password' => md5($studentid),
			'mobile' => $studentinfo['smobile'],
			'gender' => $studentinfo['sgender'],
			'dob' => $studentinfo['sdob'],
			'father_name' => $studentinfo['sfathername'],
			'mother_name' => $studentinfo['smothername'],
			'father_contact_number' => $studentinfo['sfcontact'],
			'mother_contact_number' => $studentinfo['smcontact'],
			'emergency_contact_name' => $emergency_c_name,
			'emergency_contact_number' => $emergency_c_number,
			'emergency_contact_address' => $studentinfo['slgaddress'],
			'country' => 'Nepal',
			'state' => $studentinfo['p_province'],
			'address1' => $studentinfo['p_ward_no'],
			'address2' => $studentinfo['p_saddress1'],
			'p_address1' => $studentinfo['p_ward_no'],
			'p_address2' => $studentinfo['p_saddress1'],
			'p_district' => $studentinfo['p_district'],
			'p_province' => $studentinfo['p_province'],
			't_address1' => $studentinfo['same_as_per_add'] == 'on' ? $studentinfo['p_ward_no'] : $studentinfo['t_ward_no'],
			't_address2' =>  $studentinfo['same_as_per_add'] == 'on' ? $studentinfo['p_saddress1'] : $studentinfo['t_saddress'],
			't_district' =>  $studentinfo['same_as_per_add'] == 'on' ? $studentinfo['p_district'] : $studentinfo['t_district'],
			't_province' =>  $studentinfo['same_as_per_add'] == 'on' ? $studentinfo['p_province'] : $studentinfo['t_province'],
			'photo' => $photo,
			'school_certificate' => $school,
			'exam_result' => $exam,
			'medical_cerificate' => $medical,
			'payment_status' => 'no',
			'registered_on' => date('Y-m-d H:i:s', strtotime($this->nepali_current_date)),
			'assign_status' => 'no',
			'qr_code' => $qr_path,
			'parent_username' => $parent_id,
			'parent_password' => md5($parent_id),
			'is_active' => 'yes',
			'modified'	=> $this->nepali_current_date,
			'parent_pan' => '',
			'hostel' => 'no',
			'hostel_plan_id' => 0,
			'suspend_reason' => '',
			'has_sibling' => '',
			'bus_facility' => 'no',
			'bus_routeid' => 0
		);

		// dd($insertdata);

		$insert = $this->db->insert('students', $insertdata);

		if ($insert) {
			$sectionID = (isset($_POST['s_section']) && !empty($_POST['s_section'])) ? $_POST['s_section'] : 0;
			if ($sectionID != 0) {
				$courseID = (!empty($_POST['scourse'])) ? $_POST['scourse'] : 0;
				$sbatchID = (!empty($_POST['sbatch'])) ? $_POST['sbatch'] : 0;

				$classroomID = $this->db->get_where('classroom', array('course_id' => $courseID, 'section_id' => $sectionID, 'is_active' => 'yes'))->row()->id;
				$classroomID = (isset($classroomID) && !empty($classroomID)) ? $classroomID : 0;
				$roll_no = $this->db->query('select roll_no from student_batch where batch_id=' . $sbatchID . ' and classroom_id =' . $classroomID . ' and is_active ="yes" order by roll_no DESC')->row_array();
				// dd($roll_no);

				if (!empty($roll_no)) {
					$in_data['roll_no'] = $roll_no['roll_no'] + 1;
				} else {
					$in_data['roll_no'] = 1;
				}
				$in_data['student_id'] = $studentMaxId;
				$in_data['batch_id'] = $sbatchID;
				$in_data['classroom_id'] = $classroomID;
				$in_data['is_active'] = 'yes';
				$in_data['created'] = date('Y-m-d H:i:s', strtotime($this->nepali_current_date));

				$in_data['modified'] = date('Y-m-d H:i:s', strtotime($this->nepali_current_date));
				$this->db->insert('student_batch', $in_data);
			}
			return $studentMaxId;
		} else {
			return 0;
		}

		// 		}
		// 		else {
		//  return -1;
		// 		}

	}
	public function get_fees_type()
	{
		$sql = "SELECT * FROM `fee_types` WHERE is_active='yes'";
		$result = $this->get_query_result($sql);
		if (count($result) > 0)
			return $result;
		else
			return 0;
	}

	public function get_currentbatch_routes()
	{
		$BTSdb = $this->load->database('erisnClassroom_bts', TRUE);
		$school_info = $this->get_logo_from_setting();
		$batch_id = (isset($school_info['batch_id']) && !empty($school_info['batch_id'])) ? $school_info['batch_id'] : 0;
		$route_data = array();
		$result = $BTSdb->query('select * FROM bt_batch_routes WHERE batch_id=' . $batch_id)->row_array();
		if ($result != '') {
			$route_ids = explode(',', $result['route_ids']);
			if (!empty($route_ids) || count($route_ids) > 0) {
				foreach ($route_ids as $value) {
					$value = (!empty($value)) ? $value : 0;
					$rst = $BTSdb->query('SELECT * FROM `bt_routes` WHERE id=' . $value)->row_array();
					$route_data[] = array(
						'id' => $rst['id'],
						'route_name' => $rst['route_name']
					);
				}
			}
		}
		return $route_data;
	}

	// get Fees by Feestype - start
	// Auth:Shivu 
	function getFeesByfeetypes($se_batch, $se_course, $student_id, $payment_status, $selected_ft_ids, $start_date, $end_date)
	{
		$student_id = 132;
		$payment_con = 'WHERE 1';
		$group_by = '';
		$result = array();
		if ($selected_ft_ids != '') {
			$payment_con .= ' AND cf.fees_type IN (' . implode(',', $selected_ft_ids) . ') ';
		}
		if (!empty($payment_status)) {
			if ($payment_status == 'paid') {
				// $payment_con .=' AND sop.paid_amount > 0 ';
				$group_by = 'GROUP BY cf.id HAVING paid_amount > 0';
			} else if ($payment_status == 'due') {
				$group_by = 'GROUP BY cf.id HAVING pending_amount > 0';
				// $payment_con .=' AND sop.pending_amount > 0 ';
			}
		}

		// if($start_date != null){
		// 	$start_date=date('d-m-Y',strtotime($this->$start_date));
		// }
		// if($end_date != null){
		// 	date('d-m-Y',strtotime($end_date));
		// }
		//   echo "SELECT cf.id as coursefee_id,cf.fees_type,cf.amount as cf_total_amount,fas.id,ft.feetype_name,ft.id,IF(sop.id is null,0,sop.id) as sop_id,IF(sop.paid_amount is null,0,sop.paid_amount) as paid_amount,IF(sop.pending_amount is null,cf.amount,sop.pending_amount) as pending_amount,IF(sop.payment_details is null,0,sop.payment_details) as payment_detail FROM course_fees cf JOIN fee_assigned_students fas ON fas.course_fee_id=cf.id AND fas.student_id=$student_id JOIN fee_types ft on ft.id = cf.fees_type LEFT JOIN students_online_payments sop on cf.id = sop.course_fee_id AND sop.student_id = $student_id $payment_con $group_by";
		// exit;
		$fees_rst = $this->db->query("SELECT cf.id as coursefee_id,cf.fees_type,cf.amount as cf_total_amount,fas.id,ft.feetype_name,ft.id,IF(sop.id is null,0,sop.id) as sop_id,IF(sop.paid_amount is null,0,sop.paid_amount) as paid_amount,IF(sop.pending_amount is null,cf.amount,sop.pending_amount) as pending_amount,IF(sop.payment_details is null,0,sop.payment_details) as payment_detail FROM course_fees cf JOIN fee_assigned_students fas ON fas.course_fee_id=cf.id AND fas.student_id=$student_id JOIN fee_types ft on ft.id = cf.fees_type LEFT JOIN students_online_payments sop on cf.id = sop.course_fee_id AND sop.student_id = $student_id $payment_con $group_by")->result_array();
		if (count($fees_rst) > 0) {
			foreach ($fees_rst as $payment) {
				$total_paid_amount = 0;
				$total_pending_amount = 0;
				$total_fine_amount = 0;
				$total_deduction_amount = 0;

				$total_amount = ($payment['cf_total_amount'] != 0 || $payment['cf_total_amount'] != '') ? $payment['cf_total_amount'] : 0;
				$payment_detail = (isset($payment['payment_detail']) && $payment['payment_detail'] != 0 && $payment['payment_detail'] != '[]') ? json_decode($payment['payment_detail'], true) : 0;

				if ($payment_detail != 0) {
					foreach ($payment_detail as $pd_key => $pd_value) {
						$paid_date = (isset($pd_value['paid_date']) && !empty($pd_value['paid_date'])) ? date('Y-m-d', strtotime($pd_value['paid_date'])) : '';
						if ($start_date != '' && $end_date != '') {
							if ($start_date <= $paid_date && $end_date >= $paid_date) {
								$fine_amount = (isset($pd_value['fine_amount']) && !empty($pd_value['fine_amount'])) ? $pd_value['fine_amount'] : 0;
								$deduction_amount = (isset($pd_value['deduction_amount']) && !empty($pd_value['deduction_amount'])) ? $pd_value['deduction_amount'] : 0;

								$total_paid_amount += $pd_value['paid_amount'];
								$total_fine_amount += $fine_amount;
								$total_deduction_amount += $deduction_amount;
							}
						} else {
							$fine_amount = (isset($pd_value['fine_amount']) && !empty($pd_value['fine_amount'])) ? $pd_value['fine_amount'] : 0;
							$deduction_amount = (isset($pd_value['deduction_amount']) && !empty($pd_value['deduction_amount'])) ? $pd_value['deduction_amount'] : 0;

							$total_paid_amount += $pd_value['paid_amount'];
							$total_fine_amount += $fine_amount;
							$total_deduction_amount += $deduction_amount;
						}
					}
					$total_pending_amount = ($total_amount - ($total_paid_amount + $total_deduction_amount - $total_fine_amount));


					// echo "Total paid - ".$total_paid_amount."
"; // echo "Total fine - ".$total_fine_amount."
"; // echo "Total deduction - ".$total_deduction_amount."
"; // echo "Assigned Amount -".$total_amount."
"; // echo "Total Due amount - ". $total_pending_amount = ($total_amount - ($total_paid_amount+$total_deduction_amount-$total_fine_amount))."

"; } else { $total_pending_amount += $payment['pending_amount']; } $result[] = array( 'course_fee_id' => $payment['cf_total_amount'], 'fees_type' => $payment['fees_type'], 'cf_total_amount' => $payment['cf_total_amount'], 'total_paid_amount' => $total_paid_amount, 'total_fine_amount' => $total_fine_amount, 'total_deduction_amount' => $total_deduction_amount, 'total_pending_amount' => $total_pending_amount ); } } // return $result; } // paid get Reports function getFeesBy_status_feetypes($se_batch, $se_course, $student_id, $payment_status, $selected_ft_ids, $start_date, $end_date) { // $student_id=132; $payment_con = 'WHERE 1'; $group_by = ''; $result = array(); if ($se_batch != '') $payment_con .= ' AND cf.batch_id=' . $se_batch; if ($se_course != '') $payment_con .= ' AND cf.course_id=' . $se_course; if ($selected_ft_ids != '') { $payment_con .= ' AND cf.fees_type IN (' . implode(',', $selected_ft_ids) . ') '; } if (!empty($payment_status)) { if ($payment_status == 'paid') { // $payment_con .=' AND sop.paid_amount > 0 '; $group_by = 'GROUP BY cf.id HAVING paid_amount > 0'; } else if ($payment_status == 'due') { $group_by = 'GROUP BY cf.id HAVING pending_amount > 0'; // $payment_con .=' AND sop.pending_amount > 0 '; } } if ($payment_status == 'paid') { $fees_rst = $this->db->query("SELECT cf.id as coursefee_id,cf.fees_type,cf.amount as cf_total_amount,fas.id,ft.feetype_name,ft.id,ft.feetype_name,IF(sop.id is null,0,sop.id) as sop_id,IF(sop.paid_amount is null,0,sop.paid_amount) as paid_amount,IF(sop.pending_amount is null,cf.amount,sop.pending_amount) as pending_amount,IF(sop.payment_details is null,0,sop.payment_details) as payment_detail FROM course_fees cf JOIN fee_assigned_students fas ON fas.course_fee_id=cf.id AND fas.student_id=$student_id JOIN fee_types ft on ft.id = cf.fees_type LEFT JOIN students_online_payments sop on cf.id = sop.course_fee_id AND sop.student_id = $student_id $payment_con $group_by")->result_array(); if (count($fees_rst) > 0) { foreach ($fees_rst as $payment) { $total_paid_amount = 0; $total_pending_amount = 0; $total_fine_amount = 0; $total_deduction_amount = 0; $total_amount = ($payment['cf_total_amount'] != 0 || $payment['cf_total_amount'] != '') ? $payment['cf_total_amount'] : 0; $payment_detail = (isset($payment['payment_detail']) && $payment['payment_detail'] != '' && $payment['payment_detail'] != '[]') ? json_decode($payment['payment_detail'], true) : ''; if ($payment_detail != '') { foreach ($payment_detail as $pd_key => $pd_value) { $paid_date = (isset($pd_value['paid_date']) && !empty($pd_value['paid_date'])) ? date('Y-m-d', strtotime($pd_value['paid_date'])) : ''; if ($start_date <= $paid_date && $end_date >= $paid_date) { $fine_amount = (isset($pd_value['fine_amount']) && !empty($pd_value['fine_amount'])) ? $pd_value['fine_amount'] : 0; $deduction_amount = (isset($pd_value['deduction_amount']) && !empty($pd_value['deduction_amount'])) ? $pd_value['deduction_amount'] : 0; $total_paid_amount += $pd_value['paid_amount']; $total_fine_amount += $fine_amount; $total_deduction_amount += $deduction_amount; $total_pending_amount = ($total_amount - ($total_paid_amount + $total_deduction_amount - $total_fine_amount)); } } } else { $total_pending_amount = $payment['pending_amount'] - $payment['pending_amount']; } $result[] = array( 'course_fee_id' => $payment['cf_total_amount'], 'feetype_name' => $payment['feetype_name'], 'fees_type' => $payment['fees_type'], 'cf_total_amount' => $payment['cf_total_amount'], 'total_paid_amount' => $total_paid_amount, 'total_fine_amount' => $total_fine_amount, 'total_deduction_amount' => $total_deduction_amount, 'total_pending_amount' => $total_pending_amount ); } } } return $result; } // get_due_report function getFeesBy_due_feetypes($se_batch, $se_course, $student_id, $payment_status, $selected_ft_ids, $start_date, $end_date) { $student_id = 132; $payment_con = 'WHERE 1'; $group_by = ''; $result = array(); if ($selected_ft_ids != '') { $payment_con .= ' AND cf.fees_type IN (' . implode(',', $selected_ft_ids) . ') '; } if (!empty($payment_status)) { $group_by = 'GROUP BY cf.id HAVING pending_amount > 0'; } $fees_rst = $this->db->query("SELECT cf.id as coursefee_id,cf.fees_type,cf.amount as cf_total_amount,fas.id,ft.feetype_name,ft.id,IF(sop.id is null,0,sop.id) as sop_id,IF(sop.paid_amount is null,0,sop.paid_amount) as paid_amount,IF(sop.pending_amount is null,cf.amount,sop.pending_amount) as pending_amount,IF(sop.payment_details is null,0,sop.payment_details) as payment_detail FROM course_fees cf JOIN fee_assigned_students fas ON fas.course_fee_id=cf.id AND fas.student_id=$student_id JOIN fee_types ft on ft.id = cf.fees_type LEFT JOIN students_online_payments sop on cf.id = sop.course_fee_id AND sop.student_id = $student_id $payment_con $group_by")->result_array(); if (count($fees_rst) > 0) { foreach ($fees_rst as $payment) { $total_paid_amount = 0; $total_pending_amount = 0; $total_fine_amount = 0; $total_deduction_amount = 0; $total_amount = ($payment['cf_total_amount'] != 0 || $payment['cf_total_amount'] != '') ? $payment['cf_total_amount'] : 0; $payment_detail = (isset($payment['payment_detail']) && $payment['payment_detail'] != 0 && $payment['payment_detail'] != '[]') ? json_decode($payment['payment_detail'], true) : 0; if ($payment_detail != 0) { foreach ($payment_detail as $pd_key => $pd_value) { $paid_date = (isset($pd_value['paid_date']) && !empty($pd_value['paid_date'])) ? date('Y-m-d', strtotime($pd_value['paid_date'])) : ''; if ($start_date <= $paid_date && $end_date >= $paid_date) { $fine_amount = (isset($pd_value['fine_amount']) && !empty($pd_value['fine_amount'])) ? $pd_value['fine_amount'] : 0; $deduction_amount = (isset($pd_value['deduction_amount']) && !empty($pd_value['deduction_amount'])) ? $pd_value['deduction_amount'] : 0; $total_paid_amount += $pd_value['paid_amount']; $total_fine_amount += $fine_amount; $total_deduction_amount += $deduction_amount; } } $total_pending_amount = ($total_amount - ($total_paid_amount + $total_deduction_amount - $total_fine_amount)); // echo "Total paid - ".$total_paid_amount."
"; // echo "Total fine - ".$total_fine_amount."
"; // echo "Total deduction - ".$total_deduction_amount."
"; // echo "Assigned Amount -".$total_amount."
"; // echo "Total Due amount - ". $total_pending_amount = ($total_amount - ($total_paid_amount+$total_deduction_amount-$total_fine_amount))."

"; } else { $total_pending_amount += $payment['pending_amount']; } $result[] = array( 'course_fee_id' => $payment['cf_total_amount'], 'fees_type' => $payment['fees_type'], 'cf_total_amount' => $payment['cf_total_amount'], 'total_paid_amount' => $total_paid_amount, 'total_fine_amount' => $total_fine_amount, 'total_deduction_amount' => $total_deduction_amount, 'total_pending_amount' => $total_pending_amount ); } } // return $result; } public function add_edit_offline_exam($id, $data) { if ($id == 0) { $data['created'] = $this->nepali_current_date; $data['modified'] = $this->nepali_current_date; $this->db->insert('offline_exams', $data); if ($this->db->affected_rows() > 0) return $insert_id = $this->db->insert_id(); else return 0; } else { $data['modified'] = $this->nepali_current_date; $this->db->where('id', $id); $this->db->update('offline_exams', $data); if ($this->db->trans_status() === FALSE) return 0; return true; } } function getBatch() { $res = array(); $sql = $this->db->query("SELECT id as batch_id,b_name,b_from,b_end FROM `batch` WHERE is_active='yes'"); if ($sql->num_rows() > 0) { $res = $sql->result_array(); } return $res; } function getClass() { $res = array(); $sql = $this->db->query("SELECT id as course_id,course_name FROM `course` WHERE is_active='yes'"); if ($sql->num_rows() > 0) { $res = $sql->result_array(); } return $res; } function getOfllineExams() { $res = array(); $sql = $this->db->query("SELECT id as offline_exam_id,exam_name FROM offline_exams WHERE is_active='yes'"); if ($sql->num_rows() > 0) { $res = $sql->result_array(); } return $res; } // Yogesh public function get_course_offfline_exam($cid) { $cs_sql = "SELECT c.course_name, c.id as course_id,OEM.id as oem_id, OEM.batch_id, OEM.subject_id, OEM.is_active from course c inner join offline_exam_marks OEM on c.id = OEM.course_id where c.id = '$cid'"; $query = $this->db->query($cs_sql); if (($query->num_rows() > 0)) return $query->result_array(); } public function get_scholarship_type($where = '', $sqlQry = '', $limit = FALSE, $offset = FALSE) { if ($limit) $this->db->limit($limit, $offset); if ($where != '') $this->db->where($where); $this->db->order_by('scholarship_types.id', 'ASC'); $query = $this->db->get('scholarship_types'); if ($sqlQry != '') $query = $this->db->query($sqlQry); if (($query->num_rows() == 1)) return $query->row_array(); return $query->result_array(); } public function add_edit_scholarship($id, $data) { if ($id == 0) { $data['created'] = $this->nepali_current_date; $data['modified'] = $this->nepali_current_date; $this->db->insert('scholarship_types', $data); if ($this->db->affected_rows() > 0) return $insert_id = $this->db->insert_id(); else return 0; } else { $data['modified'] = $this->nepali_current_date; $this->db->where('id', $id); $this->db->update('scholarship_types', $data); if ($this->db->trans_status() === FALSE) return 0; return true; } } public function get_unique_name($field_name, $field_value, $table_name) { $hr_db = $this->load->database('hr', TRUE); $sql_query = "select * from " . $table_name . " WHERE " . $field_name . " = '" . $field_value . "'"; $query = $hr_db->query($sql_query); $results = $query->result_array(); if (empty($results)) { return true; } else { return false; } } public function get_unique_name_main_db($field_name, $field_value, $table_name) { $sql_query = "select * from " . $table_name . " WHERE " . $field_name . " = '" . $field_value . "'"; $query = $this->db->query($sql_query); $results = $query->result_array(); if (empty($results)) { return true; } else { return false; } } public function update_unique_name_main_db($field_name, $field_value, $table_name, $recId) { $sql_query = "select * from " . $table_name . " WHERE " . $field_name . " = '" . $field_value . "' AND id != " . $recId; $query = $this->db->query($sql_query); $results = $query->result_array(); if (empty($results)) { return true; } else { return false; } } }