BBnepal-Accounts/library/application/models/LmsAdmin_Model.php
Sampanna Rimal 9cd05ef3cb commitall
2024-07-10 18:28:19 +05:45

577 lines
16 KiB
PHP

<?php
use Nilambar\NepaliDate\NepaliDate;
require_once '../vendor/autoload.php';
class LmsAdmin_Model extends CI_Model
{
/*############################################ START Of Coding By Nandini ############################################*/
public function __construct()
{
$this->load->database();
$this->load->helper('common_helper');
date_default_timezone_set('Asia/Kathmandu');
$this->nepaliDateObject = new NepaliDate();
$this->nepali_current_date = cuurentNepaliDate($this->nepaliDateObject);
}
public function get_lms_dashboard_records($where = '', $sqlQry = '', $limit = FALSE, $offset = FALSE)
{
if ($limit)
$this->db->limit($limit, $offset);
if ($where != '')
$this->db->where($where);
if ($sqlQry != '')
$query = $this->db->query($sqlQry);
return $query->row_array();
}
/**************************************** START of Admin Roles - Nandini ************************************/
public function get_lms_admin_roles($where = '', $sqlQry = '', $limit = FALSE, $offset = FALSE)
{
if ($limit)
$this->db->limit($limit, $offset);
if ($where != '')
$this->db->where($where);
$this->db->order_by('lms_admin_roles.id', 'DESC');
$query = $this->db->get('lms_admin_roles');
if ($sqlQry != '')
$query = $this->db->query($sqlQry);
return $query->result_array();
}
public function check_role_exists($id, $rname)
{
$rId = ($this->input->post('id') !== NULL) ? $this->input->post('id') : $id;
$rName = ($this->input->post('role_name') !== NULL) ? $this->input->post('role_name') : $rname;
$query = $this->db->get_where('lms_admin_roles', array('role_name' => $rName));
if (!empty($query->row_array())) {
if ($rId == 0)
return false; //Duplicate role_name
else {
if ($query->row(0)->id != $rId)
return false; //Duplicate role_name
}
}
return true; //No duplicate
}
function add_edit_admin_role($rId = 0, $data)
{
if ($rId == 0) {
$this->db->insert('lms_admin_roles', $data);
if ($this->db->affected_rows() > 0) {
$insertid = $this->db->insert_id();
return $insertid;
} else {
return 0;
}
} else {
$this->db->where('id', $rId);
$this->db->update('lms_admin_roles', $data);
if ($this->db->affected_rows() > 0)
return true;
else {
if ($this->db->trans_status() === FALSE)
return 0;
return true;
}
}
}
/**************************************** ENDDD of Admin Roles - Nandini ************************************/
/**************************************** START of Admin Menu - Nandini ************************************/
public function get_admin_menu_details($where = '', $sqlQry = '', $limit = FALSE, $offset = FALSE)
{
if ($limit) {
$this->db->limit($limit, $offset);
}
if ($where != '')
$this->db->where($where);
$this->db->order_by('lms_admin_menu.id', 'DESC');
$query = $this->db->get('lms_admin_menu');
if ($sqlQry != '')
$query = $this->db->query($sqlQry);
return $query->result_array();
}
function recursive_menue($parentId = 0)
{
$this->db->where('parent_id', $parentId);
//$this->db->where('is_active', 'Y');
$this->db->order_by('order_number', 'ASC');
$query = $this->db->get('lms_admin_menu');
$result = $query->result_array();
$adminMenu = array();
if (!empty($result)) {
foreach ($result as $res) {
array_push($adminMenu, $res);
}
}
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;
}
}
}
}
}
}
//echo '<pre>';print_r($adminMenu);
return $adminMenu;
}
public function get_lms_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('lms_admin_role_permissions.id', 'DESC');
$query = $this->db->get('lms_admin_role_permissions');
if ($sqlQry != '')
$query = $this->db->query($sqlQry);
return $query->result_array();
}
function add_edit_admin_role_permissions($rpId = 0, $data)
{
if ($rpId == 0) {
$this->db->insert('lms_admin_role_permissions', $data);
if ($this->db->affected_rows() > 0) {
$insertid = $this->db->insert_id();
return $insertid;
} else {
return 0;
}
} else {
$this->db->where('id', $rpId);
$this->db->update('lms_admin_role_permissions', $data);
if ($this->db->affected_rows() > 0)
return true;
else {
if ($this->db->trans_status() === FALSE)
return 0;
return true;
}
}
}
/**************************************** END of Admin Menu - Nandini ************************************/
public function check_emailid_exists($id, $email)
{
$uId = ($this->input->post('id') !== NULL) ? $this->input->post('id') : $id;
$eId = ($this->input->post('email') !== NULL) ? $this->input->post('email') : $email;
$query = $this->db->get_where('lms_admin', array('email' => $eId));
if (!empty($query->row_array())) {
if ($uId == 0)
return false; //Duplicate email id
else {
if ($query->row(0)->id != $uId)
return false; //Duplicate email id
}
}
return true; //No duplicate
}
function add_edit_admin_user($uId = 0, $data)
{
if ($uId == 0) {
$this->db->insert('lms_admin', $data);
if ($this->db->affected_rows() > 0) {
$insertid = $this->db->insert_id();
return $insertid;
} else {
return 0;
}
} else {
$this->db->where('id', $uId);
$this->db->update('lms_admin', $data);
if ($this->db->affected_rows() > 0)
return true;
else {
if ($this->db->trans_status() === FALSE)
return 0;
return true;
}
}
}
public function get_admin_details($where = '', $sqlQry = '', $limit = FALSE, $offset = FALSE)
{
if ($limit) {
$this->db->limit($limit, $offset);
}
if ($where != '')
$this->db->where($where);
$this->db->order_by('lms_admin.id', 'DESC');
$query = $this->db->get('lms_admin');
if ($sqlQry != '')
$query = $this->db->query($sqlQry);
return $query->result_array();
}
public function check_is_emailid_valid($email)
{
$query = $this->db->query("SELECT id FROM lms_admin WHERE email='$email'");
if ($row = $query->row()) {
return TRUE;
} else {
return FALSE;
}
}
/*----------------------------- START of Admin User Login Functionality -----------------------------*/
public function check_login_credentials($email, $encrypt_password)
{
$where = 'email="' . $email . '" AND password="' . $encrypt_password . '"';
$this->db->where($where);
$result = $this->db->get('lms_admin');
if ($result->num_rows() == 1) {
return true;
} else {
return false;
}
}
/*----------------------------- ENDDD of Admin User Login Functionality -----------------------------*/
/*----------------------------- START of Admin User Password Functionality -----------------------------*/
public function reset_admin_password($uId, $new_password)
{
$data = array(
'password' => md5($new_password)
);
$this->db->where('id', $uId);
return $this->db->update('lms_admin', $data);
}
/*----------------------------- ENDDD of Admin User Password Functionality -----------------------------*/
/*############################################ ENDDD Of Coding By Nandini ############################################*/
/*############################################ START Of Coding By Keerthi ############################################*/
//start book
function getData($table, $where)
{
if ($where != '') {
$this->db->where($where);
if (strpos($where, "category_id") !== false) {
return $this->db->get($table)->result_array();
} elseif (strpos($where, "returned_on_date") !== false) {
return $this->db->get($table)->result_array();
} elseif (strpos($where, "eu_unique_id") !== false) {
return $this->db->get($table)->result_array();
} elseif (strpos($where, "is_damaged") !== false) {
return $this->db->get($table)->result_array();
} elseif (strpos($where, "book_id") !== false) {
return $this->db->get($table)->result_array();
} elseif (strpos($where, "is_active") !== false) {
return $this->db->get($table)->result_array();
} else {
return $this->db->get($table)->row_array();
}
} else {
return $this->db->get($table)->result_array();
}
}
function addEditBook($id, $data, $ttlRemQty = '', $ttlBookQty = '')
{
if ($id == 0) {
$data['remaining_quantity'] = $data['total_quantity'];
$this->db->insert('lms_books', $data);
if ($this->db->affected_rows() > 0)
return $insert_id = $this->db->insert_id();
else
return 0;
} else {
$data['remaining_quantity'] = $ttlRemQty;
$data['total_quantity'] = $ttlBookQty;
$this->db->where('id', $id);
$this->db->update('lms_books', $data);
if ($this->db->trans_status() === FALSE)
return 0;
return true;
}
}
//end book
//start settings
public function addEditGeneralSettings($id, $data)
{
if ($id == 0) {
$this->db->insert('lms_general_settings', $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('lms_general_settings', $data);
if ($this->db->trans_status() === FALSE)
return 0;
return true;
}
}
public function getGeneralSettingData($table)
{
return $this->db->get($table)->row_array();
}
public function addEditCatgeoryData($id, $data)
{
if ($id == 0) {
$this->db->insert('lms_categories', $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('lms_categories', $data);
if ($this->db->trans_status() === FALSE)
return 0;
return true;
}
}
public function deleteData($tableName, $where)
{
$this->db->where($where);
$this->db->delete($tableName);
return true;
}
//end settings
//start issued book
public function get_issed_book_data($table = '', $where = '')
{
$this->db->order_by('created_on', 'DESC');
if (!empty($where)) {
$this->db->where($where);
}
return $this->db->get($table)->result_array();
}
public function addEditissuedBookData($idVal, $dataArray)
{
if ($idVal == 0) {
for ($i = 0; $i < count($dataArray['book_id']); $i++) {
$bid = $dataArray['book_id'][$i];
$euid = $dataArray['eu_unique_id'][$i];
$i_date = $dataArray['issued_date'][$i];
$r_date = $dataArray['return_date'][$i];
$b_health = $dataArray['book_health'][$i];
$c_date = $dataArray['created_on'];
$m_date = $dataArray['modified_on'];
$data = array(
'book_id' => $bid,
'eu_unique_id' => $euid,
'issued_date' => $i_date,
'return_date' => $r_date,
'book_health' => $b_health,
'created_on' => $c_date,
'modified_on' => $m_date
);
// var_dump($data);
// exit();
$insert = $this->db->insert('lms_book_transactions', $data);
$select = $this->db->get_where('lms_books', ['id' => $bid])->row_array();
if ($select) {
$oldremain_qty = $select['remaining_quantity'];
$remaning_qyt = ($oldremain_qty) - (1);
$this->db->query("UPDATE lms_books SET remaining_quantity='$remaning_qyt' WHERE id=$bid");
}
}
return true;
}
}
//end issued book
//start retuned book
public function get_returned_book_data($table = '', $where = '')
{
$this->db->order_by('id', 'DESC');
$this->db->where($where);
// echo '<pre>';
// print_r($this->db->where($where));
// exit();
return $this->db->get($table)->result_array();
}
public function addCommentData($idVal, $dataArray)
{
$this->db->where('id', $idVal);
$this->db->update('lms_book_transactions', $dataArray);
return true;
}
public function addReturnedBook($returnedId)
{
foreach ($returnedId as $ridata) {
$bdata = $this->db->get_where('lms_book_transactions', ['id' => $ridata])->row_array();
$bookData = $this->db->get_where('lms_books', ['id' => $bdata['book_id']])->row_array();
$gsData = $this->LmsAdmin_Model->getGeneralSettingData('lms_general_settings');
if ($gsData)
$late_fee = $gsData['due_fee_per_day'];
$fineperday = 0;
if ($bookData['fine_per_day'] == 0)
$fineperday = $late_fee;
else
$fineperday = $bookData['fine_per_day'];
//calculating over due days
/*$today = date('Y-m-d');
$return_date = $bdata['return_date'];
$overdue_diff = strtotime($today)-strtotime($return_date);
$overdue_days = round($overdue_diff / 86400);
if($today>$return_date){
$oddays = $overdue_days;
$latefee = ($fineperday)*($oddays);
}elseif($today<$return_date){
$oddays = 00;
$latefee = 00.00;
}*/
$todayDateObj = new DateTime($this->nepali_current_date);
$today = $todayDateObj->format('Y-m-d');
$retDateObj = new DateTime($bdata['return_date']);
$return_date = $retDateObj->format('Y-m-d');
$date11 = date_create($return_date);
$date22 = date_create($today);
$overdue_days = $date11->diff($date22)->format("%r%a");
if ($today > $return_date) {
$oddays = $overdue_days;
$latefee = ($fineperday) * ($oddays);
} elseif ($today < $return_date) {
$oddays = 00;
$latefee = 00.00;
}
//return $oddays.' == '.$latefee;
$dataArray = array(
'returned_on_date' => $today,
'total_overdue_days' => $oddays,
'late_fee_per_day' => $fineperday,
'total_late_fee' => $latefee
);
$this->db->where('id', $ridata);
$this->db->update('lms_book_transactions', $dataArray);
$select = $this->db->get_where('lms_books', ['id' => $bdata['book_id']])->row_array();
if ($select) {
$bid = $bdata['book_id'];
$ttl_quantity = $select['total_quantity'];
$oldremain_qty = $select['remaining_quantity'];
$remaning_qyt = ($oldremain_qty) + (1);
if ($remaning_qyt >= $ttl_quantity) {
$remQty = $ttl_quantity;
} else {
$remQty = $remaning_qyt;
}
$this->db->query("UPDATE lms_books SET remaining_quantity='$remQty' WHERE id=$bid");
}
}
return true;
}
//end returned book
//start student
public function get_user_data($table)
{
$CI = &get_instance();
$ecDB = $CI->load->database('erisnClassroom', TRUE);
// $query = $ecDB->query("Select s.name,s.email,s.studentId,c.classroom_name as class_name, b.b_name from students s
// INNER JOIN student_batch sb on s.id = sb.student_id AND s.batch_id = sb.batch_id
// INNER JOIN classroom c on c.id = sb.classroom_id
// INNER JOIN batch b on b.id = s.batch_id
// ORDER BY sb.id DESC");
// $query = $ecDB->query("SELECT c.id,c.name, c.studentId,c.mobile,(select classroom_name from classroom a join student_batch b on a.id=b.classroom_id WHERE b.student_id=c.id) as class_name FROM students c ORDER BY c.id");
$stdSql = $ecDB->query("SELECT s.id,s.studentId,s.name,s.course,s.mobile,s.batch_id,cl.section_id,sb.roll_no,c.course_name,se.section_name
FROM students s
JOIN student_batch sb ON sb.student_id=s.id AND s.batch_id=sb.batch_id
JOIN classroom cl ON cl.id = sb.classroom_id AND s.course=cl.course_id
JOIN section se ON cl.section_id=se.id
JOIN course c ON c.id=cl.course_id ORDER BY sb.roll_no ASC");
return $stdSql->result_array();
}
public function getStudentInfo($stdId)
{
$CI = &get_instance();
$ecDB = $CI->load->database('erisnClassroom', TRUE);
$query = $ecDB->query("SELECT c.*,(select classroom_name from classroom a join student_batch b on a.id=b.classroom_id WHERE b.student_id=c.id) as class_name FROM students c WHERE c.id='$stdId'");
return $query->row_array();
}
public function getStudentDataById($stdIs)
{
$CI = &get_instance();
$ecDB = $CI->load->database('erisnClassroom', TRUE);
$query = $ecDB->query("SELECT c.studentId,c.id,c.mobile,c.name,(select classroom_name from classroom a join student_batch b on a.id=b.classroom_id WHERE b.student_id=c.id) as class_name FROM students c WHERE c.studentId='$stdIs'");
return $query->row_array();
}
//end student
/*############################################ ENDDD Of Coding By Keerthi ############################################*/
}