!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.99 GB of 127.8 GB (39.9%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


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

    // ##### start ลงทะเบียนเรียนรายกลุ่ม/ชั้นปี
    
function showRegisCur() {
        
$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_curriculum','cur');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_regist','rg');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_realstudyplan','rsp');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_student','std');

        
/* หาชั้นปี */
        
$rs_sy $this->sy->qrySy();
        
$this->contents['rs_sy'] = $rs_sy;

        
/* หาภาคการศึกษา */
        
$rs_tm $this->tm->qryTm();
        
$this->contents['rs_tm'] = $rs_tm;

        
$i 0;
        
$arr = array();
        
/* หาหลักสูตรที่สถานะการใช้เป็น Y โดยเรียงตามชื่อหลักสูตร จาก ก ไป ฮ */
        
$con_rs_cur = array('curStatus'    => 'Y');
        
$ord_rs_cur = array('curName'    => 'ASC');
        
$rs_cur $this->cur->qryCur($con_rs_cur$ord_rs_cur);
        if (
$rs_cur->num_rows()) {
            foreach (
$rs_cur->result() as $row_cur) {
                
$arr[$i]['level'] = 0;
                
$arr[$i]['name'] = $row_cur->curName;

                
$i++;

                
$rs_std $this->std->qryStdByCurIdGroupAdY($row_cur->curId);
                if (
$rs_std->num_rows()) {
                    foreach (
$rs_std->result() as $row_std) {
                        foreach (
$rs_sy->result() as $row_sy) {
                            foreach (
$rs_tm->result() as $row_tm) {
                                
$acY $row_std->stdAdY $row_sy->syId 1;

                                
$con_rs_rsp = array('rspCurId'    => $row_cur->curId,
                                    
'rspAdY'    => $row_std->stdAdY,
                                    
'rspSyId'    => $row_sy->syId,
                                    
'rspTmId'    => $row_tm->tmId
                                
);
                                
$rs_rsp $this->rsp->qryRsp($con_rs_rsp);

                                if (
$rs_rsp->num_rows()) {
                                    
$con_rs_rg = array('rgAcY'    => $acY,
                                        
'rgTmId'    => $row_tm->tmId,
                                        
'rgSyId'    => $row_sy->syId,
                                        
'rgCurId'    => $row_cur->curId,
                                        
'stdAdY'    => $row_std->stdAdY
                                    
);
                                    
$rs_rg $this->rg->qryRgJoinStd($con_rs_rg);

                                    
/* กำหนดสถานะการแสดงรูปการลงทะเบียน
                                       0 คือ ยังไม่มีการกำหนดโปรแกรมการเรียนจริง และลงทะเบียนเรียน
                                       1 คือ กำหนดโปรแกรมการเรียนจริงแล้ว
                                       2 คือ ลงทะเบียนเรียนจริงแล้ว */

                                    
if ($rs_rg->num_rows()) {
                                        
$link 2;
                                    } else {
                                        
$link 1;
                                    }
                                } else {
                                    
$link 0;
                                }

                                
$arr[$i]['level'] = 1;
                                
$arr[$i]['name'] = $row_std->stdAdY;
                                
$arr[$i]['url'][] = "{'curId':$row_cur->curId,'adY':$row_std->stdAdY,'acY':$acY,'syId':$row_sy->syId,'tmId':$row_tm->tmId}";
                                
$arr[$i]['link'][] = $link;
                            }    
// end foreach tm
                        
}    // end foreach sy

                        
$i++;
                    }    
// end foreach std
                
}    // end if std
            
}    // end foreach cur
        
}    // end if cur

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

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

    
/* ตัวแปรที่ส่งมา
       - $key                คือ รหัสหลักสูตร
       - $rowAcY->stdAdY    คือ ปีที่เข้า
       - $acY                คือ ปีการศึกษาที่ต้องการลงทะเบียน
       - $sy                คือ ชั้นปี
       - $tm                คือ เทอม */
    
function addRegisCur() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_curriculum','cur');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_realstudyplan','rsp');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_studyyear','sy');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_term','tm');

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

        
$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();

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

        
$con_rs_rsp = array('rspCurId'    => $curId,
            
'rspAdY'    => $adY,
            
'rspSyId'    => $syId,
            
'rspTmId'    => $tmId
        
);
        
$ord_rs_rsp = array('crsCode'     => 'ASC',
            
'crsName'     => 'ASC'
        
);
        
//$this->contents['rs_rsp'] = $this->rsp->qryRspJoinCoCrs($con_rs_rsp, $ord_rs_rsp);// หารายวิชา
        
$this->contents['rs_rsp'] = $this->rsp->qryRspJoinCoCrsGroupCrsId($con_rs_rsp);
//echo $this->db->last_query();
        
$this->output($this->config->item("rg_folder")."v_addRegisCurriculum");
    }

    function 
processRegisCur() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_realstudyplan','rsp');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_coursefeetp','crft');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_student','std');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_regist','rg');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopen','co');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_course','crs');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registdetails','rd');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopenfor','cof');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registfee','rf');

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

        
/* ปีการศึกษาที่เริ่มคิดค่าหน่วยกิตแบบเหมาจ่าย */
        
$reviseY $this->config->item('reviseY'); //2552;

        // ************************************************** Start Check **************************************************
        
$con_rs_rsp = array('rspCurId'    => $curId,
            
'rspAdY'    => $adY,
            
'rspSyId'    => $syId,
            
'rspTmId'    => $tmId
        
);
        
$rs_rsp $this->rsp->qryRspJoinCoCrs($con_rs_rsp);
        foreach (
$rs_rsp->result() as $row_rsp) {
            if (
$row_rsp->crsStatus == 'Y') {
                
$msg "ไม่สามารถลงทะเบียนเรียนรายกลุ่ม/ชั้นปีได้<br />ต้องกลับไปแก้ไขโปรแกรมการเรียนจริงก่อน ";
                
//$msg .= "<span class=\"hand\" onClick=\"sendPost('hidform', {'curId':".$curId.",'syId':".$syId.",'tmId':".$tmId.",'adY':".$adY."}, '".site_url($this->config->item("rg_folder")."preregis/addRealStudyPlan")."')\">คลิกที่นี่</span>";

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

        
// Not found CourseFeeTP
        // ทำเฉพาะ นศ. ปีเข้า < 2552
        
if ($adY $reviseY) {
            
$this->crft->crftCurId $curId;
            
$this->crft->crftAcY $acY;
            
$this->crft->crftAdY = ($acY $reviseY) ? $adY
            
$this->crft->crftSyId = ($acY $reviseY) ? $syId;
            
$this->crft->crftTmId $tmId;
            
$qu_crft $this->crft->get_by_key();

            if (!
$qu_crft->num_rows()) {
                
$msg "ไม่สามารถลงทะเบียนเรียนรายกลุ่ม/ชั้นปีได้<br />ต้องกลับไปบันทึกข้อมูลค่าใช้จ่ายประเภทค่าหน่วยกิตก่อน";
                
/*$msg = "ไม่สามารถลงทะเบียนเรียนรายกลุ่ม/ชั้นปีได้<br/>
                ต้องกลับไปบันทึกข้อมูลค่าใช้จ่ายประเภทค่าหน่วยกิตก่อน"; */
                //$msg .= "<span class=\"hand\" onClick=\"sendPost('hidform', {'curId':".$curId.",'acY':".$acY.",'tmId':".$tmId."}, '".site_url($this->config->item("rg_folder")."preregis/addCourseFeeTP")."')\">คลิกที่นี่</span>";

                
$this->session->set_flashdata('msg'$msg);
                
redirect($this->config->item('rg_folder')."msg/err_msg");
            }
        }
        
// ************************************************** End Check **************************************************

        
set_time_limit(0);
        
ini_set('display_errors'1);
        
ini_set('display_startup_errors'1);

        
error_reporting(E_ALL);
        
$flagCommit true;
        
$this->db->trans_begin();

        
$rs_std $this->std->qryStdByCurIdAdYSyIdSstIdStr($curId$adY$syId1);
$flgmsg $rs_std->num_rows." loop <BR>";
$irs_std=0;
        foreach (
$rs_std->result() as $row_std) {
            
$irs_std++;
            
$con_qu_rg = array('rgStdId'    => $row_std->stdId,
                
'rgAcY'    => $acY,
                
'rgTmId'    => $tmId
            
);
            
$flgmsg $row_std->stdId." stdId irs_std:$irs_std , numrow:".$rs_std->num_rows."<BR>";
            
$rgSeq $this->rg->getNextSeq($con_qu_rg);
            
// Insert Regist
            
$this->rg->rgStdId $row_std->stdId;
            
$this->rg->rgTmId $tmId;
            
$this->rg->rgAcY $acY;
            
$this->rg->rgSeq $rgSeq;
            
$this->rg->rgSubmitType 'B';
            
$this->rg->rgStatus 'N';
            
$this->rg->rgCurId $curId;
            
$this->rg->rgSyId $syId;
            
$this->rg->rgCreateDate date('Y-m-d H:i:s');
            
$this->rg->rgCreateUserId $this->session->userdata('UsLogin');
            
$this->rg->rgUpdateDate date('Y-m-d H:i:s');
            
$this->rg->rgUpdateUserId $this->session->userdata('UsLogin');
            
$this->rg->insert();
            
//echo "{ ".$row_std->stdId.":".(($this->db->trans_status() === false)?"fail":"pass")."<br>";
            //echo $this->db->_error_message()."<br>";

            // Insert RegistDetails
            
$con_rs_rsp = array('rspCurId'    => $curId,
                
'rspAdY'    => $adY,
                
'rspSyId'    => $syId,
                
'rspTmId'    => $tmId
            
);
            
$rs_rsp $this->rsp->qryRsp($con_rs_rsp);
            foreach (
$rs_rsp->result() as $row_rsp) {
                
$this->co->coId $row_rsp->rspCoId;
                
$qu_co $this->co->get_by_key();
                
$row_co1 $qu_co->row();

                
$flag 0;
                
$i 0;
                while ((
$flag == 0) && ($i $row_co1->coSectionClass)) {
                    
$tmpClId $row_rsp->rspCoId $i;

                    
$qu_co $this->co->qryCoByStdIdCoIdEmpty($row_std->stdId$tmpClId);
                    if (
$qu_co->num_rows()) {
                        
$row_co2 $qu_co->row();

                        
$this->crs->crsId $row_co2->coCrsId;
                        
$qu_crs $this->crs->get_by_key();
                        
$row_crs $qu_crs->row();

                        
$this->rd->rdAcY $acY;
                        
$this->rd->rdStdId $row_std->stdId;
                        
$this->rd->rdTmId $tmId;
                        
$this->rd->rdCoId $row_rsp->rspCoId $i;
                        
$this->rd->rdSeq $rgSeq;
                        
$this->rd->rdCreditAttempt $row_crs->crsCreditTotal;
                        
$this->rd->rdSection $row_co2->coSection;
                        
$this->rd->rdGrade '';
                        
$this->rd->rdDocNo '';
                        
$this->rd->rdCredit1 $row_crs->crsCredit1;
                        
$this->rd->rdCredit2 $row_crs->crsCredit2;
                        
$this->rd->rdNoCalGPA $row_rsp->rspNoCalGPA;
                        
$this->rd->rdAllowPr 'N';
                        
$this->rd->rdCdId1 $row_rsp->rspCdId1;
                        
$this->rd->rdCdId2 $row_rsp->rspCdId2;
                        
$this->rd->rdUpdateDate date('Y-m-d H:i:s');
                        
$this->rd->rdUpdateUserId $this->session->userdata('UsLogin');
                        
$this->rd->insert();
                        
//echo $row_std->stdId.":".(($this->db->trans_status() === false)?"fail":"pass")."<br>";
                        //echo $this->db->_error_message()."<br>"." }";

                        // Update ClassOpenFor
                        
if (is_null($row_co2->coCurId)) {
                            
$this->cof->cofCoId $tmpClId;
                            
$this->cof->cofCurId $curId;
                            
$this->cof->get_by_key(TRUE);
                            
$this->cof->cofNumEnroll += 1;
                            
$this->cof->update();
                        }

                        
// Update Class
                        
$this->co->coId $row_co2->coId;
                        
$this->co->get_by_key(TRUE);
                        
$this->co->coNumSeatReg += 1;
                        
$this->co->update();

                        
$flag 1;
                    }    
// end if co
                    
$i++;
                }    
// end while
                
            
}    // end foreach rsp

            // Insert EnrollFee
            
$con_rs_rf = array('rfStdId'    => $row_std->stdId,
                
'rfAcY'    => $acY,
                
'rfTmId'    => $tmId
            
);
            
$rs_rf $this->rf->qryRf($con_rs_rf);

            
// Not found
            
if ($rs_rf->num_rows() == 0) {
                
// Insert EnrollFee
                
$this->rf->rfId '';
                
$this->rf->rfAcY $acY;
                
$this->rf->rfTotalAmt 0;
                
$this->rf->rfBalance 0;
                
$this->rf->rfRefNo $acY.$tmId.$rgSeq.$row_std->stdCode;
                
$this->rf->rfStdId $row_std->stdId;
                
$this->rf->rfSyId $syId;
                
$this->rf->rfTmId $tmId;
                
$this->rf->rfCurId $curId;
                
$this->rf->rfCreateDate date('Y-m-d H:i:s');
                
$this->rf->rfCreateUserId $this->session->userdata('UsLogin');
                
$this->rf->rfUpdateDate date('Y-m-d H:i:s');
                
$this->rf->rfUpdateUserId $this->session->userdata('UsLogin');
                
$this->rf->insert();

                
$rfId $this->rf->last_insert_id();
            } else {
                
$rfId $rs_rf->row()->rfId;
            }

            
$this->rf->rfId $rfId;
            
$this->rf->get_by_key(TRUE);
            if (
$row_std->stdAdY >= $reviseY) {
                
$this->rf->rfTotalAmt $this->calFee2552($row_std->stdId$acY$syId$tmId$curId$row_std->stdEtId$row_std->stdAdY);
            } else {
                
$this->rf->rfTotalAmt $this->calFee($row_std->stdId$acY$syId$tmId$curId$row_std->stdEtId);
            }

            
$this->rf->rfBalance $this->rf->rfTotalAmt;
            
$this->rf->rfUpdateDate date('Y-m-d H:i:s');
            
$this->rf->rfUpdateUserId $this->session->userdata('UsLogin');
            
$this->rf->update();
            


        }    
// end foreach std

        
if ($this->db->trans_status() === false) {
            
$this->db->trans_rollback();
            
$flgmsg .= "ลงทะเบียนไม่สำเร็จ ";

            
//echo "<pre>".print_r($this->db)."</pre>";
            
die;
        } else {
            
$this->db->trans_commit();
            
$flgmsg "ลงทะเบียนสำเร็จ";
        }

        
set_time_limit(30);

        
$this->session->set_flashdata('success_msg'$flgmsg);
        
redirect($this->config->item("rg_folder")."regis/showRegisCur");
    }

    function 
calFee($stdId$acY$syId$tmId$curId$etId) {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_commonfee','cmf');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_commonfeetp','cmft');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_fee','fee');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_curriculumfee','cf');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_curriculumfeetp','cft');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_studentdomitory','sdm');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_domitoryfeetp','dft');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_coursefeetp','crft');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registfee','rf');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registdetails','rd');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_coursefee','crf');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_student','std');

        
// ---------- หาเด็ก -------------
        
