GIF89a; CRX
KBHT HEHE
Server IP : 172.26.0.195  /  Your IP : 3.144.235.138
Web Server : Apache
System : Linux 43-205-77-33.cprapid.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64
User : jnclnmuac ( 1026)
PHP Version : 8.0.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /home/jnclnmuac/public_html/web/../jnclnmu/../cas/application/models/admin/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/jnclnmuac/public_html/web/../jnclnmu/../cas/application/models/admin/StudentManagement.php
<?php

/**
 * Model Class For Handling All DB Operations Related To Students
 *
 * @author Softpro India Pvt. Ltd.
 */
class StudentManagement extends CI_Model {

    function createNewStudentPersonalInfoEntry(array $newStudentPersonalInfo) {
        $this->db->insert('tbl_student_personal_info', $newStudentPersonalInfo);
        return $this->db->insert_id();
    }

    function createNewStudentContactInfoEntry(array $newStudentContactInfo) {
        $this->db->insert('tbl_student_contact_info', $newStudentContactInfo);
        return $this->db->insert_id();
    }

    function createNewStudentEntranceExamProfExpAndExtraCurricularInfoEntry(array $newStudentEntranceExamInfo) {
        $this->db->insert('tbl_student_entrance_info', $newStudentEntranceExamInfo);
        return $this->db->insert_id();
    }

    function createNewStudentHostelAndResidenceChoiceInfoEntry(array $newStudentHostelAndResidenceChoiceInfo) {
        $this->db->insert('tbl_student_hostel_resid_info', $newStudentHostelAndResidenceChoiceInfo);
        return $this->db->insert_id();
    }

    function createNewStudentEducationalQualificationInfoMulti(array $newStudentEducationalQualificationInfoBatch) {
        $this->db->insert_batch('tbl_student_edu_info', $newStudentEducationalQualificationInfoBatch);
        return $this->db->insert_id();
    }

    function createNewStudentFamilyBackgroundInfoMulti(array $newStudentEducationalFamilyBackroundInfoBatch) {
        $this->db->insert_batch('tbl_family_background_info', $newStudentEducationalFamilyBackroundInfoBatch);
        return $this->db->insert_id();
    }

    function getStudentPersonalInfoByFormNumber($formNumber) {
        $this->db->select('*');
        $this->db->from('tbl_student_personal_info TSPI');
        $this->db->join('tbl_univ_course_session_mapping TUCSM', 'TSPI.ucs_map_id = TUCSM.ucs_map_id');
        $this->db->join('tbl_session_master TSM', 'TUCSM.session_id = TSM.session_id');
        $this->db->join('tbl_course_sub_master TSCM', 'TUCSM.sub_course_id = TSCM.tcsm_id');
        $this->db->join('tbl_course_master TCM', 'TSCM.course_id = TCM.course_id');
        $this->db->where('TSPI.tspi_form_no', $formNumber);
        return $this->db->get();
    }

    function getStudentPersonalInfoByRollNumber($rollNumber) {
        $this->db->select('*');
        $this->db->from('tbl_student_personal_info TSPI');
        $this->db->join('tbl_univ_course_session_mapping TUCSM', 'TSPI.ucs_map_id = TUCSM.ucs_map_id');
        $this->db->join('tbl_session_master TSM', 'TUCSM.session_id = TSM.session_id');
        $this->db->join('tbl_course_sub_master TSCM', 'TUCSM.sub_course_id = TSCM.tcsm_id');
        $this->db->join('tbl_course_master TCM', 'TSCM.course_id = TCM.course_id');
        $this->db->where("TSPI.tspi_rollNumber = '" . $rollNumber . "'");
        return $this->db->get();
    }

    function getStudentPersonalInfoByEnrollmentNumber($enrollmentNumber) {
        $this->db->select('*');
        $this->db->from('tbl_student_personal_info TSPI');
        $this->db->join('tbl_univ_course_session_mapping TUCSM', 'TSPI.ucs_map_id = TUCSM.ucs_map_id');
        $this->db->join('tbl_session_master TSM', 'TUCSM.session_id = TSM.session_id');
        $this->db->join('tbl_course_sub_master TSCM', 'TUCSM.sub_course_id = TSCM.tcsm_id');
        $this->db->join('tbl_course_master TCM', 'TSCM.course_id = TCM.course_id');
        $this->db->where("TSPI.tspi_enrollment_no = '" . $enrollmentNumber . "'");
        return $this->db->get();
    }

    function getStudentPersonalInfoByRollNumberOrEnrollmentNo($rollOrEnrollNumber) {
        $this->db->select('*');
        $this->db->from('tbl_student_personal_info TSPI');
        $this->db->join('tbl_univ_course_session_mapping TUCSM', 'TSPI.ucs_map_id = TUCSM.ucs_map_id');
        $this->db->join('tbl_session_master TSM', 'TUCSM.session_id = TSM.session_id');
        $this->db->join('tbl_course_sub_master TSCM', 'TUCSM.sub_course_id = TSCM.tcsm_id');
        $this->db->join('tbl_course_master TCM', 'TSCM.course_id = TCM.course_id');
        $this->db->where("(TSPI.tspi_rollNumber = '" . $rollOrEnrollNumber . "' OR TSPI.tspi_enrollment_no = '" . $rollOrEnrollNumber . "')");
        return $this->db->get();
    }

    function getStudentPersonalInfoByUniversityRollNumber($universityRollNumber) {
        $this->db->select('*');
        $this->db->from('tbl_student_personal_info TSPI');
        $this->db->join('tbl_univ_course_session_mapping TUCSM', 'TSPI.ucs_map_id = TUCSM.ucs_map_id');
        $this->db->join('tbl_session_master TSM', 'TUCSM.session_id = TSM.session_id');
        $this->db->join('tbl_course_sub_master TSCM', 'TUCSM.sub_course_id = TSCM.tcsm_id');
        $this->db->join('tbl_course_master TCM', 'TSCM.course_id = TCM.course_id');
        $this->db->where("TSPI.tspi_univ_rollNumber", $universityRollNumber);
        return $this->db->get();
    }

