MMCT TEAM
Server IP : 103.191.208.50  /  Your IP : 216.73.216.53
Web Server : LiteSpeed
System : Linux orion.herosite.pro 4.18.0-553.53.1.lve.el8.x86_64 #1 SMP Wed May 28 17:01:02 UTC 2025 x86_64
User : celkcksm ( 1031)
PHP Version : 7.4.33
Disable Function : show_source, system, shell_exec, passthru, popen, exec
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /home/celkcksm/ecampus.ncriptech.com/application/controllers/admin/lms/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/celkcksm/ecampus.ncriptech.com/application/controllers/admin/lms/Books.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');


/**
 * 
 */
class Books extends BaseAdminController
{
    protected $inst_id='';
    protected $inst_type='';
    protected $ctms_access='';

    function __construct()
    {
        parent::__construct();

        $institute_data=check_institute($this->data['userdata']);

        //print_obj($institute_data);die;

        $this->inst_id=$institute_data['institute_id'];
        $this->inst_type=$institute_data['inst_type'];

        $this->lms_access=$institute_data['lms_access'];

        

        // $this->load->model('lms/author_model','lmsam');
        $this->load->model(array('lms/book_model'=>'lmsbm','lms/rack_model'=>'rcm','lms/publisher_model'=>'pbm','lms/category_model'=>'cam','lms/author_model'=>'aum','lms/language_model'=>'lsmlm'));
        // $this->load->model('lms/publisher_model','lmspm');
        $this->load->helper('lms_helper');
    }

    function index(){

        if($this->data['userdata']->user_type=='student'  ||  $this->data['userdata']->user_type=='agent' ){
            redirect($this->data['base_url']);
        }
       
        if(session_userdata('isAdminLoggedin')){

            $this->data['page_title']='Books';
                
            $view_access=check_access_control($this->data['userdata'],'lms_books','view');
            $lms_access='yes';

            $lms_access='yes';
            $add_access=check_access_control($this->data['userdata'],'lms_books','add'); 
            if($this->data['userdata']->user_role==1){
                $add_access='yes';
                $view_access="yes";
            }
            $this->data['add_access']= $add_access;
            if($lms_access=='yes' && $view_access=="yes"){ 

                $this->data['view_access']= $view_access;
                $this->theme->title($this->data['page_title'])->load('lms/vw_books', $this->data);

            }else{
                $this->theme->title($this->data['page_title'])->load('lms/vw_lms_permission_denied', $this->data);
            }


        }else{

            redirect($this->data['base_url']);
        }
    }


    public function indexAddEditBooks($book_id=null){
        if(session_userdata('isAdminLoggedin')){
            $this->data['page_title']='Books';
            //$view='lms/vw_lms_permission_denied';
            $this->data['book_authors']=$this->aum->get_book_author(array('author_inst_id'=>$this->inst_id,'author_inst_type'=>$this->inst_type),FALSE);

            $this->data['book_categories']=$this->cam->get_book_category(array('category_inst_id'=>$this->inst_id,'category_inst_type'=>$this->inst_type),FALSE);

            $this->data['book_racks']=$this->rcm->get_book_rack(array('rack_inst_id'=>$this->inst_id,'rack_inst_type'=>$this->inst_type),FALSE);

            $this->data['book_publishers']=$this->pbm->get_book_publisher(array('publisher_inst_id'=>$this->inst_id,'publisher_inst_type'=>$this->inst_type),FALSE);

            $this->data['book_languages']=$this->lsmlm->get_book_language(array('language_inst_id'=>$this->inst_id,'language_inst_type'=>$this->inst_type),FALSE);

            
            if($book_id!=null)   {
                $edit_access=check_access_control($this->data['userdata'],'lms_books','edit');
            }else{
                $add_access=check_access_control($this->data['userdata'],'lms_books','add'); 
                $this->data['add_access']= $add_access;
            }

            if($this->data['userdata']->user_role==1){
                $add_access='yes';
                $edit_access="yes";
            }

            //if($add_access=='yes'){
                // $view='lms/vw_books_add_edit'; 
            //}

            if($edit_access==='yes'){
                $book_id=decode_data($book_id);
                if(is_numeric($book_id)){
                    $this->data['book_data']=$this->lmsbm->get_book(array('book_id'=>$book_id));
                    $this->data['edit_access']= $edit_access;
                }

                //$view='lms/vw_books_add_edit';                
            }

            $view='lms/vw_books_add_edit'; 

            $this->theme->title($this->data['page_title'])->load($view, $this->data);   

        }
        else{
            redirect($this->data['base_url']);
        }
    }