$this->std->stdId $stdId;
        
$this->std->get_by_key(TRUE);

        
// ---------- CommonFee ----------
        
$con_rs_cmf = array('cmfStdId'     => $stdId,
            
'cmfAcY'     => $acY,
            
'cmfTmId'     => $tmId
        
);
        
$rs_cmf $this->cmf->qryCmf($con_rs_cmf);
        foreach (
$rs_cmf->result() as $row_cmf) {
            
$this->cmf->cmfStdId $stdId;
            
$this->cmf->cmfAcY $acY;
            
$this->cmf->cmfTmId $tmId;
            
$this->cmf->cmfFeeId $row_cmf->cmfFeeId;
            
$this->cmf->delete();
        }

        
$sumCommonFee 0;
        
$con_rs_cmft = array('cmftAcY'    => $acY,
            
'cmftTmId'    => $tmId,
            
'cmftIsDom'    => 'N'
        
);
        
$rs_cmft $this->cmft->qryCmft($con_rs_cmft);
        foreach (
$rs_cmft->result() as $row_cmft) {
            
$this->fee->feeId $row_cmft->cmftFeeId;
            
$qu_fee $this->fee->get_by_key();
            
$row_fee $qu_fee->row();

            if (((
$row_fee->feePytId == 1) && ($syId == 1)) || ($row_fee->feePytId != 1)) {
                
$this->cmf->cmfStdId $stdId;
                
$this->cmf->cmfAcY $acY;
                
$this->cmf->cmfTmId $tmId;
                
$this->cmf->cmfFeeId $row_cmft->cmftFeeId;
                
$qu_cmf $this->cmf->get_by_key();

                
// Not found
                
if ($qu_cmf->num_rows() == 0) {
                    
// Insert CommonFee
                    
$this->cmf->cmfAmt $row_cmft->cmftAmt;
                    
$this->cmf->insert();
                }
            }
        }

        
$con_qu_cmf = array('cmfStdId'    => $stdId,
            
'cmfAcY'    => $acY,
            
'cmfTmId'    => $tmId
        
);
        
$sumCommonFee $this->cmf->getSumAmt($con_qu_cmf);

        
// ---------- ProgramFee ----------
        
$con_rs_cf = array('cfStdId'    => $stdId,
            
'cfAcY'    => $acY,
            
'cfTmId'    => $tmId
        
);
        
$rs_cf $this->cf->qryCf($con_rs_cf);
        foreach (
$rs_cf->result() as $row_cf) {
            
$this->cf->cfStdId $stdId;
            
$this->cf->cfAcY $acY;
            
$this->cf->cfTmId $tmId;
            
$this->cf->cfFeeId $row_cf->cfFeeId;
            
$this->cf->delete();
        }

        
$sumProgramFee 0;
        
$con_rs_cft = array('cftCurId'    => $curId,
            
'cftAcY'    => $acY,
            
'cftTmId'    => $tmId
        
);
        
$rs_cft $this->cft->qryCft($con_rs_cft);
        foreach (
$rs_cft->result() as $row_cft) {
            
$this->fee->feeId $row_cft->cftFeeId;
            
$qu_fee $this->fee->get_by_key();
            
$row_fee $qu_fee->row();

            if (((
$row_fee->feePytId == 1) && ($syId == 1)) || ($row_fee->feePytId != 1)) {
                if (((
$row_fee->feeOnTop == 'Y') && ($etId == 2)) || ($row_fee->feeOnTop == 'N')) {
                    
$this->cf->cfStdId $stdId;
                    
$this->cf->cfAcY $acY;
                    
$this->cf->cfTmId $tmId;
                    
$this->cf->cfFeeId $row_cft->cftFeeId;
                    
$qu_cf $this->cf->get_by_key();

                    
// Not found
                    
if ($qu_cf->num_rows() == 0) {
                        
// Insert ProgramFee
                        
$this->cf->cfAmt $row_cft->cftAmt;
                        
$this->cf->insert();
                    }
                }
            }
        }

        
$con_qu_cf = array('cfStdId'    => $stdId,
            
'cfAcY'    => $acY,
            
'cfTmId'    => $tmId
        
);
        
$sumProgramFee $this->cf->getSumAmt($con_qu_cf);

        
// ---------- DomFee ----------
        
$domFee 0;
        
$con_rs_cmft = array('cmftAcY'    => $acY,
            
'cmftTmId'    => $tmId,
            
'cmftIsDom'    => 'Y'
        
);
        
$rs_cmft $this->cmft->qryCmft($con_rs_cmft);
        if (
$rs_cmft->num_rows()) {
            
$this->sdm->sdmStdId $stdId;
            
$this->sdm->sdmAcY $acY;
            
$this->sdm->sdmTmId $tmId;
            
$qu_sdm $this->sdm->get_by_key();

            
// Student stay dom
            
if ($qu_sdm->num_rows()) {
                
$this->dft->dftAcY $acY;
                
$this->dft->dftTmId $tmId;
                
$this->dft->dftDmId $qu_sdm->row()->sdmDmId;
                
$qu_dft $this->dft->get_by_key();

                
// Found dom fee
                
if ($qu_dft->num_rows()) {
                    
$this->cmf->cmfStdId $stdId;
                    
$this->cmf->cmfAcY $acY;
                    
$this->cmf->cmfTmId $tmId;
                    
$this->cmf->cmfFeeId $rs_cmft->row()->cmftFeeId;
                    
$qu_cmf $this->cmf->get_by_key();

                    
// Not found
                    
if ($qu_cmf->num_rows() == 0) {
                        
// Insert CommonFee
                        
$this->cmf->cmfAmt $qu_sdm->row()->sdmNumMonth $qu_dft->row()->dftAmt;
                        
$this->cmf->insert();
                        
$domFee $this->cmf->cmfAmt;
                    }
                }
            }
        }

        
// ---------- CourseFee ----------
        
$sumCourseFee 0;
        
$reviseY $this->config->item('reviseY');
        
$this->crft->crftCurId $curId;
        
$this->crft->crftAdY = ($acY $reviseY) ? $this->std->stdAdY;
        
$this->crft->crftSyId = ($acY $reviseY) ? $syId;
        
$this->crft->crftAcY $acY;
        
$this->crft->crftTmId $tmId;
        
$qu_crft $this->crft->get_by_key();
        if (
$qu_crft->num_rows()) {
            
$con_qu_rf = array('rfStdId'    => $stdId,
                
'rfSyId'    => $syId,
                
'rfAcY'    => $acY,
                
'rfTmId'    => $tmId
            
);
            
$qu_rf $this->rf->qryRf($con_qu_rf);

            if (
$qu_rf->num_rows()) {
                
$con_qu_rd = array('rdStdId'    => $stdId,
                    
'rdAcY'    => $acY,
                    
'rdTmId'    => $tmId
                
);
                
$sumcr1 $this->rd->getSumCr1($con_qu_rd);
                
$sumcr2 $this->rd->getSumCr2($con_qu_rd);

                
$this->crf->crfStdId $stdId;
                
$this->crf->crfAcY $acY;
                
$this->crf->crfTmId $tmId;
                
$this->crf->crfRfId $qu_rf->row()->rfId;
                
$qu_crf $this->crf->get_by_key();
                if (
$qu_crf->num_rows()) {    // Found
                    // Update CourseFee
                    
$this->crf->crfLecFeeAmt $sumcr1 $qu_crft->row()->crftLecCreditFee;
                    
$this->crf->crfLabFeeAmt $sumcr2 $qu_crft->row()->crftLabCreditFee;
                    
$this->crf->update();
                } else {    
// Not Found
                    // Insert CourseFee
                    
$this->crf->crfLecFeeAmt $sumcr1 $qu_crft->row()->crftLecCreditFee;
                    
$this->crf->crfLabFeeAmt $sumcr2 $qu_crft->row()->crftLabCreditFee;
                    
$this->crf->crfLateFineAmt 0;
                    
$this->crf->crfKssFeeAmt 0;
                    
$this->crf->insert();
                }

                
$sumCourseFee $this->crf->crfLecFeeAmt $this->crf->crfLabFeeAmt;
            }
        }

        return 
$sumCommonFee $sumProgramFee $domFee $sumCourseFee;
    }

    function 
calFee2552($stdId$acY$syId$tmId$curId$etId$adY) {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_commonfee','cmf');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_commonfeetp','cmft');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_curriculumfee','cf');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_curriculumfeetp','cft');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_fee','fee');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_studentdomitory','sdm');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_domitoryfeetp','dft');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_coursefeetp','crft');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registfee','rf');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registdetails','rd');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_coursefee','crf');

        
// ---------- CommonFee ----------
        
$con_rs_cmf = array('cmfStdId'     => $stdId,
            
'cmfAcY'     => $acY,
            
'cmfTmId'     => $tmId
        
);
        
$rs_cmf $this->cmf->qryCmf($con_rs_cmf);
        foreach (
$rs_cmf->result() as $row_cmf) {
            
$this->cmf->cmfStdId $stdId;
            
$this->cmf->cmfAcY $acY;
            
$this->cmf->cmfTmId $tmId;
            
$this->cmf->cmfFeeId $row_cmf->cmfFeeId;
            
$this->cmf->delete();
        }

        
$sumCommonFee 0;
        
$con_rs_cmft = array('cmftAdY'    => $adY,
            
'cmftSyId'    => $syId,
            
'cmftAcY'    => $acY,
            
'cmftTmId'    => $tmId,
            
'cmftIsDom'    => 'N'
        
);
        
$rs_cmft $this->cmft->qryCmft($con_rs_cmft);
        foreach (
$rs_cmft->result() as $row_cmft) {
            
$this->cmf->cmfStdId $stdId;
            
$this->cmf->cmfAcY $acY;
            
$this->cmf->cmfTmId $tmId;
            
$this->cmf->cmfFeeId $row_cmft->cmftFeeId;
            
$qu_cmf $this->cmf->get_by_key();

            
// Not found
            
if ($qu_cmf->num_rows() == 0) {
                
// Insert CommonFee
                
$this->cmf->cmfAmt $row_cmft->cmftAmt;
                
$this->cmf->insert();
            }
        }

        
$con_qu_cmf = array('cmfStdId'    => $stdId,
            
'cmfAcY'    => $acY,
            
'cmfTmId'    => $tmId
        
);
        
$sumCommonFee $this->cmf->getSumAmt($con_qu_cmf);

        
// ---------- ProgramFee ----------
        