    function getStudentPersonalInfoAndPhotoSignBy($tspi_id) {
        $this->db->select("TSPI.tspi_id,TSPI.tspi_name,TSPI.ucs_map_id,TSPI.tspi_enrollment_no,TSPI.tspi_form_no,"
                . "TSPI.tspi_email,TSPI.tspi_mobile,TSPI.tspi_gender,TSPI.tspi_category,TSPI.tspi_religion,TSPI.tspi_dob,"
                . "TSPI.tspi_added_by,TSPI.tspi_added_on,TSPI.tspi_updated_by,TSPI.tspi_updated_on,"
                . "TSPI.tspi_status,FLAG_DECODER('STU_INFO',TSPI.tspi_status)status_text,"
                . "TSPI.tspi_rollNumber,TSPI.tspi_enrollment_date,TSPI.tspi_admission_date,"
                . "TSPI.tspi_is_diff_abled,TSPI.tspi_parent_annual_income,TSPI.tspi_remarks,TSPI.tspi_is_reg_fee_applicable,"
                . "TSPI.tspi_ygap_applied,TSPI.tspi_scholarship_eligible,TSPI.tspi_scholarship_percentage,"
                . "TSPI.tspi_univ_rollNumber,TSPI.tspi_log_date,TSM.session_id,TSM.session_name,TCM.course_id,TCM.course_name,TCM.course_duration,"
                . "TCM.course_full_name,TSCM.tcsm_course_type,TSCM.tcsm_sem_start_from,TDDIPIC.tddi_id studentPhotoId,TDDISIGN.tddi_id studentSignId,"
                . "TDDIPIC.tddi_doc_file_path studentPhoto,TDDISIGN.tddi_doc_file_path studentSign,TSPI.tspi_delete_status,"
                . "TUCSM.branch_id,TUCSM.session_end_year,TCM.course_time_mgmt_flag,TCM.course_no_of_sems,TCM.course_category,"
                . "CONCAT(TPRFLA.tprfl_firstname,' ',TPRFLA.tprfl_lastname) addedByAdmin,"
                . "CONCAT(TPRFLU.tprfl_firstname,' ',TPRFLU.tprfl_lastname) updatedByAdmin");
        $this->db->from('tbl_student_personal_info TSPI');
        $this->db->join('tbl_univ_course_session_mapping TUCSM', 'TSPI.ucs_map_id = TUCSM.ucs_map_id');
        $this->db->join('tbl_session_master TSM', 'TUCSM.session_id = TSM.session_id');
        $this->db->join('tbl_course_sub_master TSCM', 'TUCSM.sub_course_id = TSCM.tcsm_id');
        $this->db->join('tbl_course_master TCM', 'TSCM.course_id = TCM.course_id');
        $this->db->join('tbl_document_document_info TDDIPIC', 'TSPI.tspi_id = TDDIPIC.tddi_mapping_id');
        $this->db->join('tbl_document_master TDOCMPIC', 'TDDIPIC.tddi_doc_id = TDOCMPIC.doc_id');
        $this->db->join('tbl_document_document_info TDDISIGN', 'TSPI.tspi_id = TDDISIGN.tddi_mapping_id');
        $this->db->join('tbl_document_master TDOCMSIGN', 'TDDISIGN.tddi_doc_id = TDOCMSIGN.doc_id');
        $this->db->join('tbl_staff_members TSMA', 'TSPI.tspi_added_by = TSMA.smember_id');
        $this->db->join('tbl_profile TPRFLA', 'TSMA.smember_id = TPRFLA.tprfl_id');
        $this->db->join('tbl_staff_members TSMU', 'TSPI.tspi_updated_by = TSMU.smember_id');
        $this->db->join('tbl_profile TPRFLU', 'TSMU.smember_id = TPRFLU.tprfl_id');
        $this->db->where("TDDIPIC.tddi_user_type_flag", "S");
        $this->db->where("TDOCMPIC.doc_flag", "SP");
        $this->db->where("TDOCMPIC.doc_related_to", "S");
        $this->db->where("TDDISIGN.tddi_user_type_flag", "S");
        $this->db->where("TDOCMSIGN.doc_flag", "SS");
        $this->db->where("TDOCMSIGN.doc_related_to", "S");
        $this->db->where("TSPI.tspi_id", $tspi_id);
        return $this->db->get();
    }

    function getStudentInfoByFormEnrollmentOrRollNo($formEnrlRollNo, $status = '') {
        $this->db->select("TSPI.tspi_id,TSPI.tspi_name,TSPI.ucs_map_id,TSPI.tspi_enrollment_no,TSPI.tspi_form_no,"
                . "TSPI.tspi_email,TSPI.tspi_mobile,TSPI.tspi_gender,TSPI.tspi_category,TSPI.tspi_religion,TSPI.tspi_dob,"
                . "TSPI.tspi_added_by,TSPI.tspi_added_on,TSPI.tspi_updated_by,TSPI.tspi_updated_on,"
                . "TSPI.tspi_status,FLAG_DECODER('STU_INFO',TSPI.tspi_status)status_text,"
                . "TSPI.tspi_rollNumber,TSPI.tspi_enrollment_date,TSPI.tspi_admission_date,"
                . "TSPI.tspi_is_diff_abled,TSPI.tspi_parent_annual_income,TSPI.tspi_remarks,"
                . "TSPI.tspi_ygap_applied,TSPI.tspi_scholarship_eligible,TSPI.tspi_scholarship_percentage,"
                . "TSPI.tspi_univ_rollNumber,TSM.session_id,TSM.session_name,TCM.course_id,TCM.course_name,"
                . "TSCM.tcsm_course_type,TSCM.tcsm_sem_start_from,TDDIPIC.tddi_id studentPhotoId,TDDISIGN.tddi_id studentSignId,"
                . "TDDIPIC.tddi_doc_file_path studentPhoto,TDDISIGN.tddi_doc_file_path studentSign,TSPI.tspi_delete_status,"
                . "TUCSM.branch_id,TUCSM.session_end_year,TCM.course_time_mgmt_flag,TCM.course_no_of_sems,TCM.course_category,"
                . "CONCAT(TPRFLA.tprfl_firstname,' ',TPRFLA.tprfl_lastname) addedByAdmin,"
                . "CONCAT(TPRFLU.tprfl_firstname,' ',TPRFLU.tprfl_lastname) updatedByAdmin");
        $this->db->from('tbl_student_personal_info TSPI');
        $this->db->join('tbl_univ_course_session_mapping TUCSM', 'TSPI.ucs_map_id = TUCSM.ucs_map_id');
        $this->db->join('tbl_session_master TSM', 'TUCSM.session_id = TSM.session_id');
        $this->db->join('tbl_course_sub_master TSCM', 'TUCSM.sub_course_id = TSCM.tcsm_id');
        $this->db->join('tbl_course_master TCM', 'TSCM.course_id = TCM.course_id');
        $this->db->join('tbl_document_document_info TDDIPIC', 'TSPI.tspi_id = TDDIPIC.tddi_mapping_id');
        $this->db->join('tbl_document_master TDOCMPIC', 'TDDIPIC.tddi_doc_id = TDOCMPIC.doc_id');
        $this->db->join('tbl_document_document_info TDDISIGN', 'TSPI.tspi_id = TDDISIGN.tddi_mapping_id');
        $this->db->join('tbl_document_master TDOCMSIGN', 'TDDISIGN.tddi_doc_id = TDOCMSIGN.doc_id');
        $this->db->join('tbl_staff_members TSMA', 'TSPI.tspi_added_by = TSMA.smember_id');
        $this->db->join('tbl_profile TPRFLA', 'TSMA.smember_id = TPRFLA.tprfl_id');
        $this->db->join('tbl_staff_members TSMU', 'TSPI.tspi_updated_by = TSMU.smember_id');
        $this->db->join('tbl_profile TPRFLU', 'TSMU.smember_id = TPRFLU.tprfl_id');
        $this->db->where("TDDIPIC.tddi_user_type_flag", "S");
        $this->db->where("TDOCMPIC.doc_flag", "SP");
        $this->db->where("TDOCMPIC.doc_related_to", "S");
        $this->db->where("TDDISIGN.tddi_user_type_flag", "S");
        $this->db->where("TDOCMSIGN.doc_flag", "SS");
        $this->db->where("TDOCMSIGN.doc_related_to", "S");
        if ($status != '') {
            $this->db->where("TSPI.tspi_status", "CE");
        }
        $this->db->where("(TSPI.tspi_form_no = '" . $formEnrlRollNo . "' OR TSPI.tspi_rollNumber = '" . $formEnrlRollNo . "' OR TSPI.tspi_enrollment_no = '" . $formEnrlRollNo . "' OR TSPI.tspi_univ_rollNumber = '" . $formEnrlRollNo . "')");
        return $this->db->get();
    }

    function getStudentContactInfoBy($tspi_id) {
        $this->db->select('TSCI.tsci_id,TSCI.tsci_perma_state,TSCI.tsci_perma_city,TSCI.tsci_perma_zipcode,TSCI.tsci_resid_state,TSCI.tsci_resid_city,TSCI.tsci_resid_zipcode,TSCI.tsci_parent_landline,'
                . 'TSCI.tsci_parent_mobile,TSCI.tsci_added_on,TSCI.tsci_added_by,TSCI.tsci_updated_on,TSCI.tsci_updated_by,TSCI.tsci_perma_address_line_one,TSCI.tsci_perma_address_line_two,TSCI.tsci_perma_address_line_three,TSCI.tsci_resid_address_line_one,'
                . 'TSCI.tsci_resid_address_line_two,TSCI.tsci_resid_address_line_three,TCMRESID.city_name mailingCity,TSMRESID.state_name mailingState,TCMPERMA.city_name permaCity,TSMPERMA.state_name permaState');
        $this->db->from('tbl_student_contact_info TSCI');
        $this->db->join('tbl_city_master TCMRESID', 'TSCI.tsci_resid_city = TCMRESID.city_id');
        $this->db->join('tbl_states_master TSMRESID', 'TSCI.tsci_resid_state = TSMRESID.state_id');
        $this->db->join('tbl_city_master TCMPERMA', 'TSCI.tsci_perma_city = TCMPERMA.city_id');
        $this->db->join('tbl_states_master TSMPERMA', 'TSCI.tsci_perma_state = TSMPERMA.state_id');
        $this->db->where("TSCI.tspi_id", $tspi_id);
        return $this->db->get();
    }