    public function onLoadBooksForm(){
        if(session_userdata('isAdminLoggedin')==TRUE && session_userdata('admin_id')){
            if($this->input->is_ajax_request() && $this->input->server('REQUEST_METHOD')=='POST'){
                $book_categories=[];
                $book_racks=[];
                $book_publishers=[];
                $book_languages=[];
                $book_authors=[];
                $book_data=[];
                $book_id=post_data('book_id');

                //if($book_id!=0){
                    $book_id=decode_data($book_id);
                    //echo $book_id;
                    $book_data=$this->lmsbm->get_book(array('book_id'=>$book_id));
                //}

                //print_obj($book_data);die;


                $_bc=$this->cam->get_book_category(array('category_inst_id'=>$this->inst_id,'category_inst_type'=>$this->inst_type),FALSE);

                if(!empty($_bc)){
                    foreach ($_bc as $key => $value) {
                        $book_categories[]=array('category_id'=>$value->category_id,'category_name'=>$value->category_name);
                    }
                } 
                
                $_rc=$this->rcm->get_book_rack(array('rack_inst_id'=>$this->inst_id,'rack_inst_type'=>$this->inst_type),FALSE);

                if(!empty($_rc)){
                    foreach ($_rc as $key => $value) {
                        $book_racks[]=array('rack_id'=>$value->rack_id,'rack_name'=>$value->rack_name);
                    }
                } 

                $_bp=$this->pbm->get_book_publisher(array('publisher_inst_id'=>$this->inst_id,'publisher_inst_type'=>$this->inst_type),FALSE);

                if(!empty($_bp)){
                    foreach ($_bp as $key => $value) {
                        $book_publishers[]=array('publisher_id'=>$value->publisher_id,'publisher_name'=>$value->publisher_name);
                    }
                }

                $_bl=$this->lsmlm->get_book_language(array('language_inst_id'=>$this->inst_id,'language_inst_type'=>$this->inst_type),FALSE);

                if(!empty($_bl)){
                    foreach ($_bl as $key => $value) {
                        $book_languages[]=array('language_id'=>$value->language_id,'language_name'=>$value->language_name);
                    }
                }

                $_ba=$this->aum->get_book_author(array('author_inst_id'=>$this->inst_id,'author_inst_type'=>$this->inst_type),FALSE);

                if(!empty($_ba)){
                    foreach ($_ba as $key => $value) {
                        $book_authors[]=array('author_id'=>$value->author_id,'author_name'=>$value->author_name);
                    }
                }

                $this->data['book_categories']=$book_categories;
                $this->data['book_racks']=$book_racks;
                $this->data['book_publishers']=$book_publishers;
                $this->data['book_languages']=$book_languages;
                $this->data['book_authors']=$book_authors;
                $this->data['book_data']=$book_data;

                $this->data['gen_rand_book_code']=gen_rand_book_code();

                $return['html']=$this->theme->view('_pages/lms/vw_lms_books_form_data_dyna',$this->data,true);

                json_headers($return);

            }else{
                redirect($this->data['base_url']);
            }
        }else{
            redirect($this->data['base_url']);
        }
    }