$con_rs_cf = array('cfStdId'    => $stdId,
            
'cfAcY'    => $acY,
            
'cfTmId'    => $tmId
        
);
        
$rs_cf $this->cf->qryCf($con_rs_cf);
        foreach (
$rs_cf->result() as $row_cf) {
            
$this->cf->cfStdId $stdId;
            
$this->cf->cfAcY $acY;
            
$this->cf->cfTmId $tmId;
            
$this->cf->cfFeeId $row_cf->cfFeeId;
            
$this->cf->delete();
        }

        
$sumProgramFee 0;
        
$con_rs_cft = array('cftCurId'    => $curId,
            
'cftAdY'    => $adY,
            
'cftSyId'    => $syId,
            
'cftAcY'    => $acY,
            
'cftTmId'    => $tmId
        
);
        
$rs_cft $this->cft->qryCft($con_rs_cft);
        foreach (
$rs_cft->result() as $row_cft) {
            
$this->fee->feeId $row_cft->cftFeeId;
            
$qu_fee $this->fee->get_by_key();
            
$row_fee $qu_fee->row();

            if (((
$row_fee->feeOnTop == 'Y') && ($etId == 2)) || ($row_fee->feeOnTop == 'N')) {
                
$this->cf->cfStdId $stdId;
                
$this->cf->cfAcY $acY;
                
$this->cf->cfTmId $tmId;
                
$this->cf->cfFeeId $row_cft->cftFeeId;
                
$qu_cf $this->cf->get_by_key();

                
// Not found
                
if ($qu_cf->num_rows() == 0) {
                    
// Insert ProgramFee
                    
$this->cf->cfAmt $row_cft->cftAmt;
                    
$this->cf->insert();
                }
            }
        }

        
$con_qu_cf = array('cfStdId'    => $stdId,
            
'cfAcY'    => $acY,
            
'cfTmId'    => $tmId
        
);
        
$sumProgramFee $this->cf->getSumAmt($con_qu_cf);

        
// ---------- DomFee ----------
        
$domFee 0;
        
$con_rs_cmft = array('cmftAdY'    => $adY,
            
'cmftSyId'    => $syId,
            
'cmftAcY'    => $acY,
            
'cmftTmId'    => $tmId,
            
'cmftIsDom'    => 'Y'
        
);
        
$rs_cmft $this->cmft->qryCmft($con_rs_cmft);
        if (
$rs_cmft->num_rows()) {
            
$this->sdm->sdmStdId $stdId;
            
$this->sdm->sdmAcY $acY;
            
$this->sdm->sdmTmId $tmId;
            
$qu_sdm $this->sdm->get_by_key();

            
// Student stay dom
            
if ($qu_sdm->num_rows()) {
                
$this->dft->dftAcY $acY;
                
$this->dft->dftTmId $tmId;
                
$this->dft->dftDmId $qu_sdm->row()->sdmDmId;
                
$qu_dft $this->dft->get_by_key();
                
                
// Found dom fee
                
if ($qu_dft->num_rows()) {
                    
$this->cmf->cmfStdId $stdId;
                    
$this->cmf->cmfAcY $acY;
                    
$this->cmf->cmfTmId $tmId;
                    
$this->cmf->cmfFeeId $rs_cmft->row()->cmftFeeId;
                    
$qu_cmf $this->cmf->get_by_key();

                    
// Not found
                    
if ($qu_cmf->num_rows() == 0) {
                        
// Insert CommonFee
                        
$this->cmf->cmfAmt $qu_sdm->row()->sdmNumMonth $qu_dft->row()->dftAmt;
                        
$this->cmf->insert();
                        
$domFee $this->cmf->cmfAmt;
                    }
                }
            }
        }

        
// ---------- CourseFee ----------
        
$sumCourseFee 0;
        
$this->crft->crftCurId $curId;
        
$this->crft->crftAdY $adY;
        
$this->crft->crftSyId $syId;
        
$this->crft->crftAcY $acY;
        
$this->crft->crftTmId $tmId;
        
$qu_crft $this->crft->get_by_key();
        if (
$qu_crft->num_rows()) {
            
$con_qu_rf = array('rfStdId'    => $stdId,
                
'rfSyId'    => $syId,
                
'rfAcY'    => $acY,
                
'rfTmId'    => $tmId
            
);
            
$qu_rf $this->rf->qryRf($con_qu_rf);
            if (
$qu_rf->num_rows()) {
                
$con_qu_rd = array('rdStdId'    => $stdId,
                    
'rdAcY'    => $acY,
                    
'rdTmId'    => $tmId
                
);
                
$sumcr1 $this->rd->getSumCr1($con_qu_rd);
                
$sumcr2 $this->rd->getSumCr2($con_qu_rd);

                
$this->crf->crfStdId $stdId;
                
$this->crf->crfAcY $acY;
                
$this->crf->crfTmId $tmId;
                
$this->crf->crfRfId $qu_rf->row()->rfId;
                
$qu_crf $this->crf->get_by_key();
                if (
$qu_crf->num_rows()) {    // Found
                    // Update CourseFee
                    
$this->crf->crfLecFeeAmt $sumcr1 $qu_crft->row()->crftLecCreditFee;
                    
$this->crf->crfLabFeeAmt $sumcr2 $qu_crft->row()->crftLabCreditFee;
                    
$this->crf->update();
                } else {    
// Not Found
                    // Insert CourseFee
                    
$this->crf->crfLecFeeAmt $sumcr1 $qu_crft->row()->crftLecCreditFee;
                    
$this->crf->crfLabFeeAmt $sumcr2 $qu_crft->row()->crftLabCreditFee;
                    
$this->crf->crfLateFineAmt 0;
                    
$this->crf->crfKssFeeAmt 0;
                    
$this->crf->insert();
                }

                
$sumCourseFee $this->crf->crfLecFeeAmt $this->crf->crfLabFeeAmt;
            }
        }

        return 
$sumCommonFee $sumProgramFee $domFee $sumCourseFee;
    }
    
// ##### end ลงทะเบียนเรียนรายกลุ่ม/ชั้นปี

    // #### ยกเลิกการลงทะเบียนเรียนรายกลุ่ม/ชั้นปี
    
function delRegisCur() {
        
$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_curriculum','cur');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_student','std');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registfee','rf');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_regist','rg');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registdetails','rd');

        
$rs_sy $this->sy->qrySy();
        
$this->contents['rs_sy'] = $rs_sy;

        
$rs_tm $this->tm->qryTm();
        
$this->contents['rs_tm'] = $rs_tm;

        
$i 0;
        
$arr = array();
        
$con_rs_cur = array('curStatus'    => 'Y');
        
$ord_rs_cur = array('curName'    => 'ASC');
        
$rs_cur $this->cur->qryCur($con_rs_cur$ord_rs_cur);
        foreach (
$rs_cur->result() as $row_cur) {
            
$arr[$i]['level'] = 0;
            
$arr[$i]['name'] = $row_cur->curName;

            
$i++;

            
$rs_std $this->std->qryStdByCurIdGroupAdY($row_cur->curId);
            foreach (
$rs_std->result() as $row_std1) {
                
$stStatus '3, 4';
                
$rs_std $this->std->qryStdByCurIdAdYSstIdStr($row_cur->curId$row_std1->stdAdY$stStatus);

                foreach (
$rs_sy->result() as $row_sy) {
                    foreach (
$rs_tm->result() as $row_tm) {
                        
$acY $row_std1->stdAdY $row_sy->syId 1;

                        
$con_qu_rf = array('rfAcY'    => $acY,
                            
'rfSyId'    => $row_sy->syId,
                            
'rfTmId'    => $row_tm->tmId,
                            
'rfCurId'    => $row_cur->curId
                        
);
                        
$sumTtAmt $this->rf->getSumTotalAmt($con_qu_rf);
                        
$sumBl $this->rf->getSumBalance($con_qu_rf);

                        
$con_qu_rg = array('rgAcY'    => $acY,
                            
'rgSyId'    => $row_sy->syId,
                            
'rgCurId'    => $row_cur->curId
                        
);
                        
$maxTmId $this->rg->getMaxTmId($con_qu_rg);

                        
$con_rs_rd = array('rdAcY'    => $acY,
                            
'rdTmId'    => $row_tm->tmId,
                            
'coCurId'    => $row_cur->curId,
                            
'coSyId'    => $row_sy->syId
                        
);
                        
$rs_rd $this->rd->qryRdJoinCoByGrade($con_rs_rd);

                        
// ยกเลิกได้ ต่อเมื่อ เป็นภาค/ปีการศึกษาล่าสุด และ ยังไม่ชำระค่าลงทะเบียน และ ไม่มีสถานะรออนุมัติจบ/สำเร็จการศึกษา และ ยังไม่ส่งเกรด
                        
if (($row_std1->stdSyId == $row_sy->syId) && ($maxTmId == $row_tm->tmId) && ($sumTtAmt == $sumBl) && ($rs_std->num_rows() == 0) && ($rs_rd->num_rows() == 0)) {
                            
$con_rs_rg = array('rgAcY'    => $acY,
                                
'rgTmId'    => $row_tm->tmId,
                                
'rgSyId'    => $row_sy->syId,
                                
'rgCurId'    => $row_cur->curId
                            
);
                            
$rs_rg $this->rg->qryRg($con_rs_rg);
                            if (
$rs_rg->num_rows()) {
                                
$link 1;
                            } else {
                                
$link 2;
                            }
                        } else {
                            
$link 0;
                        }

                        
$arr[$i]['level'] = 1;
                        
$arr[$i]['name'] = $row_std1->stdAdY;
                        
$arr[$i]['url'][] = "{'curId':$row_cur->curId,'acY':$acY,'syId':$row_sy->syId,'tmId':$row_tm->tmId,'adY':$row_std1->stdAdY}";
                        
$arr[$i]['link'][] = $link;
                    }    
// end foreach tm
                
}    // end foreach sy

                
$i++;
            }    
//end foreach std
        
}    // end foreach cur
        
$this->contents['rs'] = $arr;

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

    function 
processDelRegisCur() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_student','std');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registdetails','rd');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopen','co');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopenfor','cof');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_regist','rg');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_commonfee','cmf');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_curriculumfee','cf');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_coursefee','crf');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registfee','rf');

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

        
$flagCommit true;
        
$this->db->trans_begin();

        
$con_rs_std = array('stdCurId'    => $curId,
            
'stdAdY'    => $adY,
            
'stdSyId'    => $syId
        
);
        
$ord_rs_std = array('stdCode'     => 'ASC');
        
$rs_std $this->std->qryStd($con_rs_std$ord_rs_std);
        foreach (
$rs_std->result() as $row_std) {
            
// EnrollItem
            
$con_rs_rd = array('rdStdId'    => $row_std->stdId,
                
'rdAcY'    => $acY,
                
'rdTmId'    => $tmId
            
);
            
$rs_rd $this->rd->qryRd($con_rs_rd);
            foreach (
$rs_rd->result() as $row_rd) {
                
// Delete EnrollItem
                
$this->rd->rdStdId $row_std->stdId;
                
$this->rd->rdAcY $row_rd->rdAcY;
                
$this->rd->rdTmId $row_rd->rdTmId;
                
$this->rd->rdSeq $row_rd->rdSeq;
                
$this->rd->rdCoId $row_rd->rdCoId;
                
$flagCommit $this->rd->delete();

                
$this->co->coId $row_rd->rdCoId;
                
$this->co->get_by_key(TRUE);

                
// Update ClassOpenFor
                
if (is_null($this->co->coCurId)) {
                    
$this->cof->cofCoId $row_rd->rdCoId;
                    
$this->cof->cofCurId $curId;
                    
$this->cof->get_by_key(TRUE);

                    
$this->cof->cofNumEnroll -= 1;
                    
$flagCommit $this->cof->update();
                }

                
// Update Class
                
$this->co->coNumSeatReg -= 1;
                
$flagCommit $this->co->update();
            }    
// end foreach rd

            // Enroll
            
$con_rs_rg = array('rgStdId'    => $row_std->stdId,
                
'rgAcY'    => $acY,
                
'rgTmId'    => $tmId
            
);
            
$rs_rg $this->rg->qryRg($con_rs_rg);
            foreach (
$rs_rg->result() as $row_rg) {
                
// Delete Enroll
                
$this->rg->rgStdId $row_rg->rgStdId;
                
$this->rg->rgAcY $row_rg->rgAcY;
                
$this->rg->rgTmId $row_rg->rgTmId;
                
$this->rg->rgSeq $row_rg->rgSeq;
                
$flagCommit $this->rg->delete();
            }

            
// CommonFee
            
$con_rs_cmf = array('cmfStdId'     => $row_std->stdId,
                
'cmfAcY'    => $acY,
                
'cmfTmId'    => $tmId
            
);
            
$rs_cmf $this->cmf->qryCmf($con_rs_cmf);
            foreach (
$rs_cmf->result() as $row_cmf) {
                
// Delete CommonFee
                
$this->cmf->cmfStdId $row_cmf->cmfStdId;
                
$this->cmf->cmfAcY $row_cmf->cmfAcY;
                
$this->cmf->cmfTmId $row_cmf->cmfTmId;
                
$this->cmf->cmfFeeId $row_cmf->cmfFeeId;
                
$flagCommit $this->cmf->delete();
            }

            
// ProgramFee
            
$con_rs_cf = array('cfStdId'    => $row_std->stdId,
                
'cfAcY'    => $acY,
                
'cfTmId'    => $tmId
            
);
            
$rs_cf $this->cf->qryCf($con_rs_cf);
            foreach (
$rs_cf->result() as $row_cf) {
                
// Delete ProgramFee
                
$this->cf->cfStdId $row_cf->cfStdId;
                
$this->cf->cfAcY $row_cf->cfAcY;
                
$this->cf->cfTmId $row_cf->cfTmId;
                
$this->cf->cfFeeId $row_cf->cfFeeId;
                
$flagCommit $this->cf->delete();
            }

            
// CourseFee
            
$con_rs_crf = array('crfStdId'    => $row_std->stdId,
                
'crfAcY'    => $acY,
                
'crfTmId'    => $tmId
            
);
            
$rs_crf $this->crf->qryCrf($con_rs_crf);
            foreach (
$rs_crf->result() as $row_crf) {
                
// Delete CourseFee
                
$this->crf->crfStdId $row_crf->crfStdId;
                
$this->crf->crfAcY $row_crf->crfAcY;
                
$this->crf->crfTmId $row_crf->crfTmId;
                
$this->crf->crfRfId $row_crf->crfRfId;
                
$flagCommit $this->crf->delete();
            }

            
// EnrollFee
            
$con_rs_rf = array('rfStdId'    => $row_std->stdId,
                
'rfAcY'    => $acY,
                
'rfTmId'    => $tmId
            
);
            
$rs_rf $this->rf->qryRf($con_rs_rf);
            foreach (
$rs_rf->result() as $row_rf) {
                
// Delete EnrollFee
                
$this->rf->rfId $row_rf->rfId;
                
$flagCommit $this->rf->delete();
            }
        }    