    function getStudentStudentEntranceExamProfExpAndExtraCurricularInfoBy($tspi_id) {
        $this->db->select('TSEVI.tsevi_id,TSEVI.tsevi_is_prof_exp,TSEVI.tsevi_no_of_years,TSEVI.tsevi_organization,'
                . 'TSEVI.tsevi_job_desc,TSEVI.tsevi_extra_activities,TSEVI.tsevi_how_know_sms,TSEVI.tsevi_entrance_through,'
                . 'TSEVI.tsevi_form_no,TSEVI.tsevi_composite_score,TSEVI.tsevi_percnt_obtained,TSEVI.tsevi_rank,'
                . 'TSEVI.tsevi_added_on,TSEVI.tsevi_updated_on,TSEVI.tsevi_added_by,'
                . 'TSEVI.tsevi_updated_by,TSEVI.tsevi_percntage');
        $this->db->from('tbl_student_entrance_info TSEVI');
        $this->db->where("TSEVI.tspi_id", $tspi_id);
        return $this->db->get();
    }

    function getStudentHostelAndResidenceChoiceInfoBy($tspi_id) {
        $this->db->select('TSHRI.tshri_id,TSHRI.tshri_is_hostel_opted,TSHRI.tshri_resid_choice,TSHRI.tshri_comm_state,'
                . 'TSHRI.tshri_comm_city,TSHRI.tshri_comm_zipcode,TSHRI.tshri_comm_tel_no,TSHRI.tshri_comm_mobile,'
                . 'TSHRI.tshri_loc_guard_name,TSHRI.tshri_loc_guard_state,TSHRI.tshri_loc_guard_city,TSHRI.tshri_loc_guard_tel_no,'
                . 'TSHRI.tshri_loc_guard_mob,TSHRI.tshri_added_on,TSHRI.tshri_updated_on,TSHRI.tshri_added_by,TSHRI.tshri_updated_by,'
                . 'TSHRI.tshri_loc_guard_zipcode,TSHRI.tshri_comm_address_line_one,TSHRI.tshri_comm_address_line_two,TSHRI.tshri_comm_address_line_three,'
                . 'TSHRI.tshri_loc_guard_address_line_one,TSHRI.tshri_loc_guard_address_line_two,TSHRI.tshri_loc_guard_address_line_three,'
                . 'TCMCOMM.city_name commCity,TSMCOMM.state_name commState,TCMLOCGUARD.city_name locGuardCity,TSMLOCGUARD.state_name locGuardState');
        $this->db->from('tbl_student_hostel_resid_info TSHRI');
        $this->db->join('tbl_city_master TCMCOMM', 'TSHRI.tshri_comm_city = TCMCOMM.city_id');
        $this->db->join('tbl_states_master TSMCOMM', 'TSHRI.tshri_comm_state = TSMCOMM.state_id');
        $this->db->join('tbl_city_master TCMLOCGUARD', 'TSHRI.tshri_loc_guard_city = TCMLOCGUARD.city_id');
        $this->db->join('tbl_states_master TSMLOCGUARD', 'TSHRI.tshri_loc_guard_state = TSMLOCGUARD.state_id');
        $this->db->where("TSHRI.tspi_id", $tspi_id);
        return $this->db->get();
    }

    function getStudentEducationalQualificationInfo($tspi_id) {
        $this->db->select('TESI.tesi_id,TESI.tesi_exam,TESI.tesi_board,TESI.tesi_university,'
                . 'TESI.tesi_stream,TESI.tesi_passing_year,TESI.tesi_percnt,TESI.tesi_cgpa,'
                . 'TESI.tesi_division,TESI.tesi_added_on,TESI.tesi_updated_on,TESI.tesi_added_by,'
                . 'TESI.tesi_updated_by,TESI.tspi_id,TESI.tesi_max_marks_cgpa,TEM.exam_id,TEM.exam_name');
        $this->db->from('tbl_student_edu_info TESI');
        $this->db->join('tbl_exams_master TEM', 'TESI.tesi_exam = TEM.exam_id');
        $this->db->where("TESI.tspi_id", $tspi_id);
        return $this->db->get();
    }

    function getStudentEducationalQualificationInfoBy($tspi_id, $exam_id) {
        $this->db->select('TESI.tesi_id,TESI.tesi_exam,TESI.tesi_board,TESI.tesi_university,'
                . 'TESI.tesi_stream,TESI.tesi_passing_year,TESI.tesi_percnt,TESI.tesi_cgpa,'
                . 'TESI.tesi_division,TESI.tesi_added_on,TESI.tesi_updated_on,TESI.tesi_added_by,'
                . 'TESI.tesi_updated_by,TESI.tspi_id,TESI.tesi_max_marks_cgpa,TEM.exam_id,TEM.exam_name');
        $this->db->from('tbl_student_edu_info TESI');
        $this->db->join('tbl_exams_master TEM', 'TESI.tesi_exam = TEM.exam_id');
        $this->db->where("TESI.tspi_id", $tspi_id);
        $this->db->where("TESI.tesi_exam", $exam_id);
        return $this->db->get();
    }

    function getStudentFamilyBackgroundInfoBy($tspi_id) {
        $this->db->select('TFBI.tfbi_id,TFBI.tfbi_relation,TFBI.tfbi_name,TFBI.tfbi_organization,'
                . 'TFBI.tfbi_designation,TFBI.tfbi_user_type_flag,TFBI.tfbi_mapping_id,TFBI.tfbi_added_on,'
                . 'TFBI.tfbi_updated_on,TFBI.tfbi_added_by,TFBI.tfbi_updated_by, TRM.rel_title');
        $this->db->from('tbl_family_background_info TFBI');
        $this->db->join('tbl_relation_master TRM', 'TFBI.tfbi_relation = TRM.rel_id');
        $this->db->where("TFBI.tfbi_user_type_flag", "S");
        $this->db->where("TFBI.tfbi_designation != 'NA'");
        $this->db->where("TFBI.tfbi_organization != 'NA'");
        $this->db->where("TFBI.tfbi_mapping_id", $tspi_id);
        return $this->db->get();
    }

    function getStudentFatherInfoBy($tspi_id) {
        $this->db->select('TFBI.tfbi_id,TFBI.tfbi_relation,TFBI.tfbi_name,TFBI.tfbi_organization,'
                . 'TFBI.tfbi_designation,TFBI.tfbi_user_type_flag,TFBI.tfbi_mapping_id,TFBI.tfbi_added_on,'
                . 'TFBI.tfbi_updated_on,TFBI.tfbi_added_by,TFBI.tfbi_updated_by');
        $this->db->from('tbl_family_background_info TFBI');
        $this->db->join('tbl_relation_master TRM', 'TFBI.tfbi_relation = TRM.rel_id');
        $this->db->where("TFBI.tfbi_user_type_flag", "S");
        $this->db->where("TFBI.tfbi_designation", "NA");
        $this->db->where("TFBI.tfbi_organization", "NA");
        $this->db->where("TRM.rel_code", 2);
        $this->db->where("TFBI.tfbi_mapping_id", $tspi_id);
        return $this->db->get();
    }

    function getStudentMotherInfoBy($tspi_id) {
        $this->db->select('TFBI.tfbi_id,TFBI.tfbi_relation,TFBI.tfbi_name,TFBI.tfbi_organization,'
                . 'TFBI.tfbi_designation,TFBI.tfbi_user_type_flag,TFBI.tfbi_mapping_id,TFBI.tfbi_added_on,'
                . 'TFBI.tfbi_updated_on,TFBI.tfbi_added_by,TFBI.tfbi_updated_by');
        $this->db->from('tbl_family_background_info TFBI');
        $this->db->join('tbl_relation_master TRM', 'TFBI.tfbi_relation = TRM.rel_id');
        $this->db->where("TFBI.tfbi_user_type_flag", "S");
        $this->db->where("TFBI.tfbi_designation", "NA");
        $this->db->where("TFBI.tfbi_organization", "NA");
        $this->db->where("TRM.rel_code", 1);
        $this->db->where("TFBI.tfbi_mapping_id", $tspi_id);
        return $this->db->get();
    }

