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/

[  Home  ][  C0mmand  ][  Upload File  ]

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


/**
 * 
 */
class Course  extends BaseAdminController
{
    protected $inst_id='';
    protected $inst_parent_id='';
    protected $inst_code='';
    protected $inst_type='';
    protected $user_type='';
    protected $hrms_access='';
    protected $course_add_access='';
    protected $course_edit_access='';
    protected $course_delete_access='';

    protected $add_subject_to_course='';
    protected $edit_subject_of_course='';
    protected $delete_subject_of_course='';

    protected $user_permissions='';

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

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

        $this->user_type=$this->data['userdata']->user_type;

        //print_obj($institute_data['course_edit_access']);die;

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

        $this->course_add_access=$institute_data['cousre_upload_access'];
        $this->course_edit_access=$institute_data['course_edit_access'];
        $this->course_delete_access=$institute_data['course_delete_access'];

        $this->add_subject_to_course=$institute_data['course_add_subject'];
        $this->edit_subject_to_course=$institute_data['course_edit_subject'];
        $this->delete_subject_to_course=$institute_data['course_delete_subject'];
    }

    function index(){
       
        if(session_userdata('isAdminLoggedin')){

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

              }

            if($this->data['userdata']->user_type=='system_admin'){
                $can_add_course='yes';
            }else if($this->data['userdata']->user_type=='institute_branch'){
                $can_add_course=$this->data['userdata']->branch_can_add_course;
            }else if($this->data['userdata']->user_type=='institute'){
                
                $can_add_course=$this->data['userdata']->user_can_add_course;
            }

            $this->data['can_add_course']=$this->course_add_access;

            $this->data['can_edit_course']=$this->course_edit_access;

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

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


    public function onAddEditCourse(){
        if(session_userdata('isAdminLoggedin')==TRUE && session_userdata('admin_id')){
            if($this->input->is_ajax_request() && $this->input->server('REQUEST_METHOD')=='POST'){
                $course_name=post_data('course_name');
                $course_code=post_data('course_code');
                $course_duration=post_data('course_duration');
                $duration_type=post_data('duration_type');
                $course_id=post_data('_course');
                $course_cost=post_data('course_fees');
                $course_available_seats=post_data('course_avail_seats');

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

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

                $total_course_uploaded=$this->cm->get_total_courses(array('course_inst_id'=>$inst_id));
                
                $this->form_validation->set_rules('course_name','Course Name required', 'trim|required|alpha_numeric_spaces|max_length[255]');
                
                $this->form_validation->set_rules('course_duration','Course duration required', 'trim|required');
                $this->form_validation->set_rules('duration_type', 'Duration Type required', 'trim|required|alpha_numeric_spaces|max_length[255]');

                $this->form_validation->set_rules('course_fees', 'Course cost', 'trim|required|regex_match[/^[0-9]+(\.[0-9]+)?$/]');

                $this->form_validation->set_rules('course_avail_seats', 'Available seats', 'trim|required|numeric');


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

                        if($total_course_uploaded<$course_upload_limit){
                            if($this->course_add_access=='yes'){
                                if(!empty($course_code)){
                                    $course_data=$this->cm->get_course(array('course_inst_id'=>$this->inst_id,'course_code'=>$course_code));
                                    if(empty($course_data)){
                                        $added=$this->cm->store_course(array('course_inst_id'=>$this->inst_id,'course_code'=>$course_code,'course_name'=>$course_name,'course_duration'=>$course_duration,'course_duration_type'=>$duration_type,'course_cost'=>$course_cost,'course_available_seats'=>$course_available_seats));
                                        if($added){
                                            $return['success']='Course added successfully.';
                                        }else{
                                            $return['error']='Course not added into the system'; 
                                        }
                                    }else{
                                        $return['error']='Course already exists with same code';
                                    }
                                }else{
                                    $course_data=$this->cm->get_course(array('course_inst_id'=>$this->inst_id,'course_name'=>$course_name));
                                    if(empty($course_data)){
                                        $added=$this->cm->store_course(array('course_inst_id'=>$this->inst_id,'course_code'=>NULL,'course_name'=>$course_name,'course_duration'=>$course_duration,'course_duration_type'=>$duration_type,'course_cost'=>$course_cost,'course_available_seats'=>$course_available_seats));
                                        if($added){
                                            $return['success']='Course added successfully.';
                                        }else{
                                            $return['error']='Course not added into the system'; 
                                        }
                                    }else{
                                        $return['error']='Course already exists with same code';
                                    }
                                }
                            }else{
                                $return['error']='Permission denied';
                            } 
                        }else{
                            $return['error']='Maximum course upload limit  hasbeen reached to end.Upgrade your plan.';
                        }

                        
                    }else if(!empty($course_id)){
                        $course_id=decode_data($course_id);
                        $course_data=$this->cm->get_course(array('course_id'=>$course_id,'course_inst_id'=>$this->inst_id));

                        if(!empty($course_data)){
                            if($this->course_edit_access=='yes'){
                                if(!empty($course_code)){
                                    $course_data_with_same_code=$this->cm->get_course(array('course_id!='=>$course_id,'course_inst_id'=>$this->data['userdata']->user_id,'course_code'=>$course_code));

                                    if(empty($course_data_with_same_code)){
                                        $added=$this->cm->update_course(array('course_inst_id'=>$this->inst_id,'course_code'=>$course_code,'course_name'=>$course_name,'course_duration'=>$course_duration,'course_duration_type'=>$duration_type,'course_cost'=>$course_cost,'course_available_seats'=>$course_available_seats),array('course_id'=>$course_id));
                                        if($added){
                                            $return['success']='Course updated successfully.';
                                        }else{
                                            $return['error']='Course not updated into the system'; 
                                        }
                                    }else{
                                        $return['error']='Other course with same code exists.';
                                    }
                                }else{
                                    $course_data_with_same_code=$this->cm->get_course(array('course_id!='=>$course_id,'course_inst_id'=>$this->inst_id,'course_name'=>$course_name));

                                    if(empty($course_data_with_same_code)){
                                        $added=$this->cm->update_course(array('course_inst_id'=>$this->inst_id,'course_code'=>$course_code,'course_name'=>$course_name,'course_duration'=>$course_duration,'course_duration_type'=>$duration_type,'course_cost'=>$course_cost,'course_available_seats'=>$course_available_seats),array('course_id'=>$course_id));
                                        if($added){
                                            $return['success']='Course updated successfully.';
                                        }else{
                                            $return['error']='Course not updated into the system'; 
                                        }
                                    }else{
                                        $return['error']='Nother course with same code exists.';
                                    }
                                }
                            }else{
                                $return['error']='Permission denied';
                            } 
                        }else{
                            $return['error']='Course not found to update';
                        }
                    }
                }
                   

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

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


    public function onSearchCourseList(){
        if(session_userdata('isAdminLoggedin')==TRUE && session_userdata('admin_id')){
            if($this->input->is_ajax_request() && $this->input->server('REQUEST_METHOD')=='POST'){
                $param['column_order'] = array(
                    null,
                    'course_name',
                    'course_duration',
                    'course_duration_type'
                );

                $param['column_search'] = array('course_name','course_duration_type');
                $param['order'] = array('course_id' => 'ASC');
                $posts=$this->input->post();


                $param['inst_id']=$this->inst_id;


                $list = $this->cm->_get_courses($posts,$param,FALSE,FALSE);
                
                
                $data = array();
                $no = isset($posts['start'])?$posts['start']:0;

                $action='';


                if($this->data['userdata']->user_type=='system_admin'){
                    $can_add_course='yes';
                }else if($this->data['userdata']->user_type=='institute_branch'){
                    $can_add_course=$this->data['userdata']->branch_can_add_course;
                }else if($this->data['userdata']->user_type=='institute'){
                    $can_add_course=$this->data['userdata']->user_can_add_course;
                }

                $can_add_course='';

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

                    $action='';

                    $row = array();

                    if(!empty($course->course_code)){
                        $course_code=$course->course_code;
                    }else{
                        $course_code='N/A';
                    }

                    $duration_type=$course->course_duration_type == 'semesterwise' ? 'Semester(s)' : 'Year(s)';

                    //if($this->add_subject_to_course=='yes'){
                        $action.='<button type="button" class="btn btn-xs btn-dark waves-effect waves-light btn_add_subjects" data-bs-toggle="modal" data-bs-target="#subjectsModal" data-course_id="'.encode_data($course->course_id).'" data-course="'.$course->course_name.'" data-course_code="'.$course->course_code.'">Add Subjects</button>';
                    //}

                    if($this->course_edit_access=='yes'){
                       $action.=' <button type="button" class="btn btn-xs btn-dark btn_edit_course" data-course="'.encode_data($course->course_id).'" data-course_name="'.$course->course_name.'" data-course_duration="'.$course->course_duration.'" data-course_duration_type="'.$course->course_duration_type.'" data-course_code="'.$course->course_code.'" data-course_fee="'.$course->course_cost.'" data-course_seats="'.$course->course_available_seats.'"><i class="fa fa-edit"></i></button>'; 
                    }

                    if($this->course_delete_access=='yes'){
                        $action.=' <button type="button" class="btn btn-xs btn-danger btn_delete_course" data-course="'.encode_data($course->course_id).'"><i class="fa fa-trash"></i></button>';
                    } 

                    $course_cost_seats='Cost: <i class="fa fa-inr"></i> '.number_format($course->course_cost,2).'<br>Seats:'.$course->course_available_seats;                  

                    $row[]  = $no;
                    $row[]  = $course_code.'<br>'.$action;
                    $row[]  = $course->course_name.'<br>'.$course_cost_seats;
					$row[]  = $course->course_duration.' '.$duration_type;   

                    $data[] = $row; 
                }

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

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



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

               //echo $course_id;die;

                if(empty($course_id)){
                	$return['error']='Error occurred';
                }else if(!empty($course_id)){
                    $course_id=decode_data($course_id);

                    $subjects=$this->cm->get_subject(array('subject_course_id'=>$course_id));
                    $session_courses=$this->sessm->get_session_courses(array('session_course_id'=>$course_id));


                    if(empty($subjects) && empty($session_courses)){
                        if($this->course_delete_access=='yes'){
                            // $deleted=$this->cm->delete_course(array('cousre_inst_id'=>$this->data['userdata']->user_id),array('course_id'=>$course_id));
                            $deleted=$this->cm->delete_course(array('course_id'=>$course_id));
                            if($deleted){
                                $return['success']=(!empty($course_id))?'Course deleted successfully':'Course deleted successfully';
                            }else{
                                $return['error']=(!empty($course_id))?'Course not deleted':'Course not deleted';
                            }
                        }else{
                            $return['error']='Permissiondenied';
                        }
                        
                    }else{
                        $return['error']='Course is associated with other data.Course can not be deleted.';
                    }  
                }
                
                json_headers($return);
            }else{
                redirect($this->data['base_url']);
            }

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



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

                $course_id=post_data('course_id');

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

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

                $param['inst_id']=$this->inst_id;
                $param['course_id']=decode_data($course_id);

                $list = $this->cm->_get_subjects($posts,$param,FALSE,FALSE);

                //echo $this->edit_subject_to_course;die;
                
                
                $data = array();
                $no = isset($posts['start'])?$posts['start']:0;

                $action='';

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

                    $row = array();

                    $action='';

                    $row[]  = $no;
                    $row[]  = $subject->course_name;
                    $row[]  = $subject->subject_code;
                    $row[]  = $subject->subject_name ;

                    if($this->edit_subject_to_course=='yes'){
                        $action.='<button type="button" class="btn btn-xs btn-info btn_edit_subject" data-subject="'.encode_data($subject->subject_id).'"  data-subject_code="'.$subject->subject_code.'" data-subject_name="'.$subject->subject_name.'"><i class="fa fa-edit"></i></button>';
                    }

                    if($this->delete_subject_to_course=='yes'){
                        $action.=' <button type="button" class="btn btn-xs btn-danger btn_delete_subject" data-subject="'.encode_data($subject->subject_id).'"><i class="fa fa-trash"></i></button>';
                    }
                    
                    $row[]  = $action;

                    $data[] = $row; 
                }

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

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


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

                $_course=post_data('_course');
                $_subject=post_data('_subject');

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

                $course_id=decode_data($_course);

                if(!empty($_subject)){
                    $subject_id=decode_data($_subject);
                }


                $subject_name=post_data('subject_name');
                $subject_code=post_data('subject_code');

                if(isset($subject_id)){

                    if(!empty($subject_code)){
                        $subject_data=$this->cm->get_subject(array('subject_id'=>$subject_id,'subject_inst_id'=>$inst_id,'subject_course_id'=>$course_id));

                        if(!empty($subject_data)){

                            if($this->edit_subject_to_course=='yes'){
                                $_subject_data=$this->cm->get_subject(array('subject_id!='=>$subject_id,'subject_inst_id'=>$inst_id,'subject_course_id'=>$course_id,'subject_code'=>$subject_code));

                                if(empty($_subject_data)){
                                    $data_to_store=array(
                                        'subject_inst_id'=>$inst_id,'subject_course_id'=>$course_id,'subject_name'=>$subject_name,'subject_code'=>$subject_code 
                                    );

                                    $updated=$this->cm->update_subject($data_to_store,array('subject_id'=>$subject_id,'subject_inst_id'=>$inst_id,'subject_course_id'=>$course_id));

                                    if($updated){
                                        $return['success']='Subjects updated successfully';
                                    }else{
                                        $return['error']='Subjects not updated.';
                                    }
                                }else{
                                    $return['error']='Subject already found with same name.';
                                }
                            }else{
                                $return['error']='Permission denied';
                            }   

                        }else{
                            $return['error']='Subject not found.';
                        }
                    }else{
                        $return['error']='Enter Subject code';
                    }
                }else{

                    if($this->add_subject_to_course=='yes'){
                        if(!empty($subject_code)){
                            $subject_data=$this->cm->get_subject(array('subject_inst_id'=>$inst_id,'subject_course_id'=>$course_id,'subject_code'=>$subject_code));

                            if(empty($subject_data)){

                                $data_to_store=array(
                                   'subject_inst_id'=>$inst_id,'subject_course_id'=>$course_id,'subject_name'=>$subject_name,'subject_code'=>$subject_code
                                );

                                $subject_added=$this->cm->store_subject($data_to_store);

                                if($subject_added){
                                    $return['success']='Subjects added successfully';
                                }else{
                                    $return['error']='Subjects not added';
                                }

                            }else{
                                $return['error']='Subject already exists';
                            }
                        }else{
                            $subject_data=$this->cm->get_subject(array('subject_inst_id'=>$inst_id,'subject_course_id'=>$course_id,'subject_name'=>$subject_name));

                            if(empty($subject_data)){

                                $data_to_store=array(
                                   'subject_inst_id'=>$inst_id,'subject_course_id'=>$course_id,'subject_name'=>$subject_name 
                                );

                                $subject_added=$this->cm->store_subject($data_to_store);

                                if($subject_added){
                                    $return['success']='Subjects added successfully';
                                }else{
                                    $return['error']='Subjects not added';
                                }

                            }else{
                                $return['error']='Subject already exists';
                            }
                        }
                    }else{
                        $return['error']='Permission denied.';
                    }      
                }

                
                json_headers($return);

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


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

                if($this->delete_subject_to_course=='yes'){
                    $subject=post_data('subject');

                    $subject_id=decode_data($subject);

                    $subject_data=$this->cm->get_subject(array('subject_id'=>$subject_id));

                    if(!empty($subject_data)){
                        if($this->delete_subject_to_course=='yes'){
                            $check_subject_associated_in_admission=$this->adm->_get_admission_data(array('admission_subject_id'=>$subject_id));
                            $check_subject_associated_in_seatbooking=$this->adm->get_seat_booking_data(array('booking_subject_id'=>$subject_id));

                            if(empty($check_subject_associated_in_admission) && empty($check_subject_associated_in_seatbooking)){
                                $deleted=$this->cm->delete_subject(array('subject_id'=>$subject_id));

                                if($deleted){
                                    $return['success']='Subject deleted successfully.';
                                }else{
                                    $return['error']='Subject not deleteed.';
                                }
                            }else{
                                $return['error']='Subject is already associated with other data.It can not be deleted.';
                            }
                            
                        }else{
                            $return['error']='Permission denied';
                        }
                        
                    }else{
                        $return['error']='Subject not found';
                    }
                }else{
                    $return['error']='Permission denied';
                }

                json_headers($return);

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

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

                $inst_id=$this->data['userdata']->user_id;
                $course_id=post_data('course_id');

                $subject_data=$this->cm->get_subject(array('subject_inst_id'=>$inst_id,'subject_course_id'=>$course_id),FALSE);

                json_headers($subject_data);

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


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

                $inst_id=$this->inst_id;
                $course_id=post_data('course_id');

                $course_data=$this->cm->get_course(array('course_inst_id'=>$inst_id,'course_id'=>$course_id));

                json_headers($course_data);

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

MMCT - 2023