// end foreach std

        
if ($this->db->trans_status() === false) {
            
$this->db->trans_rollback();
            
$flgmsg "ยกเลิกลงทะเบียนไม่สำเร็จ";
        } else {
            
$this->db->trans_commit();
            
$flgmsg "ยกเลิกลงทะเบียนสำเร็จ";
        }

        
$this->session->set_flashdata('success_msg'$flgmsg);
        
redirect($this->config->item("rg_folder")."regis/delRegisCur");
    }

    
// ##### ลงทะเบียนรายนักศึกษา
    
function showRegis() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_student','std');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_term','tm');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registdetails','rd');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_regist','rg');

        
$this->load->library('form_validation');
        
$this->form_validation->set_error_delimiters('<div class="error">','</div>');
        
$this->form_validation->set_rules('stdCode',' ','trim|required|xss_clean');

        if(
$this->form_validation->run() == true) {
    
            
$stdCode $this->input->post('stdCode');
            
$acY $this->session->userdata('acY_R');
            
$tmId $this->session->userdata('tmId_R');

            if (
$stdCode) {
                
$this->contents['stdCode'] = "";

                
$con_qu_std = array('stdCode'     => $stdCode,
                    
'stdSstId'    => 1,
                    
'stdGenStatus'    => 'Y'
                
);
                
$qu_std $this->std->qryStdJoinPfCurSySstElv($con_qu_std);
                if (
$qu_std->num_rows()) {
                    
$row_std $qu_std->row();

                    
$this->contents['stdCode'] = $stdCode;
                    
$this->contents['qu_std'] = $qu_std;
                    
$this->contents['acY_R'] = $acY;
                    
$this->contents['tmId_R'] = $tmId;

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

                    
$con_rs_rd = array('rdStdId'    => $row_std->stdId,
                        
'rdAcY'    => $acY,
                        
'rdTmId'    => $tmId
                    
);
                    
$this->contents['rs_rd'] = $this->rd->qryRdJoinCoCrs($con_rs_rd);

                    
$con_qu_rg = array('rgStdId'    => $row_std->stdId,
                        
'rgAcY'    => $acY,
                        
'rgTmId'    => $tmId,
                        
'rgStatus'    => 'K'
                    
);
                    
$qu_rg $this->rg->qryRg($con_qu_rg);
                    if (
$qu_rg->num_rows()) {
                        
$this->contents['kssFlag'] = "** รักษาสถานภาพการเป็นนักศึกษา **";
                    }

                    
$con_qu_rd = array('rdStdId'    => $row_std->stdId,
                        
'rdAcY'    => $acY,
                        
'rdTmId'    => $tmId
                    
);
                    
$this->contents['sumCrAt'] = $this->rd->getSumCrAt($con_qu_rd);
                } else {
                    
$con_qu_std = array('stdCode'     => $stdCode,
                        
'stdGenStatus'    => 'Y'
                    
);
                    
$qu_std $this->std->qryStdJoinPfCurSySstElv($con_qu_std);
                    if (
$qu_std->num_rows()) {
                        
$this->contents['qu_std'] = $qu_std;
                    } else {
                        
$this->contents['err_msg'] = "** ไม่ปรากฏรหัสนักศึกษาดังกล่าวในฐานข้อมูล **";
                    }
                }
            }    
// end if stdCode
        
} else {
            
$this->contents['err_msg'] = "** กรุณาป้อน **";
        }

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

    function 
rd_insert() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_student','std');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_regist','rg');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registdetails','rd');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopen','co');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopenfor','cof');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registfee','rf');

        
$rgStatus $this->input->post('rgStatus');
        
$rgSubmitType $this->input->post('rgSubmitType');
        
$stdId $this->input->post('stdId');
        
$stdCode $this->input->post('stdCode');
        
$curId $this->input->post('curId');
        
$syId $this->input->post('syId');
        
$acY $this->input->post('acY');
        
$tmId $this->input->post('tmId');
        
$rdCoId $this->input->post('rdCoId');
        
$reviseY 2552;

        
$flagCommit true;
        
$this->db->trans_begin();

        
$this->std->stdId $stdId;
        
$qu_std $this->std->get_by_key();
        
$row_std $qu_std->row();

        
$this->rg->rgStdId $stdId;
        
$this->rg->rgAcY $acY;
        
$this->rg->rgTmId $tmId;
        
$this->rg->rgSeq 1;
        
$qu_rg $this->rg->get_by_key();
        if (
$rgStatus == 'A') {
            
$con_rs_rg = array('rgStdId'    => $stdId,
                
'rgAcY'    => $acY,
                
'rgTmId'    => $tmId,
                
'rgStatus'    => $rgStatus
            
);
            
$qu_rg $this->rg->qryRg($con_rs_rg);
            if (
$qu_rg->num_rows() == 0) {
                
$con_qu_rg = array('rgStdId'    => $stdId,
                    
'rgAcY'    => $acY,
                    
'rgTmId'    => $tmId
                
);
                
$tmpSequence $this->rg->getNextSeq($con_qu_rg);
                
$this->rg->rgSeq $tmpSequence;
            }
        }

        if (
$qu_rg->num_rows() == 0) {
            
// Insert Enroll
            
$this->rg->rgSyId $syId;
            
$this->rg->rgCurId $curId;
            
$this->rg->rgSubmitType = ($rgSubmitType) ? $rgSubmitType 'B';
            
$this->rg->rgStatus $rgStatus;
            
$this->rg->rgCreateUserId $this->session->userdata('UsLogin');
            
$this->rg->rgCreateDate date('Y-m-d H:i:s');
            
$this->rg->rgUpdateUserId $this->session->userdata('UsLogin');
            
$this->rg->rgUpdateDate date('Y-m-d H:i:s');
            
$flagCommit $this->rg->insert();
        }

        
// Insert EnrollItem
        
$this->rd->rdStdId $stdId;
        
$this->rd->rdAcY $acY;
        
$this->rd->rdTmId $tmId;
        
$this->rd->rdSeq $this->rg->rgSeq;
        
$this->rd->rdCoId $rdCoId;
        
$this->rd->rdCreditAttempt $this->input->post('rdCreditAttempt');
        
$this->rd->rdSection $this->input->post('rdSection');
        
$this->rd->rdGrade '';
        
$this->rd->rdDocNo '';
        
$this->rd->rdCredit1 $this->input->post('rdCredit1');
        
$this->rd->rdCredit2 $this->input->post('rdCredit2');
        
$this->rd->rdNoCalGPA 'N';
        
$this->rd->rdCdId1 $this->input->post('rdCdId1');
        
$this->rd->rdCdId2 $this->input->post('rdCdId2');
        
$this->rd->rdUpdateUserId $this->session->userdata('UsLogin');
        
$this->rd->rdUpdateDate date('Y-m-d H:i:s');
        
$this->rd->rdAllowPr 'N';
        
$flagCommit $this->rd->insert();

        
$this->co->coId $rdCoId;
        
$this->co->get_by_key(TRUE);

        
// Update ClassOpenFor
        
if (is_null($this->co->coCurId)) {
            
$this->cof->cofCoId $rdCoId;
            
$this->cof->cofCurId $curId;
            
$this->cof->get_by_key(TRUE);

            
$this->cof->cofNumEnroll += 1;
            
$flagCommit $this->cof->update();
        }

        
// Update Class
        
$this->co->coNumSeatReg += 1;
        
$flagCommit $this->co->update();

        
// Insert EnrollFee
        
$rfId '';
        
$con_rs_rf = array('rfStdId'    => $stdId,
            
'rfAcY'    => $acY,
            
'rfTmId'    => $tmId
        
);
        
$rs_rf $this->rf->qryRf($con_rs_rf);
        
// Not found
        
if ($rs_rf->num_rows() == 0) {
            
// Insert EnrollFee
            
$this->rf->rfStdId $stdId;
            
$this->rf->rfAcY $acY;
            
$this->rf->rfSyId $syId;
            
$this->rf->rfTmId $tmId;
            
$this->rf->rfCurId $curId;
            
$this->rf->rfTotalAmt 0;
            
$this->rf->rfBalance 0;
            
$this->rf->rfRefNo $acY.$tmId.$this->rg->rgSeq.$stdCode;
            if (
$rgStatus == 'A') {
                
$this->rf->rfRefNo $acY.$tmId.'1'.$stdCode;
            }
            
$this->rf->rfCreateDate date('Y-m-d H:i:s');
            
$this->rf->rfCreateUserId $this->session->userdata('UsLogin');
            
$this->rf->rfUpdateDate date('Y-m-d H:i:s');
            
$this->rf->rfUpdateUserId $this->session->userdata('UsLogin');
            
$flagCommit $this->rf->insert();

            
$rfId $this->rf->last_insert_id();
        } else {
            
$rfId $rs_rf->row()->rfId;
        }

        
$this->rf->rfId $rfId;
        
$this->rf->get_by_key(TRUE);

        if (
$row_std->stdAdY >= $reviseY) {
            
$this->rf->rfTotalAmt $this->calFee2552($stdId$acY$syId$tmId$curId$row_std->stdEtId$row_std->stdAdY);
        } else {
            
$this->rf->rfTotalAmt $this->calFee($stdId$acY$syId$tmId$curId$row_std->stdEtId);
        }
        
$this->rf->rfBalance $this->rf->rfTotalAmt;
        
$this->rf->rfUpdateDate date('Y-m-d H:i:s');
        
$this->rf->rfUpdateUserId $this->session->userdata('UsLogin');
        
$flagCommit $this->rf->update();

        
$msg $this->config->item('rg_msg');

        if (
$this->db->trans_status() === false || ($this->co->coNumSeatReg $this->co->coNumSeatOpen)) { // ตัด rgStatus=='A' ออกเพราะไม่ได้ใช้ประโยชน์
            
$this->db->trans_rollback();
            
$this->load->vars($flg = array('flg'    => $msg[20]));
        } else {
            
$this->db->trans_commit();
            
$this->load->vars($flg = array('flg'    => $msg[10]));
        }

        if (
$rgStatus == 'N') {
            
$this->showRegis();
        } else if (
$rgStatus == 'A') {
            if (
$rgSubmitType == 'W') {
                
$this->std_showAddWithdraw();
            } else {
                
$this->showAddWithdraw();
            }
        }
    }

    function 
rd_delete() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_student','std');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registdetails','rd');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopen','co');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopenfor','cof');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registwithdraw','rw');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registfee','rf');

        
$rgStatus $this->input->post('rgStatus');
        
$rgSubmitType $this->input->post('rgSubmitType');
        
$stdId $this->input->post('stdId');
        
$acY $this->input->post('acY');
        
$tmId $this->input->post('tmId');
        
$seq $this->input->post('seq');
        
$coId $this->input->post('coId');
        