    function getStudentPersonalInfoByCourseSessionAndEntryType($course, $session = '', $ucsMapId = '') {
        $this->db->select('*');
        $this->db->from('tbl_student_personal_info TSPI');
        $this->db->join('tbl_univ_course_session_mapping TUCSM', 'TSPI.ucs_map_id = TUCSM.ucs_map_id');
        $this->db->join('tbl_session_master TSM', 'TUCSM.session_id = TSM.session_id');
        $this->db->join('tbl_course_sub_master TSCM', 'TUCSM.sub_course_id = TSCM.tcsm_id');
        $this->db->join('tbl_course_master TCM', 'TSCM.course_id = TCM.course_id');
        if ($session == '' && $ucsMapId == '') {
            $this->db->where("TCM.course_id", $course);
        } else if ($session != '' && $ucsMapId == '') {
            $this->db->where("TCM.course_id", $course);
            $this->db->where("TSM.session_id", $session);
        } else {
            $this->db->where("TUCSM.ucs_map_id", $ucsMapId);
        }
        return $this->db->get();
    }

    function getEnrolledStudentPersonalInfoByCourseSessionAndEntryType($course, $session = '', $ucsMapId = '', $formEnrollRollNumber = '') {
        $this->db->select('*');
        $this->db->from('tbl_student_personal_info TSPI');
        $this->db->join('tbl_univ_course_session_mapping TUCSM', 'TSPI.ucs_map_id = TUCSM.ucs_map_id');
        $this->db->join('tbl_session_master TSM', 'TUCSM.session_id = TSM.session_id');
        $this->db->join('tbl_course_sub_master TSCM', 'TUCSM.sub_course_id = TSCM.tcsm_id');
        $this->db->join('tbl_course_master TCM', 'TSCM.course_id = TCM.course_id');
        $this->db->where("TSPI.tspi_status", "CE");
        $this->db->where('TSPI.tspi_delete_status', 'F');
        if ($formEnrollRollNumber != '') {
            $this->db->where("(TSPI.tspi_form_no = '" . $formEnrollRollNumber . "' OR TSPI.tspi_enrollment_no = '" . $formEnrollRollNumber . "' OR TSPI.tspi_rollNumber = '" . $formEnrollRollNumber . "')");
        }
        if ($session == '' && $ucsMapId == '') {
            $this->db->where("TCM.course_id", $course);
        } else if ($session != '' && $ucsMapId == '') {
            $this->db->where("TCM.course_id", $course);
            $this->db->where("TSM.session_id", $session);
        } else {
            $this->db->where("TUCSM.ucs_map_id", $ucsMapId);
        }
        return $this->db->get();
    }

    function getAllDeletedStudentPersonalInfo() {
        $this->db->select('*');
        $this->db->from('tbl_student_personal_info TSPI');
        $this->db->join('tbl_univ_course_session_mapping TUCSM', 'TSPI.ucs_map_id = TUCSM.ucs_map_id');
        $this->db->join('tbl_session_master TSM', 'TUCSM.session_id = TSM.session_id');
        $this->db->join('tbl_course_sub_master TSCM', 'TUCSM.sub_course_id = TSCM.tcsm_id');
        $this->db->join('tbl_course_master TCM', 'TSCM.course_id = TCM.course_id');
        $this->db->join('tbl_staff_members TSMU', 'TSPI.tspi_updated_by = TSMU.smember_id');
        $this->db->join('tbl_profile TPRFLU', 'TSMU.smember_id = TPRFLU.tprfl_id');
        $this->db->where('TSPI.tspi_delete_status', 'T');
        return $this->db->get();
    }

    function isFormNumberSafeUpdate($tspi_id, $tspi_form_no) {
        $this->db->select("*");
        $this->db->from('tbl_student_personal_info');
        $this->db->where('tspi_form_no', $tspi_form_no);
        $this->db->where('tspi_id != ' . $tspi_id);
        $result = $this->db->get()->result();
        if (sizeof($result)) {
            return FALSE;
        } else {
            return TRUE;
        }
    }

    function isRollNumberSafeUpdate($tspi_id, $tspi_roll_no) {
        $this->db->select("*");
        $this->db->from('tbl_student_personal_info');
        $this->db->where("tspi_rollNumber = '" . $tspi_roll_no . "'");
        $this->db->where('tspi_id != ' . $tspi_id);
        $result = $this->db->get()->result();
        if (sizeof($result)) {
            return FALSE;
        } else {
            return TRUE;
        }
    }

    function isEnrollmentNumberSafeUpdate($tspi_id, $tspi_enrollment_no) {
        $this->db->select("*");
        $this->db->from('tbl_student_personal_info');
        $this->db->where("tspi_enrollment_no = '" . $tspi_enrollment_no . "'");
        $this->db->where('tspi_id != ' . $tspi_id);
        $result = $this->db->get()->result();
        if (sizeof($result)) {
            return FALSE;
        } else {
            return TRUE;
        }
    }

    function isUniversityRollNumberSafeUpdate($tspi_id, $tspi_univ_roll_no) {
        $this->db->select("*");
        $this->db->from('tbl_student_personal_info');
        $this->db->where("tspi_univ_rollNumber", $tspi_univ_roll_no);
        $this->db->where('tspi_id != ' . $tspi_id);
        $result = $this->db->get()->result();
        if (sizeof($result)) {
            return FALSE;
        } else {
            return TRUE;
        }
    }

    /* Functions For Updating Infos */

    function updateStudentPersonalInfo(array $studentUpdatedPersonalInfo) {
        $this->db->where('tspi_id', $studentUpdatedPersonalInfo['tspi_id']);
        return $this->db->update('tbl_student_personal_info', $studentUpdatedPersonalInfo);
    }

    function updateStudentPersonalInfoMulti(array $studentUpdatedPersonalInfoBulk) {
        return $this->db->update_batch('tbl_student_personal_info', $studentUpdatedPersonalInfoBulk, 'tspi_id');
    }

    function updateStudentContactInfo(array $studentUpdatedContactInfo) {
        $this->db->where('tspi_id', $studentUpdatedContactInfo['tspi_id']);
        return $this->db->update('tbl_student_contact_info', $studentUpdatedContactInfo);
    }

    function updateStudentEntranceExamProfExpAndExtraCurricularInfo(array $studentUpdatedEntranceExamInfoInfo) {
        $this->db->where('tspi_id', $studentUpdatedEntranceExamInfoInfo['tspi_id']);
        return $this->db->update('tbl_student_entrance_info', $studentUpdatedEntranceExamInfoInfo);
    }

    function updateHostelAndResidenceInfo(array $studentUpdatedHostelAndResidenceInfo) {
        $this->db->where('tspi_id', $studentUpdatedHostelAndResidenceInfo['tspi_id']);
        return $this->db->update('tbl_student_hostel_resid_info', $studentUpdatedHostelAndResidenceInfo);
    }

    function updateFamilyBackgroundInfoMulti(array $studentFamilyBackgroundUpdateInfoBatch) {
        return $this->db->update_batch('tbl_family_background_info', $studentFamilyBackgroundUpdateInfoBatch, 'tfbi_id');
    }

    function updateStudentEducationalQualificationInfoMulti(array $studentEducationQualificationUpdateInfoBatch) {
        return $this->db->update_batch('tbl_student_edu_info', $studentEducationQualificationUpdateInfoBatch, 'tesi_id');
    }

    /* Functions For Permanent Deletion */

    function deleteStudentPersonalInfoEntry($tspi_id) {
        $this->db->where("tspi_id", $tspi_id);
        $this->db->delete("tbl_student_personal_info");
    }

    function deleteStudentContactInfoEntry($tspi_id) {
        $this->db->where("tspi_id", $tspi_id);
        $this->db->delete("tbl_student_contact_info");
    }

    function deleteStudentEntranceExamProfExpAndExtraCurricularInfoEntry($tspi_id) {
        $this->db->where("tspi_id", $tspi_id);
        $this->db->delete('tbl_student_entrance_info');
        return $this->db->insert_id();
    }

