BBnepal-Accounts/bustracking/application/controllers/BustrackingAdmin.php
Sampanna Rimal 9cd05ef3cb commitall
2024-07-10 18:28:19 +05:45

1612 lines
54 KiB
PHP

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
use Nilambar\NepaliDate\NepaliDate;
require_once '../vendor/autoload.php';
class BustrackingAdmin extends CI_Controller
{
private $nepaliDateObject;
private $nepali_current_date;
public function __construct()
{
parent::__construct();
//Load the required models here
$this->load->model('BustrackingAdmin_Model');
//Load the required helpers here
$this->load->helper('common_helper');
$this->load->library('upload');
$this->nepaliDateObject = new NepaliDate();
$this->nepali_current_date = cuurentNepaliDate($this->nepaliDateObject);
}
public function is_valid_admin_emailid($eid)
{
$this->form_validation->set_message('is_valid_admin_emailid', 'This Email Id does not exist. Please check again.');
if($this->BustrackingAdmin_Model->check_is_emailid_valid($eid))
return true;
else
return false;
}
public function is_valid_admin_credentials()
{
$eid = $_POST['email'];
$encrypt_password = md5($_POST['password']);
$this->form_validation->set_message('is_valid_admin_credentials', 'Invalid password. Please check again.');
if($this->BustrackingAdmin_Model->check_login_credentials($eid, $encrypt_password))
return true;
else
return false;
}
public function login()
{
$data['title'] = 'Admin Login';
$this->form_validation->set_rules('email', 'Email', 'required|valid_email|callback_is_valid_admin_emailid');
$this->form_validation->set_rules('password', 'Password', 'required');
if(isset($_POST['password']) && $_POST['password']!='')
$this->form_validation->set_rules('password', 'Password', 'callback_is_valid_admin_credentials');
if($this->form_validation->run() === FALSE){
$this->load->view('bustracking-admin/login', $data);
}
else
{
$encrypt_password = md5($this->input->post('password'));
$where = 'email="'.$this->input->post('email').'" AND password="'.$encrypt_password.'"';
$loginData = $this->BustrackingAdmin_Model->get_admin_details($where);
if(isset($loginData[0]) && !empty($loginData[0]))
{
if($loginData[0]['status']=='Active')
{
if(isset($_POST['remember_me']) && $_POST['remember_me']=='on')
{
//set 0 instead of time to remove the cookie once the browser is closed
setcookie ("username",$_POST["email"],time()+ 86400); //86400 seconds in a day
setcookie ("password",$_POST["password"],time()+ 86400);
setcookie ("rem_me", 'On',time()+ 86400);
}
else
{
if(isset($_COOKIE['username'])) {
unset($_COOKIE['username']);
setcookie('username', '');
}
if(isset($_COOKIE['password'])) {
unset($_COOKIE['password']);
setcookie('password', '');
}
if(isset($_COOKIE['rem_me'])) {
unset($_COOKIE['rem_me']);
setcookie('rem_me', '');
}
}
$lnData = array(
'bt_lin_id' => $loginData[0]['id'],
'bt_lin_name' => $loginData[0]['admin_name'],
'bt_lin_login' => true,
);
$this->session->set_userdata('busAULoginData', $lnData);
//Set Message
$this->session->set_flashdata('success', 'Welcome To Admin Users Dashboard.');
$redirectToHere = 'dashboard';
$detailsHere = $this->BustrackingAdmin_Model->get_admin_details('', "SELECT admin_role_ids FROM bt_admin WHERE id = ".$loginData[0]['id']);
if(isset($detailsHere[0]['admin_role_ids']) && $detailsHere[0]['admin_role_ids']!='')
{
$permissionDetailsHere = $this->BustrackingAdmin_Model->get_bt_admin_role_permissions('', "SELECT menu_ids FROM bt_admin_role_permissions WHERE admin_role_ids IN(".$detailsHere[0]['admin_role_ids'].")");
$menuIdsHere = explode(',', $permissionDetailsHere[0]['menu_ids']);
if(!empty($menuIdsHere))
{
$menuDetailsHere = $this->BustrackingAdmin_Model->get_admin_menu_details('', "SELECT page_link FROM bt_admin_menu WHERE id =".$menuIdsHere[0]);
if(isset($menuDetailsHere[0]['page_link']) && $menuDetailsHere[0]['page_link']!='')
$redirectToHere = $menuDetailsHere[0]['page_link'];
}
}
redirect(base_url().$redirectToHere);
}
else{
$this->session->set_flashdata('danger', 'Your account is inactive. Please contact the administrator.');
$this->load->view('bustracking-admin/login', $data);
}
}
else{
$this->session->set_flashdata('danger', 'Login Credential in invalid!');
$this->load->view('bustracking-admin/login', $data);
}
}
}
/*----------------------------------- SATRT Of Logout --------------------------------------------------------*/
public function logout()
{
$this->common_logout();
//Set Message
$this->session->set_flashdata('success', 'You are logged out successfully.');
redirect(base_url().'admin');
}
public function common_logout()
{
$lnEuIdId = 0;
// unset the loggout admin user data
$this->session->unset_userdata('busAULoginData');
}
public function ajaxLogout()
{
$this->common_logout();
echo 'Success';
exit;
}
/*----------------------------------- ENDDD Of Logout --------------------------------------------------------*/
/*----------------------------- START of Admin User Password Functionality -----------------------------*/
public function fp_check_is_emailid_valid($eid)
{
$this->form_validation->set_message('fp_check_is_emailid_valid', 'This Email Id does not exist. Please check again.');
if($this->BustrackingAdmin_Model->check_is_emailid_valid($eid))
return true;
else{
return false;
}
}
public function forgot_password()
{
if (!file_exists(APPPATH.'views/bustracking-admin/forgot-password.php'))
show_404();
$data['title'] = 'Forgot Password';
$this->form_validation->set_rules('email', 'email', 'required|valid_email|callback_fp_check_is_emailid_valid');
if($this->form_validation->run() === FALSE){
$this->load->view('bustracking-admin/forgot-password', $data);
}
else
{
$where = 'email="'.$this->input->post('email').'" ';
$detailsHere = $this->BustrackingAdmin_Model->get_admin_details($where);
$rpData['nameHere'] = '';
if(isset($detailsHere[0]['admin_name']))
$rpData['nameHere'] = $detailsHere[0]['admin_name'];
$rpData['emailId'] = urlsafe_b64encode($this->input->post('email'));
$emailContent = $this->load->view('bustracking-admin/emails/admin-user-forgot-password.php', $rpData, TRUE);
$emailData['to'] = $this->input->post('email');
$emailData['subject'] = 'Erisn Classroom Bustracking - Admin User Password Recovery Mail';
$emailData['message'] = $emailContent;
//echo $emailContent;exit;
$result = ciSendEmail($emailData);
$this->session->set_userdata('isForgotPasswordSuccess', 'Yes');
$this->load->view('bustracking-admin/forgot-password', $data);
}
}
function reset_password($encodedEmailId)
{
if(isset($encodedEmailId) && $encodedEmailId!='')
{
$decodedEmailId = urlsafe_b64decode($encodedEmailId);
$data['encodedEmailId'] = $encodedEmailId;
$data['title'] = 'Reset Password';
$this->form_validation->set_rules('password', 'Enter New Password', 'trim|required');
$this->form_validation->set_rules('conf_password', 'Retype New Password', 'required|matches[password]');
if($this->form_validation->run() === FALSE)
{
$this->load->view('bustracking-admin/reset-password', $data);
}
else
{
$where = 'email ="'.$decodedEmailId.'"';
$isValidUser = $this->BustrackingAdmin_Model->get_admin_details($where);
if(!empty($isValidUser) && count($isValidUser)==1)
{
$this->BustrackingAdmin_Model->reset_admin_password($isValidUser[0]['id'], $this->input->post('password'));
//Set Message
$this->session->set_userdata('isResetPasswordSuccess', 'Yes');
redirect('reset-password/'.$encodedEmailId);
}
else{
$this->session->set_flashdata('danger', 'OOps. Something went wrong.');
redirect('reset-password/'.$encodedEmailId);
}
}
}
else
{
redirect(base_url()."admin");
}
}
/*----------------------------- ENDDD of Admin User Password Functionality -----------------------------*/
public function dashboard()
{
$data['title'] = 'Dashboard';
$data['driver_count'] = $this->BustrackingAdmin_Model->count_query('bt_drivers');
$data['bus_count'] = $this->BustrackingAdmin_Model->count_query('bt_buses');
$data['student_count'] = $this->BustrackingAdmin_Model->count_query('bt_students_bus_route_details');
$query = $this->db->query('select * from bt_routes');
$data['route_name'] = $query->result_array();
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/dashboard', $data);
//$ecDB = $this->load->database('erisnClassroom', TRUE);
//$CI = &get_instance();
//$ecDB = $CI->load->database('erisnClassroom', TRUE);
//$qry = $ecDB->query("SELECT id,name,email FROM students");
//echo '<pre>'; print_r($qry->result());
//exit;
}
/*----------------------------------- START Of Admin Roles --------------------------------------------------------*/
public function roles()
{
$data['title'] = 'Roles';
$sqlRole = 'SELECT r.*, rp.menu_ids FROM bt_admin_roles AS r, bt_admin_role_permissions AS rp WHERE r.id = rp.admin_role_ids';
$rolesList = $this->BustrackingAdmin_Model->get_bt_admin_roles('', $sqlRole);
if(!empty($rolesList))
{
foreach($rolesList as $key=>$role)
{
$rPs = '';
$sqlRolePermissions = 'SELECT menu_name FROM bt_admin_menu WHERE id IN('.$role['menu_ids'].')';
$rolePermissions = $this->BustrackingAdmin_Model->get_bt_admin_roles('', $sqlRolePermissions);
if(!empty($rolePermissions))
{
foreach($rolePermissions as $p)
{
if($rPs=='')
$rPs = $p['menu_name'];
else
$rPs .= ','.$p['menu_name'];
}
}
$rolesList[$key]['permissions'] = $rPs;
}
}
$data['roleList'] = $rolesList;
//echo '<pre>'; print_r($data['roleList']);exit;
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/roles', $data);
}
public function ajaxCheckIsRoleAlreadyExists()
{
$result = 'Insufficient Data';
if(isset($_POST['role_name']) && $_POST['role_name']!='' && isset($_POST['id']) && $_POST['id']!='')
{
if($this->BustrackingAdmin_Model->check_role_exists($_POST['id'], $_POST['role_name']))
$result = 'Unique Role';
else
$result = 'Duplicate Role';
}
echo $result;
exit;
}
public function add_edit_role($idVal)
{
$sql = "SELECT * FROM bt_admin_roles WHERE id = $idVal";
$details = $this->BustrackingAdmin_Model->get_bt_admin_roles("id = $idVal");
if (empty($details) && $idVal != 0)
redirect(base_url().'roles');
$data['title'] = 'Add New Role';
if($idVal > 0)
$data['title'] = 'Update Role';
$data['details'] = $details;
$data['idVal'] = $idVal;
$data['menus'] = $this->BustrackingAdmin_Model->get_admin_menu_details('', 'SELECT id,menu_name FROM bt_admin_menu WHERE status="Active" AND parent_id=0');
$data['role_permissions'] = $this->BustrackingAdmin_Model->get_bt_admin_role_permissions('', "SELECT menu_ids FROM bt_admin_role_permissions WHERE admin_role_ids = $idVal");
if(count($_POST) > 0)
{
$permissions = '';
if(isset($_POST['role_permissions']) && !empty($_POST['role_permissions']))
{
$permissions = implode(',', $_POST['role_permissions']);
unset($_POST['role_permissions']);
}
$res = $this->BustrackingAdmin_Model->add_edit_admin_role($idVal, $_POST);
if($res)
{
if($permissions!='')
{
if($idVal == 0)
{
$rpData['admin_role_ids'] = $res;
$rpData['menu_ids'] = $permissions;
$this->BustrackingAdmin_Model->add_edit_admin_role_permissions(0, $rpData);
}
else
{
$getRPrid = $this->BustrackingAdmin_Model->get_bt_admin_role_permissions('', "SELECT id FROM bt_admin_role_permissions WHERE admin_role_ids = $idVal");
if(isset($getRPrid[0]['id']))
{
$rpData['admin_role_ids'] = $idVal;
$rpData['menu_ids'] = $permissions;
$this->BustrackingAdmin_Model->add_edit_admin_role_permissions($getRPrid[0]['id'], $rpData);
}
}
}
$this->session->set_flashdata('success', str_replace('%s', 'new role', THE_ADD_SUCCESS_MSG));
if ($idVal > 0)
$this->session->set_flashdata('success', str_replace('%s', 'role', THE_UPDATE_SUCCESS_MSG));
}
redirect(base_url().'roles');
}
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/add-edit-role', $data);
}
public function delete_role()
{
$roleId = $_POST['id'];
$sql = "SELECT id FROM bt_admin WHERE admin_role_ids=".$roleId;
$result = $this->BustrackingAdmin_Model->get_admin_details('', $sql);
//echo '<pre>'; print_r($result);exit;
if(!empty($result))
echo 'Error';
else
{
$this->BustrackingAdmin_Model->delete_admin_role($roleId);
echo 'Success';
}
}
/*----------------------------------- ENDDD Of Admin Roles --------------------------------------------------------*/
/*----------------------------------- START Of Admin Users --------------------------------------------------------*/
public function users()
{
$data['title'] = 'Users';
$sql = 'SELECT a.*, ar.role_name FROM bt_admin AS a, bt_admin_roles AS ar WHERE a.admin_role_ids = ar.id';
$data['userList'] = $this->BustrackingAdmin_Model->get_admin_details('', $sql);
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/users', $data);
}
public function ajaxCheckIsUserEmailAlreadyExists()
{
$result = 'Insufficient Data';
if(isset($_POST['email']) && $_POST['email']!='' && isset($_POST['id']) && $_POST['id']!='')
{
if($this->BustrackingAdmin_Model->check_emailid_exists($_POST['id'], $_POST['email']))
$result = 'Unique Email';
else
$result = 'Duplicate Email';
}
echo $result;
exit;
}
public function add_edit_user($idVal)
{
$sql = "SELECT * FROM bt_admin WHERE id = $idVal";
$details = $this->BustrackingAdmin_Model->get_admin_details("id = $idVal");
if (empty($details) && $idVal != 0)
redirect(base_url().'users');
$data['title'] = 'Add New User';
if($idVal > 0)
$data['title'] = 'Update User';
$data['details'] = $details;
$data['idVal'] = $idVal;
$data['roles'] = $this->BustrackingAdmin_Model->get_bt_admin_roles('', 'SELECT id,role_name FROM bt_admin_roles WHERE status="Active"');
if(count($_POST) > 0)
{
if(isset($_POST['password']))
$_POST['password'] = md5($_POST['password']);
if(isset($_POST['confirm_password']))
unset($_POST['confirm_password']);
$res = $this->BustrackingAdmin_Model->add_edit_admin_user($idVal, $_POST);
$this->session->set_flashdata('success', str_replace('%s', 'new user', THE_ADD_SUCCESS_MSG));
if ($idVal > 0)
$this->session->set_flashdata('success', str_replace('%s', 'user', THE_UPDATE_SUCCESS_MSG));
redirect(base_url().'users');
}
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/add-edit-user', $data);
}
public function delete_user()
{
$userId = $_POST['id'];
$result = $this->BustrackingAdmin_Model->delete_admin_user($userId);
if($result)
echo 'Success';
else
echo 'Error';
}
/*----------------------------------- ENDDD Of Admin Users --------------------------------------------------------*/
/*----------Add Bus Code start here from Shankar--------------------------*/
public function bus_list($id='')
{
$query_bus_list = $this->db->query('select * from bt_buses');
$data['result'] = $query_bus_list->result_array();
if ($id == '1') {
$this->session->set_flashdata('success', "The bus has been deleted successfully");
}else if($id == '0'){
$this->session->set_flashdata('failed', "Bus has been assign to Student Bus Route you can't Delete ");
}
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/buses_list', $data);
}
public function viewBus($id)
{
if ($id > 0) {
$query_bus_list = $this->db->query('select * from bt_buses where id='.$id);
$data['result'] = $query_bus_list->row_array();
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/view-bus', $data);
}
}
public function bus_add_edit($id)
{
$data['title'] = 'Add Bus';
if($id > 0)
$data['title'] = 'Update Bus';
$data['bus_id'] = $id;
$data['detailsHere'] = $this->BustrackingAdmin_Model->get_admin_details('', "SELECT * FROM bt_buses WHERE id = ".$id);
if (isset($_POST['submit'])) {
if ($_POST['bus_id'] == 0) {
$das = array();
if (!empty($_FILES['file']['name'])) {
$profile_image='';
$temp = explode(".", $_FILES["file"]["name"]);
$newfilename = date("mdYHis") . '.' . end($temp);
$output = '';
$config['upload_path'] = 'assets-bustracking/images/bus_image/';
$config['allowed_types'] = 'gif|jpg|png|JPG';
$this->load->library('upload', $config);
$this->upload->initialize($config); //initialize upload library
$_FILES["file"]["name"] = $newfilename;
$_FILES["file"]["type"] = $_FILES["file"]["type"];
$_FILES["file"]["tmp_name"] = $_FILES["file"]["tmp_name"];
$_FILES["file"]["error"] = $_FILES["file"]["error"];
$_FILES["file"]["size"] = $_FILES["file"]["size"];
if ($this->upload->do_upload('file')) {
$data = $this->upload->data();
$profile_image = 'assets-bustracking/images/bus_image/' . $data["file_name"];
}else{
$this->upload->display_errors();
}
}
$data_array = array(
'reg_no' => $_POST['reg_no'],
'bus_brand' => $_POST['brand'],
'seats' => $_POST['seat'],
'year' => $_POST['year'],
'image' => $profile_image
);
$this->db->insert('bt_buses', $data_array);
$last_id = $this->db->insert_id();
if ($last_id > 0) {
$this->session->set_flashdata('success', str_replace('%s', 'Bus', THE_ADD_SUCCESS_MSG));
redirect(base_url() . 'buses');
}else{
$this->session->set_flashdata('failed', str_replace('%s', 'Bus', THE_ADD_ERROR_MSG));
redirect(base_url() . 'buses');
}
}else{
if (!empty($_FILES['file']['name'])) {
$get_data = $this->db->query('select image from bt_buses where id='.$_POST['bus_id']);
$delete_image = $get_data->row_array();
if ($delete_image) {
if (file_exists($delete_image['image'])) {
unlink($delete_image['image']);
}
}
$temp = explode(".", $_FILES["file"]["name"]);
$newfilename = date("mdYHis") . '.' . end($temp);
// move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $newfilename);
// $config['upload_path'] = 'assets_bustracking/images/bus_image/';
$output = '';
$config['upload_path'] = 'assets-bustracking/images/bus_image/';
$config['allowed_types'] = 'gif|jpg|png|JPG';
$this->load->library('upload', $config);
$this->upload->initialize($config); //initialize upload library
$_FILES["file"]["name"] = $newfilename;
$_FILES["file"]["type"] = $_FILES["file"]["type"];
$_FILES["file"]["tmp_name"] = $_FILES["file"]["tmp_name"];
$_FILES["file"]["error"] = $_FILES["file"]["error"];
$_FILES["file"]["size"] = $_FILES["file"]["size"];
if ($this->upload->do_upload('file')) {
$data = $this->upload->data();
$profile_image = 'assets-bustracking/images/bus_image/' . $data["file_name"];
}else{
$this->upload->display_errors();
}
}
$data_array = array(
'reg_no' => $_POST['reg_no'],
'bus_brand' => $_POST['brand'],
'seats' => $_POST['seat'],
'year' => $_POST['year']
);
if(isset($profile_image) && !empty($profile_image)){
$data_array['image'] = $profile_image;
}
$this->db->where('id',$_POST['bus_id']);
$this->db->update('bt_buses', $data_array);
if ($this->db->affected_rows() > 0) {
$this->session->set_flashdata('success', str_replace('%s', 'Bus', THE_UPDATE_SUCCESS_MSG));
redirect(base_url() . 'buses');
}else{
$this->session->set_flashdata('failed', 'You have Not changed anything');
redirect(base_url() . 'buses');
}
}
}
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/add-edit-bus', $data);
}
public function deleteBus()
{
$id = $_POST['id'];
$table = $_POST['table'];
$data = $this->BustrackingAdmin_Model->delete_bus($id, $table);
print_r($data);
}
// Driver Module Start Here
public function viewDriver($id='')
{
if ($id > 0) {
$query_bus_list = $this->db->query('select * from bt_drivers where id='.$id);
$data['result'] = $query_bus_list->row_array();
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/view-driver', $data);
}
}
public function drivers_list($id='')
{
$query_bus_list = $this->db->query('select * from bt_drivers');
$data['result'] = $query_bus_list->result_array();
if ($id == '1') {
$this->session->set_flashdata('success', "The Driver has been deleted successfully");
}else if($id == '0'){
$this->session->set_flashdata('failed', "Driver has been assign to Bus Route you can't Delete ");
}
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/drivers_list', $data);
}
public function driver_add_edit($id)
{
$data['title'] = 'Add Driver';
if($id > 0)
$data['title'] = 'Update Driver';
$data['driver_id'] = $id;
$data['detailsHere'] = $this->BustrackingAdmin_Model->get_admin_details('', "SELECT * FROM bt_drivers WHERE id = ".$id);
if (isset($_POST['submit'])) {
if ($_POST['driver_id'] == 0) {
$image1=$document1=$document2=$document3=$temp='';
$temp = explode(".", $_FILES["image"]["name"]);
$newfilename = date("mdYHis") . '.' . end($temp);
$tempdoc1 = explode(".", $_FILES["doc1"]["name"]);
$doc_one = date("mdYHisv") . '.' . end($tempdoc1);
$tempdoc2 = explode(".", $_FILES["doc2"]["name"]);
$doc_two = date("mdYHisv") . '.' . end($tempdoc2);
$tempdoc3 = explode(".", $_FILES["doc3"]["name"]);
$doc_three = date("mdYHisv") . '.' . end($tempdoc3);
$output = '';
$config['upload_path'] = 'assets-bustracking/images/driver_images/';
$config['allowed_types'] = 'gif|jpg|png|JPG|pdf';
$this->load->library('upload', $config);
$this->upload->initialize($config); //initialize upload library
$_FILES["image"]["name"] = $newfilename;
$_FILES["doc1"]["name"] = $doc_one;
$_FILES["doc2"]["name"] = $doc_two;
$_FILES["doc3"]["name"] = $doc_three;
if ($this->upload->do_upload('image')) {
$data = $this->upload->data();
$image1 = 'assets-bustracking/images/driver_images/' . $data["file_name"];
}
if ($this->upload->do_upload('doc1')) {
$data = $this->upload->data();
$document1 = 'assets-bustracking/images/driver_images/' . $data["file_name"];
}
if ($this->upload->do_upload('doc2')) {
$data = $this->upload->data();
$document2 = 'assets-bustracking/images/driver_images/' . $data["file_name"];
}
if ($this->upload->do_upload('doc3')) {
$data = $this->upload->data();
$document3 = 'assets-bustracking/images/driver_images/' . $data["file_name"];
}
$data_array = array(
'name' => $_POST['first_name'] . ' ' . $_POST['last_name'],
'licence' => $_POST['licence'],
'dob' => $_POST['dob'],
'contact_number' => $_POST['contact'],
'address' => $_POST['address'],
'image' => $image1,
'document1' => $document1,
'document2' => $document2,
'document3' => $document3,
'driver_id' => generate_driver_id(),
'password' => md5($_POST['password'])
);
$this->db->insert('bt_drivers', $data_array);
$last_id = $this->db->insert_id();
if ($last_id > 0) {
$this->session->set_flashdata('success', str_replace('%s', 'Driver', THE_ADD_SUCCESS_MSG));
redirect(base_url() . 'drivers');
}else{
$this->session->set_flashdata('failed', str_replace('%s', 'Driver', THE_ADD_ERROR_MSG));
redirect(base_url() . 'drivers');
}
}else{
$get_data = $this->db->query('select * from bt_drivers where id='.$_POST['driver_id']);
$delete_image = $get_data->row_array();
$data_array = array(
'name' => $_POST['first_name'] . ' ' . $_POST['last_name'],
'licence' => $_POST['licence'],
'dob' => $_POST['dob'],
'contact_number' => $_POST['contact'],
'address' => $_POST['address'],
'password' => md5($_POST['password']),
);
$output = '';
$config['upload_path'] = 'assets-bustracking/images/driver_images/';
$config['allowed_types'] = 'gif|jpg|png|JPG|pdf';
$this->load->library('upload', $config);
$this->upload->initialize($config);
if (!empty($_FILES['image']['name'])) {
if (file_exists($delete_image['image'])) {
unlink($delete_image['image']);
$temp = explode(".", $_FILES["image"]["name"]);
$newfilename = date("mdYHis") . '.' . end($temp);
$_FILES["image"]["name"] = $newfilename;
if ($this->upload->do_upload('image')) {
$data = $this->upload->data();
$data_array['image'] = 'assets-bustracking/images/driver_images/' . $data["file_name"];
}
}
}
if (!empty($_FILES['doc1']['name'])) {
if (file_exists($delete_image['document1'])) {
unlink($delete_image['document1']);
$tempdoc1 = explode(".", $_FILES["doc1"]["name"]);
$doc_one = date("mdYHisv") . '.' . end($tempdoc1);
$_FILES["doc1"]["name"] = $doc_one;
if ($this->upload->do_upload('doc1')) {
$data = $this->upload->data();
$data_array['document1'] = 'assets-bustracking/images/driver_images/' . $data["file_name"];
}
}
}
if (!empty($_FILES['doc2']['name'])) {
if (file_exists($delete_image['document2'])) {
unlink($delete_image['document2']);
$tempdoc2 = explode(".", $_FILES["doc2"]["name"]);
$doc_two = date("mdYHisv") . '.' . end($tempdoc2);
$_FILES["doc2"]["name"] = $doc_two;
if ($this->upload->do_upload('doc2')) {
$data = $this->upload->data();
$data_array['document2'] = 'assets-bustracking/images/driver_images/' . $data["file_name"];
}
}
}
if (!empty($_FILES['doc3']['name'])) {
if (file_exists($delete_image['document3'])) {
unlink($delete_image['document3']);
$tempdoc3 = explode(".", $_FILES["doc3"]["name"]);
$doc_three = date("mdYHisv") . '.' . end($tempdoc3);
$_FILES["doc3"]["name"] = $doc_three;
if ($this->upload->do_upload('doc3')) {
$data = $this->upload->data();
$data_array['document3'] = 'assets-bustracking/images/driver_images/' . $data["file_name"];
}
}
}
$this->db->where('id',$_POST['driver_id']);
$this->db->update('bt_drivers', $data_array);
if ($this->db->affected_rows() > 0) {
$this->session->set_flashdata('success', str_replace('%s', 'Driver', THE_UPDATE_SUCCESS_MSG));
redirect(base_url() . 'drivers');
}else{
$this->session->set_flashdata('failed', "You Have Not Updated Anything");
redirect(base_url() . 'drivers');
}
}
}
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/add-edit-driver', $data);
}
public function deleteDriver()
{
$id = $_POST['id'];
$table = $_POST['table'];
$data = $this->BustrackingAdmin_Model->delete_driver($id, $table);
print_r($data);
}
// Routes Module Start Here
public function viewRoute($id)
{
if ($id > 0) {
$query_bus_list = $this->db->query('select r.id as id,rd.id as details_id, route_name, latitude,longitude,d.id as driver_id, d.name as driver_name,b.id as bus_id,place_name,stops,working_id,pickup_start,drop_start, bus_brand as bus_name,stops from bt_routes r, bt_routes_details rd, bt_drivers d, bt_buses b where r.id='. $id .' and r.id = rd.route_id and r.bus_id = b.id and r.driver_id = d.id order by rd.route_order');
$data['result'] = $query_bus_list->result_array();
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/view-route-details', $data);
}
}
public function routes_list($id)
{
$query_bus_list = $this->db->query('select r.id as id, route_name, latitude,longitude,d.name as driver_name,bus_brand as bus_name,stops from bt_routes r, bt_routes_details rd, bt_drivers d, bt_buses b where r.id = rd.route_id and r.bus_id = b.id and r.driver_id = d.id GROUP BY r.id');
$data['result'] = $query_bus_list->result_array();
if ($id == '1') {
$this->session->set_flashdata('success', "The Route has been deleted successfully");
}else if($id == '0'){
$this->session->set_flashdata('failed', "Route is assign to Student Route you can't Delete ");
}
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/routes-lists', $data);
}
public function route_add_edit($id)
{
$data['title'] = 'Add New Route';
if($id > 0)
$data['title'] = 'Update Route';
$data['route_id'] = $id;
$data['detailsHere'] = $this->BustrackingAdmin_Model->get_admin_details('', "select r.id as id,rd.id as details_id, route_name, latitude,longitude,d.id as driver_id, d.name as driver_name,b.id as bus_id,place_name,stops,working_id,pickup_start,drop_start, bus_brand as bus_name,stops from bt_routes r, bt_routes_details rd, bt_drivers d, bt_buses b where r.id=". $id .' and r.id = rd.route_id and r.bus_id = b.id and r.driver_id = d.id order by rd.route_order');
$data['driver_data'] = $this->BustrackingAdmin_Model->get_admin_details('', "SELECT id,name FROM bt_drivers ");
$data['bus_data'] = $this->BustrackingAdmin_Model->get_admin_details('', "SELECT id,bus_brand FROM bt_buses");
$data['weekDays'] = getDayList_E();
if (isset($_POST['submit'])) {
// echo"<pre>";print_r($_POST);
// print_r(implode(",", $_POST['working_day']));
// exit();
if ($id == 0) {
$data_array = array(
'route_name' => $_POST['name'],
'bus_id' => $_POST['bus'],
'driver_id' => $_POST['driver'],
'working_id' => implode(",", $_POST['working_day']),
'stops' => $_POST['stops'],
'pickup_start' => $_POST['pictime'],
'drop_start' => $_POST['droptime'],
'created' => date('Y-m-d H:i:s')
);
$this->db->insert('bt_routes', $data_array);
$last_id = $this->db->insert_id();
if ($last_id > 0) {
for ($i=1; $i <= count($_POST['ro_det_id']) ; $i++) {
$route_data = array(
'route_id' => $last_id,
'latitude' => $_POST['latitude'][$i],
'longitude' => $_POST['longitude'][$i],
'place_name' => $_POST['placeName'][$i],
'route_order' => $_POST['conter'][$i],
'created' => date('Y-m-d H:i:s')
);
$this->db->insert('bt_routes_details', $route_data);
$id_route_list = $this->db->insert_id();
}
if ($id_route_list) {
$this->session->set_flashdata('success', str_replace('%s', 'Route', THE_ADD_SUCCESS_MSG));
redirect(base_url() . 'routes');
}else{
$this->session->set_flashdata('failed', str_replace('%s', 'Route', THE_ADD_ERROR_MSG));
redirect(base_url() . 'routes');
}
}else{
$this->session->set_flashdata('failed', str_replace('%s', 'Route', THE_ADD_ERROR_MSG));
redirect(base_url() . 'routes');
}
}else{
$flash_message = 0;
$data_array = array(
'route_name' => $_POST['name'],
'bus_id' => $_POST['bus'],
'driver_id' => $_POST['driver'],
'working_id' => implode(",", $_POST['working_day']),
'stops' => $_POST['stops'],
'pickup_start' => $_POST['pictime'],
'drop_start' => $_POST['droptime'],
);
$this->db->where('id',$_POST['route_id']);
$this->db->update('bt_routes', $data_array);
$this->db->trans_complete();
if($this->db->trans_status() === FALSE)
{
}
else
{
if($this->db->affected_rows() > 0)
{
for ($i=1; $i <= count($_POST['ro_det_id']); $i++) {
$data_update = array(
'place_name' => $_POST['placeName'][$i],
'latitude' => $_POST['latitude'][$i],
'longitude' => $_POST['longitude'][$i],
'route_order' => $_POST['conter'][$i],
'route_id' => $_POST['route_id'],
'modified' => date('Y-m-d H:i:s')
);
if (empty($_POST['ro_det_id'][$i])) {
$this->db->insert('bt_routes_details', $data_update);
$id_route_list = $this->db->insert_id();
$flash_message = 1;
}else{
$this->db->where('id',$_POST['ro_det_id'][$i]);
$this->db->update('bt_routes_details', $data_update);
$this->db->trans_complete();
}
if($this->db->affected_rows() > 0){
$flash_message = 1;
}else{
}
}
}else{
for ($i=1; $i <= count($_POST['ro_det_id']); $i++) {
$data_update = array(
'place_name' => $_POST['placeName'][$i],
'latitude' => $_POST['latitude'][$i],
'longitude' => $_POST['longitude'][$i],
'route_order' => $_POST['conter'][$i],
'route_id' => $_POST['route_id'],
'modified' => date('Y-m-d H:i:s')
);
if (empty($_POST['ro_det_id'][$i])) {
$this->db->insert('bt_routes_details', $data_update);
$id_route_list = $this->db->insert_id();
$flash_message = 1;
}else{
$this->db->where('id',$_POST['ro_det_id'][$i]);
$this->db->update('bt_routes_details', $data_update);
$this->db->trans_complete();
}
if($this->db->affected_rows() > 0){
$flash_message = 1;
}else{
}
}
}
}
if ($flash_message > 0) {
$this->session->set_flashdata('success', str_replace('%s', 'Route', THE_UPDATE_SUCCESS_MSG));
redirect(base_url() . 'routes');
}else{
$this->session->set_flashdata('success', str_replace('%s', "Route's", THE_UPDATE_SUCCESS_MSG));
redirect(base_url() . 'routes');
}
}
}
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/add-edit-routes_test', $data);
}
public function deleteRoute()
{
$id = $_POST['id'];
$table = $_POST['table'];
$data = $this->BustrackingAdmin_Model->check_delete_route($id, $table);
print_r($data);
}
public function delete_Route_Row()
{
$check_delete = $this->BustrackingAdmin_Model->check_delete_route($_POST['route_id'],$_POST['detail_id']);
// echo $route_id;
// $data = array('route_id'=>$route_id, 'details_id'=> $route_detail_id);
// echo json_encode($data);
}
/*----------Add Bus Code End here from Shankar--------------------------*/
// dashboard get route data
public function route_details_data($id)
{
echo json_encode($this->BustrackingAdmin_Model->get_admin_details('', "select route_name,latitude,longitude,place_name,pickup_start,drop_start from bt_routes r, bt_routes_details rd, bt_drivers d, bt_buses b where r.id=". $id .' and r.id = rd.route_id and r.bus_id = b.id and r.driver_id = d.id order by rd.route_order'));
}
public function student_list($id='')
{
$query1 = $this->db->query('select brd.place_name, student_id, sbrd.id from bt_students_bus_route_details sbrd, bt_routes br, bt_routes_details brd where sbrd.route_id = br.id and sbrd.pick_up_id = brd.id')->result_array();
if ($id == '1') {
$this->session->set_flashdata('success', "The Student has been deleted successfully");
}else if($id == '0'){
$this->session->set_flashdata('danger', "Student is assign to Bus Route you can't Delete ");
}
$details = array();
if (count($query1) > 0) {
$erisndb = $this->load->database('classroom', TRUE);
foreach($query1 as $key => $value)
{
$query = $erisndb->query('select name, classroom_name, studentId, mobile from students s, student_batch sb, classroom c where s.id ='. $value['student_id'] . ' and s.id = sb.student_id and sb.classroom_id = c.id')->row_array();
if (!empty($query)) {
array_push($details, array(
'id' => $value['id'],
'student_id' => $query['studentId'],
'student_name' => $query['name'],
'stop_name' => $value['place_name'],
'class_name' => $query['classroom_name'],
'contact_no' => $query['mobile']
));
}
}
}
$data['student_list'] = $details;
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/students', $data);
}
public function student_view_info($id)
{
$route_data = $this->db->query('
select br.id as route_id, student_id, bb.reg_no as bus_no, route_name, place_name as drop_point
from bt_students_bus_route_details sbrd, bt_routes br,bt_buses bb, bt_routes_details brd
where sbrd.id ='.$id .' and sbrd.route_id = br.id and sbrd.drop_id = brd.id and br.bus_id = bb.id')->row_array();
if (count($route_data) > 0) {
$erisndb = $this->load->database('classroom', TRUE);
$data['student_details'] = $erisndb->query('
select s.studentId,s.photo, s.name as student_name, s.email,s.mobile,s.dob, s.gender,s.address1, c.classroom_name, cf.amount as bus_fee_total , sop.payment_details
from students s, student_batch sb, classroom c, students_online_payments sop, course_fees cf
where s.id = '.$route_data['student_id'].' and s.batch_id = sb.batch_id and sb.student_id = s.id and sb.classroom_id = c.id and sop.student_id = s.id and sop.course_fee_id = cf.id
')->row_array();
}
$data['route_data'] = $route_data;
$data['route_details'] = $this->db->query('select brd.place_name, brd.id , sbrd.id as student_list_id from bt_routes_details brd, bt_routes br , bt_students_bus_route_details sbrd where sbrd.id ='. $id . ' and sbrd.route_id = brd.route_id group by brd.id')->result_array();
$data['route_name'] = $this->db->query('select id as route_id, route_name from bt_routes')->result_array();
$data['update'] = '';
// echo"<pre>";print_r($data);exit();
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/student-info', $data);
}
public function student_edit_info($id)
{
$route_data = $this->db->query('
select br.id as route_id, student_id, bb.reg_no as bus_no, route_name, place_name as drop_point
from bt_students_bus_route_details sbrd, bt_routes br,bt_buses bb, bt_routes_details brd
where sbrd.id ='.$id .' and sbrd.route_id = br.id and sbrd.drop_id = brd.id and br.bus_id = bb.id')->row_array();
if (count($route_data) > 0) {
$erisndb = $this->load->database('classroom', TRUE);
$data['student_details'] = $erisndb->query('
select s.studentId,s.photo, s.name as student_name, s.email,s.mobile,s.dob, s.gender,s.address1, c.classroom_name, cf.amount as bus_fee_total , sop.payment_details
from students s, student_batch sb, classroom c, students_online_payments sop, course_fees cf
where s.id = '.$route_data['student_id'].' and s.batch_id = sb.batch_id and sb.student_id = s.id and sb.classroom_id = c.id and sop.student_id = s.id and sop.course_fee_id = cf.id
')->row_array();
}
$data['route_data'] = $route_data;
$data['route_details'] = $this->db->query('select brd.place_name, brd.id , sbrd.id as student_list_id from bt_routes_details brd, bt_routes br , bt_students_bus_route_details sbrd where sbrd.id ='. $id . ' and sbrd.route_id = brd.route_id group by brd.id')->result_array();
$data['update'] = 1;
$data['route_name'] = $this->db->query('select id as route_id, route_name from bt_routes')->result_array();
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/student-info', $data);
}
public function student_update_info()
{
$data = array(
'route_id' => $_POST['route_id'],
'pick_up_id' => $_POST['stop_id'],
'drop_id' => $_POST['stop_id']
);
$this->db->where('id', $_POST['id']);
$this->db->update('bt_students_bus_route_details', $data);
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE) {
$this->session->set_flashdata('danger', str_replace('%s', 'Student Route', THE_UPDATE_ERROR_MSG));
} else {
$this->session->set_flashdata('success', str_replace('%s', 'Student Route', THE_UPDATE_SUCCESS_MSG));
}
redirect(base_url() . 'students');
}
public function deleteStudent()
{
// $id = $_POST['id'];
// $table = $_POST['table'];
// $data = $this->BustrackingAdmin_Model->delete_driver($id, $table);
print_r(0);
}
public function trips()
{
$find_date = date('Y-m-d', strtotime($this->nepali_current_date));
if ($_POST) {
$find_date = $_POST['search_date'];
}
$search = $this->db->query('select br.id as route_id, bd.id as driver_id, stops, route_name, bd.name as driver_name,reg_no from bt_routes br, bt_drivers bd, bt_buses bb where br.driver_id = bd.id and br.bus_id = bb.id')->result_array();
$data_array = array();
foreach($search as $k => $v)
{
$route_stops_order = $this->db->query('SELECT * FROM bt_routes_details WHERE route_id ='. $v['route_id'] .' ORDER BY route_order DESC LIMIT 1')->row_array();
$trip_details = $this->db->query('select * from bt_trips where route_id='.$v['route_id'] .' and route_stop_id ='. $route_stops_order['id'] .' and DATE(created) ="'.$find_date .'"')->result_array();
if (!empty($trip_details)) {
foreach($trip_details as $key => $val)
{
array_push($data_array, array(
'route_id' => $v['route_id'],
'driver_id' => $v['driver_id'],
'stops' => $v['stops'],
'route_name' => $v['route_name'],
'driver_name' => $v['driver_name'],
'reg_no' => $v['reg_no'],
'trip_type' => $val['trip_type'],
'status' => $val['status'],
'trip_id' => $val['id']
));
}
}
else{
$trip_details_find = $this->db->query('select * from bt_trips where route_id='.$v['route_id'] .' and DATE(created) = "'.$find_date . '" group by route_id , trip_type ORDER BY id ')->result_array();
if (!empty($trip_details_find)) {
foreach($trip_details_find as $key => $val)
{
array_push($data_array, array(
'route_id' => $v['route_id'],
'driver_id' => $v['driver_id'],
'stops' => $v['stops'],
'route_name' => $v['route_name'],
'driver_name' => $v['driver_name'],
'reg_no' => $v['reg_no'],
'trip_type' => $val['trip_type'],
'status' => 'In-Complete',
'trip_id' => $val['id']
));
}
}
}
}
$data['search'] = $data_array;
$data['search_date'] = $find_date;
// print_r('<pre>');print_r($data);exit();
$this->load->view('bustracking-admin/common/left-menu');
$this->load->view('bustracking-admin/common/header');
$this->load->view('bustracking-admin/trips', $data);
}
public function trip_details()
{
$content = array_filter(explode(" ",str_replace('_hello_','', base64_decode($this->uri->segment(3)))));
// print_r('<pre>');print_r($content);exit();
$trip_details = $this->db->query(
'SELECT bt.id as trip_id,bt.route_stop_id, bt.time ,bt.status, br.id as route_id,contact_number, stops, route_name,place_name, bd.name as driver_name,reg_no FROM bt_trips bt , bt_routes_details brd , bt_routes br ,bt_buses bb , bt_drivers bd
WHERE bt.route_id = '. $content[1] .'
AND bt.route_stop_id = brd.id
AND bt.route_id = br.id
AND br.bus_id = bb.id
AND br.driver_id = bd.id
AND bt.trip_type = "'. $content[3] .'"
AND DATE(bt.created) = "'. $content[5] .'"
GROUP BY bt.route_stop_id
ORDER by bt.id')->result_array();
$trip_details_data = array();
$trip_unreached_details_data = array();
// $checker[] = '';
if (!empty($trip_details)) {
$driver_details = array(
'driver_name' => $trip_details[0]['driver_name'],
'contact_number' => $trip_details[0]['contact_number'],
'reg_no' => $trip_details[0]['reg_no']
);
foreach ($trip_details as $key => $value) {
$checker[] = $value['route_stop_id'];
$student_count = $this->BustrackingAdmin_Model->get_Count_Student_routes_details($value['route_stop_id']);
$student_catch_bus = $this->BustrackingAdmin_Model->get_Count_Student_trip_details($value['trip_id']);
array_push($trip_details_data, array(
'trip_id' => $value['trip_id'],
'route_id' => $value['route_id'],
'stop_id' => $value['route_stop_id'],
'place_name' => $value['place_name'],
'time' => date('H:i', strtotime($value['time'])),
'students' => $student_catch_bus['student_count'] .'/'. $student_count['student_count']
));
}
}
$data['route_history'] = $trip_details_data;
if (isset($checker) || !empty($checker)) {
$this->db->select('route_id, id as stop_id, place_name');
$this->db->from('bt_routes_details');
$this->db->where('route_id', $content[1]);
$this->db->where_not_in('id', $checker);
$query = $this->db->get()->result_array();
if (!empty($query)) {
foreach($query as $k => $v)
{
$student_count = $this->BustrackingAdmin_Model->get_Count_Student_routes_details($v['stop_id']);
array_push($trip_unreached_details_data, array(
'route_id' => $v['route_id'],
'stop_id' => $v['stop_id'],
'place_name' => $v['place_name'],
'time' => '---',
'students' => '0/'. $student_count['student_count']
));
}
}
$data['pending_trips'] = $trip_unreached_details_data;
}
//
$data['driver_details'] = $driver_details;
// print_r('<pre>');print_r($data);exit();
$this->load->view('bustracking-admin/common/left-menu');
$this->load->view('bustracking-admin/common/header');
$this->load->view('bustracking-admin/trip-details', $data);
}
public function get_droppoint_from_route()
{
$route_id = json_decode($this->input->post('route_id'));
$list_drops = $this->db->query('select id as drop_id, place_name from bt_routes_details where route_id ='. $route_id . ' order by route_order')->result_array();
echo json_encode($list_drops);
}
public function trip_details_view()
{
$content = array_filter(explode(" ",str_replace('_hello_','', base64_decode($this->uri->segment(3)))));
$trip_id = $content[1];
if ($trip_id != 00 ) {
$query = "select student_id from bt_students_trip where trip_id = '$trip_id'";
$student_list_trip = $this->BustrackingAdmin_Model->get_query_result_bus_tracking($query);
//making array to quama seperated value to match with route_student_details
$student_list_trip = implode(', ', array_map(function ($entry) {
return $entry['student_id'];
}, $student_list_trip));
$studet_list_route = $this->BustrackingAdmin_Model->get_query_result_bus_tracking("select student_id from bt_students_bus_route_details bsbrd, bt_trips bt where bt.id = '$trip_id' and bt.route_id = bsbrd.route_id and bt.route_stop_id = bsbrd.pick_up_id" );
$details_trip = array();
foreach ($studet_list_route as $key => $value) {
$classroom = $this->load->database('classroom', TRUE);
$student_name = $classroom->query('select name from students where id = '.$value['student_id'].'')->row_array();
if(in_array($value['student_id'], explode(',',$student_list_trip)))
{
array_push($details_trip, array(
'student_name' => $student_name['name'],
'status' => 'Attended'
));
}else{
array_push($details_trip, array(
'student_name' => $student_name['name'],
'status' => 'Not Attended'
));
}
}
}else{
$route_id = $content[3];
$stop_id = $content[5];
$trip_student = $this->db->query('select student_id from bt_students_bus_route_details where route_id='. $route_id .' AND pick_up_id ='.$stop_id .' order by student_id')->result_array();
if (!empty($trip_student)) {
$details_trip = array();
foreach ($trip_student as $key => $value) {
$classroom = $this->load->database('classroom', TRUE);
$student_name = $classroom->query('select name from students where id = '.$value['student_id'].'')->row_array();
array_push($details_trip, array(
'student_name' => $student_name['name'],
'status' => 'Not Attended'
));
}
}
}
$data['student_trip_details'] = $details_trip;
$this->load->view('bustracking-admin/common/left-menu');
$this->load->view('bustracking-admin/common/header');
$this->load->view('bustracking-admin/trip-details-view',$data);
}
public function route_batch_list()
{
$classroom = $this->load->database('classroom', TRUE);
$query = $this->db->query('select id, batch_id, route_ids from bt_batch_routes ')->result_array();
if (!empty($query)) {
foreach ($query as $key => $value) {
$batch = $classroom->query('select b_name from batch where id= '. $value['batch_id'])->row_array();
$query[$key]['batch_name'] = $batch['b_name'];
$rPs = '';
$rolePermissions = $this->db->query('SELECT route_name FROM bt_routes WHERE id IN('.$value['route_ids'].')')->result_array();
if(!empty($rolePermissions))
{
foreach($rolePermissions as $p)
{
if($rPs=='')
$rPs = $p['route_name'];
else
$rPs .= ','.$p['route_name'];
}
}
$query[$key]['permissions'] = $rPs;
}
}
$data['roleList'] = $query;
$this->load->view('bustracking-admin/common/left-menu');
$this->load->view('bustracking-admin/common/header');
$this->load->view('bustracking-admin/route-batch-list',$data);
}
public function route_batch_add_edit($id)
{
$classroom = $this->load->database('classroom', TRUE);
$data['title'] = 'Save';
$data['idVal'] = $id;
$data['batch_list'] = $classroom->query('select id,b_name, b_from, b_end, is_active from batch order by is_active desc')->result_array();
$data['route_list'] = $this->db->query('select id,route_name from bt_routes')->result_array();
if ($id > 0) {
// $data['title'] = 'Update';
$data['role_permissions'] = $this->db->query("SELECT batch_id,route_ids FROM bt_batch_routes WHERE id = $id")->row_array();
$classroom = $this->load->database('classroom', TRUE);
$data['check_active'] = $classroom->query('select is_active from batch where id='.$data['role_permissions']['batch_id'])->row_array();
}
if (count($_POST) > 0) {
$permissions = '';
if(isset($_POST['role_permissions']) && !empty($_POST['role_permissions']))
{
$permissions = implode(',', $_POST['role_permissions']);
unset($_POST['role_permissions']);
}
if($permissions!='')
{
if($id == 0)
{
$rpData['batch_id'] = $_POST['batch_id'];
$rpData['route_ids'] = $permissions;
$this->BustrackingAdmin_Model->add_edit_batch_route_permissions(0, $rpData);
}
else
{
$getRPrid = $this->db->query("SELECT id FROM bt_batch_routes WHERE id = $id")->row_array();
if(isset($getRPrid['id']) && !empty($getRPrid))
{
$rpData['route_ids'] = $permissions;
$this->BustrackingAdmin_Model->add_edit_batch_route_permissions($getRPrid['id'], $rpData);
}
}
}
$this->session->set_flashdata('success', str_replace('%s', 'new role', THE_ADD_SUCCESS_MSG));
if ($id > 0)
$this->session->set_flashdata('success', str_replace('%s', 'role', THE_UPDATE_SUCCESS_MSG));
redirect(base_url().'route-batch-list');
}
$this->load->view('bustracking-admin/common/left-menu');
$this->load->view('bustracking-admin/common/header');
$this->load->view('bustracking-admin/route-batch-add-edit',$data);
}
public function delete_batch_route()
{
$roleId = $_POST['id'];
$result = $this->db->query("SELECT route_ids FROM bt_batch_routes WHERE id=".$roleId)->row_array();
if (!empty($result)) {
$res = $this->db->query('SELECT student_id FROM bt_students_bus_route_details WHERE route_id IN('.$result['route_ids'].')')->row_array();
if(!empty($res))
echo 'Error';
else
{
$this->BustrackingAdmin_Model->delete_batch_route_role($roleId);
echo 'Success';
}
}
}
public function check_batch_exits()
{
$roleId = $_POST['batch_id'];
$result = $this->db->query("SELECT id FROM bt_batch_routes WHERE batch_id=".$roleId)->row_array();
if(!empty($result))
echo 'Error';
else
echo 'Success';
}
public function check_batch_route_assign()
{
$route_ids = $_POST['route_ids'];
$id = (int)$_POST['id'];
if ($id > 0) {
$result = $this->db->query("SELECT batch_id,route_ids FROM bt_batch_routes WHERE id=".$id)->row_array();
$checking_diffrence = array_diff(explode(',',$result['route_ids']), $route_ids);
if (!empty($checking_diffrence)) {
$cnt = 0;
$route_id = implode(",", $checking_diffrence);
$student_list = $this->db->query('SELECT student_id FROM bt_students_bus_route_details WHERE route_id IN('.$route_id.')')->result_array();
if (!empty($student_list)) {
$classroom = $this->load->database('classroom', TRUE);
foreach ($student_list as $key => $value) {
$student_present = $classroom->query('SELECT id FROM students WHERE batch_id ='.$result['batch_id'] .' AND id ='. $value['student_id'])->row_array();
if (!empty($student_present))
$cnt++;
}
}
if ($cnt > 0)
echo 'Error';
else
echo 'Success';
}else{
echo "Success";
}
}else{
echo 'Success';
}
}
}