$stdCode $this->input->post('stdCode');
        
$reviseY 2552;

        
$flagCommit true;
        
$this->db->trans_begin();

        
$this->std->stdId $stdId;
        
$qu_std $this->std->get_by_key();
        
$row_std $qu_std->row();

        
// Delete EnrollItem
        
$this->rd->rdStdId $stdId;
        
$this->rd->rdAcY $acY;
        
$this->rd->rdTmId $tmId;
        
$this->rd->rdSeq $seq;
        
$this->rd->rdCoId $coId;
        
$this->rd->get_by_key(TRUE);
        
$flagCommit $this->rd->delete();

        
$this->co->coId $coId;
        
$this->co->get_by_key(TRUE);

        
// Update ClassOpenFor
        
if (is_null($this->co->coCurId)) {
            
$this->cof->cofCoId $coId;
            
$this->cof->cofCurId $row_std->stdCurId;
            
$this->cof->get_by_key(TRUE);

            
$this->cof->cofNumEnroll -= 1;
            
$flagCommit $this->cof->update();
        }

        
// Update Class
        
$this->co->coNumSeatReg -= 1;
        
$flagCommit $this->co->update();

        if ((
$rgStatus == 'A') || ($rgStatus == 'W')) {
            
// เคลียร์การถอนครั้งก่อน
            
$this->rw->rwStdId $this->rd->rdStdId;
            
$this->rw->rwAcY $this->rd->rdAcY;
            
$this->rw->rwTmId $this->rd->rdTmId;
            
$this->rw->rwSeq $this->rd->rdSeq;
            
$this->rw->rwCoId $this->rd->rdCoId;
            
$this->rw->delete();

            
// Insert WithdrawCourse
            
$this->rw->rwStdId $this->rd->rdStdId;
            
$this->rw->rwAcY $this->rd->rdAcY;
            
$this->rw->rwTmId $this->rd->rdTmId;
            
$this->rw->rwSeq $this->rd->rdSeq;
            
$this->rw->rwCoId $this->rd->rdCoId;
            
$this->rw->rwCreditAttempt $this->rd->rdCreditAttempt;
            
$this->rw->rwSection $this->rd->rdSection;
            
$this->rw->rwGrade $this->rd->rdGrade;
            
$this->rw->rwDocNo $this->rd->rdDocNo;
            
$this->rw->rwCredit1 $this->rd->rdCredit1;
            
$this->rw->rwCredit2 $this->rd->rdCredit2;
            
$this->rw->rwNoCalGPA $this->rd->rdNoCalGPA;
            
$this->rw->rwCdId1 $this->rd->rdCdId1;
            
$this->rw->rwCdId2 $this->rd->rdCdId2;
            
$this->rw->rwUpdateDate date('Y-m-d H:i:s');
            
$this->rw->rwUpdateUserId $this->session->userdata('UsLogin');
            
$flagCommit $this->rw->insert();
        }

        if ((
$rgStatus == 'N') || ($rgStatus == 'A')) {
            
// Insert EnrollFee
            
$rfId '';
            
$con_rs_rf = array('rfStdId'    => $stdId,
                
'rfAcY'    => $acY,
                
'rfTmId'    => $tmId
            
);
            
$rs_rf $this->rf->qryRf($con_rs_rf);
            
// Not found
            
if ($rs_rf->num_rows() == 0) {
                
// Insert EnrollFee
                
$this->rf->rfStdId $stdId;
                
$this->rf->rfAcY $acY;
                
$this->rf->rfSyId $row_std->stdSyId;
                
$this->rf->rfTmId $tmId;
                
$this->rf->rfCurId $row_std->stdCurId;
                
$this->rf->rfTotalAmt 0;
                
$this->rf->rfBalance 0;
                
$this->rf->rfRefNo $acY.$tmId.$this->rg->rgSeq.$row_std->stdCode;
                if (
$rgStatus == 'A') {
                    
$this->rf->rfRefNo $acY.$tmId.'1'.$row_std->stdCode;
                }
                
$this->rf->rfCreateDate date('Y-m-d H:i:s');
                
$this->rf->rfCreateUserId $this->session->userdata('UsLogin');
                
$this->rf->rfUpdateDate date('Y-m-d H:i:s');
                
$this->rf->rfUpdateUserId $this->session->userdata('UsLogin');
                
$flagCommit $this->rf->insert();

                
$rfId $this->rf->last_insert_id();
            } else {
                
$rfId $rs_rf->row()->rfId;
            }

            
$this->rf->rfId $rfId;
            
$this->rf->get_by_key(TRUE);

            if (
$row_std->stdAdY >= $reviseY) {
                
$this->rf->rfTotalAmt $this->calFee2552($stdId$acY$row_std->stdSyId$tmId$row_std->stdCurId$row_std->stdEtId$row_std->stdAdY);
            } else {
                
$this->rf->rfTotalAmt $this->calFee($stdId$acY$row_std->stdSyId$tmId$row_std->stdCurId$row_std->stdEtId);
            }
            
$this->rf->rfBalance $this->rf->rfTotalAmt;
            
$this->rf->rfUpdateDate date('Y-m-d H:i:s');
            
$this->rf->rfUpdateUserId $this->session->userdata('UsLogin');
            
$flagCommit $this->rf->update();
        }

        
$msg $this->config->item('rg_msg');

        if(
$this->db->trans_status() === false || ($this->co->coNumSeatReg 0)) { // ตัด rgStatus=='A' ออกเพราะไม่ได้ใช้ประโยชน์
            
$this->db->trans_rollback();
            
$this->load->vars($flg = array('flg'    => $msg[40]));
        } else {
            
$this->db->trans_commit();
            
$this->load->vars($flg = array('flg'    => $msg[30]));
        }

        if(
$rgStatus=='N') {
            
$this->showRegis();
        } else if(
$rgStatus=='A') {

            if(
$rgSubmitType=='W') {
                
$this->std_showAddWithdraw();
            } else {
                
$this->showAddWithdraw();
            }
        } else {
            
$this->showWithdraw();
        }
    }

    
// ####จัดกลุ่มเรียนนักศึกษา
    
function rg_searchSectionStudent() {
        
$this->output($this->config->item("rg_folder")."v_searchSectionStudent");
    }

    
// ####เพิ่มรายวิชาลงทะเบียนรายกลุ่ม/ชั้นปี 
    
function rg_showAWaddCurriculum() {
        
$this->output($this->config->item("rg_folder")."v_showAWaddCurriculum");
    }

    
// #### ถอนรายวิชาลงทะเบียนรายกลุ่ม/ชั้นปี 
    
function rg_showAWRegistWithdraw() {
        
$this->output($this->config->item("rg_folder")."v_showAWRegistWithdraw");
    }

    
// ###ลงทะเบียนรักษาสถานภาพการเป็นนักศึกษา
    
function showRegisKeepStStatus() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_student','std');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_term','tm');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registdetails','rd');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_regist','rg');

        
$this->load->library('form_validation');
        
$this->form_validation->set_error_delimiters('<div class="error">','</div>');
        
$this->form_validation->set_rules('stdCode',' ','trim|required|xss_clean');

        if(
$this->form_validation->run() == true) {

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

            if (
$stdCode) {
                
$this->contents['stdCode'] = "";
                
$stStatus '1, 2';
                
$qu_std $this->std->qryStdByCodeStStatus($stdCode$stStatus);
                if (
$qu_std->num_rows()) {
                    
$this->contents['stdCode'] = $stdCode;
                    
$this->contents['acY'] = $acY;
                    
$this->contents['tmId'] = $tmId;

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

                    
$con_qu_std = array('stdCode'     => $stdCode,
                        
'stdGenStatus'    => 'Y'
                    
);
                    
$qu_std $this->std->qryStdJoinPfCurSySstElv($con_qu_std);
                    
$this->contents['qu_std'] = $qu_std;
                    
$row_std $qu_std->row();

                    
$con_rs_rd = array('rdStdId'    => $row_std->stdId,
                        
'rdAcY'    => $acY,
                        
'rdTmId'    => $tmId
                    
);
                    
$this->contents['rs_rd'] = $this->rd->qryRdJoinCoCrs($con_rs_rd);

                    
$con_qu_rg = array('rgStdId'    => $row_std->stdId,
                        
'rgAcY'    => $acY,
                        
'rgTmId'    => $tmId,
                        
'rgStatus'    => 'K'
                    
);
                    
$qu_rg $this->rg->qryRg($con_qu_rg);
                    if (
$qu_rg->num_rows()) {
                        
$this->contents['kssFlag'] = "** รักษาสถานภาพการเป็นนักศึกษา **";
                    }

                    
$con_qu_rd = array('rdStdId'    => $row_std->stdId,
                        
'rdAcY'    => $acY,
                        
'rdTmId'    => $tmId
                    
);
                    
$this->contents['sumCrAt'] = $this->rd->getSumCrAt($con_qu_rd);
                } else {
                    
$con_qu_std = array('stdCode'     => $stdCode,
                        
'stdGenStatus'    => 'Y'
                    
);
                    
$qu_std $this->std->qryStdJoinPfCurSySstElv($con_qu_std);
                    if (
$qu_std->num_rows()) {
                        
$this->contents['qu_std'] = $qu_std;
                    } else {
                        
$this->contents['err_msg'] = "** ไม่ปรากฏรหัสนักศึกษาดังกล่าวในฐานข้อมูล **";
                    }
                }
            }
        } else {
            
$this->contents['err_msg'] = "** กรุณาป้อน **";
        }

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

    function 
processRegisKeepStStatus() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_student','std');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_regist','rg');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registdetails','rd');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopen','co');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_courseopenfor','cof');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registwithdraw','rw');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registfee','rf');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_studentsummary','ssm');

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

        
$reviseY 2552;

        
$flagCommit true;
        
$this->db->trans_begin();

        
$this->std->stdId $stdId;
        
$qu_std $this->std->get_by_key();
        
$row_std $qu_std->row();

        
$con_qu_rg = array('rgStdId'    => $stdId,
            
'rgAcY'    => $acY,
            
'rgTmId'    => $tmId
        
);
        
$tmpSequence $this->rg->getNextSeq($con_qu_rg);

        
// Insert Enroll
        
$this->rg->rgStdId $stdId;
        
$this->rg->rgAcY $acY;
        
$this->rg->rgTmId $tmId;
        
$this->rg->rgSeq $tmpSequence;
        
$this->rg->rgSyId $syId;
        
$this->rg->rgCurId $curId;
        
$this->rg->rgSubmitType 'B';
        
$this->rg->rgStatus 'K';
        
$this->rg->rgCreateUserId $this->session->userdata('UsLogin');
        
$this->rg->rgCreateDate date('Y-m-d H:i:s');
        
$this->rg->rgUpdateUserId $this->session->userdata('UsLogin');
        
$this->rg->rgUpdateDate date('Y-m-d H:i:s');
        
$flagCommit $this->rg->insert();

        
$con_rs_rd = array('rdStdId'    => $stdId,
            
'rdAcY'    => $acY,
            
'rdTmId'    => $tmId
        
);
        
$rs_rd $this->rd->qryRd($con_rs_rd);
        foreach (
$rs_rd->result() as $row_rd) {
            
// Delete EnrollItem
            
$this->rd->rdStdId $row_rd->rdStdId;
            
$this->rd->rdAcY $row_rd->rdAcY;
            
$this->rd->rdTmId $row_rd->rdTmId;
            
$this->rd->rdSeq $row_rd->rdSeq;
            
$this->rd->rdCoId $row_rd->rdCoId;
            
$flagCommit $this->rd->delete();

            
$this->co->coId $row_rd->rdCoId;
            
$this->co->get_by_key(TRUE);

            
// Update ClassOpenFor
            
if (is_null($this->co->coCurId)) {
                
$this->cof->cofCoId $row_rd->rdCoId;
                
$this->cof->cofCurId $curId;
                
$this->cof->get_by_key(TRUE);

                
$this->cof->cofNumEnroll -= 1;
                
$flagCommit $this->cof->update();
            }

            
// Update Class
            
$this->co->coNumSeatReg -= 1;
            
$flagCommit $this->co->update();

            
// Insert WithdrawCourse
            
$this->rw->rwStdId $row_rd->rdStdId;
            
$this->rw->rwAcY $row_rd->rdAcY;
            
$this->rw->rwTmId $row_rd->rdTmId;
            
$this->rw->rwSeq $row_rd->rdSeq;
            
$this->rw->rwCoId $row_rd->rdCoId;
            
$this->rw->rwCreditAttempt $row_rd->rdCreditAttempt;
            
$this->rw->rwSection $row_rd->rdSection;
            
$this->rw->rwGrade $row_rd->rdGrade;
            
$this->rw->rwDocNo $row_rd->rdDocNo;
            
$this->rw->rwCredit1 $row_rd->rdCredit1;
            
$this->rw->rwCredit2 $row_rd->rdCredit2;
            
$this->rw->rwNoCalGPA $row_rd->rdNoCalGPA;
            
$this->rw->rwCdId1 $row_rd->rdCdId1;
            
$this->rw->rwCdId2 $row_rd->rdCdId2;
            
$this->rw->rwUpdateDate date('Y-m-d H:i:s');
            
$this->rw->rwUpdateUserId $this->session->userdata('UsLogin');
            
$flagCommit $this->rw->insert();

            
// Update Enroll
            
$this->rg->rgStdId $row_rd->rdStdId;
            
$this->rg->rgAcY $row_rd->rdAcY;
            
$this->rg->rgTmId $row_rd->rdTmId;
            
$this->rg->rgSeq $row_rd->rdSeq;
            
$this->rg->get_by_key(TRUE);

            
$this->rg->rgStatus 'C';
            
$flagCommit $this->rg->update();
        }    