    function deleteStudentHostelAndResidenceChoiceInfoEntry($tspi_id) {
        $this->db->where("tspi_id", $tspi_id);
        $this->db->delete('tbl_student_hostel_resid_info');
    }

    function deleteStudentIDProofInfoEntry($tipsm_id, $tipi_for) {
        $this->db->where("tipi_for", $tipi_for);
        $this->db->where("tipsm_id", $tipsm_id);
        $this->db->delete('tbl_id_proof_info');
    }

    function deleteStudentEducationalQualificationInfoEntry($tspi_id) {
        $this->db->where("tspi_id", $tspi_id);
        $this->db->delete('tbl_student_edu_info');
    }

    function deleteStudentEducationalQualificationInfoEntryBy($tesi_id) {
        $this->db->where("tesi_id", $tesi_id);
        $this->db->delete('tbl_student_edu_info');
    }

    function deleteStudentFamilyBackgroundInfoEntry($tfbi_mapping_id) {
        $this->db->where("tfbi_mapping_id", $tfbi_mapping_id);
        $this->db->delete('tbl_family_background_info');
    }

    /* Functions For Section & Semester Info */

    function createNewStudentSectionSemesterInfo(array $newStudentSectionSemesterInfo) {
        $this->db->insert('tbl_student_semester_section_info', $newStudentSectionSemesterInfo);
        return $this->db->insert_id();
    }

    function createNewStudentSectionSemesterInfoMulti(array $newStudentSectionSemesterInfoBatch) {
        $this->db->insert_batch('tbl_student_semester_section_info', $newStudentSectionSemesterInfoBatch);
        return $this->db->insert_id();
    }

    function getStudentSectionSemesterInfoBy($tspi_id, $section, $semester) {
        $this->db->select("*");
        $this->db->from('tbl_student_semester_section_info');
        $this->db->where('tsssi_section', $section);
        $this->db->where('tsssi_semester', $semester);
        $this->db->where('tspi_id', $tspi_id);
        return $this->db->get();
    }

    function getStudentCurrentSectionSemesterInfoBy($tspi_id) {
        $this->db->select("*");
        $this->db->from('tbl_student_semester_section_info TSSSI');
        $this->db->where('TSSSI.tspi_id', $tspi_id);
        $this->db->where("TSSSI.tsssi_id = (SELECT MAX(tsssi_id) FROM tbl_student_semester_section_info WHERE tspi_id = " . $tspi_id . ")");
        return $this->db->get();
    }

    function updateStudentSectionSemesterInfo(array $studentSectionSemesterUpdateInfo) {
        $this->db->where('tsssi_id', $studentSectionSemesterUpdateInfo['tsssi_id']);
        return $this->db->update('tbl_student_semester_section_info', $studentSectionSemesterUpdateInfo);
    }

    function getAllEnrolledStudentsForSetAllotmentBy($course, $semester) {
        $this->db->select("*");
        $this->db->from("tbl_student_personal_info TSPI");
        $this->db->join('tbl_univ_course_session_mapping TUCSM', 'TSPI.ucs_map_id = TUCSM.ucs_map_id');
        $this->db->join('tbl_session_master TSM', 'TUCSM.session_id = TSM.session_id');
        $this->db->join('tbl_course_sub_master TSCM', 'TUCSM.sub_course_id = TSCM.tcsm_id');
        $this->db->join('tbl_course_master TCM', 'TSCM.course_id = TCM.course_id');
        $this->db->join("tbl_student_semester_section_info TSSI", "TSPI.tspi_id = TSSI.tspi_id");
        $this->db->where("TSPI.tspi_status", "CE");
        $this->db->where("TSSI.tsssi_semester", $semester);
        $this->db->where("TCM.course_id", $course);
        $this->db->order_by("TSPI.tspi_name", "ASC");
        return $this->db->get();
    }

    /* Functions For Student Subject Allotment Module */

    function getStudentSubjectAllotmentDetailsBy($ssa_id = '', $sm_id = '', $sem = '', $tspi_id = '') {
        $this->db->select("*");
        $this->db->from("student_subject_allot");
        if ($sm_id != '') {
            $this->db->where("sm_id", $sm_id);
        }
        if ($tspi_id != '') {
            $this->db->where("tspi_id", $tspi_id);
        }
        if ($sem != '') {
            $this->db->where("ssa_semester", $sem);
        }
        if ($ssa_id != '') {
            $this->db->where("ssa_id", $ssa_id);
        }
        return $this->db->get();
    }

    function getAllStudentAllotedToSubject($subjectAllomenetID) {
        $this->db->select("*,(SELECT ssa.ssa_semester from student_subject_allot ssa WHERE ssa.tspi_id = TSPI.tspi_id AND ssa.sm_id= SA.sm_id  ) as student_semester");
        $this->db->from("student_tech_allot STA");
        $this->db->join("subject_tech_allot SA", "SA.sta_id=STA.sta_id");
        $this->db->join("tbl_student_personal_info TSPI", "TSPI.tspi_id=STA.tspi_id");
        $this->db->join('tbl_univ_course_session_mapping TUCSM', 'TSPI.ucs_map_id = TUCSM.ucs_map_id');
        $this->db->join('tbl_session_master TSM', 'TUCSM.session_id = TSM.session_id');
        $this->db->join('tbl_course_sub_master TSCM', 'TUCSM.sub_course_id = TSCM.tcsm_id');
        $this->db->join('tbl_course_master TCM', 'TSCM.course_id = TCM.course_id');
        $this->db->where("STA.sta_id", $subjectAllomenetID);
        $this->db->order_by("TSPI.tspi_name", "ASC");
        return $this->db->get();
    }

    /* Function For Student Teacher Allottment Module */

    function getAllEnrolledStudentsForTeacherSubjectAllotmentBy($course = '', $semester = '', $subject, $session, $emp) {
        $this->db->select("*");
        $this->db->from("tbl_student_personal_info TSPI");
        $this->db->where("TSPI.tspi_status", "CE");
        $this->db->where("TSPI.tspi_id IN (SELECT tspi_id FROM student_subject_allot WHERE sm_id = $subject AND ssa_session=$session AND ssa_semester like '%" . $semester . "%' )");
        $this->db->where(""
                . "TSPI.tspi_id NOT IN "
                . "(SELECT stta.tspi_id FROM student_tech_allot stta"
                . " WHERE stta.sta_id IN (SELECT ssta.sta_id FROM subject_tech_allot ssta WHERE ssta.session_id =" . $session . " AND ssta.sm_id = " . $subject . "))");
        return $this->db->get();
    }

    function getAllAllotedStudentsToTeacher($sta_id) {
        $this->db->select("*");
        $this->db->from("student_tech_allot STA");
        $this->db->join("tbl_student_personal_info TSPI", "TSPI.tspi_id=STA.tspi_id");
        $this->db->join('tbl_univ_course_session_mapping TUCSM', 'TSPI.ucs_map_id = TUCSM.ucs_map_id');
        $this->db->join('tbl_session_master TSM', 'TUCSM.session_id = TSM.session_id');
        $this->db->join('tbl_course_sub_master TSCM', 'TUCSM.sub_course_id = TSCM.tcsm_id');
        $this->db->join('tbl_course_master TCM', 'TSCM.course_id = TCM.course_id');
        $this->db->where("STA.sta_id", $sta_id);
        $this->db->order_by("TSPI.tspi_name", "ASC");
        return $this->db->get();
    }

    /* Function For Semester Marks Info */

    function createNewStudentSemesterInfo(array $newStudentSemesterInfo) {
        $this->db->insert('tbl_student_semester_info', $newStudentSemesterInfo);
        return $this->db->insert_id();
    }

    function createNewStudentSemesterInfoMulti(array $newStudentSemesterInfoBatch) {
        $this->db->insert_batch('tbl_student_semester_info', $newStudentSemesterInfoBatch);
        return $this->db->insert_id();
    }

