Viewing file: mo_rg_termconfig.php (11.89 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));
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;
}
}
?>
|