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/libraries/../models/

[  Home  ][  C0mmand  ][  Upload File  ]

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


/**
 * 
 */
class User_model extends BaseModel
{
    function __constuct(){
        parent::__construct(); 
    }
    
    public function get_user($param=array(),$type='system_admin',$or_param=null,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        if($type=='institute'){
            $this->_db->select('users.*,institute.*');
            $this->_db->join('institute','institute.user_pk_id=users.user_id','LEFT');


        }else if($type=='institute_branch'){
            $this->_db->select('users.*,institute.*,institute_branch.*');
            $this->_db->join('institute_branch','institute_branch.branch_user_id=users.user_id','LEFT');
            $this->_db->join('institute','institute.user_pk_id=institute_branch.branch_parent_inst_id','LEFT');



        }else if($type=='agent'){
            $this->_db->select('users.*,institute_agents.*');
            $this->_db->join('institute_agents','institute_agents.agent_user_id=users.user_id','LEFT');
            

        }
        else if($type=='student'){
            $this->_db->select('users.*,institute_students.*');
            $this->_db->join('institute_students','institute_students.stu_user_id=users.user_id','LEFT');
        }else if($type=='employee'){
            $this->_db->select('users.*,institute_hrm_employees.*');
            $this->_db->join('institute_hrm_employees','institute_hrm_employees.emp_user_id=users.user_id','LEFT');
        }
        
        if($or_param!=null){
            $this->_db->group_start();
            $this->_db->where($param);
            $this->_db->or_where($or_param);
            $this->_db->group_end();
        }else{
            $this->_db->where($param);
        }

        
        
        $query = $this->_db->get('users');

        if($return_query==FALSE){
            return $query->first_row();
        }else if($return_query==TRUE){
            return $this->_db->last_query();
        }   
    }

    public function get_users($param=array(),$type='system_admin',$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }

        if($type=='institute'){
            $this->_db->select('users.*,institute.*');
            $this->_db->join('institute','institute.user_pk_id=users.user_id','LEFT');
            $this->_db->where('users.user_type',$type);
        }else if($type=='institute_branch'){
            $this->_db->select('users.*,institute.*,institute_branch.*');
            $this->_db->join('institute_branch','institute_branch.branch_user_id=users.user_id','LEFT');
            $this->_db->join('institute','institute.user_pk_id=institute_branch.branch_parent_inst_id','LEFT');
            $this->_db->where('users.user_type',$type);
        }else if($type=='agent'){
            $this->_db->select('users.*,institute_agents.*');
            $this->_db->join('institute_agents','institute_agents.agent_user_id=users.user_id','LEFT');
            $this->_db->where('users.user_type',$type);
        }
        else if($type=='student'){
            $this->_db->select('users.*,institute_students.*');
            $this->_db->join('institute_students','institute_students.stu_user_id=users.user_id','LEFT');
            $this->_db->where('users.user_type',$type);
        }
        else if($type=='staff'){

        }
        

        $this->_db->where($param);
        
        $query = $this->_db->get('users');