    function getStudentSemesterInfoById($tssi_id) {
        $this->db->select("*,"
                . "CONCAT(TPRFLA.tprfl_firstname,' ',TPRFLA.tprfl_lastname) addedByAdmin,"
                . "CONCAT(TPRFLU.tprfl_firstname,' ',TPRFLU.tprfl_lastname) updatedByAdmin");
        $this->db->from('tbl_student_semester_info TSSI');
        $this->db->join('tbl_staff_members TSMA', 'TSSI.tssi_added_by = TSMA.smember_id');
        $this->db->join('tbl_profile TPRFLA', 'TSMA.smember_id = TPRFLA.tprfl_id');
        $this->db->join('tbl_staff_members TSMU', 'TSSI.tssi_updated_by = TSMU.smember_id');
        $this->db->join('tbl_profile TPRFLU', 'TSMU.smember_id = TPRFLU.tprfl_id');
        $this->db->where('tssi_delete_status', 'F');
        $this->db->where('tssi_id', $tssi_id);
        return $this->db->get();
    }

    function getStudentSemesterInfoBy($tspi_id, $semester) {
        $this->db->select("*");
        $this->db->from('tbl_student_semester_info');
        $this->db->where('tssi_delete_status', 'F');
        $this->db->where('tssi_semester', $semester);
        $this->db->where('tspi_id', $tspi_id);
        return $this->db->get();
    }

    function getSemesterInfoOfStudentsBy(array $tspi_id) {
        $this->db->select("*");
        $this->db->from('tbl_student_semester_info');
        $this->db->where('tssi_delete_status', 'F');
        $this->db->where_in('tspi_id', $tspi_id);
        return $this->db->get();
    }

    function getStudentAllSemesterInfoBy($tspi_id) {
        $this->db->select("*,"
                . "CONCAT(TPRFLA.tprfl_firstname,' ',TPRFLA.tprfl_lastname) addedByAdmin,"
                . "CONCAT(TPRFLU.tprfl_firstname,' ',TPRFLU.tprfl_lastname) updatedByAdmin");
        $this->db->from('tbl_student_semester_info TSSI');
        $this->db->join('tbl_staff_members TSMA', 'TSSI.tssi_added_by = TSMA.smember_id');
        $this->db->join('tbl_profile TPRFLA', 'TSMA.smember_id = TPRFLA.tprfl_id');
        $this->db->join('tbl_staff_members TSMU', 'TSSI.tssi_updated_by = TSMU.smember_id');
        $this->db->join('tbl_profile TPRFLU', 'TSMU.smember_id = TPRFLU.tprfl_id');
        $this->db->where('tssi_delete_status', 'F');
        $this->db->where('tspi_id', $tspi_id);
        return $this->db->get();
    }

    function getStudentLastSemesterInfoBy($tspi_id) {
        $this->db->select("*");
        $this->db->from('tbl_student_semester_info');
        $this->db->where('tssi_delete_status', 'F');
        $this->db->where("tssi_semester = (select max(tssi_semester) last_sem from tbl_student_semester_info where tspi_id = " . $tspi_id . " and tssi_delete_status = 'F')");
        $this->db->where('tspi_id', $tspi_id);
        return $this->db->get();
    }

    function updateStudentSemesterInfo(array $studentUpdatedSemesterInfo) {
        $this->db->where('tssi_id', $studentUpdatedSemesterInfo['tssi_id']);
        return $this->db->update('tbl_student_semester_info', $studentUpdatedSemesterInfo);
    }

    function updateStudentSemesterInfoMulti(array $studentUpdatedSemesterInfoBatch) {
        return $this->db->update_batch('tbl_student_semester_info', $studentUpdatedSemesterInfoBatch, 'tssi_id');
    }

    /* Functions For Assesment/Test Marks Feeding & Related Stuffs */

    function getAllStudentAllotedToSubjectForMarksFeeding($subjectAllomenetID, $test_id) {
        $this->db->select("*,(SELECT ssa.ssa_semester from student_subject_allot ssa WHERE ssa.tspi_id = TSPI.tspi_id AND ssa.sm_id= SA.sm_id  ) as student_semester");
        $this->db->from("student_tech_allot STA");
        $this->db->join("subject_tech_allot SA", "SA.sta_id=STA.sta_id");
        $this->db->join("tbl_student_personal_info TSPI", "TSPI.tspi_id=STA.tspi_id");
        $this->db->join('tbl_univ_course_session_mapping TUCSM', 'TSPI.ucs_map_id = TUCSM.ucs_map_id');
        $this->db->join('tbl_session_master TSM', 'TUCSM.session_id = TSM.session_id');
        $this->db->join('tbl_course_sub_master TSCM', 'TUCSM.sub_course_id = TSCM.tcsm_id');
        $this->db->join('tbl_course_master TCM', 'TSCM.course_id = TCM.course_id');
        $this->db->where("STA.sta_id", $subjectAllomenetID);
        $this->db->where("TSPI.tspi_id NOT IN (SELECT tspi_id FROM obes_student_test_marks WHERE sta_id = " . $subjectAllomenetID . " AND sta_delete_status = 'F' AND test_id =" . $test_id . ")");
        $this->db->order_by("TSPI.tspi_name", "ASC");
        return $this->db->get();
    }

    function getAllStudentAllotedToSubjectForFeededMarksBy($subjectAllomenetID, $test_id) {
        $this->db->distinct();
        $this->db->select("tspi_rollNumber,tspi_name,STA.tspi_id,(SELECT ssa.ssa_semester from student_subject_allot ssa WHERE ssa.tspi_id = TSPI.tspi_id AND ssa.sm_id= SA.sm_id  ) as student_semester");
        $this->db->from("student_tech_allot STA");
        $this->db->join("subject_tech_allot SA", "SA.sta_id=STA.sta_id");
        $this->db->join("tbl_student_personal_info TSPI", "TSPI.tspi_id=STA.tspi_id");
        $this->db->join('tbl_univ_course_session_mapping TUCSM', 'TSPI.ucs_map_id = TUCSM.ucs_map_id');
        $this->db->join('tbl_session_master TSM', 'TUCSM.session_id = TSM.session_id');
        $this->db->join('tbl_course_sub_master TSCM', 'TUCSM.sub_course_id = TSCM.tcsm_id');
        $this->db->join('tbl_course_master TCM', 'TSCM.course_id = TCM.course_id');
        $this->db->where("STA.sta_id", $subjectAllomenetID);
        $this->db->where("TSPI.tspi_id IN (SELECT tspi_id FROM obes_student_test_marks WHERE sta_id = " . $subjectAllomenetID . " AND sta_delete_status = 'F' AND test_id =" . $test_id . ")");
        $this->db->order_by("TSPI.tspi_id", "ASC");
        return $this->db->get();
    }

    function getAllStudentAllotedToSubjectBy($sm_id, $session) {
        $this->db->select("*");
        $this->db->from("student_subject_allot SSA");
        $this->db->join("tbl_student_personal_info TSPI", "TSPI.tspi_id=SSA.tspi_id");
        $this->db->join('tbl_univ_course_session_mapping TUCSM', 'TSPI.ucs_map_id = TUCSM.ucs_map_id');
        $this->db->join('tbl_session_master TSM', 'TUCSM.session_id = TSM.session_id');
        $this->db->join('tbl_course_sub_master TSCM', 'TUCSM.sub_course_id = TSCM.tcsm_id');
        $this->db->join('tbl_course_master TCM', 'TSCM.course_id = TCM.course_id');
        $this->db->where("SSA.sm_id", $sm_id);
        $this->db->where("SSA.ssa_session", $session);
        $this->db->where("SSA.tspi_id IN (Select tspi_id from obes_student_test_marks)"); //only feeded marks student will reflect
        $this->db->order_by("TSPI.tspi_name", "ASC");
        return $this->db->get();
    }

    /* Functions For Subject Semester Marks Feeding & Related Stuffs */

