Viewing file:      mo_rg_termconfig.php (11.94 KB)      -rw-r--r-- Select action/file-type:    (+) |   (+) |   (+) | Code (+) | Session (+) |   (+) | SDB (+) |   (+) |   (+) |   (+) |   (+) |   (+) |
 
<?php
 include_once("da_rg_TermConfig.php");
 
 class Mo_rg_TermConfig extends Da_rg_TermConfig {
 
     /**
      * หน้าที่ของฟังก์ชั่น คือ หาปี/ภาคการศึกษาตามเงื่อนไข
      *
      * @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_TermConfig.*
      */
     public function qryTmc($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_TermConfig
                     $c1
                     $c3
                     $c2";
         $query = $this->db->query($sql);
         return $query;
     }
 
     public function qryTmcJnTm($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_TermConfig
                     LEFT JOIN $this->rg_dbname.rg_Term ON tmcTmId=tmId
                     $c1
                     $c3
                     $c2";
         $query = $this->db->query($sql);
         return $query;
     }
 
      /**
      * หน้าที่ของฟังก์ชั่น คือ หาปีการศึกษาเพื่อแสดงเป็น dropdown
      *
      * @access    public
      * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
      * @order    array order โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการเรียงลำดับ  GROUP BY
      * @group    array group โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการจัดกลุ่ม ORDER BY
      * @param    char optional ไว้สำหรับสร้าง string ของ dropdown
      * @return    array $opt อยู่ในรูป array opt('tmId' => tmName)
      * @todo    use
      */
     public function get_options($condition="",$order="",$group="", $optional='') {
         $query = $this->qryTmc($condition,$order,$group);
 
         if($optional) $opt[''] = $optional;
         $i = 1;
         foreach($query->result() as $row) {
             $opt[$row->tmcAcY] = $row->tmcAcY;
         }
         return $opt;
     }
 
     public function get_optionsForDm($condition="",$order="",$group="", $optional='') {
         $query = $this->qryTmcJnTm($condition,$order,$group);
         if($optional) $opt[''] = $optional;
         $i = 1;
         foreach($query->result() as $row) {
             $opt[$i++] = "ปีการศึกษา ".$row->tmcAcY." ".$row->tmName." ตั้งแต่วันที่ ".abbreDate2($row->tmcFrDate)." ถึงวันที่ ".abbreDate2($row->tmcToDate);
         }
         return $opt;
     }
 
     /**
      * หน้าที่ของฟังก์ชั่น คือ หาวันที่ปัจจุบันว่าอยู่ในช่วงปี/เทอมการศึกษาใด
      *
      * @access    public
      * @param    $dmy คือ วันที่ปัจจุบัน อยู่ในรูปแบบ 0000-00-00
      * @return    query = 1 row : rg_TermConfig
      * @todo    use
      */
     public function getBetweenDateByNowDate($dmy) {
         $sql = "SELECT *
                     FROM $this->rg_dbname.rg_TermConfig
                     WHERE ?
                     BETWEEN tmcFrDate
                     AND tmcToDate";
         $query = $this->db->query($sql,array($dmy));
         return $query;
     }
 
     function qryTmcBetweenDate($dmy) {
         $sql = "SELECT * 
                     FROM $this->rg_dbname.rg_TermConfig 
                     WHERE ? BETWEEN tmcFrDate AND tmcToDate";
 
         $query = $this->db->query($sql, array($dmy));
         //echo "<pre>"; print_r($this->db);  exit;
         return $query;
     }
 
      /**
      * หน้าที่ของฟังก์ชั่น คือ หาช่วงวันที่ที่ถูกกำหนดเป็นวัน เปิด-ปิดภาคการศึกษา
      *
      * @access    public
      * @param    $tmcFrDate คือ วันที่เริ่มต้น อยู่ในรูปแบบ ปีค.ศ.-เดือน-วันที่
      * @param    $tmcToDate คือ วันที่สิ้นสุด อยู่ในรูปแบบ ปีค.ศ.-เดือน-วันที่
      * @return    query >= 1 rows : rg_TermConfig.*
      */
     public function qryBetweenDate($tmcFrDate,$tmcToDate) {
         $sql = "SELECT *
                 FROM $this->rg_dbname.rg_TermConfig
                 WHERE tmcToDate>=?
                 AND tmcFrDate<=?";
         $query = $this->db->query($sql,array($tmcFrDate,$tmcToDate));
         return $query;
     }
 
     /**
      * หน้าที่ของฟังก์ชั่น คือ หาช่วงวันที่ที่ถูกกำหนดเป็นวัน เปิด-ปิดภาคการศึกษา
      *
      * @access    public
      * @param    $tmcFrDate คือ วันที่เริ่มต้น อยู่ในรูปแบบ ปีค.ศ.-เดือน-วันที่
      * @param    $tmcToDate คือ วันที่สิ้นสุด อยู่ในรูปแบบ ปีค.ศ.-เดือน-วันที่
      * @return    query >= 1 rows : rg_TermConfig.*
      */
     public function qryBetWeenDateNotAcYTmId($tmcAcY, $tmcTmId, $tmcFrDate,$tmcToDate) {
         $sql = "SELECT *
                 FROM $this->rg_dbname.rg_TermConfig
                 WHERE tmcToDate>=?
                 AND tmcFrDate<=?
                 AND (tmcAcY!=?
                 OR tmcTmId!=?)";
         $query = $this->db->query($sql,array($tmcFrDate,$tmcToDate,$tmcAcY,$tmcTmId));
         return $query;
     }
     
     /**
      * หน้าที่ของฟังก์ชั่น คือ หาปี/ภาคการศึกษาตามเงื่อนไข พร้อม JOIN rg_Term
      *
      * @access    public
      * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
      * @return    query >= 1 rows : rg_TermConfig.*, rg_Term.*
      */
     public function qryTmcJoinTm($condition="") {
         $qry = $this->checkCondition($condition);
 
         $con= substr($qry, 0, -3);
 
         $sql = "SELECT *
                     FROM $this->rg_dbname.rg_TermConfig
                     INNER JOIN $this->rg_dbname.rg_Term ON tmcTmId=tmId
                     $con
                     ORDER BY tmcAcY DESC, tmCode DESC";
         $query = $this->db->query($sql);
         return $query;
     }
 
 
 //************************************************************************
     // function หลังจากนี้ สร้างหลังจาก 6 ตุลา
 
     /**
         * ดึงระยะเวลาของปี/เทอมการศึกษา ทั้งหมดในตาราง
         @access public
         @return $query
     */
     public function getAllData(){
         $sql = "SELECT * 
                     FROM $this->rg_dbname.rg_TermConfig";
         $query = $this->db->query($sql);
         return $query;
     }
     
     /**
         * ดึงระยะเวลาของปี/เทอมการศึกษา 
           และข้อมูลเทอมการศึกษาของตาราง rg_TermConfig ที่ตรงกับ rg_Term
         @access public
         @return $query
     */
     public function getAllDataJoinTm(){
         $sql = "SELECT * 
                     FROM $this->rg_dbname.rg_TermConfig tmc, rg_Term tm 
                     WHERE tmc.tmcTmId=tm.tmId";
         $query = $this->db->query($sql);
         return $query;
     }
     
     /**
         * ดึงปีการศึกษาที่มากที่สุด
         @access public
         @return $row->num
     */
     public function getMaxAcY() {
         $sql = "SELECT MAX(tmcAcY) AS num
                     FROM $this->rg_dbname.rg_TermConfig";
         $query = $this->db->query($sql);
         if ($row=$query->row())
             return $row->num;
     }
     
     /**
         * ดึงวันที่ เดือน ของปีการศึกษาที่ต้องการ
           ใช้สำหรับคาดการณ์วันที่นักศึกษาจะจบ
          @access public
          @param $acY
          @return $row->tmcToDate
     */
     public function getMaxToDateByAcY($acY) {
         $sql = "SELECT MAX(tmcToDate) AS tmcToDate
                     FROM $this->rg_dbname.rg_TermConfig
                     WHERE tmcAcY=?";
         $query = $this->db->query($sql,array($acY));
         if ($row=$query->row()) {
             return $row->tmcToDate;
         } else {
             return '';
         }
     }
 
     // use
     public function getMinToDateByAcY($acY) {
         $sql = "SELECT MIN(tmcFrDate) AS tmcFrDate
                     FROM $this->rg_dbname.rg_TermConfig
                     WHERE tmcAcY=?";
         $query = $this->db->query($sql,array($acY));
         if ($query->num_rows()) {
             return $query->row()->tmcFrDate;
         } else {
             return '';
         }
     }
     
     /*public function getMaxToDateByAcY($acY, $tmId=FALSE) {
         $sql = "SELECT MAX(tmcToDate) AS tmcToDate
                     FROM rg_TermConfig
                     WHERE tmcAcY=?
                     AND tmcTmId=?";
         $query = $this->db->query($sql,array($acY, $tmId));
         return $query;
     }*/
     /**
         * ดึงปีการศึกษา
         @access public
         @return $query
     */
     public function qryTmcGroupAcY($order="") {
         $order = $this->checkOrderBy($order);
 
         $c2 = substr($order, 0, -1);
 
         $sql = "SELECT tmcAcY 
                     FROM $this->rg_dbname.rg_TermConfig 
                     GROUP BY tmcAcY
                     $c2";
         $query = $this->db->query($sql);
         return $query;
     }
 
     public function qryTmcGroupTmId($order="", $tmcAcY) {
         $order = $this->checkOrderBy($order);
 
         $c2 = substr($order, 0, -1);
 
         $sql = "SELECT tmcTmId, tmName
                     FROM $this->rg_dbname.rg_TermConfig
                     LEFT $this->rg_dbname.JOIN rg_Term ON tmcTmId=tmId
                     WHERE tmcAcY=?
                     GROUP BY tmcTmId
                     $c2";
         $query = $this->db->query($sql,array($tmcAcY));
         return $query;
     }
 
     public function get_optionsGroupAcY($optional='y', $order="") {
         $query = $this->qryTmcGroupAcY($order);
         if ($optional == 'y') $opt[''] = '';
         foreach($query->result() as $row) {
             $opt[$row->tmcAcY] = $row->tmcAcY;
         }
         return $opt;
     }
 
     public function get_optionsGroupTmId($tmcAcY, $optional='y', $order="") {
         $query = $this->qryTmcGroupTmId($order, $tmcAcY);
         if ($optional == 'y') $opt[''] = '';
         foreach($query->result() as $row) {
             $opt[$row->tmcTmId] = $row->tmName;
         }
         return $opt;
     }
 
     /**
         * นำวันที่ปัจจุบัน มาหาว่าอยู่ในช่วง ปี/(ชื่อ)เทอมการศึกษาใด
         @access public
         @param $nowDate
         @return $query
     */
     public function getBetweenDateByNowDateJoinTm($dmy){
         $sql = "SELECT * 
                     FROM $this->rg_dbname.rg_TermConfig
                     JOIN $this->rg_dbname.rg_Term ON tmcTmId = TmId
                     WHERE ?
                     BETWEEN tmcFrDate
                     AND tmcToDate";
         $query = $this->db->query($sql, array($dmy));
         return $query;
     }
     
     /**
         เอาวันที่ปัจจุบันหาปีกาศึกษาปัจจุบัน
     */
     public function get_tmcAcY(){
         $sql = "SELECT tmcAcY 
                     FROM `rg_TermConfig`
                     WHERE curdate( ) BETWEEN tmcFrDate AND tmcToDate";
         $query = $this->db->query($sql);
         return $query;
     }
 
 }
 ?>
  |