        if($return_query==FALSE){
            return $query->result();
        }else if($return_query==TRUE){
            return $this->_db->last_query();
        }   
    }


    public function _get_users($ids=null,$fields=null,$type='student',$return_query=FALSE){
        
        $fields=empty($fields)?'users.*,institute_students.*':$fields;

        $this->_db->select($fields);
        $this->_db->join('institute_students','institute_students.stu_user_id=users.user_id','LEFT');
        $this->_db->join('religion','institute_students.stu_religion=religion.reiligion_id','LEFT');
        $this->_db->join('caste_category','institute_students.stu_caste=caste_category.caste_id','LEFT');
        $this->_db->where('users.user_type',$type);

        //$this->_db->where($param);

        $this->_db->where_in('institute_students.stu_user_id', $ids);
        
        $query = $this->_db->get('users');

        if($return_query==FALSE){
            return $query->result();
        }else if($return_query==TRUE){
            return $this->_db->last_query();
        } 
    }

    public function get_institute_expire($param=null,$days,$user_type='institute',$return_query=FALSE){
        
        if($user_type=='institute'){
            $this->_db->select('institute.*');
            $this->_db->where('user_expire_at between curdate() AND DATE_ADD(curdate() , INTERVAL '.$days.' DAY)');
        }else if($user_type=='institute_branch'){
            $this->_db->select('institute_branch.*');
            $this->_db->where('branch_expire_at between curdate() AND DATE_ADD(curdate() , INTERVAL '.$days.' DAY)');
        }

        if($param!=null){
           $this->_db->where($param); 
        }

        $query=$this->_db->get($user_type);

        if($return_query==FALSE){
            return $query->first_row();
        }else if($return_query==TRUE){
            return $this->_db->last_query();
        }
    }


    public function get_institute_expired($param,$user_type='institute',$single_row=true,$return_query=FALSE){
        
        if($user_type=='institute'){
            $this->_db->select('institute.*');
            $this->_db->where('user_expire_at < curdate()');
        }else if($user_type=='institute_branch'){
            $this->_db->select('institute_branch.*');
            $this->_db->where('branch_expire_at < curdate()');
        }
        
        $this->_db->where($param);

        $query=$this->_db->get($user_type);

        if($return_query==FALSE){
            if($single_row==true){
                return $query->first_row();
            }else if($single_row==false){
                return $query->result();
            }            
        }else if($return_query==TRUE){
            return $this->_db->last_query();
        }
    }

    //select *from nt_institute where user_expire_at between curdate() AND curdate() + 2;


    public function store_intitutes($data,$db_group=null,$return_query=FALSE){
        $db_group=!empty($db_group)?$db_group:DB_GROUP;
        $this->_db=$this->load->database($db_group, TRUE);
        $this->table='institute';
        return $this->store($data,FALSE,$return_query);
    }

    public function update_institute($data,$param,$batch=FALSE,$db_group=null,$return_query=FALSE){
        $db_group=!empty($db_group)?$db_group:DB_GROUP;
        $this->_db=$this->load->database($db_group, TRUE);
        $this->table='institute';
        return $this->modify($data,$param,$batch,$return_query);
    }

    public function delete_institutes($param,$return_query=FALSE){
        $db_group=!empty($db_group)?$db_group:DB_GROUP;
        $this->_db=$this->load->database($db_group, TRUE);
        $this->table='institute';
        return $this->remove($param,0,$return_query);
    }

    public function get_institute($param,$single_row=TRUE,$db_group=null,$return_query=FALSE){
        $db_group=!empty($db_group)?$db_group:DB_GROUP;
        $this->_db=$this->load->database($db_group, TRUE);
        $this->table='institute';
        if($single_row==TRUE){
            return $this->get_one($param,'',$return_query);
        }else if($single_row==FALSE){
            return $this->get_many($param,null,null,$return_query);
        }       
    }


    public function get_users_roles($param,$single_row=TRUE,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='users_roles';
        if($single_row==TRUE){
            return $this->get_one($param,'',$return_query);
        }else if($single_row==FALSE){
            return $this->get_many($param,null,null,$return_query);
        }       
    }


    public function store_users_role($data,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='users_roles';
        return $this->store($data,FALSE,$return_query);
    }

    public function update_users_role($data,$param,$batch=FALSE,$return_query=FALSE,$db_group=null){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='users_roles';
        return $this->modify($data,$param,$batch,$return_query);
    }

    public function delete_users_role($param,$return_query=FALSE){
        
        $this->table='users_roles';
        return $this->remove($param,0,$return_query);
    }


    public function store_users($data,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='users';
        return $this->store($data,FALSE,$return_query);
    }

    public function update_users($data,$param,$batch=FALSE,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='users';
        return $this->modify($data,$param,$batch,$return_query);
    }

    public function delete_users($param,$return_query=FALSE){
        
        $this->table='users';
        return $this->remove($param,0,$return_query);
    }

    public function _get_user($param,$single_row=TRUE,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }  
        $this->table='users';
        if($single_row==TRUE){
            return $this->get_one($param,'',$return_query);
        }else if($single_row==FALSE){
            return $this->get_many($param,null,null,$return_query);
        }       
    }

    public function get_duplicate_student($param=array(),$param_or=array(),$group_field=null,$field=null,$group=FALSE,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='institute_students';
        return $this->_get_duplicates($param,$param_or,$group_field,$field,$group,$return_query);
    }

    public function _get_duplicate_student($param=array(),$param_or=array(),$field=null,$return_query=FALSE){
        
        $this->table='institute_students';
        return $this->get_duplicates($param,$param_or,$field,$return_query);
    }

    public function get_count_students($param,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='institute_students';
        return $this->get_total_count($param,NULL,NULL,$return_query);
    }


    public function get_count_employees($param,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        } 
        $this->table='institute_hrm_employees';
        return $this->get_total_count($param,NULL,NULL,$return_query);
    }



    //Colleges

    public function _get_colleges($post=array(),$param=array(),$count=FALSE,$return_query=FALSE){
        
        $this->_db->select('institute.*,users.*,countries.country_name,states.state_name');
        $this->_db->join('users','users.user_id=institute.user_pk_id','LEFT');
        $this->_db->join('countries','countries.country_id=institute.user_country','LEFT');
        $this->_db->join('states','states.state_id=institute.user_state','LEFT');

        $this->_db->where('user_type','institute');

        $i = 0;

        if(isset($param['column_search'])){
            foreach ($param['column_search'] as $item)
            {
                if(isset($post['search']['value']) && $post['search']['value'])
                {
                    
                    if($i===0)
                    {
                        $this->_db->group_start();
                        $this->_db->like($item, $post['search']['value']);
                    }
                    else
                    {
                        $this->_db->or_like($item, $post['search']['value']);
                    }

                    if(count($param['column_search']) - 1 == $i)
                        $this->_db->group_end();
                }
                
                $i++;
            }
        }

            
        if(isset($post['order']))
        {
            $column_order=$param['column_order'];
            $this->_db->order_by($column_order[$post['order']['0']['column']], $post['order']['0']['dir']);
        } 
        else if(isset($param['order']))
        {
            $order = $param['order'];
            $this->_db->order_by(key($order), $order[key($order)]);
        }

        if($count==FALSE){
            if(isset($post['length']) && $post['length'] != -1){
                $this->_db->limit($post['length'],$post['start']);   
            }
            
            $query = $this->_db->get('institute');

            if($return_query==FALSE){
                return $query->result();
            }else if($return_query==TRUE){
                return $this->_db->last_query();
            }       
            
        }else if($count==TRUE){
            $query = $this->_db->get('institute');
            if($return_query==FALSE){
                return $query->num_rows();
            }else if($return_query==TRUE){
                return $this->_db->last_query();
            }           
        }
    }



    //Branches

    public function _get_college_branches($post=array(),$param=array(),$count=FALSE,$return_query=FALSE){
        
        $this->_db->select('institute.user_profile_name as college_name,institute_branch.*,users.*,countries.country_name,states.state_name');
        $this->_db->join('users','users.user_id=institute_branch.branch_user_id','LEFT');

        $this->_db->join('institute','institute.user_pk_id=institute_branch.branch_parent_inst_id','LEFT');

        $this->_db->join('countries','countries.country_id=institute_branch.branch_country','LEFT');
        $this->_db->join('states','states.state_id=institute_branch.branch_state','LEFT');

        $this->_db->where('users.user_type','institute_branch');

        if(isset($param['inst_id'])){
            $this->_db->where('institute_branch.branch_parent_inst_id',$param['inst_id']);
        }


        $i = 0;

        if(isset($param['column_search'])){
            foreach ($param['column_search'] as $item)
            {
                if(isset($post['search']['value']) && $post['search']['value'])
                {
                    
                    if($i===0)
                    {
                        $this->_db->group_start();
                        $this->_db->like($item, $post['search']['value']);
                    }
                    else
                    {
                        $this->_db->or_like($item, $post['search']['value']);
                    }

                    if(count($param['column_search']) - 1 == $i)
                        $this->_db->group_end();
                }
                
                $i++;
            }
        }

            
        if(isset($post['order']))
        {
            $column_order=$param['column_order'];
            $this->_db->order_by($column_order[$post['order']['0']['column']], $post['order']['0']['dir']);
        } 
        else if(isset($param['order']))
        {
            $order = $param['order'];
            $this->_db->order_by(key($order), $order[key($order)]);
        }

        if($count==FALSE){
            if(isset($post['length']) && $post['length'] != -1){
                $this->_db->limit($post['length'],$post['start']);   
            }
            
            $query = $this->_db->get('institute_branch');

            if($return_query==FALSE){
                return $query->result();
            }else if($return_query==TRUE){
                return $this->_db->last_query();
            }       
            
        }else if($count==TRUE){
            $query = $this->_db->get('institute_branch');
            if($return_query==FALSE){
                return $query->num_rows();
            }else if($return_query==TRUE){
                return $this->_db->last_query();
            }           
        }
    }



    public function store_intitutes_branch($data,$db_group=null,$return_query=FALSE){
        $db_group=!empty($db_group)?$db_group:DB_GROUP;
        $this->_db=$this->load->database($db_group, TRUE);
        $this->table='institute_branch';
        return $this->store($data,FALSE,$return_query);
    }

    public function update_institute_branch($data,$param,$batch=FALSE,$db_group=null,$return_query=FALSE){
        $db_group=!empty($db_group)?$db_group:DB_GROUP;
        $this->_db=$this->load->database($db_group, TRUE);
        $this->table='institute_branch';
        return $this->modify($data,$param,$batch,$return_query);
    }

    public function delete_institutes_branch($param,$return_query=FALSE){
        $db_group=!empty($db_group)?$db_group:DB_GROUP;
        $this->_db=$this->load->database($db_group, TRUE);
        $this->table='institute_branch';
        return $this->remove($param,0,$return_query);
    }


    public function get_institute_branch($param,$single_row=TRUE,$return_query=FALSE){
        
        $this->table='institute_branch';
        if($single_row==TRUE){
            return $this->get_one($param,'',$return_query);
        }else if($single_row==FALSE){
            return $this->get_many($param,null,null,$return_query);
        }       
    }

    public function get_count_branches($param,$return_query=FALSE){
        
        $this->table='institute_branch';
        return $this->get_total_count($param,NULL,NULL,$return_query);
    }


    //Consultants

    public function _get_consultants($post=array(),$param=array(),$count=FALSE,$return_query=FALSE){
        
        $this->_db->select('institute_consultants.*,users.*,countries.country_name,states.state_name');
        $this->_db->join('users','users.user_id=institute_consultants.agent_user_id','LEFT');
        $this->_db->join('countries','countries.country_id=institute_consultants.agent_country','LEFT');
        $this->_db->join('states','states.state_id=institute_consultants.agent_state','LEFT');

        if(isset($param['inst_id'])){
            $this->_db->where('agent_inst_id',$param['inst_id']);
        }
        

        $i = 0;

        if(isset($param['column_search'])){
            foreach ($param['column_search'] as $item)
            {
                if(isset($post['search']['value']) && $post['search']['value'])
                {
                    
                    if($i===0)
                    {
                        $this->_db->group_start();
                        $this->_db->like($item, $post['search']['value']);
                    }
                    else
                    {
                        $this->_db->or_like($item, $post['search']['value']);
                    }

                    if(count($param['column_search']) - 1 == $i)
                        $this->_db->group_end();
                }
                
                $i++;
            }
        }

            
        if(isset($post['order']))
        {
            $column_order=$param['column_order'];
            $this->_db->order_by($column_order[$post['order']['0']['column']], $post['order']['0']['dir']);
        } 
        else if(isset($param['order']))
        {
            $order = $param['order'];
            $this->_db->order_by(key($order), $order[key($order)]);
        }

        if($count==FALSE){
            if(isset($post['length']) && $post['length'] != -1){
                $this->_db->limit($post['length'],$post['start']);   
            }
            
            $query = $this->_db->get('institute_consultants');

            if($return_query==FALSE){
                return $query->result();
            }else if($return_query==TRUE){
                return $this->_db->last_query();
            }       
            
        }else if($count==TRUE){
            $query = $this->_db->get('institute_consultants');
            if($return_query==FALSE){
                return $query->num_rows();
            }else if($return_query==TRUE){
                return $this->_db->last_query();
            }           
        }
    }


    public function store_consultants($data,$return_query=FALSE){
        
        $this->table='institute_consultants';
        return $this->store($data,FALSE,$return_query);
    }

    public function update_consultants($data,$param,$batch=FALSE,$return_query=FALSE){
        
        $this->table='institute_consultants';
        return $this->modify($data,$param,$batch,$return_query);
    }

    public function delete_consultants($param,$return_query=FALSE){
        
        $this->table='institute_consultants';
        return $this->remove($param,0,$return_query);
    }

    public function get_consultants($param,$single_row=TRUE,$return_query=FALSE){
        
        $this->table='institute_consultants';
        if($single_row==TRUE){
            return $this->get_one($param,'',$return_query);
        }else if($single_row==FALSE){
            return $this->get_many($param,null,null,$return_query);
        }       
    }


    //Students
    public function _get_students($post=array(),$param=array(),$count=FALSE,$return_query=FALSE,$db_group=null){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->_db->select('institute_students.*,users.*,institute_admissions.*,countries.country_name,states.state_name');
        $this->_db->join('users','users.user_id=institute_students.stu_user_id','LEFT');
        $this->_db->join('institute_admissions','institute_admissions.admission_stu_id=institute_students.stu_user_id','LEFT');
        $this->_db->join('countries','countries.country_id=institute_students.stu_cur_addr_country','LEFT');
        $this->_db->join('states','states.state_id=institute_students.stu_cur_state','LEFT');

        if(isset($param['inst_id'])){
            $this->_db->where('stu_inst_id',$param['inst_id']);
        }

        if(isset($param['inst_parent_id'])){
            $this->_db->where('stu_inst_parent_id',$param['inst_parent_id']);
        }

        if(isset($param['stu_status'])){
            $this->_db->where('users.user_status',$param['stu_status']);
        }

        if(isset($param['is_removed'])){
            $this->_db->where('stu_removed',$param['is_removed']);
        }


        if(isset($param['father_is_guardian']) && $param['father_is_guardian']=='yes' && isset($param['mother_is_guardian']) && $param['mother_is_guardian']=='yes'){
            $this->_db->group_start();
            $this->_db->where('stu_father_is_guardian',$param['father_is_guardian']);
            $this->_db->or_where('stu_mother_is_guardian',$param['mother_is_guardian']);
            $this->_db->group_end();
        }
        
                

        $i = 0;

        if(isset($param['column_search'])){
            foreach ($param['column_search'] as $item)
            {
                if(isset($post['search']['value']) && $post['search']['value'])
                {
                    
                    if($i===0)
                    {
                        $this->_db->group_start();
                        $this->_db->like($item, $post['search']['value']);
                    }
                    else
                    {
                        $this->_db->or_like($item, $post['search']['value']);
                    }

                    if(count($param['column_search']) - 1 == $i)
                        $this->_db->group_end();
                }
                
                $i++;
            }
        }

            
        if(isset($post['order']))
        {
            $column_order=$param['column_order'];
            $this->_db->order_by($column_order[$post['order']['0']['column']], $post['order']['0']['dir']);
        } 
        else if(isset($param['order']))
        {
            $order = $param['order'];
            $this->_db->order_by(key($order), $order[key($order)]);
        }

        if($count==FALSE){
            if(isset($post['length']) && $post['length'] != -1){
                $this->_db->limit($post['length'],$post['start']);   
            }
            
            $query = $this->_db->get('institute_students');

            if($return_query==FALSE){
                return $query->result();
            }else if($return_query==TRUE){
                return $this->_db->last_query();
            }       
            
        }else if($count==TRUE){
            $query = $this->_db->get('institute_students');
            if($return_query==FALSE){
                return $query->num_rows();
            }else if($return_query==TRUE){
                return $this->_db->last_query();
            }           
        }
    }


    public function get_total_students($param=null,$db_group=null,$return_query=FALSE)
    {
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->_db->from('institute_students');
        if(!empty($param)){
            $this->_db->where($param);
        }
        if($return_query==TRUE){
            return $this->_db->last_query();
        }else if($return_query==FALSE){
            return $this->_db->count_all_results();
        }
        
    }



    public function get_students_from_payments($param = null,$db_group=null, $return_query = FALSE) {
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        
        // Using the full table name to avoid aliasing issues
        $this->_db->distinct();
        $this->_db->select("nt_institute_payments_details.details_stu_id");
        $this->_db->select("CONCAT(nt_institute_students.stu_first_name, ' ', nt_institute_students.stu_mid_name, ' ', nt_institute_students.stu_last_name) as student_name", false);
        $this->_db->select("nt_institute_courses.course_code");
        $this->_db->select("nt_institute_courses.course_name");
        $this->_db->select("nt_institute_sessions.session_start_year");
        $this->_db->select("nt_institute_sessions.session_end_year");
        $this->_db->from("nt_institute_payments_details");
        $this->_db->join("nt_institute_students", "nt_institute_students.stu_user_id = nt_institute_payments_details.details_stu_id", "left");
        $this->_db->join("nt_institute_courses", "nt_institute_courses.course_id = nt_institute_payments_details.details_course_id", "left");
        $this->_db->join("nt_institute_sessions", "nt_institute_sessions.session_id = nt_institute_payments_details.details_sess_id", "left");
    
        // if (!empty($param)) {
        //     $this->_db->where($param);
        // }

        $this->_db->where('details_agent_id',null);

        //if(isset($param['start_date']) && isset($param['end_date'])){
            if(!empty($param['start_date']) && !empty($param['end_date'])){
                $this->_db->where('DATE(details_created_at_actual) BETWEEN "'.$param['start_date'].'" AND "'.$param['end_date'].'"');
            }else if(!empty($param['start_date']) && empty($param['end_date'])){
                $this->_db->where('DATE(details_created_at_actual)',$param['start_date']);
            }else if(empty($param['end_date']) && !empty($param['end_date'])){
                $this->_db->where('DATE(details_created_at_actual)',$param['end_date']);
            }   
        //}

    
        $query = $this->_db->get();
    
        if ($return_query == FALSE) {
            return $query->result();
        } else if ($return_query == TRUE) {
            return $this->_db->last_query();
        }
    }
    
    
    


    //Agents

    public function _get_agents($post=array(),$param=array(),$count=FALSE,$return_query=FALSE,$db_group=null){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->_db->select('institute_agents.*,users.*,countries.country_name,states.state_name');
        $this->_db->join('users','users.user_id=institute_agents.agent_user_id','LEFT');
        $this->_db->join('countries','countries.country_id=institute_agents.agent_country','LEFT');
        $this->_db->join('states','states.state_id=institute_agents.agent_state','LEFT');

        if(isset($param['inst_id'])){
            $this->_db->where('agent_inst_id',$param['inst_id']);
        }


        if(isset($param['inst_parent_id'])){
            $this->_db->where('agent_inst_parent_id',$param['inst_parent_id']);
        }


        if(isset($param['agent_approval_status'])){
            $this->_db->where('agent_approval_status',$param['agent_approval_status']);
        }
        

        $i = 0;

        if(isset($param['column_search'])){
            foreach ($param['column_search'] as $item)
            {
                if(isset($post['search']['value']) && $post['search']['value'])
                {
                    
                    if($i===0)
                    {
                        $this->_db->group_start();
                        $this->_db->like($item, $post['search']['value']);
                    }
                    else
                    {
                        $this->_db->or_like($item, $post['search']['value']);
                    }

                    if(count($param['column_search']) - 1 == $i)
                        $this->_db->group_end();
                }
                
                $i++;
            }
        }

            
        if(isset($post['order']))
        {
            $column_order=$param['column_order'];
            $this->_db->order_by($column_order[$post['order']['0']['column']], $post['order']['0']['dir']);
        } 
        else if(isset($param['order']))
        {
            $order = $param['order'];
            $this->_db->order_by(key($order), $order[key($order)]);
        }

        if($count==FALSE){
            if(isset($post['length']) && $post['length'] != -1){
                $this->_db->limit($post['length'],$post['start']);   
            }
            
            $query = $this->_db->get('institute_agents');

            if($return_query==FALSE){
                return $query->result();
            }else if($return_query==TRUE){
                return $this->_db->last_query();
            }       
            
        }else if($count==TRUE){
            $query = $this->_db->get('institute_agents');
            if($return_query==FALSE){
                return $query->num_rows();
            }else if($return_query==TRUE){
                return $this->_db->last_query();
            }           
        }
    }


    public function store_agents($data,$return_query=FALSE){
        
        $this->table='institute_agents';
        return $this->store($data,FALSE,$return_query);
    }

    public function update_agents($data,$param,$batch=FALSE,$return_query=FALSE){
        
        $this->table='institute_agents';
        return $this->modify($data,$param,$batch,$return_query);
    }

    public function delete_agents($param,$return_query=FALSE){
        
        $this->table='institute_agents';
        return $this->remove($param,0,$return_query);
    }

    public function get_agents($param,$single_row=TRUE,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='institute_agents';
        if($single_row==TRUE){
            return $this->get_one($param,'',$return_query);
        }else if($single_row==FALSE){
            return $this->get_many($param,null,null,$return_query);
        }       
    }




    //Students

    public function store_students($data,$batch=FALSE,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='institute_students';
        return $this->store($data,$batch,$return_query);
    }

    public function update_students($data,$param,$batch=FALSE,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='institute_students';
        return $this->modify($data,$param,$batch,$return_query);
    }

    public function delete_students($param,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='institute_students';
        return $this->remove($param,0,$return_query);
    }

    public function get_students($param,$single_row=TRUE,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='institute_students';
        if($single_row==TRUE){
            return $this->get_one($param,'',$return_query);
        }else if($single_row==FALSE){
            return $this->get_many($param,null,null,$return_query);
        }       
    }


    //Excel Temp Data
    public function store_excel_temp_students($data,$batch=FALSE,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='system_excel_data';
        return $this->store($data,$batch,$return_query);
    }

    public function update_excel_temp_students($data,$param,$batch=FALSE,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='system_excel_data';
        return $this->modify($data,$param,$batch,$return_query);
    }

    public function delete_excel_temp_students($param,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='system_excel_data';
        return $this->remove($param,0,$return_query);
    }


    public function get_count_excel_temp_students($param,$return_query=FALSE){
        
        $this->table='system_excel_data';
        return $this->get_total_count($param,NULL,NULL,$return_query);
    }

    public function get_excel_temp_students($param,$single_row=TRUE,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='system_excel_data';
        if($single_row==TRUE){
            return $this->get_one($param,'',$return_query);
        }else if($single_row==FALSE){
            return $this->get_many($param,null,null,$return_query);
        }       
    }


    public function store_excel_tempstatus_students($data,$batch=FALSE,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='system_excel_data_status';
        return $this->store($data,$batch,$return_query);
    }

    public function update_excel_tempstatus_students($data,$param,$batch=FALSE,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='system_excel_data_status';
        return $this->modify($data,$param,$batch,$return_query);
    }

    public function delete_excel_tempstatus_students($param,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='system_excel_data_status';
        return $this->remove($param,0,$return_query);
    }

    public function get_excel_tempstatus_students($param,$single_row=TRUE,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='system_excel_data_status';
        if($single_row==TRUE){
            return $this->get_one($param,'',$return_query);
        }else if($single_row==FALSE){
            return $this->get_many($param,null,null,$return_query);
        }       
    }


    public function store_students_removed($data,$return_query=FALSE){
        $this->table='institute_students_removed';
        return $this->store($data,FALSE,$return_query);
    }

    public function delete_students_removed($param,$return_query=FALSE){
        $this->table='institute_students_removed';
        return $this->remove($param,0,$return_query);
    }


    //Students Academic Details

    public function store_students_academics($data,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='institute_students_academics';
        return $this->store($data,FALSE,$return_query);
    }

    public function update_students_academics($data,$param,$batch=FALSE,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='institute_students_academics';
        return $this->modify($data,$param,$batch,$return_query);
    }

    public function delete_students_academics($param,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='institute_students_academics';
        return $this->remove($param,0,$return_query);
    }

    public function get_students_academics($param,$single_row=TRUE,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='institute_students_academics';
        if($single_row==TRUE){
            return $this->get_one($param,'',$return_query);
        }else if($single_row==FALSE){
            return $this->get_many($param,null,null,$return_query);
        }       
    }


    public function store_institute_permissions($data,$return_query=FALSE){
        $this->table='institute_permissions';
        return $this->store($data,FALSE,$return_query);
    }

    public function update_institute_permissions($data,$param,$batch=FALSE,$return_query=FALSE){
        $this->table='institute_permissions';
        return $this->modify($data,$param,$batch,$return_query);
    }

    public function delete_institute_permissions($param,$return_query=FALSE){
        $this->table='institute_permissions';
        return $this->remove($param,0,$return_query);
    }

    public function get_institute_permissions($param,$single_row=TRUE,$return_query=FALSE){
        $this->table='institute_permissions';
        if($single_row==TRUE){
            return $this->get_one($param,'',$return_query);
        }else if($single_row==FALSE){
            return $this->get_many($param,null,null,$return_query);
        }       
    }



    //Students Course cost revision

    public function store_course_cost($data,$batch=FALSE,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='institute_students_course_costs';
        return $this->store($data,$batch,$return_query);
    }

    public function update_course_cose($data,$param,$batch=FALSE,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='institute_students_course_costs';
        return $this->modify($data,$param,$batch,$return_query);
    }

    public function delete_course_cost($param,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='institute_students_course_costs';
        return $this->remove($param,0,$return_query);
    }

    public function get_course_cost($param,$single_row=TRUE,$db_group=null,$return_query=FALSE){
        if($db_group!==null){
            $this->_db=$this->load->database($db_group, TRUE);
        }
        $this->table='institute_students_course_costs';
        if($single_row==TRUE){
            return $this->get_one($param,'',$return_query);
        }else if($single_row==FALSE){
            return $this->get_many($param,null,null,$return_query);
        }       
    }

    

}

MMCT - 2023