    function getAllStudentAllotedToSubjectForSemMarksFeeding($sm_id, $session_id) {
        $this->db->select("*,(SELECT ssa.ssa_semester from student_subject_allot ssa WHERE ssa.tspi_id = TSPI.tspi_id AND ssa.sm_id= " . $sm_id . " ) as student_semester");
        $this->db->from(" student_subject_allot SSA");
        //$this->db->join("subject_tech_allot SA", "SA.sta_id=STA.sta_id");
        $this->db->join("tbl_student_personal_info TSPI", "TSPI.tspi_id=SSA.tspi_id");
        $this->db->join('tbl_univ_course_session_mapping TUCSM', 'TSPI.ucs_map_id = TUCSM.ucs_map_id');
        $this->db->join('tbl_session_master TSM', 'TUCSM.session_id = TSM.session_id');
        $this->db->join('tbl_course_sub_master TSCM', 'TUCSM.sub_course_id = TSCM.tcsm_id');
        $this->db->join('tbl_course_master TCM', 'TSCM.course_id = TCM.course_id');
        $this->db->where("SSA.sm_id", $sm_id);
        $this->db->where("SSA.ssa_session", $session_id);
        $this->db->where("TSPI.tspi_id NOT IN (SELECT tspi_id FROM student_subject_sem_marks WHERE sm_id = " . $sm_id . " AND sssm_delete_status = 'F'" . ")");
        $this->db->order_by("TSPI.tspi_name", "ASC");
        return $this->db->get();
    }

    function getAllStudentAllotedToSubjectForSemMarksView($sm_id, $session_id) {
        $this->db->select("*,(SELECT ssa.ssa_semester from student_subject_allot ssa WHERE ssa.tspi_id = TSPI.tspi_id AND ssa.sm_id= " . $sm_id . " ) as student_semester");
        $this->db->from(" student_subject_allot SSA");
        //$this->db->join("subject_tech_allot SA", "SA.sta_id=STA.sta_id");
        $this->db->join("tbl_student_personal_info TSPI", "TSPI.tspi_id=SSA.tspi_id");
        $this->db->join('tbl_univ_course_session_mapping TUCSM', 'TSPI.ucs_map_id = TUCSM.ucs_map_id');
        $this->db->join('tbl_session_master TSM', 'TUCSM.session_id = TSM.session_id');
        $this->db->join('tbl_course_sub_master TSCM', 'TUCSM.sub_course_id = TSCM.tcsm_id');
        $this->db->join('tbl_course_master TCM', 'TSCM.course_id = TCM.course_id');
        $this->db->join("student_subject_sem_marks SSSM", "SSSM.tspi_id=TSPI.tspi_id");
        $this->db->where("SSA.sm_id", $sm_id);
        $this->db->where("SSA.ssa_session", $session_id);
        $this->db->where("TSPI.tspi_id IN (SELECT tspi_id FROM student_subject_sem_marks WHERE SSSM.sm_id = " . $sm_id . " AND sssm_delete_status = 'F'" . ")");
        $this->db->order_by("TSPI.tspi_name", "ASC");
        return $this->db->get();
    }

    function feedNewStudentSubjectSemObtainMarks($newStudentQuesMarkData) {
        $this->db->insert_batch("student_subject_sem_marks", $newStudentQuesMarkData);
        return $this->db->insert_id();
    }

    function updateFeedNewStudentSubjectSemMaxMarks($newStudentSemMaxMarkData, $session_id, $sm_id) {
        $this->db->where("sm_id", $sm_id);
        $this->db->where("session_id", $session_id);
        return $this->db->update("student_subject_sem_marks", $newStudentSemMaxMarkData);
    }

    function updateFeedNewStudentSubjectSemObtainMarks($newStudentQuesMarkData) {
        return $this->db->update_batch("student_subject_sem_marks", $newStudentQuesMarkData, "sssm_id");
    }

    /* Functions For Reporting */