// end foreach rd

        
$con_rs_rf = array('rfStdId'    => $stdId,
            
'rfAcY'    => $acY,
            
'rfTmId'    => $tmId
        
);
        
$rs_rf $this->rf->qryRf($con_rs_rf);
        if (
$rs_rf->num_rows()) {    // ลงทะเบียนมาก่อนแล้ว
            
$row_rf $rs_rf->row();

            if (
$row_rf->rfTotalAmt == $row_rf->rfBalance) {    // ยังไม่จ่ายเลย
                
$this->rf->rfId $row_rf->rfId;
                
$this->rf->get_by_key(TRUE);

                if (
$row_std->stdAdY >= $reviseY) {
                    
$this->rf->rfTotalAmt $this->calFeeAndKSSFee2552($stdId$acY$syId$tmId$curId$row_std->stdEtId$row_std->stdAdY);
                } else {
                    
$this->rf->rfTotalAmt $this->calFeeAndKSSFee($stdId$acY$syId$tmId$curId$row_std->stdEtId);
                }
                
$this->rf->rfBalance $this->rf->rfTotalAmt;
                
$this->rf->rfUpdateDate date('Y-m-d H:i:s');
                
$this->rf->rfUpdateUserId $this->session->userdata('UsLogin');
                
$flagCommit $this->rf->update();
            } else {    
// จ่ายแล้วทั้งหมด หรือ บางส่วน
                // Insert 2nd enrollFeeId for keep student status
                
$this->rf->rfStdId $stdId;
                
$this->rf->rfAcY $acY;
                
$this->rf->rfSyId $syId;
                
$this->rf->rfTmId $tmId;
                
$this->rf->rfCurId $curId;
                
// ค่ารักษาสภาพ
                
if ($row_std->stdAdY >= $reviseY) {
                    
$this->rf->rfTotalAmt $this->calKSSFee2552($stdId$acY$tmId$curId$row_std->stdAdY$syId);
                } else {
                    
$this->rf->rfTotalAmt $this->calKSSFee($stdId$acY$tmId$curId);
                }
                
$this->rf->rfBalance $this->rf->rfTotalAmt;
                
$this->rf->rfRefNo $acY.$tmId.$tmpSequence.$row_std->stdCode;
                
$this->rf->rfCreateDate date('Y-m-d H:i:s');
                
$this->rf->rfCreateUserId $this->session->userdata('UsLogin');
                
$this->rf->rfUpdateDate date('Y-m-d H:i:s');
                
$this->rf->rfUpdateUserId $this->session->userdata('UsLogin');
                
$flagCommit $this->rf->insert();
            }
        } else {    
// ยังไม่เคยลงทะเบียนมาก่อน
            // Insert EnrollFee
            
$this->rf->rfStdId $stdId;
            
$this->rf->rfAcY $acY;
            
$this->rf->rfSyId $syId;
            
$this->rf->rfTmId $tmId;
            
$this->rf->rfCurId $curId;
            
// ค่ารักษาสภาพ+ค่าใช้จ่ายอื่นๆ(ไม่รวมค่าหน่วยกิต)
            
if ($row_std->stdAdY >= $reviseY) {
                
$this->rf->rfTotalAmt $this->calFeeAndKSSFee2552($stdId$acY$syId$tmId$curId$row_std->stdEtId$row_std->stdAdY);
            } else {
                
$this->rf->rfTotalAmt $this->calFeeAndKSSFee($stdId$acY$syId$tmId$curId$row_std->stdEtId);
            }
            
$this->rf->rfBalance $this->rf->rfTotalAmt;
            
$this->rf->rfRefNo $acY.$tmId.$tmpSequence.$row_std->stdCode;
            
$this->rf->rfCreateDate date('Y-m-d H:i:s');
            
$this->rf->rfCreateUserId $this->session->userdata('UsLogin');
            
$this->rf->rfUpdateDate date('Y-m-d H:i:s');
            
$this->rf->rfUpdateUserId $this->session->userdata('UsLogin');
            
$flagCommit $this->rf->insert();
        }    
// end if rf

        // Update StudentMaster
        
$this->std->get_by_key(TRUE);
        
$this->std->stdSstId 2;
        
$this->std->stdUpdateUserId $this->session->userdata('UsLogin');
        
$this->std->stdUpdateDate date('Y-m-d H:i:s');
        
$flagCommit $this->std->update();

        
$this->ssm->ssmStdId $stdId;
        
$this->ssm->ssmAcY $acY;
        
$this->ssm->ssmTmId $tmId;
        
$qu_ssm $this->ssm->get_by_key();
        if (
$qu_ssm->num_rows()) {
            
// Update StudentStatus
            
$this->ssm->get_by_key(TRUE);

            
$this->ssm->ssmSstId 2;
            
$this->ssm->ssmUpdateUserId $this->session->userdata('UsLogin');
            
$this->ssm->ssmUpdateDate date('Y-m-d H:i:s');
            
$flagCommit $this->ssm->update();
        } else {
            
// Update StudentStatus
            
$this->ssm->ssmStdId $stdId;
            
$this->ssm->ssmAcY $acY;
            
$this->ssm->ssmTmId $tmId;
            
$this->ssm->ssmSyId $this->std->calSyByStdIdAndAcY($stdId$acY);
            
$this->ssm->ssmSstId 2;
            
$this->ssm->ssmGPA 0;
            
$this->ssm->ssmCreditAttempt 0;
            
$this->ssm->ssmCreditSatisfy 0;
            
$this->ssm->ssmCreditPoint 0;
            
$this->ssm->ssmGPAX 0;
            
$this->ssm->ssmSumCreditAttempt 0;
            
$this->ssm->ssmSumCreditSatisfy 0;
            
$this->ssm->ssmSumCreditPoint 0;
            
$this->ssm->ssmCreateDate date('Y-m-d H:i:s');
            
$this->ssm->ssmCreateUserId $this->session->userdata('UsLogin');
            
$this->ssm->ssmUpdateDate date('Y-m-d H:i:s');
            
$this->ssm->ssmUpdateUserId $this->session->userdata('UsLogin');
            
$this->ssm->ssmSstIdApproveSpe NULL;
            
$this->ssm->ssmApprover '';
            
$this->ssm->ssmRefNo '';
            
$this->ssm->ssmApproveDate '';
            
$this->ssm->ssmPassStatus 0;
            
$flagCommit $this->ssm->insert();
        }    
// end if ssm

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

        
$this->showRegisKeepStStatus();
    }

    function 
calFeeAndKSSFee($stdId$acY$syId$tmId$curId$etId) {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_commonfee','cmf');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_commonfeetp','cmft');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_fee','fee');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_curriculumfee','cf');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_curriculumfeetp','cft');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_studentdomitory','sdm');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_domitoryfeetp','dft');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_coursefeetp','crft');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registfee','rf');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registdetails','rd');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_coursefee','crf');

        
// ---------- CommonFee ----------
        
$con_rs_cmf = array('cmfStdId'     => $stdId,
            
'cmfAcY'    => $acY,
            
'cmfTmId'    => $tmId
        
);
        
$rs_cmf $this->cmf->qryCmf($con_rs_cmf);
        foreach (
$rs_cmf->result() as $row_cmf) {
            
$this->cmf->cmfStdId $stdId;
            
$this->cmf->cmfAcY $acY;
            
$this->cmf->cmfTmId $tmId;
            
$this->cmf->cmfFeeId $row_cmf->cmfFeeId;
            
$this->cmf->delete();
        }

        
$sumCommonFee 0;
        
$con_rs_cmft = array('cmftAcY'    => $acY,
            
'cmftTmId'    => $tmId,
            
'cmftIsDom'    => 'N'
        
);
        
$rs_cmft $this->cmft->qryCmft($con_rs_cmft);
        foreach (
$rs_cmft->result() as $row_cmft) {
            
$this->fee->feeId $row_cmft->cmftFeeId;
            
$qu_fee $this->fee->get_by_key();
            
$row_fee $qu_fee->row();

            if (((
$row_fee->feePytId == 1) && ($syId == 1)) || ($row_fee->feePytId != 1)) {
                
$this->cmf->cmfStdId $stdId;
                
$this->cmf->cmfAcY $acY;
                
$this->cmf->cmfTmId $tmId;
                
$this->cmf->cmfFeeId $row_cmft->cmftFeeId;
                
$qu_cmf $this->cmf->get_by_key();

                
// Not found
                
if ($qu_cmf->num_rows() == 0) {
                    
// Insert CommonFee
                    
$this->cmf->cmfAmt $row_cmft->cmftAmt;
                    
$this->cmf->insert();
                }
            }
        }

        
$con_qu_cmf = array('cmfStdId'    => $stdId,
            
'cmfAcY'    => $acY,
            
'cmfTmId'    => $tmId
        
);
        
$sumCommonFee $this->cmf->getSumAmt($con_qu_cmf);

        
// ---------- ProgramFee ----------
        
$con_rs_cf = array('cfStdId'    => $stdId,
            
'cfAcY'    => $acY,
            
'cfTmId'    => $tmId
        
);
        
$rs_cf $this->cf->qryCf($con_rs_cf);
        foreach (
$rs_cf->result() as $row_cf) {
            
$this->cf->cfStdId $stdId;
            
$this->cf->cfAcY $acY;
            
$this->cf->cfTmId $tmId;
            
$this->cf->cfFeeId $row_cf->cfFeeId;
            
$this->cf->delete();
        }

        
$sumProgramFee 0;
        
$con_rs_cft = array('cftCurId'    => $curId,
            
'cftAcY'    => $acY,
            
'cftTmId'    => $tmId
        
);
        
$rs_cft $this->cft->qryCft($con_rs_cft);
        foreach (
$rs_cft->result() as $row_cft) {
            
$this->fee->feeId $row_cft->cftFeeId;
            
$qu_fee $this->fee->get_by_key();
            
$row_fee $qu_fee->row();

            if (((
$row_fee->feePytId == 1) && ($syId == 1)) || ($row_fee->feePytId != 1)) {
                if (((
$row_fee->feeOnTop == 'Y') && ($etId == 2)) || ($row_fee->feeOnTop == 'N')) {
                    
$this->cf->cfStdId $stdId;
                    
$this->cf->cfAcY $acY;
                    
$this->cf->cfTmId $tmId;
                    
$this->cf->cfFeeId $row_cft->cftFeeId;
                    
$qu_cf $this->cf->get_by_key();

                    
// Not found
                    
if ($qu_cf->num_rows() == 0) {
                        
// Insert ProgramFee
                        
$this->cf->cfAmt $row_cft->cftAmt;
                        
$this->cf->insert();
                    }
                }
            }
        }

        
$con_qu_cf = array('cfStdId'    => $stdId,
            
'cfAcY'    => $acY,
            
'cfTmId'    => $tmId
        
);
        
$sumProgramFee $this->cf->getSumAmt($con_qu_cf);

        
// ---------- DomFee ----------
        
$domFee 0;
        
$con_rs_cmft = array('cmftAcY'    => $acY,
            
'cmftTmId'    => $tmId,
            
'cmftIsDom'    => 'Y');
        
$rs_cmft $this->cmft->qryCmft($con_rs_cmft);
        if (
$rs_cmft->num_rows()) {
            
$this->sdm->sdmStdId $stdId;
            
$this->sdm->sdmAcY $acY;
            
$this->sdm->sdmTmId $tmId;
            
$qu_sdm $this->sdm->get_by_key();

            
// Student stay dom
            
if ($qu_sdm->num_rows()) {
                
$this->dft->dftAcY $acY;
                
$this->dft->dftTmId $tmId;
                
$this->dft->dftDmId $qu_sdm->row()->sdmDmId;
                
$qu_dft $this->dft->get_by_key();

                
// Found dom fee
                
if ($qu_dft->num_rows()) {
                    
$this->cmf->cmfStdId $stdId;
                    
$this->cmf->cmfAcY $acY;
                    
$this->cmf->cmfTmId $tmId;
                    
$this->cmf->cmfFeeId $rs_cmft->row()->cmftFeeId;
                    
$qu_cmf $this->cmf->get_by_key();

                    
// Not found
                    
if ($qu_cmf->num_rows() == 0) {
                        
// Insert CommonFee
                        
$this->cmf->cmfAmt $qu_sdm->row()->sdmNumMonth $qu_dft->row()->dftAmt;
                        
$this->cmf->insert();
                        
$domFee $this->cmf->cmfAmt;
                    }
                }
            }
        }

        
