load->model("classteacher_model");
$this->load->model("Staff_model");
$this->load->library('Enc_lib');
$this->sch_setting_detail = $this->setting_model->getSetting();
}
public function unauthorized()
{
$data = array();
$this->load->view('layout/header', $data);
$this->load->view('unauthorized', $data);
$this->load->view('layout/footer', $data);
}
public function dashboard()
{
$role = $this->customlib->getStaffRole();
$role_id = json_decode($role)->id;
$data['role_id'] = $role_id;
$staffid = $this->customlib->getStaffID();
$notifications = $this->notification_model->getUnreadStaffNotification($staffid, $role_id);
$data['notifications'] = $notifications;
$input = $this->setting_model->getCurrentSessionName();
list($a, $b) = explode('-', $input);
$Current_year = $a;
if (strlen($b) == 2) {
$Next_year = substr($a, 0, 2) . $b;
} else {
$Next_year = $b;
}
$data['mysqlVersion'] = $this->setting_model->getMysqlVersion();
$data['sqlMode'] = $this->setting_model->getSqlMode();
//========================== Current Attendence ==========================
$current_date = date('Y-m-d');
$data['title'] = 'Dashboard';
$Current_start_date = date('01');
$Current_date = date('d');
$Current_month = date('m');
$month_collection = 0;
$month_expense = 0;
$total_students = 0;
$total_teachers = 0;
$ar = $this->startmonthandend();
$year_str_month = $Current_year . '-' . $ar[0] . '-01';
$year_end_month = date("Y-m-t", strtotime($Next_year . '-' . $ar[1] . '-01'));
$getDepositeAmount = $this->studentfeemaster_model->getDepositAmountBetweenDate($year_str_month, $year_end_month);
//======================Current Month Collection ==============================
$first_day_this_month = date('Y-m-01');
$current_month_collection = $this->studentfeemaster_model->getDepositAmountBetweenDate($first_day_this_month, $current_date);
$month_collection = $this->whatever($current_month_collection, $first_day_this_month, $current_date);
$expense = $this->expense_model->getTotalExpenseBwdate($first_day_this_month, $current_date);
if (!empty($expense)) {
$month_expense = $month_expense + $expense->amount;
}
$data['month_collection'] = $month_collection;
$data['month_expense'] = $month_expense;
$tot_students = $this->studentsession_model->getTotalStudentBySession();
if (!empty($tot_students)) {
$total_students = $tot_students->total_student;
}
$data['total_students'] = $total_students;
$tot_roles = $this->role_model->get();
foreach ($tot_roles as $key => $value) {
$count_roles[$value["name"]] = $this->role_model->count_roles($value["id"]);
}
$data["roles"] = $count_roles;
//======================== get collection by month ==========================
$start_month = strtotime($year_str_month);
$start = strtotime($year_str_month);
$end = strtotime($year_end_month);
$coll_month = array();
$s = array();
$total_month = array();
while ($start_month <= $end) {
$total_month[] = date('M', $start_month);
$month_start = date('Y-m-d', $start_month);
$month_end = date("Y-m-t", $start_month);
$return = $this->whatever($getDepositeAmount, $month_start, $month_end);
if ($return) {
$s[] = $return;
} else {
$s[] = "0.00";
}
$start_month = strtotime("+1 month", $start_month);
}
//======================== getexpense by month ==============================
$ex = array();
$start_session_month = strtotime($year_str_month);
while ($start_session_month <= $end) {
$month_start = date('Y-m-d', $start_session_month);
$month_end = date("Y-m-t", $start_session_month);
$expense_monthly = $this->expense_model->getTotalExpenseBwdate($month_start, $month_end);
if (!empty($expense_monthly)) {
$amt = 0;
$ex[] = $amt + $expense_monthly->amount;
}
$start_session_month = strtotime("+1 month", $start_session_month);
}
$data['yearly_collection'] = $s;
$data['yearly_expense'] = $ex;
$data['total_month'] = $total_month;
//======================= current month collection /expense ===================
// hardcoded '01' for first day
$startdate = date('m/01/Y');
$enddate = date('m/t/Y');
$start = strtotime($startdate);
$end = strtotime($enddate);
$currentdate = $start;
$month_days = array();
$days_collection = array();
while ($currentdate <= $end) {
$cur_date = date('Y-m-d', $currentdate);
$month_days[] = date('d', $currentdate);
$coll_amt = $this->whatever($getDepositeAmount, $cur_date, $cur_date);
$days_collection[] = $coll_amt;
$currentdate = strtotime('+1 day', $currentdate);
}
$data['current_month_days'] = $month_days;
$data['days_collection'] = $days_collection;
//======================= current month /expense ==============================
// hardcoded '01' for first day
$startdate = date('m/01/Y');
$enddate = date('m/t/Y');
$start = strtotime($startdate);
$end = strtotime($enddate);
$currentdate = $start;
$days_expense = array();
while ($currentdate <= $end) {
$cur_date = date('Y-m-d', $currentdate);
$month_days[] = date('d', $currentdate);
$currentdate = strtotime('+1 day', $currentdate);
$ct = $this->getExpensebyday($cur_date);
$days_expense[] = $ct;
}
$data['days_expense'] = $days_expense;
$student_fee_history = $this->studentfee_model->getTodayStudentFees();
$data['student_fee_history'] = $student_fee_history;
$event_colors = array("#03a9f4", "#c53da9", "#757575", "#8e24aa", "#d81b60", "#7cb342", "#fb8c00", "#fb3b3b");
$data["event_colors"] = $event_colors;
$userdata = $this->customlib->getUserData();
$data["role"] = $userdata["user_type"];
$start_date = date('Y-m-01');
$end_date = date('Y-m-t');
$student_due_fee = $this->studentfeemaster_model->getFeesAwaiting($start_date, $end_date);
$data['fees_awaiting'] = $student_due_fee;
$total_fess = 0;
$total_paid = 0;
$total_unpaid = 0;
$total_partial = 0;
if (!empty($data['fees_awaiting'])) {
foreach ($data['fees_awaiting'] as $awaiting_key => $awaiting_value) {
$amount_to_be_taken = 0;
if ($awaiting_value->is_system) {
if ($awaiting_value->amount > 0) {
$amount_to_be_taken = $awaiting_value->amount;
}
} elseif ($awaiting_value->is_system == 0) {
if ($awaiting_value->fee_amount > 0) {
$amount_to_be_taken = $awaiting_value->fee_amount;
}
}
if ($amount_to_be_taken > 0) {
$total_fess++;
if (is_string($awaiting_value->amount_detail) && is_array(json_decode($awaiting_value->amount_detail, true)) && (json_last_error() == JSON_ERROR_NONE)) {
$amount_paid_details = (json_decode($awaiting_value->amount_detail));
$amt_ = 0;
foreach ($amount_paid_details as $amount_paid_detail_key => $amount_paid_detail_value) {
$amt_ = $amt_ + $amount_paid_detail_value->amount;
}
if (($amt_ + $amount_paid_detail_value->amount_discount) >= $amount_to_be_taken) {
$total_paid++;
} elseif (($amt_ + $amount_paid_detail_value->amount_discount) < $amount_to_be_taken) {
$total_partial++;
}
} else {
$total_unpaid++;
}
}
}
}
$data['incomegraph'] = $this->income_model->getIncomeHeadsData($start_date, $end_date);
$data['expensegraph'] = $this->expense_model->getExpenseHeadData($start_date, $end_date);
$enquiry = $this->admin_model->getAllEnquiryCount($start_date, $end_date);
$total_counter = $total_paid + $total_unpaid + $total_partial;
$data['fees_overview'] = array(
'total_unpaid' => $total_unpaid,
'unpaid_progress' => ($total_counter > 0) ? (($total_unpaid * 100) / $total_counter) : 0,
'total_paid' => $total_paid,
'paid_progress' => ($total_counter > 0) ? (($total_paid * 100) / $total_counter) : 0,
'total_partial' => $total_partial,
'partial_progress' => ($total_counter > 0) ? (($total_partial * 100) / $total_counter) : 0,
);
$total_enquiry = $enquiry['total'];
if ($total_enquiry > 0) {
$data['enquiry_overview'] = array(
'won' => $enquiry['complete'],
'won_progress' => ($enquiry['complete'] * 100) / $total_enquiry,
'active' => $enquiry['active'],
'active_progress' => ($enquiry['active'] * 100) / $total_enquiry,
'passive' => $enquiry['passive'],
'passive_progress' => ($enquiry['passive'] * 100) / $total_enquiry,
'dead' => $enquiry['dead'],
'dead_progress' => ($enquiry['dead'] * 100) / $total_enquiry,
'lost' => $enquiry['lost'],
'lost_progress' => ($enquiry['lost'] * 100) / $total_enquiry,
);
} else {
$data['enquiry_overview'] = array(
'won' => 0,
'won_progress' => 0,
'active' => 0,
'active_progress' => 0,
'passive' => 0,
'passive_progress' => 0,
'dead' => 0,
'dead_progress' => 0,
'lost' => 0,
'lost_progress' => 0,
);
}
$data['total_paid'] = $total_paid;
$data['total_fees'] = $total_fess;
if ($total_fess > 0) {
$data['fessprogressbar'] = ($total_paid * 100) / $total_fess;
} else {
$data['fessprogressbar'] = 0;
}
$data['total_enquiry'] = $total_enquiry = $enquiry['total'];
$data['total_complete'] = $complete_enquiry = $enquiry['complete'];
if ($total_enquiry > 0) {
$data['fenquiryprogressbar'] = ($complete_enquiry * 100) / $total_enquiry;
} else {
$data['fenquiryprogressbar'] = 0;
}
$bookoverview = $this->book_model->bookoverview($start_date, $end_date);
$bookduereport = $this->bookissue_model->dueforreturn($start_date, $end_date);
$forreturndata = $this->bookissue_model->forreturn($start_date, $end_date);
$dueforreturn = $bookduereport[0]['total'];
$forreturn = $forreturndata[0]['total'];
$total_qty = $bookoverview[0]['qty'];
$total_issued = $bookoverview[0]['total_issue'];
$availble = '0';
$availble_progress = 0;
$issued_progress = 0;
if ($total_qty > 0) {
$availble = $total_qty - $total_issued;
$availble_progress = ($availble * 100) / $total_qty;
$issued_progress = ($total_issued * 100) / $total_qty;
}
$data['book_overview'] = array(
'total' => $total_qty,
'total_progress' => 100,
'availble' => $availble,
'availble_progress' => round($availble_progress, 2),
'total_issued' => $total_issued,
'issued_progress' => round($issued_progress, 2),
'dueforreturn' => $dueforreturn,
'forreturn' => $forreturn,
);
$Attendence = $this->stuattendence_model->getTodayDayAttendance($total_students);
$data['attendence_data'] = $Attendence;
$Staffattendence = $this->Staff_model->getTodayDayAttendance();
$data['Staffattendence_data'] = $Staffattendence;
$getTotalStaff = $this->Staff_model->getTotalStaff();
$data['getTotalStaff_data'] = $getTotalStaff;
if ($getTotalStaff > 0) {$percentTotalStaff_data = ($Staffattendence * 100) / ($getTotalStaff);} else { $percentTotalStaff_data = '0';}
$data['percentTotalStaff_data'] = $percentTotalStaff_data;
$data['sch_setting'] = $this->sch_setting_detail;
if ($data['sch_setting']->attendence_type == 0) {
$data['std_graphclass'] = "col-lg-3 col-md-6 col-sm-6";
} else {
$data['std_graphclass'] = "col-lg-4 col-md-6 col-sm-6";
}
$this->load->view('layout/header', $data);
$this->load->view('admin/dashboard', $data);
$this->load->view('layout/footer', $data);
}
public function getUserImage()
{
$id = $this->session->userdata["admin"]["id"];
$result = $this->staff_model->get($id);
}
public function getSession()
{
if (!$this->rbac->hasPrivilege('quick_session_change', 'can_view')) {
access_denied();
}
$session = $this->session_model->getAllSession();
$data = array();
$session_array = $this->session->has_userdata('session_array');
$data['sessionData'] = array('session_id' => 0);
if ($session_array) {
$data['sessionData'] = $this->session->userdata('session_array');
} else {
$setting = $this->setting_model->get();
$data['sessionData'] = array('session_id' => $setting[0]['session_id']);
}
$data['sessionList'] = $session;
$this->load->view('admin/partial/_session', $data);
}
public function updateSession()
{
$session = $this->input->post('popup_session');
$session_array = $this->session->has_userdata('session_array');
if ($session_array) {
$this->session->unset_userdata('session_array');
}
$session = $this->session_model->get($session);
$session_array = array('session_id' => $session['id'], 'session' => $session['session']);
$this->session->set_userdata('session_array', $session_array);
echo json_encode(array('status' => 1, 'message' => $this->lang->line('session_changed_successfully')));
}
public function updatePurchaseCode()
{
$this->form_validation->set_rules('email', 'Email', 'required|valid_email|trim|xss_clean');
$this->form_validation->set_rules('envato_market_purchase_code', 'Purchase Code', 'required|trim|xss_clean');
if ($this->form_validation->run() == false) {
$data = array(
'email' => form_error('email'),
'envato_market_purchase_code' => form_error('envato_market_purchase_code'),
);
$array = array('status' => '2', 'error' => $data);
return $this->output
->set_content_type('application/json')
->set_status_header(200)
->set_output(json_encode($array));
} else {
//==================
$response = $this->auth->app_update();
}
}
public function backup()
{
if (!$this->rbac->hasPrivilege('backup', 'can_view')) {
access_denied();
}
$this->session->set_userdata('top_menu', 'System Settings');
$this->session->set_userdata('sub_menu', 'admin/backup');
$data['title'] = 'Backup History';
if ($this->input->server('REQUEST_METHOD') == "POST") {
if ($this->input->post('backup') == "upload") {
$this->form_validation->set_rules('file', 'Image', 'callback_handle_upload');
if ($this->form_validation->run() == false) {
} else {
if (isset($_FILES["file"]) && !empty($_FILES['file']['name'])) {
$fileInfo = pathinfo($_FILES["file"]["name"]);
$file_name = "db-" . date("Y-m-d_H-i-s") . ".sql";
move_uploaded_file($_FILES["file"]["tmp_name"], "./backup/temp_uploaded/" . $file_name);
$folder_name = 'temp_uploaded';
$path = './backup/';
$file_restore = $this->load->file($path . $folder_name . '/' . $file_name, true);
$file_array = explode(';', $file_restore);
foreach ($file_array as $query) {
$trimQuery1 = trim($query);
if (!empty($trimQuery1)) {
$this->db->query("SET FOREIGN_KEY_CHECKS = 0");
$this->db->query($query);
$this->db->query("SET FOREIGN_KEY_CHECKS = 1");
}
}
$this->session->set_flashdata('msg', '
Backup restored successfully!
');
redirect('admin/admin/backup');
}
}
}
if ($this->input->post('backup') == "backup") {
$this->session->set_flashdata('msg', 'Backup created successfully!
');
$this->load->helper('download');
$this->load->dbutil();
$version = $this->customlib->getAppVersion();
$filename = "db_ver_" . $version . '_' . date("Y-m-d_H-i-s") . ".sql";
$prefs = array(
'ignore' => array(),
'format' => 'txt',
'filename' => 'mybackup.sql',
'add_drop' => true,
'add_insert' => true,
'newline' => "\n",
);
$backup = $this->dbutil->backup($prefs);
$this->load->helper('file');
write_file('./backup/database_backup/' . $filename, $backup);
redirect('admin/admin/backup');
force_download($filename, $backup);
$this->session->set_flashdata('feedback', 'Success message for client to see');
redirect('admin/admin/backup');
} else if ($this->input->post('backup') == "restore") {
$folder_name = 'database_backup';
$file_name = $this->input->post('filename');
$path = './backup/';
$filePath = $path . $folder_name . '/' . $file_name;
$file_restore = $this->load->file($path . $folder_name . '/' . $file_name, true);
$db = (array) get_instance()->db;
$conn = mysqli_connect('localhost', $db['username'], $db['password'], $db['database']);
$sql = '';
$error = false;
$error_msg = "";
$result = mysqli_query($conn, "SET FOREIGN_KEY_CHECKS = 0");
if (!$result) {
$error_msg = "Database failed: " . mysqli_error();
$error = true;
}
if (!$error) {
if (file_exists($filePath)) {
$lines = file($filePath);
foreach ($lines as $line) {
// Ignoring comments from the SQL script
if (substr($line, 0, 2) == '--' || $line == '') {
continue;
}
$sql .= $line;
if (substr(trim($line), -1, 1) == ';') {
$result = mysqli_query($conn, $sql);
if (!$result) {
$error_msg = "Database failed: " . mysqli_error();
$error = true;
break;
}
$sql = '';
}
}
if (!$error) {
$msg = "Backup restored successfully!";
}
} // end if file exists
}
$result = mysqli_query($conn, "SET FOREIGN_KEY_CHECKS = 1");
if (!$result) {
$error_msg = "Database failed: " . mysqli_error();
$error = true;
}
if ($error) {
$this->session->set_flashdata('msg', '' . $msg . '
');
} else {
$this->session->set_flashdata('msg', '' . $msg . '
');
}
redirect('admin/admin/backup');
}
}
$dir = "./backup/database_backup/";
$result = array();
$cdir = scandir($dir);
foreach ($cdir as $key => $value) {
if (!in_array($value, array(".", ".."))) {
if (is_dir($dir . DIRECTORY_SEPARATOR . $value)) {
$result[$value] = dirToArray($dir . DIRECTORY_SEPARATOR . $value);
} else {
$result[] = $value;
}
}
}
$data['dbfileList'] = $result;
$setting_result = $this->setting_model->get();
$data['settinglist'] = $setting_result;
$this->load->view('layout/header', $data);
$this->load->view('admin/backup', $data);
$this->load->view('layout/footer', $data);
}
public function changepass()
{
$this->session->set_userdata('top_menu', 'System Settings');
$this->session->set_userdata('sub_menu', 'changepass/index');
$data['title'] = 'Change Password';
$this->form_validation->set_rules('current_pass', 'Current password', 'trim|required|xss_clean');
$this->form_validation->set_rules('new_pass', 'New password', 'trim|required|xss_clean|matches[confirm_pass]');
$this->form_validation->set_rules('confirm_pass', 'Confirm password', 'trim|required|xss_clean');
if ($this->form_validation->run() == false) {
$sessionData = $this->session->userdata('loggedIn');
$this->data['id'] = $sessionData['id'];
$this->data['username'] = $sessionData['username'];
$this->load->view('layout/header', $data);
$this->load->view('admin/change_password', $data);
$this->load->view('layout/footer', $data);
} else {
$sessionData = $this->session->userdata('admin');
$userdata = $this->customlib->getUserData();
$data_array = array(
'current_pass' => $this->input->post('current_pass'),
'new_pass' => md5($this->input->post('new_pass')),
'user_id' => $sessionData['id'],
'user_email' => $sessionData['email'],
'user_name' => $sessionData['username'],
);
$newdata = array(
'id' => $sessionData['id'],
'password' => $this->enc_lib->passHashEnc($this->input->post('new_pass')),
);
$check = $this->enc_lib->passHashDyc($this->input->post('current_pass'), $userdata["password"]);
$query1 = $this->admin_model->checkOldPass($data_array);
if ($query1) {
if ($check) {
$query2 = $this->admin_model->saveNewPass($newdata);
if ($query2) {
$data['error_message'] = "Password changed successfully
";
$this->load->view('layout/header', $data);
$this->load->view('admin/change_password', $data);
$this->load->view('layout/footer', $data);
}
} else {
$data['error_message'] = "Invalid current password
";
$this->load->view('layout/header', $data);
$this->load->view('admin/change_password', $data);
$this->load->view('layout/footer', $data);
}
} else {
$data['error_message'] = "Invalid current password
";
$this->load->view('layout/header', $data);
$this->load->view('admin/change_password', $data);
$this->load->view('layout/footer', $data);
}
}
}
public function pdf_report()
{
$data = array();
$html = $this->load->view('reports/students_detail', $data, true);
$pdfFilePath = "output_pdf_name.pdf";
$this->load->library('m_pdf');
$this->m_pdf->pdf->WriteHTML($html);
$this->m_pdf->pdf->Output($pdfFilePath, "D");
}
public function downloadbackup($file)
{
$this->load->helper('download');
$filepath = "./backup/database_backup/" . $file;
$data = file_get_contents($filepath);
$name = $file;
force_download($name, $data);
}
public function dropbackup($file)
{
if (!$this->rbac->hasPrivilege('backup', 'can_delete')) {
access_denied();
}
unlink('./backup/database_backup/' . $file);
redirect('admin/admin/backup');
}
public function search()
{
$data['title'] = 'Search';
$search_text = $this->input->post('search_text1');
$data['sch_setting'] = $this->sch_setting_detail;
$data['search_text'] = trim($this->input->post('search_text1'));
$userdata = $this->customlib->getUserData();
$data['adm_auto_insert'] = $this->sch_setting_detail->adm_auto_insert;
$carray = array();
$class = $this->class_model->get();
$data['classlist'] = $class;
$data['fields'] = $this->customfield_model->get_custom_fields('students', 1);
$userdata = $this->customlib->getUserData();
$carray = array();
if (!empty($data["classlist"])) {
foreach ($data["classlist"] as $ckey => $cvalue) {
$carray[] = $cvalue["id"];
}
}
$resultlist = $this->student_model->searchusersbyFullText($search_text, $carray);
$data['resultlist'] = $resultlist;
$this->load->view('layout/header', $data);
$this->load->view('admin/search', $data);
$this->load->view('layout/footer', $data);
}
public function getCollectionbymonth()
{
$result = $this->admin_model->getMonthlyCollection();
return $result;
}
public function getCollectionbyday($date)
{
$result = $this->admin_model->getCollectionbyDay($date);
if ($result[0]['amount'] == "") {
$return = 0;
} else {
$return = $result[0]['amount'];
}
return $return;
}
public function getExpensebyday($date)
{
$result = $this->admin_model->getExpensebyDay($date);
if ($result[0]['amount'] == "") {
$return = 0;
} else {
$return = $result[0]['amount'];
}
return $return;
}
public function getExpensebymonth()
{
$result = $this->admin_model->getMonthlyExpense();
return $result;
}
public function whatever($feecollection_array, $start_month_date, $end_month_date)
{
$return_amount = 0;
$st_date = strtotime($start_month_date);
$ed_date = strtotime($end_month_date);
if (!empty($feecollection_array)) {
while ($st_date <= $ed_date) {
$date = date('Y-m-d', $st_date);
foreach ($feecollection_array as $key => $value) {
if ($value['date'] == $date) {
$return_amount = $return_amount + $value['amount'] + $value['amount_fine'];
}
}
$st_date = $st_date + 86400;
}
} else {
}
return $return_amount;
}
public function startmonthandend()
{
$startmonth = $this->setting_model->getStartMonth();
if ($startmonth == 1) {
$endmonth = 12;
} else {
$endmonth = $startmonth - 1;
}
return array($startmonth, $endmonth);
}
public function handle_upload()
{
if (isset($_FILES["file"]) && !empty($_FILES['file']['name'])) {
$allowedExts = array('sql');
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ($_FILES["file"]["error"] > 0) {
$error .= "Error opening the file
";
}
if ($_FILES["file"]["type"] != 'application/octet-stream') {
$this->form_validation->set_message('handle_upload', 'File type not allowed');
return false;
}
if (!in_array($extension, $allowedExts)) {
$this->form_validation->set_message('handle_upload', 'Extension not allowed');
return false;
}
if ($_FILES["file"]["size"] > 102400000) {
$this->form_validation->set_message('handle_upload', 'File size shoud be less than 100 MB');
return false;
}
return true;
} else {
$this->form_validation->set_message('handle_upload', 'File field is required');
return false;
}
}
public function generate_key($length = 12)
{
$str = "";
$characters = array_merge(range('A', 'Z'), range('a', 'z'), range('0', '9'));
$max = count($characters) - 1;
for ($i = 0; $i < $length; $i++) {
$rand = mt_rand(0, $max);
$str .= $characters[$rand];
}
return $str;
}
public function addCronsecretkey($id)
{
$key = $this->generate_key(25);
$data = array('cron_secret_key' => $key);
$this->setting_model->add_cronsecretkey($data, $id);
redirect('admin/admin/backup');
}
public function updateandappCode()
{
$this->form_validation->set_rules('app-email', 'Email', 'required|valid_email|trim|xss_clean');
$this->form_validation->set_rules('app-envato_market_purchase_code', 'Purchase Code', 'required|trim|xss_clean');
if ($this->form_validation->run() == false) {
$data = array(
'app-email' => form_error('app-email'),
'app-envato_market_purchase_code' => form_error('app-envato_market_purchase_code'),
);
$array = array('status' => '2', 'error' => $data);
return $this->output
->set_content_type('application/json')
->set_status_header(200)
->set_output(json_encode($array));
} else {
//==================
$response = $this->auth->andapp_update();
}
}
public function filetype()
{
$data = array();
$data['title'] = 'File Type List';
$this->session->set_userdata('top_menu', 'System Settings');
$this->session->set_userdata('sub_menu', 'System Settings/filetype');
$data['filetype'] = $this->filetype_model->get();
$this->load->view('layout/header', $data);
$this->load->view('admin/filetype', $data);
$this->load->view('layout/footer', $data);
}
public function addfiletype()
{
$this->form_validation->set_rules('file_extension', $this->lang->line('allowed_extension'), 'required|trim|xss_clean|callback_validate_extension');
$this->form_validation->set_rules('image_extension', $this->lang->line('allowed_extension'), 'required|trim|xss_clean|callback_validate_extension');
$this->form_validation->set_rules('file_mime', $this->lang->line('allowed_mime_type'), 'required|trim|xss_clean|callback_validate_mime');
$this->form_validation->set_rules('image_mime', $this->lang->line('allowed_mime_type'), 'required|trim|xss_clean|callback_validate_mime');
$this->form_validation->set_rules('image_size', $this->lang->line('upload_size_in_bytes'), 'required|trim|xss_clean');
$this->form_validation->set_rules('file_size', $this->lang->line('upload_size_in_bytes'), 'required|trim|xss_clean');
if ($this->form_validation->run() == false) {
$data = array(
'file_extension' => form_error('file_extension'),
'file_mime' => form_error('file_mime'),
'image_extension' => form_error('image_extension'),
'image_mime' => form_error('image_mime'),
'image_size' => form_error('image_size'),
'file_size' => form_error('file_size'),
);
$array = array('status' => 'fail', 'error' => $data);
echo json_encode($array);
} else {
$insert_array = array(
'file_extension' => $this->input->post('file_extension'),
'file_mime' => $this->input->post('file_mime'),
'image_extension' => $this->input->post('image_extension'),
'image_mime' => $this->input->post('image_mime'),
'file_size' => $this->input->post('file_size'),
'image_size' => $this->input->post('image_size'),
);
$inserted_id = $this->filetype_model->add($insert_array);
$array = array('status' => 'success', 'error' => '', 'message' => $this->lang->line('success_message'));
echo json_encode($array);
}
}
public function validate_extension($extension)
{
if (preg_match('/^([A-Za-z0-9]+)(,\s[A-Za-z0-9]+)*$/', $extension)) {
return true;
} else {
$this->form_validation->set_message('validate_extension', 'The %s field must be like jpg, jpeg');
return false;
}
}
public function validate_mime($mime)
{
if (preg_match('/^([A-Za-z0-9-.+\/]+)(,\s[A-Za-z0-9-.+\/]+)*$/', $mime)) {
return true;
} else {
$this->form_validation->set_message('validate_mime', 'The %s field must be like audio/mp4, video/mp4');
return false;
}
}
public function updateaddon()
{
$this->form_validation->set_rules('app-email', 'Email', 'required|valid_email|trim|xss_clean');
$this->form_validation->set_rules('app-envato_market_purchase_code', 'Purchase Code', 'required|trim|xss_clean');
if ($this->form_validation->run() == false) {
$data = array(
'app-email' => form_error('app-email'),
'app-envato_market_purchase_code' => form_error('app-envato_market_purchase_code'),
);
$array = array('status' => '2', 'error' => $data);
return $this->output
->set_content_type('application/json')
->set_status_header(200)
->set_output(json_encode($array));
} else {
//==================
$response = $this->auth->addon_update();
}
}
public function searchvalidation()
{
$search_text1 = $this->input->post('search_text1');
$params = array('search_text1'=> $search_text1);
$array = array('status' => 1, 'error' => '', 'params' => $params);
echo json_encode($array);
}
public function dtstudentlist($search_text)
{
if($search_text==="0"){
$search_text="";
}
$sch_setting = $this->sch_setting_detail;
$currency_symbol = $this->customlib->getSchoolCurrencyFormat();
$classlist = $this->class_model->get();
$classlist = $classlist;
$carray = array();
if (!empty($classlist)) {
foreach ($classlist as $ckey => $cvalue) {
$carray[] = $cvalue["id"];
}
}
$resultlist = $this->student_model->searchFullText($search_text, $carray);
$fields = $this->customfield_model->get_custom_fields('students', 1);
$students = json_decode($resultlist);
$dt_data=array();
if (!empty($students->data)) {
foreach ($students->data as $student_key => $student) {
$editbtn='';
$deletebtn = '';
$viewbtn='';
$viewbtn = "";
if ($this->rbac->hasPrivilege('student', 'can_edit')) {
$editbtn = "";
}
if ($this->rbac->hasPrivilege('collect_fees', 'can_add')) {
$collectbtn = "".$currency_symbol."";
}
$row = array();
$row[] = $student->admission_no;
$row[] = "".$this->customlib->getFullName($student->firstname,$student->middlename,$student->lastname,$sch_setting->middlename,$sch_setting->lastname)."";
$row[] = $student->class . "(" . $student->section . ")";
if ($sch_setting->father_name) {
$row[]= $student->father_name ;
}
$row[]= $this->customlib->dateformat($student->dob);
$row[] = $student->gender;
if ($sch_setting->category) {
$row[] = $student->category ;
}
if ($sch_setting->mobile_no) {
$row[] = $student->mobileno ;
}
foreach ($fields as $fields_key => $fields_value) {
$custom_name = $fields_value->name ;
$display_field=$student->$custom_name;
if($fields_value->type == "link"){
$display_field= "".$student->$custom_name."";
}
$row[] = $display_field ;
}
$row[] = $viewbtn.''.$editbtn.''.$collectbtn;
$dt_data[] = $row;
}
}
$json_data = array(
"draw" => intval($students->draw),
"recordsTotal" => intval($students->recordsTotal),
"recordsFiltered" => intval($students->recordsFiltered),
"data" => $dt_data,
);
echo json_encode($json_data);
}
}