    function getStudentMiscellaneousReport($name = '', $course = '', $session = '', $ucsMapId = '', $gender = '', $category = '', $religion = '', $disability = '', $operator = '', $enrollSession = '', $startDate = '', $endDate = '', $rangeAppliedwith = '', $status = '') {
        $this->db->select("TSPI.tspi_id,TSPI.tspi_name,TSPI.ucs_map_id,TSPI.tspi_enrollment_no,TSPI.tspi_form_no,"
                . "TSPI.tspi_email,TSPI.tspi_mobile,TSPI.tspi_gender,TSPI.tspi_category,TSPI.tspi_religion,TSPI.tspi_dob,"
                . "TSPI.tspi_added_by,TSPI.tspi_added_on,TSPI.tspi_updated_by,TSPI.tspi_updated_on,"
                . "TSPI.tspi_status,FLAG_DECODER('STU_INFO',TSPI.tspi_status)status_text,"
                . "TSPI.tspi_rollNumber,TSPI.tspi_enrollment_date,TSPI.tspi_admission_date,"
                . "TSPI.tspi_is_diff_abled,TSPI.tspi_parent_annual_income,TSPI.tspi_remarks,"
                . "TSPI.tspi_ygap_applied,TSPI.tspi_scholarship_eligible,TSPI.tspi_scholarship_percentage,"
                . "TSPI.tspi_univ_rollNumber,TSPI.tspi_log_date,TSM.session_id,TSM.session_name,TCM.course_id,TCM.course_name,TSCM.tcsm_course_type,TSCM.tcsm_sem_start_from,"
                . "TSCI.tsci_id,TSCI.tsci_perma_state,TSCI.tsci_perma_city,TSCI.tsci_perma_zipcode,TSCI.tsci_resid_state,"
                . "TSCI.tsci_resid_city,TSCI.tsci_resid_zipcode,TSCI.tsci_parent_landline,TSCI.tsci_parent_mobile,"
                . "TSCI.tsci_added_on,TSCI.tsci_added_by,TSCI.tsci_updated_on,TSCI.tsci_updated_by,TSCI.tsci_perma_address_line_one,"
                . "TSCI.tsci_perma_address_line_two,TSCI.tsci_perma_address_line_three,TSCI.tsci_resid_address_line_one,"
                . "TSCI.tsci_resid_address_line_two,TSCI.tsci_resid_address_line_three,TSMRESID.state_name residState,"
                . "TCMRESID.city_name residCity,TSMPERMA.state_name permaState,TCMPERMA.city_name permaCity,"
                . "TSEI.tsevi_id,TSEI.tsevi_is_prof_exp,TSEI.tsevi_no_of_years,TSEI.tsevi_organization,TSEI.tsevi_job_desc,"
                . "TSEI.tsevi_extra_activities,TSEI.tsevi_how_know_sms,TSEI.tsevi_entrance_through,TSEI.tsevi_form_no,"
                . "TSEI.tsevi_composite_score,TSEI.tsevi_percnt_obtained,TSEI.tsevi_rank,TSEI.tsevi_added_on,TSEI.tsevi_updated_on,"
                . "TSEI.tsevi_added_by,TSEI.tsevi_updated_by,TSEI.tsevi_percntage,TSHRI.tshri_id,TSHRI.tshri_is_hostel_opted,"
                . "TSHRI.tshri_resid_choice,TSHRI.tshri_comm_state,TSHRI.tshri_comm_city,TSHRI.tshri_comm_zipcode,"
                . "TSHRI.tshri_comm_tel_no,TSHRI.tshri_comm_mobile,TSHRI.tshri_loc_guard_name,TSHRI.tshri_loc_guard_state,"
                . "TSHRI.tshri_loc_guard_city,TSHRI.tshri_loc_guard_tel_no,TSHRI.tshri_loc_guard_mob,TSHRI.tshri_added_on,"
                . "TSHRI.tshri_updated_on,TSHRI.tshri_added_by,TSHRI.tshri_updated_by,TSHRI.tshri_loc_guard_zipcode,"
                . "TSHRI.tshri_comm_address_line_one,TSHRI.tshri_comm_address_line_two,TSHRI.tshri_comm_address_line_three,"
                . "TSHRI.tshri_loc_guard_address_line_one,TSHRI.tshri_loc_guard_address_line_two,TSHRI.tshri_loc_guard_address_line_three,"
                . "TSMLOCGUARD.state_name loc_guard_state_name,TCMLOCGUARD.city_name loc_guard_city_name,"
                . "TSMCOMM.state_name comm_addr_state_name,TCMCOMM.city_name comm_addr_city_name,TIPIADH.tipi_number aadharNumber,"
                . "TDDIPIC.tddi_doc_file_path photoFileName,TDDISIGN.tddi_doc_file_path signFileName,TFBIMOT.tfbi_name motherName,"
                . "TFBIFAT.tfbi_name fatherName");
        $this->db->from('tbl_student_personal_info TSPI');
        $this->db->join('tbl_univ_course_session_mapping TUCSM', 'TSPI.ucs_map_id = TUCSM.ucs_map_id');
        $this->db->join('tbl_session_master TSM', 'TUCSM.session_id = TSM.session_id');
        $this->db->join('tbl_course_sub_master TSCM', 'TUCSM.sub_course_id = TSCM.tcsm_id');
        $this->db->join('tbl_course_master TCM', 'TSCM.course_id = TCM.course_id');
        $this->db->join('tbl_student_contact_info TSCI', 'TSPI.tspi_id = TSCI.tspi_id');
        $this->db->join('tbl_states_master TSMRESID', 'TSCI.tsci_resid_state = TSMRESID.state_id');
        $this->db->join('tbl_city_master TCMRESID', 'TSCI.tsci_resid_city = TCMRESID.city_id');
        $this->db->join('tbl_states_master TSMPERMA', 'TSCI.tsci_perma_state = TSMPERMA.state_id');
        $this->db->join('tbl_city_master TCMPERMA', 'TSCI.tsci_perma_city = TCMPERMA.city_id');
        $this->db->join('tbl_student_entrance_info TSEI', 'TSPI.tspi_id = TSEI.tspi_id');
        $this->db->join('tbl_student_hostel_resid_info TSHRI', 'TSPI.tspi_id = TSHRI.tspi_id');
        $this->db->join('tbl_states_master TSMLOCGUARD', 'TSHRI.tshri_loc_guard_state = TSMLOCGUARD.state_id');
        $this->db->join('tbl_city_master TCMLOCGUARD', 'TSHRI.tshri_loc_guard_city = TCMLOCGUARD.city_id');
        $this->db->join('tbl_states_master TSMCOMM', 'TSHRI.tshri_comm_state = TSMCOMM.state_id');
        $this->db->join('tbl_city_master TCMCOMM', 'TSHRI.tshri_comm_city = TCMCOMM.city_id');
        $this->db->join('tbl_family_background_info TFBIMOT', 'TSPI.tspi_id = TFBIMOT.tfbi_mapping_id');
        $this->db->join('tbl_family_background_info TFBIFAT', 'TSPI.tspi_id = TFBIFAT.tfbi_mapping_id');
        $this->db->join('tbl_document_document_info TDDIPIC', 'TSPI.tspi_id = TDDIPIC.tddi_mapping_id');
        $this->db->join('tbl_document_master TDOCMPIC', 'TDDIPIC.tddi_doc_id = TDOCMPIC.doc_id');
        $this->db->join('tbl_document_document_info TDDISIGN', 'TSPI.tspi_id = TDDISIGN.tddi_mapping_id');
        $this->db->join('tbl_document_master TDOCMSIGN', 'TDDISIGN.tddi_doc_id = TDOCMSIGN.doc_id');
        $this->db->join('tbl_id_proof_info TIPIADH', 'TSPI.tspi_id = TIPIADH.tipi_for');
        $this->db->where("TFBIMOT.tfbi_user_type_flag", "S");
        $this->db->where("TFBIMOT.tfbi_organization", "NA");
        $this->db->where("TFBIMOT.tfbi_designation", "NA");
        $this->db->where("TFBIMOT.tfbi_relation = (SELECT rel_id FROM tbl_relation_master WHERE rel_title like 'mother%' and rel_code = 1)");
        $this->db->where("TFBIFAT.tfbi_user_type_flag", "S");
        $this->db->where("TFBIFAT.tfbi_organization", "NA");
        $this->db->where("TFBIFAT.tfbi_designation", "NA");
        $this->db->where("TFBIFAT.tfbi_relation = (SELECT rel_id FROM tbl_relation_master WHERE rel_title like 'father%' and rel_code = 2)");
        $this->db->where("TDDIPIC.tddi_user_type_flag", "S");
        $this->db->where("TDOCMPIC.doc_flag", "SP");
        $this->db->where("TDOCMPIC.doc_related_to", "S");
        $this->db->where("TDDISIGN.tddi_user_type_flag", "S");
        $this->db->where("TDOCMSIGN.doc_flag", "SS");
        $this->db->where("TDOCMSIGN.doc_related_to", "S");
        $this->db->where("TIPIADH.tipsm_id = (SELECT tipsm_id FROM tbl_id_proof_sub_master WHERE tipm_id = (SELECT tipm_id FROM tbl_id_proof_master WHERE tipm_code = '2') and (tipsm_for = 'S'))");
        $this->db->where("TSPI.tspi_delete_status", "F");
        $this->db->where("TSPI.tspi_name LIKE '%" . $name . "%'");
        $this->db->where("TSPI.tspi_gender LIKE '%" . $gender . "%'");
        $this->db->where("TSPI.tspi_is_diff_abled LIKE '%" . $disability . "%'");
        /* Category Wise Filter */
        if ($category != '') {
            $this->db->where("TSPI.tspi_category", $category);
        }
        /* Category Wise Filter */
        /* Religion Wise Filter */
        if ($religion != '') {
            $this->db->where("TSPI.tspi_religion", $religion);
        }
        /* Religion Wise Filter */
        /* Status Wise Filter */
        if ($status != '') {
            $this->db->where("TSPI.tspi_status", $status);
        }
        /* Status Wise Filter */
        /* Course/Session/Entry Type Combination */
        if ($ucsMapId != '') {
            $this->db->where("TUCSM.ucs_map_id", $ucsMapId);
        } else if ($course != '' && $session != '' && $ucsMapId == '') {
            $this->db->where("TCM.course_id", $course);
            $this->db->where("TSM.session_id", $session);
        } else if ($course != '' && $session == '' && $ucsMapId == '') {
            $this->db->where("TCM.course_id", $course);
        } else if ($course == '' && $session != '' && $ucsMapId == '') {
            $this->db->where("TSM.session_id", $session);
        }
        /* Course/Session/Entry Type Combination */
        /* Entry Operator Wise Filter */
        if ($operator != '') {
            $this->db->where("TSPI.tspi_added_by", $operator);
        }
        /* Entry Operator Wise Filter */
        /* Enrolled Session Wise Filter */
        if ($enrollSession != '') {
            $this->db->where("TSM.session_id", $enrollSession);
        }
        /* Enrolled Session Wise Filter */
        /* Dates Combination */
        if ($startDate != '' && $endDate != '' && $rangeAppliedwith != '') {
            if ($rangeAppliedwith == "ENTDT") {
                $this->db->where("TSPI.tspi_added_on >= '" . $startDate . "' && TSPI.tspi_added_on <= '" . $endDate . "'");
            } else if ($rangeAppliedwith == "ADMDT") {
                $this->db->where("TSPI.tspi_admission_date >= '" . $startDate . "' && TSPI.tspi_admission_date <= '" . $endDate . "'");
            } else {
                $this->db->where("TSPI.tspi_enrollment_date >= '" . $startDate . "' && TSPI.tspi_enrollment_date <= '" . $endDate . "'");
            }
        } else if ($startDate == '' && $endDate != '' && $rangeAppliedwith != '') {
            if ($rangeAppliedwith == "ENTDT") {
                $this->db->where("TSPI.tspi_added_on <= '" . $endDate . "'");
            } else if ($rangeAppliedwith == "ADMDT") {
                $this->db->where("TSPI.tspi_admission_date <= '" . $endDate . "'");
            } else {
                $this->db->where("TSPI.tspi_enrollment_date <= '" . $endDate . "'");
            }
        } else if ($startDate != '' && $endDate == '' && $rangeAppliedwith != '') {
            if ($rangeAppliedwith == "ENTDT") {
                $this->db->where("TSPI.tspi_added_on >= '" . $startDate . "'");
            } else if ($rangeAppliedwith == "ADMDT") {
                $this->db->where("TSPI.tspi_admission_date >= '" . $startDate . "'");
            } else {
                $this->db->where("TSPI.tspi_enrollment_date >= '" . $startDate . "'");
            }
        }
        /* Dates Combination */
        return $this->db->get();
    }

}

KBHT - 2023