// ---------- CourseFee ----------
        
$sumCourseFee 0;
        
$this->crft->crftCurId $curId;
        
$this->crft->crftAdY 0;
        
$this->crft->crftSyId 0;
        
$this->crft->crftAcY $acY;
        
$this->crft->crftTmId $tmId;
        
$qu_crft $this->crft->get_by_key();
        if (
$qu_crft->num_rows()) {
            
$con_qu_rf = array('rfStdId'    => $stdId,
                
'rfSyId'    => $syId,
                
'rfAcY'    => $acY,
                
'rfTmId'    => $tmId
            
);
            
$qu_rf $this->rf->qryRf($con_qu_rf);

            if (
$qu_rf->num_rows()) {
                
$con_qu_rd = array('rdStdId'    => $stdId,
                    
'rdAcY'    => $acY,
                    
'rdTmId'    => $tmId
                
);
                
$sumcr1 $this->rd->getSumCr1($con_qu_rd);
                
$sumcr2 $this->rd->getSumCr2($con_qu_rd);

                
$this->crf->crfStdId $stdId;
                
$this->crf->crfAcY $acY;
                
$this->crf->crfTmId $tmId;
                
$this->crf->crfRfId $qu_rf->row()->rfId;
                
$qu_crf $this->crf->get_by_key();

                if (
$qu_crf->num_rows()) {     // Found
                    // Update CourseFee
                    
$this->crf->crfLecFeeAmt $sumcr1 $qu_crft->row()->crftLecCreditFee;
                    
$this->crf->crfLabFeeAmt $sumcr2 $qu_crft->row()->crftLabCreditFee;
                    
$this->crf->crfKssFeeAmt $qu_crft->row()->crftKssFee;
                    
$this->crf->update();
                } else {    
// Not Found
                    // Insert CourseFee
                    
$this->crf->crfLecFeeAmt $sumcr1 $qu_crft->row()->crftLecCreditFee;
                    
$this->crf->crfLabFeeAmt $sumcr2 $qu_crft->row()->crftLabCreditFee;
                    
$this->crf->crfLateFineAmt 0;
                    
$this->crf->crfKssFeeAmt $qu_crft->row()->crftKssFee;
                    
$this->crf->insert();
                }

                
$sumCourseFee $this->crf->crfLecFeeAmt $this->crf->crfLabFeeAmt $this->crf->crfKssFeeAmt;
            }
        }

        return 
$sumCommonFee $sumProgramFee $domFee $sumCourseFee;
    }

    function 
calFeeAndKSSFee2552($stdId$acY$syId$tmId$curId$etId$adY) {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_commonfee','cmf');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_commonfeetp','cmft');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_curriculumfee','cf');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_curriculumfeetp','cft');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_fee','fee');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_studentdomitory','sdm');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_domitoryfeetp','dft');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_coursefeetp','crft');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registfee','rf');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registdetails','rd');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_coursefee','crf');

        
// ---------- CommonFee ----------
        
$con_rs_cmf = array('cmfStdId'     => $stdId,
            
'cmfAcY'    => $acY,
            
'cmfTmId'    => $tmId
        
);
        
$rs_cmf $this->cmf->qryCmf($con_rs_cmf);
        foreach (
$rs_cmf->result() as $row_cmf) {
            
$this->cmf->cmfStdId $stdId;
            
$this->cmf->cmfAcY $acY;
            
$this->cmf->cmfTmId $tmId;
            
$this->cmf->cmfFeeId $row_cmf->cmfFeeId;
            
$this->cmf->delete();
        }
        
        
$sumCommonFee 0;
        
$con_rs_cmft = array('cmftAdY'    => $adY,
            
'cmftSyId'    => $syId,
            
'cmftAcY'    => $acY,
            
'cmftTmId'    => $tmId,
            
'cmftIsDom'    => 'N'
        
);
        
$rs_cmft $this->cmft->qryCmft($con_rs_cmft);
        foreach (
$rs_cmft->result() as $row_cmft) {
            
$this->cmf->cmfStdId $stdId;
            
$this->cmf->cmfAcY $acY;
            
$this->cmf->cmfTmId $tmId;
            
$this->cmf->cmfFeeId $row_cmft->cmftFeeId;
            
$qu_cmf $this->cmf->get_by_key();

            
// Not found
            
if ($qu_cmf->num_rows() == 0) {
                
// Insert CommonFee
                
$this->cmf->cmfAmt $row_cmft->cmftAmt;
                
$this->cmf->insert();
            }
        }

        
$con_qu_cmf = array('cmfStdId'    => $stdId,
            
'cmfAcY'    => $acY,
            
'cmfTmId'    => $tmId
        
);
        
$sumCommonFee $this->cmf->getSumAmt($con_qu_cmf);

        
// ---------- ProgramFee ----------
        
$con_rs_cf = array('cfStdId'    => $stdId,
            
'cfAcY'    => $acY,
            
'cfTmId'    => $tmId
        
);
        
$rs_cf $this->cf->qryCf($con_rs_cf);
        foreach (
$rs_cf->result() as $row_cf) {
            
$this->cf->cfStdId $stdId;
            
$this->cf->cfAcY $acY;
            
$this->cf->cfTmId $tmId;
            
$this->cf->cfFeeId $row_cf->cfFeeId;
            
$this->cf->delete();
        }

        
$sumProgramFee 0;
        
$con_rs_cft = array('cftCurId'    => $curId,
            
'cftAdY'    => $adY,
            
'cftSyId'    => $syId,
            
'cftAcY'    => $acY,
            
'cftTmId'    => $tmId
        
);
        
$rs_cft $this->cft->qryCft($con_rs_cft);
        foreach (
$rs_cft->result() as $row_cft) {
            
$this->fee->feeId $row_cft->cftFeeId;
            
$qu_fee $this->fee->get_by_key();
            
$row_fee $qu_fee->row();

            if (((
$row_fee->feeOnTop == 'Y') && ($etId == 2)) || ($row_fee->feeOnTop == 'N')) {
                
$this->cf->cfStdId $stdId;
                
$this->cf->cfAcY $acY;
                
$this->cf->cfTmId $tmId;
                
$this->cf->cfFeeId $row_cft->cftFeeId;
                
$qu_cf $this->cf->get_by_key();

                
// Not found
                
if ($qu_cf->num_rows() == 0) {
                    
// Insert ProgramFee
                    
$this->cf->cfAmt $row_cft->cftAmt;
                    
$this->cf->insert();
                }
            }
        }

        
$con_qu_cf = array('cfStdId'    => $stdId,
            
'cfAcY'    => $acY,
            
'cfTmId'    => $tmId
        
);
        
$sumProgramFee $this->cf->getSumAmt($con_qu_cf);

        
// ---------- DomFee ----------
        
$domFee 0;
        
$con_rs_cmft = array('cmftAdY'    => $adY,
            
'cmftSyId'    => $syId,
            
'cmftAcY'    => $acY,
            
'cmftTmId'    => $tmId,
            
'cmftIsDom'    => 'Y'
        
);
        
$rs_cmft $this->cmft->qryCmft($con_rs_cmft);
        if (
$rs_cmft->num_rows()) {
            
$this->sdm->sdmStdId $stdId;
            
$this->sdm->sdmAcY $acY;
            
$this->sdm->sdmTmId $tmId;
            
$qu_sdm $this->sdm->get_by_key();

            
// Student stay dom
            
if ($qu_sdm->num_rows()) {
                
$this->dft->dftAcY $acY;
                
$this->dft->dftTmId $tmId;
                
$this->dft->dftDmId $qu_sdm->row()->sdmDmId;
                
$qu_dft $this->dft->get_by_key();

                
// Found dom fee
                
if ($qu_dft->num_rows()) {
                    
$this->cf->cfStdId $stdId;
                    
$this->cf->cfAcY $acY;
                    
$this->cf->cfTmId $tmId;
                    
$this->cf->cfFeeId $rs_cmft->row()->cmftFeeId;
                    
$qu_cf $this->cf->get_by_key();

                    
// Not found
                    
if ($qu_cf->num_rows() == 0) {
                        
// Insert CommonFee
                        
$this->cf->cfAmt $qu_sdm->row()->sdmNumMonth $qu_dft->row()->dftAmt;
                        
$this->cf->insert();
                        
$domFee $this->cf->cfAmt;
                    }
                }
            }
        }

        
// ---------- CourseFee ----------
        
$sumCourseFee 0;
        
$this->crft->crftCurId $curId;
        
$this->crft->crftAdY $adY;
        
$this->crft->crftSyId $syId;
        
$this->crft->crftAcY $acY;
        
$this->crft->crftTmId $tmId;
        
$qu_crft $this->crft->get_by_key();
        if (
$qu_crft->num_rows()) {
            
$con_qu_rf = array('rfStdId'    => $stdId,
                
'rfSyId'    => $syId,
                
'rfAcY'    => $acY,
                
'rfTmId'    => $tmId
            
);
            
$qu_rf $this->rf->qryRf($con_qu_rf);

            if (
$qu_rf->num_rows()) {
                
$con_qu_rd = array('rdStdId'    => $stdId,
                    
'rdAcY'    => $acY,
                    
'rdTmId'    => $tmId
                
);
                
$sumcr1 $this->rd->getSumCr1($con_qu_rd);
                
$sumcr2 $this->rd->getSumCr2($con_qu_rd);

                
$this->crf->crfStdId $stdId;
                
$this->crf->crfAcY $acY;
                
$this->crf->crfTmId $tmId;
                
$this->crf->crfRfId $qu_rf->row()->rfId;
                
$qu_crf $this->crf->get_by_key();
                if (
$qu_crf->num_rows()) {     // Found
                    // Update CourseFee
                    
$this->crf->crfLecFeeAmt $sumcr1 $qu_crft->row()->crftLecCreditFee;
                    
$this->crf->crfLabFeeAmt $sumcr2 $qu_crft->row()->crftLabCreditFee;
                    
$this->crf->crfKssFeeAmt $qu_crft->row()->crftKssFee;
                    
$this->crf->update();
                } else {    
// Not Found
                    // Insert CourseFee
                    
$this->crf->crfLecFeeAmt $sumcr1 $qu_crft->row()->crftLecCreditFee;
                    
$this->crf->crfLabFeeAmt $sumcr2 $qu_crft->row()->crftLabCreditFee;
                    
$this->crf->crfLateFineAmt 0;
                    
$this->crf->crfKssFeeAmt $qu_crft->row()->crftKssFee;
                    
$this->crf->insert();
                }

                
$sumCourseFee $this->crf->crfLecFeeAmt $this->crf->crfLabFeeAmt $this->crf->crfKssFeeAmt;
            }
        }
        
        return 
$sumCommonFee $sumProgramFee $domFee $sumCourseFee;
    }

    function 
calKSSFee($stdId$acY$tmId$curId) {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_coursefeetp','crft');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registfee','rf');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registdetails','rd');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_coursefee','crf');

        
// ---------- CourseFee ----------
        
$sumCourseFee 0;
        
$this->crft->crftCurId $curId;
        
$this->crft->crftAdY 0;
        
$this->crft->crftSyId 0;
        
$this->crft->crftAcY $acY;
        
$this->crft->crftTmId $tmId;
        
$qu_crft $this->crft->get_by_key();

        
// Insert CourseFee
        
$con_qu_rf = array('rfStdId'    => $stdId,
            
'rfSyId'    => 0,
            
'rfAcY'    => $acY,
            
'rfTmId'    => $tmId
        
);
        
$qu_rf $this->rf->qryRf($con_qu_rf);
        if (
$qu_rf->num_rows()) {
            
$con_qu_rd = array('rdStdId'    => $stdId,
                
'rdAcY'    => $acY,
                
'rdTmId'    => $tmId
            
);
            
$sumcr1 $this->rd->getSumCr1($con_qu_rd);
            
$sumcr2 $this->rd->getSumCr2($con_qu_rd);

            
$this->crf->crfStdId $stdId;
            
$this->crf->crfAcY $acY;
            
$this->crf->crfTmId $tmId;
            
$this->crf->crfRfId $qu_rf->row()->rfId;
            
$this->crf->crfLecFeeAmt $sumcr1 $qu_crft->row()->crftLecCreditFee;
            
$this->crf->crfLabFeeAmt $sumcr2 $qu_crft->row()->crftLabCreditFee;
            
$this->crf->crfLateFineAmt 0;
            
$this->crf->crfKssFeeAmt $qu_crft->row()->crftKssFee;
            
$this->crf->insert();

            
$sumCourseFee $this->crf->crfKssFeeAmt;
        }

        return 
$sumCourseFee;
    }

    function 