    public  function onDeleteBooks(){
    
        if(session_userdata('isAdminLoggedin')==TRUE && session_userdata('admin_id')){
            if($this->input->is_ajax_request() && $this->input->server('REQUEST_METHOD')=='POST'){
                $delete_access=check_access_control($this->data['userdata'],'lms_books','delete');
                //print_obj($this->data['userdata']);
            //print($delete_access);
               // die();
            
            if($delete_access=='yes'){      
                $book_id=post_data('book_id');
    
                if(!empty($book_id)){
                    $book_id=decode_data($book_id);
    
                    $book_data=$this->lmsbm->delete_book_data(array('book_id'=>$book_id));
    
                    if(!empty($book_data)){
    
                        
                        if($book_data){
    
    
    
                            $return['success']='book has been removed from the system.';
                        }else{
                            $return['error']='book can not be removed';
                        }
    
    
                    }
                    else{
                        $return['error']='book data not found in the system';
                    }
    
                }else{
                    $return['error']='No book data found';

                }
            }




            else{
                $return['error']='you dont have a   permission  to delete this book';

            }


                json_headers($return);
    
            }else{
                redirect($this->data['base_url']);
            }
        }else{
            redirect($this->data['base_url']);
        }
    }

    public function onSearchBooks(){
        
        if(session_userdata('isAdminLoggedin')==TRUE && session_userdata('admin_id')){
            if($this->input->is_ajax_request() && $this->input->server('REQUEST_METHOD')=='POST'){

               //print_obj($this->data['userdata']);
               //die();
                $edit_access= check_access_control($this->data['userdata'],'lms_books','edit');
              
                $delete_access=check_access_control($this->data['userdata'],'lms_books','delete');
                      
                $view_access=check_access_control($this->data['userdata'],'lms_books','view');

                $param['column_order'] = array(
                    null,
                    'book_name',
                    'author_name'
                );

                $param['column_search'] = array('book_name');
                $param['order'] = array('book_id' => 'ASC');
                $posts=$this->input->post();


                //$param['created_by']=session_userdata('admin_id');
                  if($view_access=='yes'){

                $list = $this->lmsbm->_get_book_data($posts,$param,FALSE,FALSE);     
                  }
                   else{
                    $list = ''    ;


                   }           
                
                $data = array();
                $no = 0;

                $action='';
                $row = array();

                foreach ($list as $bdata){
                    $no++;

                    $row = array();

                    $row[]  =   $no;
                    $row[]  =   $bdata->book_code;
                    $row[]  =   $bdata->book_name; 
                    $row[]  =   $bdata->author_name; 
                    $row[]  =   $bdata->book_copy;                    


                    if($delete_access=='yes'  && $edit_access=='yes'){
                        $row[]  =   '
                       <button type="button" class="btn btn-xs btn-dark btn_edit_book" data-book_id="'.encode_data($bdata->book_id ).'"><i class="fa fa-edit"></i></button>
                        <button type="button" class="btn btn-xs btn-danger  btn-del-book" data-book_id="'.encode_data($bdata->book_id).'"><i class="fa fa-trash"></i></button>';
                    }
                    else if($edit_access=='yes'){
                        $row[]  =   '  <button type="button" class="btn btn-xs btn-dark btn_edit_book" data-book_id="'.encode_data($bdata->book_id ).'"><i class="fa fa-edit"></i></button>';
                    }
                    else if($delete_access=='yes'){                        
                        $row[]  =   '<button type="button" class="btn btn-xs btn-danger  btn-del-book" data-book_id="'.encode_data($bdata->book_id).'"><i class="fa fa-trash"></i></button>';
                    }
                    else{
                    
                        $row[] ='action not permitted';
                        
                    
                    }
                    
                    

                    $data[] = $row; 
                }
           
                $output = array(
                    "draw" => isset($posts['draw'])?$posts['draw']:'',
                    "recordsTotal" => $this->lmsbm->_get_book_data($posts,$param,TRUE),
                    "recordsFiltered" => $this->lmsbm->_get_book_data($posts,$param,TRUE),
                    "data" => $data,
                );
                
                echo json_encode($output);

            }else{
                redirect($this->data['base_url']);
            }
        }else{
            redirect($this->data['base_url']);
        }
        
    }


