Viewing file:      mo_rg_studentactivity.php (6.72 KB)      -rwxr-xr-x Select action/file-type:    (+) |   (+) |   (+) | Code (+) | Session (+) |   (+) | SDB (+) |   (+) |   (+) |   (+) |   (+) |   (+) |
 
<?php
 include_once("da_rg_StudentActivity.php");
 class Mo_rg_studentactivity extends Da_rg_StudentActivity {
     
     /**
      * หน้าที่ของฟังก์ชั่น คือ หาข้อมูลการทำกิจกรรมของนักศึกษา ตามเงื่อนไข
      *
      * @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_StudentActivity.*
      * @todo    use
      */
     public function qrySac($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_StudentActivity
                     $c1
                     $c2
                     $c3";
         $query = $this->db->query($sql);
         return $query;
     }
 
     function qrystdActivityByAcYAndDateGroupActNameAndDate($acY, $dateFrom, $dateTo){
         $sql = "SELECT * FROM $this->rg_dbname.rg_StudentActivity
                     WHERE sacAcY = ? AND sacFrDate >= ? AND sacToDate <= ?
                     GROUP BY sacName , sacFrDate , sacToDate
                     ORDER BY  sacFrDate , sacToDate";
         $query = $this->db->query($sql,array($acY, $dateFrom, $dateTo));
         return $query;
     }
 
     function qrystdActivityGetCountStdIdByAcYAndActNameAndDate($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 COUNT(sacStdId) AS num FROM $this->rg_dbname.rg_StudentActivity
                     INNER JOIN $this->rg_dbname.rg_Student ON stdId = sacStdId
                     $c1
                     $c2
                     $c3";
         $query = $this->db->query($sql);
         return $query;
     }
 
     // **********************************
     // ตรวจดูฟังก์ชั่นนี้ การส่ง parameter
     function qrystaActivityJoinStdByAcYAndActNameAndStYAndDateAndPgId($acY, $actName, $stY, $dateFrom, $dateTo, $pgId){    
         $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 COUNT(sacStdId) AS num FROM $this->rg_dbname.rg_StudentActivity
                     INNER JOIN $this->rg_dbname.rg_Student ON stdId = sacStdId
                     $c1
                     $c2
                     $c3";
         $query = $this->db->query($sql);
         return $query;
     }
 
     // *********************************
     // ตรวจดูฟังก์ชั่นนี้
     function GetCountStIdByAcYAndActNameAndStYAndDateAndPgId($acY, $actName, $stY, $dateFrom, $dateTo, $pgId){
         $this->SetQuery("select count(a.studentId) as num from StudentActivity a, StudentMaster m 
                             where a.acadYear='$acY' and a.activityName='$actName' and a.classYear='$stY' 
                             and a.dateFrom='$dateFrom' and a.dateTo='$dateTo' 
                             and a.studentId=m.studentId and m.programId='$pgId'");
         if ($result=$this->GetResult()) {
             return $result['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_StudentActivity.*, rg_Term.*, rg_StudyYear.*
      * @todo    use
      */
     function qrySacJoinTmSy($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_StudentActivity
                 LEFT JOIN $this->rg_dbname.rg_Term ON sacTmId=tmId
                 LEFT JOIN $this->rg_dbname.rg_StudyYear ON sacSyId=syId
                 $c1
                 $c3
                 $c2";
         $query = $this->db->query($sql);
         return $query;
     }
 
     /**
      * หน้าที่ของฟังก์ชั่น คือ หาลำดับการทำกิจกรรมที่มากที่สุด ของนักศึกษาแต่ละคน
      *
      * @access    public
      * @param    $sacStdId : รหัสนักศึกษา
      * @return    sacSeq : ลำดับการทำกิจการที่มากที่สุด
      * @todo    use
      */
     function getNextSacSeqBySacStdId($sacStdId) {
         $sql = "SELECT IFNULL(MAX(sacSeq),0) + 1 AS sacSeq
                 FROM $this->rg_dbname.rg_StudentActivity
                 WHERE sacStdId=?";
         $query = $this->db->query($sql,array($sacStdId));
         return $query->row()->sacSeq;
     }
 
     //@tod    use
     function qrySacBySacStdIdAndGEAdYJoinTmSy($sacStdId,$sacAcY) {
         $sql = "SELECT * FROM $this->rg_dbname.rg_StudentActivity
                 LEFT JOIN rg_Term ON sacTmId=tmId
                 LEFT JOIN rg_StudyYear ON sacSyId=syId
                 WHERE sacStdId=?
                 AND sacAcY>=?";
         $query = $this->db->query($sql,array($sacStdId,$sacAcY));
         return $query;
     }
 
     //@tod    use
     public function qryBetweenDateNotSacStdId($sacFrDate,$sacToDate,$sacStdId) {
         $sql = "SELECT *
                 FROM $this->rg_dbname.rg_StudentActivity
                 WHERE sacToDate>=?
                 AND sacFrDate<=?
                 AND sacStdId=?";
         $query = $this->db->query($sql,array($sacFrDate,$sacToDate,$sacStdId));
         return $query;
     }
 }
 ?>
  |