calKSSFee2552($stdId$acY$tmId$curId$adY$syId) {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_coursefeetp','crft');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registfee','rf');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registdetails','rd');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_coursefee','crf');

        
// ---------- CourseFee ----------
        
$sumCourseFee 0;
        
$this->crft->crftCurId $curId;
        
$this->crft->crftAdY $adY;
        
$this->crft->crftSyId $syId;
        
$this->crft->crftAcY $acY;
        
$this->crft->crftTmId $tmId;
        
$qu_crft $this->crft->get_by_key();

        
// Insert CourseFee
        
$con_qu_rf = array('rfStdId'    => $stdId,
            
'rfSyId'    => $syId,
            
'rfAcY'    => $acY,
            
'rfTmId'    => $tmId
        
);
        
$qu_rf $this->rf->qryRf($con_qu_rf);
        if (
$qu_rf->num_rows()) {
            
$con_qu_rd = array('rdStdId'    => $stdId,
                
'rdAcY'    => $acY,
                
'rdTmId'    => $tmId
            
);
            
$sumcr1 $this->rd->getSumCr1($con_qu_rd);
            
$sumcr2 $this->rd->getSumCr2($con_qu_rd);

            
$this->crf->crfStdId $stdId;
            
$this->crf->crfAcY $acY;
            
$this->crf->crfTmId $tmId;
            
$this->crf->crfRfId $qu_rf->row()->rfId;
            
$this->crf->crfLecFeeAmt $sumcr1 $qu_crft->row()->crftLecCreditFee;
            
$this->crf->crfLabFeeAmt $sumcr2 $qu_crft->row()->crftLabCreditFee;
            
$this->crf->crfLateFineAmt 0;
            
$this->crf->crfKssFeeAmt $qu_crft->row()->crftKssFee;
            
$this->crf->insert();

            
$sumCourseFee $this->crf->crfKssFeeAmt;
        }

        return 
$sumCourseFee;
    }
    
// end รักษาสภาพ

    // ### เพิ่ม-ถอนรายวิชาลงทะเบียน
    
function showAddWithdraw() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_student','std');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_regist','rg');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registdetails','rd');

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

        if (
$stdCode) {
            
$this->contents['stdCode'] = "";

            
$con_qu_std = array('stdCode'     => $stdCode,
                
'stdSstId'    => 1,
                
'stdGenStatus'    => 'Y'
            
);
            
$qu_std $this->std->qryStdJoinPfCurSySstElv($con_qu_std);
            if (
$qu_std->num_rows()) {
                
$row_std $qu_std->row();

                
$this->contents['stdCode'] = $stdCode;
                
$this->contents['qu_std'] = $qu_std;

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

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

                
$con_qu_rg = array('rgStdId'    => $row_std->stdId);
                
$maxAcY $this->rg->getMaxAcY($con_qu_rg);

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

                
$con_qu_rg = array('rgStdId'    => $row_std->stdId,
                    
'rgAcY'    => $maxAcY
                
);
                
$maxTmId $this->rg->getMaxTmId($con_qu_rg);
                
$this->contents['maxTmId'] = $maxTmId;

                
$con_rs_rd = array('rdStdId'    => $row_std->stdId,
                    
'rdAcY'    => $acY,
                    
'rdTmId'    => $tmId
                
);
                
$this->contents['rs_rd'] = $this->rd->qryRdJoinCoCrs($con_rs_rd);

                
$con_rs_rg = array('rgStdId'    => $row_std->stdId,
                    
'rgAcY'    => $acY,
                    
'rgTmId'    => $tmId,
                    
'rgStatus'    => 'K'
                
);
                
$rs_rg $this->rg->qryRg($con_rs_rg);
                if (
$rs_rg->num_rows()) {
                    
$this->contents['kssFlag'] = "** รักษาสถานภาพการเป็นนักศึกษา **";
                }

                
$con_qu_rd = array('rdStdId'    => $row_std->stdId,
                    
'rdAcY'    => $acY,
                    
'rdTmId'    => $tmId
                
);
                
$this->contents['sumCrAt'] = $this->rd->getSumCrAt($con_qu_rd);
            } else {
                
$con_qu_std = array('stdCode'     => $stdCode,
                    
'stdGenStatus'    => 'Y'
                
);
                
$qu_std $this->std->qryStdJoinPfCurSySstElv($con_qu_std);
                if (
$qu_std->num_rows()) {
                    
$this->contents['qu_std'] = $qu_std;
                } else {
                    
$this->contents['err_msg'] = "** ไม่ปรากฏรหัสนักศึกษาดังกล่าวในฐานข้อมูล **";
                }
            }
        }    
// end if stdCode

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

    
// ### ถอนรายวิชาลงทะเบียน หลังช่วงเพิ่ม-ถอน 
    
function showWithdraw() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_student','std');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registdetails','rd');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_regist','rg');

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

        if (
$stdCode) {
            
$this->contents['stdCode'] = "";

            
$con_qu_std = array('stdCode'     => $stdCode,
                
'stdSstId'    => 1,
                
'stdGenStatus'    => 'Y'
            
);
            
$qu_std $this->std->qryStdJoinPfCurSySstElv($con_qu_std);
            if (
$qu_std->num_rows()) {
                
$row_std $qu_std->row();

                
$this->contents['stdCode'] = $stdCode;
                
$this->contents['qu_std'] = $qu_std;

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

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

                
$con_rs_rd = array('rdStdId'    => $row_std->stdId,
                    
'rdAcY'    => $acY,
                    
'rdTmId'    => $tmId
                
);
                
$this->contents['rs_rd'] = $this->rd->qryRdJoinCoCrs($con_rs_rd);

                
$con_rs_rg = array('rgStdId'    => $row_std->stdId,
                    
'rgAcY'    => $acY,
                    
'rgTmId'    => $tmId,
                    
'rgStatus'    => 'K'
                
);
                
$rs_rg $this->rg->qryRg($con_rs_rg);
                if (
$rs_rg->num_rows()) {
                    
$this->contents['kssFlag'] = "** รักษาสถานภาพการเป็นนักศึกษา **";
                }

                
$con_qu_rd = array('rdStdId'    => $row_std->stdId,
                    
'rdAcY'    => $acY,
                    
'rdTmId'    => $tmId
                
);
                
$this->contents['sumCrAt'] = $this->rd->getSumCrAt($con_qu_rd);
            } else {
                
$con_qu_std = array('stdCode'     => $stdCode,
                    
'stdGenStatus'    => 'Y'
                
);
                
$qu_std $this->std->qryStdJoinPfCurSySstElv($con_qu_std);
                if (
$qu_std->num_rows()) {
                    
$this->contents['qu_std'] = $qu_std;
                } else {
                    
$this->contents['err_msg'] = "** ไม่ปรากฏรหัสนักศึกษาดังกล่าวในฐานข้อมูล **";
                }
            }
        }

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

    
// ### คำนวณค่าลงทะเบียนเรียน 
    
function showCalFeeCur() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_term','tm');

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

        
$this->contents['acY'] = $acY;
        
$this->contents['tmId'] = $tmId;
        
$this->contents['rs_tm'] = $this->tm->get_options('''''''y');

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

    function 
processCalFeeCur() {
        
$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('curName',' ','trim|required|xss_clean');
        
$this->form_validation->set_rules('tmIdAdmit',' ','trim|required|xss_clean');
        
$this->form_validation->set_rules('adY',' ','trim|required|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('syId2',' ','trim|required|xss_clean');

        if(
$this->form_validation->run() == true) {
            
$this->load->model($this->config->item("rg_folder").'mo_rg_student','std');
            
$this->load->model($this->config->item("rg_folder").'mo_rg_registfee','rf');

            
$curId $this->input->post('curId');
            
$adY $this->input->post('adY');
            
$syId $this->input->post('syId');
            
$acY =$this->input->post('acY');
            
$tmId $this->input->post('tmId');
            
$syId2 $this->input->post('syId2');
            
$reviseY 2552;

            
$con_rs_std = array('stdCurId'    => $curId,
                
'stdSyId'    => $syId,
                
'stdAdY'    => $adY
            
);
            
$ord_rs_std = array('stdCode'     => 'ASC');
            
$rs_std $this->std->qryStd($con_rs_std$ord_rs_std);
            foreach (
$rs_std->result() as $row_std) {
                
$rs_rf $this->rf->qryRfByStdIdAcYTmIdNoPay($row_std->stdId$acY$tmId);
                
// Found สามารถคำนวณค่าใช้จ่ายใหม่ได้ก็ต่อเมื่อยังไม่ได้ชำระเงินเท่านั้น
                
if ($rs_rf->num_rows()) {
                    
$this->rf->rfId $rs_rf->row()->rfId;
                    
$this->rf->get_by_key(TRUE);

                    if (
$row_std->stdAdY >= $reviseY) {
                        
$this->rf->rfTotalAmt $this->calFee2552($row_std->stdId$acY$syId2$tmId$curId$row_std->stdEtId$row_std->stdAdY);
                    } else {
                        
$this->rf->rfTotalAmt $this->calFee($row_std->stdId$acY$syId2$tmId$curId$row_std->stdEtId);
                    }
                    
$this->rf->rfBalance $this->rf->rfTotalAmt;
                    
$this->rf->rfUpdateDate date('Y-m-d H:i:s');
                    
$this->rf->rfUpdateUserId $this->session->userdata('UsLogin');
                    
$this->rf->update();
                }
            }

            
redirect($this->config->item('rg_folder').'regis/showCalFeeCur');
        } else {
            
$this->showCalFeeCur();
        }
    }

    
// ##### student start เพิ่ม-ถอนรายวิชาลงทะเบียน
    
function std_showAddWithdraw() {
        
$this->load->model($this->config->item("rg_folder").'mo_rg_student','std');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_acadconfig','ac');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_schedule','sd');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_regist','rg');
        
$this->load->model($this->config->item("rg_folder").'mo_rg_registdetails','rd');

        
$stdCode $this->session->userdata('UsPsCode');
        
$acY_R $this->session->userdata('acY_R');
        
$tmId_R $this->session->userdata('tmId_R');

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

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

        
$con_qu_std = array('stdCode'     => $stdCode,
            
'stdSstId'    => 1,
            
'stdGenStatus'    => 'Y'
        
);
        
$qu_std $this->std->qryStdJoinPfCurSySstElv($con_qu_std);
        if (
$qu_std->num_rows()) {
            
$row_std $qu_std->row();
            
$this->contents['qu_std'] = $qu_std;

            
$forceAssess $this->forceAssess();
            if (
$forceAssess) {
                
$qu_sd $this->sd->qrySdByAcYTmIdAWDate($acY_R$tmId_RgetNowDate());
                
//$qu_sd = $this->sd->qrySdByAcYTmIdAWDate($acY_R, $tmId_R, '2011-06-15');

                
if (!$qu_sd->num_rows()) {
                    
$msg "ไม่สามารถดำเนินการเพิ่ม-ถอนรายวิชาลงทะเบียนได้<br />เนื่องจากไม่อยู่ในช่วงเพิ่ม-ถอนรายวิชา";

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

                
$con_qu_rg = array('rgStdId'    => $row_std->stdId);
                
$maxAcY $this->rg->getMaxAcY($con_qu_rg);
                
$this->contents['maxAcY'] = $maxAcY;

                
$con_qu_rg = array('rgStdId'    => $row_std->stdId,
                    
'rgAcY'    => $maxAcY
                
);
                
$this->contents['maxTmId'] = $this->rg->getMaxTmId($con_qu_rg);

                
$con_rs_rd = array('rdStdId'    => $row_std->stdId,
                    
'rdAcY'    => $acY,
                    
'rdTmId'    => $tmId
                
);
                
$this->contents['rs_rd'] = $this->rd->qryRdJoinCoCrs($con_rs_rd);

                
$con_rs_rg = array('rgStdId'    => $row_std->stdId,
                    
'rgAcY'    => $acY,
                    
'rgTmId'    => $tmId,
                    
'rgStatus'    => 'K'
                
);
                
$rs_rg $this->rg->qryRg($con_rs_rg);
                if (
$rs_rg->num_rows()) {
                    
$this->contents['kssFlag'] = "** รักษาสถานภาพการเป็นนักศึกษา **";
                }

                
$con_qu_rd = array('rdStdId'    => $row_std->stdId,
                    
'rdAcY'    => $acY,
                    
'rdTmId'    => $tmId
                
);
                
$this->contents['sumCrAt'] = $this->rd->getSumCrAt($con_qu_rd);
            }    
// end if forceAssess
        
} else {
            
$this->contents['err_msg'] = "** ไม่ปรากฏรหัสนักศึกษาดังกล่าวในฐานข้อมูล **";
        }

        
$this->output($this->config->item("rg_folder")."v_std_showAddWithdraw");
    }
    
// ##### student end เพิ่ม-ถอนรายวิชาลงทะเบียน
}
?>

:: 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.0333 ]--