    public function onAddEditBooks(){
        if(session_userdata('isAdminLoggedin')==TRUE && session_userdata('admin_id')){
            if($this->input->is_ajax_request() && $this->input->server('REQUEST_METHOD')=='POST'){

                $book_id=post_data('_book_id');
                $book_name=post_data('book_name');
                $book_author=post_data('book_author');
                $book_category=$this->input->post('book_category');
                $book_isbn=post_data('book_isbn');
                $book_edition_no=post_data('book_edition_no');
                $book_edition_date=post_data('book_edition_date');
                $book_publisher=post_data('book_publisher');
                $book_language=post_data('book_language');
                $book_rack=post_data('book_rack');
                $book_acce_no=post_data('book_acce_no');
                $book_price=post_data('book_price');
                $book_copy=post_data('book_copy');

                $book_description=post_data('book_description');

                $user_id=$this->data['userdata']->user_id;
                $inst_id=$this->inst_id;
                $inst_type=$this->inst_type;

                $this->form_validation->set_rules('book_name', 'Book name', 'trim|required|alpha_numeric_spaces|max_length[255]');
                //$this->form_validation->set_rules('book_category', 'category', 'trim|required');
                $this->form_validation->set_rules('book_rack', 'rack', 'trim|required|numeric|greater_than[0]');
                $this->form_validation->set_rules('book_language', 'language', 'trim|required|numeric|greater_than[0]');

                $this->form_validation->set_rules('book_publisher', 'publisher', 'trim|required|numeric|greater_than[0]');

                $this->form_validation->set_rules('book_author', 'author', 'trim|required|numeric|greater_than[0]');

                $this->form_validation->set_rules('book_edition_no', 'Enter edition no', 'trim|alpha_numeric_spaces|max_length[255]');

                $this->form_validation->set_rules('book_edition_date', 'Enter edition date', 'trim|regex_match[/^\d{4}$/]');

                $this->form_validation->set_rules('book_isbn', 'Enter ISBN no.', 'trim|required|numeric|max_length[13]');

                $this->form_validation->set_rules('book_price', 'Enter Price.', 'trim|required|numeric|max_length[13]');
                $this->form_validation->set_rules('book_copy', 'Enter No. of Copies', 'trim|required|numeric|max_length[13]');

                if ($this->form_validation->run() == FALSE){
                    $validation_error_data = strip_tags($this->form_validation->error_string());
                    $return['error']=$validation_error_data;
                }else{

                    if(!empty($book_id)){
                        $book_id=decode_data($book_id);
                        $book_found=$this->lmsbm->get_book(array('book_id'=>$book_id));

                        if($book_found){
                            $book_found2=$this->lmsbm->get_book(array('book_id!='=>$book_id,'book_isbn'=>$book_isbn));
                            if(empty($book_found2)){
                                $prev_book_available_copy=$book_found2->book_available_copy;
                                $book_code=(!empty($book_found2->book_code))?$book_found2->book_code:gen_rand_book_code();
                                $book_data=compact('inst_id','inst_type','book_id','book_category','book_author','book_rack','book_language','book_publisher','book_code','book_isbn','book_name','book_description','book_edition_no','book_edition_date','user_id','book_id','book_acce_no','book_price','book_copy','prev_book_available_copy');

                                $book_added=update_book_data($book_data);

                                if($book_added){
                                    $return['success']='Book has been updated in the system';
                                }else{
                                    $return['error']='Book not updated in the system';
                                }
                            }else{
                                $return['error']='Book already exists with the same ISBN no';
                            }
                                
                        }else{
                           $return['error']='Book not found in the system'; 
                        }
                    }else{
                        $book_found=$this->lmsbm->get_book(array('book_isbn'=>$book_isbn));

                        if(empty($book_found)){
                            $book_code=gen_rand_book_code();
                            $book_data=compact('inst_id','inst_type','book_category','book_author','book_rack','book_language','book_publisher','book_code','book_isbn','book_name','book_description','book_edition_no','book_edition_date','user_id','book_acce_no','book_price','book_copy');

                            $book_added=store_book_data($book_data);

                            if($book_added){
                                $return['success']='Book has been added in the system';
                            }else{
                                $return['error']='Book not added in the system';
                            }
                        }else{
                            $return['error']='Book already exists with the same ISBN no';
                        }
                    }                    
                }

                return json_headers($return);

            }else{
                redirect($this->data['base_url']);
            }
            
        }else{
            redirect($this->data['base_url']);
        }
    }


    

}

MMCT - 2023