Viewing file: mo_rg_timetable.php (25.21 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
include_once("da_rg_TimeTable.php");
class mo_rg_timetable extends Da_rg_TimeTable {
/**
* หน้าที่ของฟังก์ชั่น คือ ต่อสตริงของ sql->order ในรูปแบบ CONVERT
*
* @access public
* @param array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value)
* @return string con โดยอยู่ในรูปแบบ ORDER('$value' USING TIS620)
* @todo use
*/
public function checkOrderBy_2($condition="") {
$con = "";
if($condition) {
$con .= "ORDER BY ";
foreach($condition as $key => $value) {
$con .= "CONVERT($value USING TIS620),";
}
}
return $con;
}
/**
* หน้าที่ของฟังก์ชั่น คือ หารายวิชาที่ถูกจัดตารางสอน
*
* @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_TimeTable.*
* @todo use
*/
public function qryTt($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_TimeTable
$c1
$c2
$c3";
$query = $this->db->query($sql);
return $query;
}
function getSumHr($condition="",$order="") {
$where = $this->checkCondition($condition);
$c1= substr($where, 0, -3);
$sql = "SELECT IFNULL(SUM(ttPrdToTime - ttPrdFrTime + 1)) AS num
FROM $this->rg_dbname.rg_TimeTable
$c1";
$query = $this->db->query($sql);
return $query;
}
function qryTtGroupPrsId($condition="",$order="") {
$where = $this->checkCondition($condition);
$order = $this->checkOrderBy($order);
$c1= substr($where, 0, -3);
$c2= substr($order, 0, -1);
$sql = "SELECT ttPrsId
FROM $this->rg_dbname.rg_TimeTable
$c1
$c2
GROUP BY ttPrsId";
$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_TimeTable.*, peoplecenter.Person, peoplecenter.Prefix
* @todo use
*/
public function qryTtJoinPeopleCenter($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 *, IF(prsItId=1, pf.prefixName, pfo.prefixName) AS prefixName,
IF(prsItId=1, ps.fName, pso.fName) AS fName,
IF(prsItId=1, ps.lName, pso.lName) AS lName
FROM $this->rg_dbname.rg_TimeTable
INNER JOIN $this->rg_dbname.rg_Person ON ttPrsId = prsId
LEFT JOIN $this->ppc_dbname.Person ps ON prsUsId = ps.personId
LEFT JOIN $this->ppc_dbname.Prefix pf ON ps.prefixId = pf.prefixId
LEFT JOIN $this->ppc_dbname.Personout pso ON prsUsId = pso.psoutId
LEFT JOIN $this->ppc_dbname.Prefix pfo ON pso.prefixId = pfo.prefixId
$c1
$c2
$c3";
$query = $this->db->query($sql);
return $query;
}
/**
* หน้าที่ของฟังก์ชั่น คือ หาอาจารย์ผู้สอนประจำรายวิชา
*
* @access public
* @param array condition
* @return query >= 1 rows ()
*/
// public function qryTeacherCo($condition="") {
// $qry = $this->checkCondition($condition);
// $con= substr($qry, 0, -3);
//
// $sql = "SELECT rg_TimeTable.*, rg_CourseOpen.coId , pp.personId, pp.prefixId, pp.personCode, pp.fName, pp.lName, pf.prefixId, pf.prefixName
// FROM $this->rg_dbname.rg_TimeTable
// LEFT JOIN $this->rg_dbname.rg_CourseOpen ON ttCoId=coId
// LEFT JOIN $this->ppc_dbname.Person AS pp ON ttPrsId=pp.personId
// LEFT JOIN $this->ppc_dbname.Prefix AS pf ON pp.prefixId=pf.prefixId
// $con";
// $query = $this->db->query($sql);
// return $query;
// }
public function qryTtJoinCo($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_TimeTable
LEFT JOIN $this->rg_dbname.rg_CourseOpen ON ttCoId=coId
$c1
$c2
$c3";
$query = $this->db->query($sql);
//echo $sql."<hr>";
return $query;
}
// ฟังก์ชั่น หลังจากนี้เป็นฟังก์ชั่น ก่อนวันที่ 6 ตุลาคม 2553
/*
* aOrderBy = array('fieldname' => 'ASC|DESC', ... )
*/
function get_all($aOrderBy=""){
$orderBy = "";
if ( is_array($aOrderBy) ) {
$orderBy.= "ORDER BY ";
foreach ($aOrderBy as $key => $value) {
$orderBy.= "$key $value, ";
}
$orderBy = substr($orderBy, 0, strlen($orderBy)-2);
}
$sql = "SELECT *
FROM $this->rg_dbname.rg_TimeTable
$orderBy";
$query = $this->db->query($sql);
return $query;
}
/*
* create array of pk field and value for generate select list in view, must edit PK_FIELD and FIELD_NAME manually
* the first line of select list is '-----เลือก-----' by default.
* if you do not need the first list of select list is '-----เลือก-----', please pass $optional parameter to other values.
* you can delete this function if it not necessary.
*/
function get_options($optional='y') {
$qry = $this->get_all();
if ($optional=='y') $opt[''] = '-----เลือก-----';
foreach ($qry->result() as $row) {
$opt[$row->PK_FIELD] = $row->FIELD_NAME;
}
return $opt;
}
// add your functions here
/**
* หน้าที่ของฟังก์ชั่น คือ หาอาจารย์ผู้สอน
*
* @access public
* @param int course open id
* @return query >= 1 rows ()
* @todo เพิ่ม อาจารย์ประจำ อาจารย์พิเศษ
* @todo พิมพ์ v_printSendGradePDF
*/
public function qryTeacher($clIdStr) {
$sql = "SELECT GROUP_CONCAT(IF(prsItId=1, CONCAT(pf.prefixName,ps.fName,' ',ps.lName),
CONCAT(pfo.prefixName,pso.fName,' ',pso.lName)) SEPARATOR ', ') AS prsName
FROM (
SELECT ttPrsId
FROM $this->rg_dbname.rg_TimeTable
WHERE ttCoId IN (".$clIdStr.")
GROUP BY ttPrsId
) AS tt
INNER JOIN $this->rg_dbname.rg_Person ON tt.ttPrsId = prsId
LEFT JOIN $this->ppc_dbname.Person ps ON prsUsId = ps.personId
LEFT JOIN $this->ppc_dbname.Prefix pf ON ps.prefixId = pf.prefixId
LEFT JOIN $this->ppc_dbname.Personout pso ON prsUsId = pso.psoutId
LEFT JOIN $this->ppc_dbname.Prefix pfo ON pso.prefixId = pfo.prefixId";
$query = $this->db->query($sql);
return $query;
}
function qryTeacher2($clIdStr) {
$sql = "SELECT *, IF(prsItId=1, pf.prefixName, pfo.prefixName) AS prefixName,
IF(prsItId=1, ps.fName, pso.fName) AS fName,
IF(prsItId=1, ps.lName, pso.lName) AS lName
FROM (
SELECT ttPrsId
FROM $this->rg_dbname.rg_TimeTable
WHERE ttCoId IN ($clIdStr)
GROUP BY ttPrsId
) AS tt
INNER JOIN $this->rg_dbname.rg_Person ON tt.ttPrsId = prsId
LEFT JOIN $this->ppc_dbname.Person ps ON prsUsId = ps.personId
LEFT JOIN $this->ppc_dbname.Prefix pf ON ps.prefixId = pf.prefixId
LEFT JOIN $this->ppc_dbname.Personout pso ON prsUsId = pso.psoutId
LEFT JOIN $this->ppc_dbname.Prefix pfo ON pso.prefixId = pfo.prefixId";
$query = $this->db->query($sql);
return $query;
}
/**
* หน้าที่ของฟังก์ชั่น คือ หาอาจารย์ผู้สอน
*
* @access public
* @param int course open id
* @return query >= 1 rows ()
*/
// public function qryTeacherNogrpConcat($ttCoId) {
// $sql = "SELECT ttId, ttPrsId, CONCAT(pf.prefixName,pp.fname,' ',pp.lname) AS prsName
// FROM $this->rg_dbname.rg_TimeTable
// LEFT JOIN $this->ppc_dbname.Person AS pp ON ttPrsId=pp.personId
// LEFT JOIN $this->ppc_dbname.Prefix AS pf ON pp.prefixId=pf.prefixId
// WHERE ttCoId=?";
// $query = $this->db->query($sql,array($ttCoId));
// return $query;
// }
//use ตารางสอนรวมประจำภาคการศึกษา
// function qryTTJOINRoom($coId, $dy, $pr) {
// $sql = "SELECT *, ttId, ttPrsId, CONCAT(pf.prefixName,pp.fname,' ',pp.lname) AS prsName
// FROM $this->rg_dbname.rg_TimeTable
// LEFT JOIN $this->ppc_dbname.spc_Place ON plHwId = ttRmId
// LEFT JOIN $this->ppc_dbname.Person AS pp ON ttPrsId=pp.personId
// LEFT JOIN $this->ppc_dbname.Prefix AS pf ON pp.prefixId=pf.prefixId
// WHERE ttCoId =?
// AND ttWdAcYWeekNo =?
// AND ? BETWEEN ttPrdFrTime AND ttPrdToTime
// ";
// $query = $this->db->query($sql,array($coId, $dy, $pr));
// $this->load->database('rg',TRUE);
// return $query;
// }
/**
* หน้าที่ของฟังก์ชั่น คือ หาคาบที่มีการจัดการเรียนการสอนในช่วงเวลาตามเงื่อนไข
*
* @access public
* @param array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
* @param frTime: รหัสของเวลาเริ่มต้น
* @param toTime: รหัสของเวลาสิ้นสุด
* @return query >= 1 rows () rg_CourseOpen.*, rg_TimeTable.*
*/
function qryTtBetweenFrTimeAndToTime($condition="",$frTime,$toTime) {
$where = $this->checkCondition($condition);
$c1= substr($where, 0, -3);
/*$sql = "SELECT *
FROM rg_CourseOpen
LEFT JOIN rg_TimeTable ON coId=ttCoId
WHERE coAcY=?
AND ttWdAcYWeekNo=?
AND ttDyId=?
AND ttPrdFrTime>=?
AND ttPrdToTime<=?";*/
$sql = "SELECT *
FROM $this->rg_dbname.rg_CourseOpen
LEFT JOIN $this->rg_dbname.rg_TimeTable ON coId=ttCoId
$c1
AND ttPrdFrTime>=?
AND ttPrdToTime<=?";
$query = $this->db->query($sql,array($toTime,$frTime));
return $query;
}
public function qryRm($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->ppc_dbname.spc_Place
$c1
$c3
$c2";
$query = $this->db->query($sql);
return $query;
}
function GetMaxOVLByAcYAndPgIdStrAndStYAndAcYWeekNoAndDyId($acY, $curId="", $syId="", $ttWdAcYWeekNo, $dyId){
if($curId=="NULL" or $curId==""){
$cur = " and coCurId IS NULL";
}else{
$cur = "and coCurId ='$curId'";
}
if($syId==""){
$sy = NULL;
}else{
$sy = "and coSyId ='$syId'";
}
$sql = "select IFNULL(max(numOvl), 0) as num
from (select t1.ttId, count(*) as numOvl
from $this->rg_dbname.rg_CourseOpen c
inner join $this->rg_dbname.rg_TimeTable t1 on c.coId=t1.ttCoId
inner join (select t.*
from $this->rg_dbname.rg_CourseOpen c, $this->rg_dbname.rg_TimeTable t
where coAcY='".$acY."' ".$cur." ".$sy." and c.coId=t.ttCoId
) as t2 on t1.ttWdAcYWeekNo=t2.ttWdAcYWeekNo and t1.ttDyId=t2.ttDyId
where coAcY='".$acY."' ".$cur." ".$sy." and t1.ttWdAcYWeekNo='".$ttWdAcYWeekNo."' and t1.ttDyId='".$dyId."'
and t1.ttPrdFrTime between t2.ttPrdFrTime and t2.ttPrdToTime
group by t1.ttId
) as tt";
$query = $this->db->query($sql);
if($query->num_rows()>0){
return $query->row()->num;
}else{
return 1;
}
}
function GetMaxOVLByAcYAndRmIdAndAcYWeekNoAndDyId($acY, $rmId="", $acYWeekNo, $dyId){
$sql = "select max(numOvl) as num
from (select t1.ttId, count(*) as numOvl
from $this->rg_dbname.rg_CourseOpen c
inner join $this->rg_dbname.rg_TimeTable t1 on c.coId=t1.ttCoId
inner join (select t.*
from $this->rg_dbname.rg_CourseOpen c, $this->rg_dbname.rg_TimeTable t
where coAcY='$acY' and c.coId=t.ttCoId
) as t2 on t1.ttRmId=t2.ttRmId
and t1.ttWdAcYWeekNo=t2.ttWdAcYWeekNo and t1.ttDyId=t2.ttDyId
where coAcY='$acY' and t1.ttRmId='$rmId'
and t1.ttWdAcYWeekNo='$acYWeekNo' and t1.ttDyId='$dyId'
and t1.ttPrdFrTime between t2.ttPrdFrTime and t2.ttPrdToTime
group by t1.ttId
) as tt";
$query = $this->db->query($sql);
if($query->num_rows()>0){
return $query->row()->num;
}else{
return 1;
}
}
function GetMaxOVLByAcYAndEpMepIdAndEpSepIdAndAcYWeekNoAndDyId($acY, $epMepId, $epSepId, $acYWeekNo, $dyId){
$sql = "select max(numOvl) as num
from (select t1.ttId, count(*) as numOvl
from $this->rg_dbname.rg_CourseOpen c
inner join $this->rg_dbname.rg_TimeTable t1 on c.coId=t1.ttCoId
inner join (select t.*
from $this->rg_dbname.rg_CourseOpen c, $this->rg_dbname.rg_TimeTable t
where coAcY='$acY' and c.coId=t.ttCoId
) as t2 on t1.ttEtpMepId=t2.ttEtpMepId and t1.ttEtpSepId=t2.ttEtpSepId
and t1.ttWdAcYWeekNo=t2.ttWdAcYWeekNo and t1.ttDyId=t2.ttDyId
where coAcY='$acY'
and t1.ttEtpMepId='$epMepId' and t1.ttEtpSepId='$epSepId'
and t1.ttWdAcYWeekNo='$acYWeekNo' and t1.ttDyId='$dyId'
and t1.ttPrdFrTime between t2.ttPrdFrTime and t2.ttPrdToTime
group by t1.ttId
) as tt";
$query = $this->db->query($sql);
if($query->num_rows()>0){
return $query->row()->num;
}else{
return 1;
}
}
function GetMaxOVLByAcYAndOfIdAndAcYWeekNoAndDyId($acY, $ofId, $acYWeekNo, $dyId){
$sql = "select max(numOvl) as num
from (select t1.ttId, count(*) as numOvl
from $this->rg_dbname.rg_CourseOpen c
inner join $this->rg_dbname.rg_TimeTable t1 on c.coId=t1.ttCoId
inner join (select t.*
from $this->rg_dbname.rg_CourseOpen c, $this->rg_dbname.rg_TimeTable t
where coAcY='$acY' and c.coId=t.ttCoId
) as t2 on t1.ttPrsId=t2.ttPrsId
and t1.ttWdAcYWeekNo=t2.ttWdAcYWeekNo and t1.ttDyId=t2.ttDyId
where coAcY='$acY'
and t1.ttPrsId='$ofId'
and t1.ttWdAcYWeekNo='$acYWeekNo' and t1.ttDyId='$dyId'
and t1.ttPrdFrTime between t2.ttPrdFrTime and t2.ttPrdToTime
group by t1.ttId
) as tt";
$query = $this->db->query($sql);
if($query->num_rows()>0){
return $query->row()->num;
}else{
return 1;
}
}
function GetMaxOVLByAcYAndCoIdAndDyId($acY, $coId, $dyId){
$sql = "select max(numOvl) as num
from (select t1.ttId, count(*) as numOvl
from $this->rg_dbname.rg_CourseOpen c
inner join $this->rg_dbname.rg_TimeTable t1 on c.coId=t1.ttCoId
inner join (select t.*
from $this->rg_dbname.rg_CourseOpen c, $this->rg_dbname.rg_TimeTable t
where coAcY='$acY' and coCrsId='$coId' and c.coId=t.ttCoId
) as t2 on t1.ttDyId=t2.ttDyId
where coAcY='$acY'
and coCrsId='$coId'
and t1.ttDyId='$dyId'
and t1.ttPrdFrTime between t2.ttPrdFrTime and t2.ttPrdToTime
group by t1.ttId
) as tt";
$query = $this->db->query($sql);
if($query->num_rows()>0){
return $query->row()->num;
}else{
return 1;
}
}
function GetMaxOVLByAcYAndCoIdAndClIdAndDyId($acY, $coId, $clId, $dyId){
$sql = "select max(numOvl) as num
from (select t1.ttId, count(*) as numOvl
from $this->rg_dbname.rg_CourseOpen c
inner join $this->rg_dbname.rg_TimeTable t1 on c.coId=t1.ttCoId
inner join (select t.*
from $this->rg_dbname.rg_CourseOpen c, $this->rg_dbname.rg_TimeTable t
where coCrsId='$coId' and coId='$clId' and c.coId=t.ttCoId
) as t2 on t1.ttDyId=t2.ttDyId
where coAcY='$acY'
and coCrsId='$coId' and coId='$clId'
and t1.ttDyId='$dyId'
and t1.ttPrdFrTime between t2.ttPrdFrTime and t2.ttPrdToTime
group by t1.ttId
) as tt";
$query = $this->db->query($sql);
if($query->num_rows()>0){
return $query->row()->num;
}else{
return 1;
}
}
//test Karn select IFNULL(max(numOvl), 0) as num and coSection='$sec'
function GetMaxOVLByAcYAndCoIdAndClIdAndDyId2($acY, $coId, $cur,$sec, $dyId){
if($cur==""){
$c = "and coCurId IS NULL";
}else{
$c = "and coCurId='$cur'";
}
$sql = "select max(numOvl) as num
from (select t1.ttId, count(*) as numOvl
from $this->rg_dbname.rg_CourseOpen c
inner join $this->rg_dbname.rg_TimeTable t1 on c.coId=t1.ttCoId
inner join (select t.*
from $this->rg_dbname.rg_CourseOpen c, $this->rg_dbname.rg_TimeTable t
where coCrsId='$coId' ".$c." and coSection='$sec' and c.coId=t.ttCoId
) as t2 on t1.ttDyId=t2.ttDyId
where coAcY='$acY'
and coCrsId='$coId' ".$c." and coSection='$sec'
and t1.ttDyId='$dyId'
and t1.ttPrdFrTime between t2.ttPrdFrTime and t2.ttPrdToTime
group by t1.ttId
) as tt";
$query = $this->db->query($sql);
if($query->num_rows()>0){
return $query->row()->num;
}else{
return 1;
}
}
function GetMaxOVLByStIdAndAcYAndAcYWeekNoAndDyId($stId, $acY, $acYWeekNo, $dyId){
$sql = "select max(numOvl) as num
from (select t1.ttId, count(*) as numOvl
from $this->rg_dbname.rg_RegistDetails e
inner join $this->rg_dbname.rg_TimeTable t1 on e.rdCoId=t1.ttCoId
inner join (select t.*
from $this->rg_dbname.rg_RegistDetails e, $this->rg_dbname.rg_TimeTable t
where rdStdId ='$stId' and rdAcY='$acY' and e.rdCoId=t.ttCoId
) as t2 on t1.ttWdAcYWeekNo=t2.ttWdAcYWeekNo and t1.ttDyId=t2.ttDyId
where rdStdId ='$stId' and rdAcY='$acY'
and t1.ttWdAcYWeekNo='$acYWeekNo' and t1.ttDyId='$dyId'
and t1.ttPrdFrTime between t2.ttPrdFrTime and t2.ttPrdToTime
group by t1.ttId
) as tt";
$query = $this->db->query($sql);
if($query->num_rows()>0){
return $query->row()->num;
}else{
return 1;
}
}
function rdJointt($stId, $acY, $acYWeekNo, $dyId){
$sql = "SELECT * FROM ($this->rg_dbname.rg_RegistDetails rd inner join $this->rg_dbname.rg_TimeTable tt on rd.rdCoId=tt.ttCoId) inner join $this->rg_dbname.rg_CourseOpen co on rd.rdCoId=co.coId where rdStdId=? and rdAcY = ? and ttWdAcYWeekNo = ? and ttDyId=?";
$query = $this->db->query($sql, array($stId, $acY, $acYWeekNo, $dyId));
return $query;
}
function getCountJoinCo($condition="") {
$where = $this->checkCondition($condition);
$c1= substr($where, 0, -3);
$sql = "SELECT IFNULL(COUNT(*), 0) AS num
FROM $this->rg_dbname.rg_TimeTable
INNER JOIN $this->rg_dbname.rg_CourseOpen ON ttCoId = coId
$c1";
$query = $this->db->query($sql);
return $query->row()->num;
}
function qryTtByCoIdGroupAllOrderAcYWeekNoDyIdFrPr($coId) {
$sql = "SELECT ttRmId, ttEtpMepId, ttEtpSepId, ttWdAcYWeekNo, ttDyId, ttPrdFrTime, ttPrdToTime, ttStId, ttTitle,
COUNT(ttPrsId) AS ttPrsId FROM $this->rg_dbname.rg_TimeTable
WHERE ttCoId = ?
GROUP BY ttRmId, ttEtpMepId, ttEtpSepId, ttWdAcYWeekNo, ttDyId, ttPrdFrTime, ttPrdToTime, ttStId, ttTitle
ORDER BY ttWdAcYWeekNo, ttDyId, ttPrdFrTime";
$query = $this->db->query($sql, array($coId));
return $query;
}
function qryTtByAcYCrsIdGroupAllOrderAcYWeekNoDyIdFrPr($acY, $crsId) {
$sql = "SELECT ttCoId, ttRmId, ttEtpMepId, ttEtpSepId, ttWdAcYWeekNo, ttDyId, ttPrdFrTime, ttPrdToTime,
ttStId, ttTitle, COUNT(ttPrsId) AS ttPrsId
FROM $this->rg_dbname.rg_CourseOpen
INNER JOIN $this->rg_dbname.rg_TimeTable ON coId = ttCoId
WHERE coAcY = ?
AND coCrsId = ?
GROUP BY ttCoId, ttRmId, ttEtpMepId, ttEtpSepId, ttWdAcYWeekNo, ttDyId, ttPrdFrTime, ttPrdToTime, ttStId, ttTitle
ORDER BY ttWdAcYWeekNo, ttDyId, ttPrdFrTime, CAST(coSection AS SIGNED)";
$query = $this->db->query($sql, array($acY, $crsId));
return $query;
}
function qryTtByAll($coId, $rmId, $etpMepId, $etpSepId, $acYWeekNo, $dyId, $frPr, $toPr, $stId, $title) {
$sql = "SELECT * FROM $this->rg_dbname.rg_TimeTable
WHERE ttCoId = ? AND ttRmId = ? AND ttEtpMepId IS NULL AND ttEtpSepId IS NULL
AND ttWdAcYWeekNo = ? AND ttDyId = ?
AND ttPrdFrTime = ? AND ttPrdToTime = ?
AND ttStId = ? AND ttTitle = ?
UNION
SELECT * FROM $this->rg_dbname.rg_TimeTable
WHERE ttCoId = ? AND ttRmId IS NULL AND ttEtpMepId = ? AND ttEtpSepId = ?
AND ttWdAcYWeekNo = ? and ttDyId = ?
AND ttPrdFrTime = ? AND ttPrdToTime = ?
AND ttStId = ? AND ttTitle = ?";
$query = $this->db->query($sql, array($coId, $rmId, $acYWeekNo, $dyId, $frPr, $toPr, $stId, $title, $coId, $etpMepId, $etpSepId, $acYWeekNo, $dyId, $frPr, $toPr, $stId, $title));
return $query;
}
//use
function rsTTDuplicateTime($acY, $tmId, $dyId, $rmId, $sDate, $eDate) {
$sql = "SELECT tt.*, co.*, crs.*, d.dyName, ppcP.*, p1.prdFrTime, p2.prdToTime
FROM $this->rg_dbname.rg_TimeTable AS tt
LEFT JOIN $this->rg_dbname.rg_CourseOpen AS co ON ttCoId=coId
LEFT JOIN $this->rg_dbname.rg_Course AS crs ON coCrsId=crsId
LEFT JOIN $this->rg_dbname.rg_Day AS d ON ttDyId=dyId
LEFT JOIN $this->ppc_dbname.spc_Place ppcP ON ttRmId = plHwId
LEFT JOIN $this->rg_dbname.rg_Period AS p1 ON ttPrdFrTime=p1.prdId
LEFT JOIN $this->rg_dbname.rg_Period AS p2 ON ttPrdToTime=p2.prdId
WHERE coAcY=? AND coTmId=?
AND ttDyId =? AND ttRmId=?
AND ttPrdFrTime<=? AND ttPrdToTime>=?
";
$query = $this->db->query($sql,array($acY, $tmId, $dyId, $rmId, $sDate, $eDate));
$this->load->database('rg',TRUE);
return $query;
}
function RSrg_TimeTableByAcYAndSeAndOfIdGroupClIdOrderPgId($acY, $tmId, $prsId){
$sql ="select ttCoId from $this->rg_dbname.rg_CourseOpen c, $this->rg_dbname.rg_TimeTable t
where coAcY='$acY' and coTmId='$tmId' and c.coId=t.ttCoId and ttPrsId='$prsId'
group by ttCoId order by `coCrsId`";
$query = $this->db->query($sql);
return $query;
}
function getTTByUTF8($year,$tmId,$curId,$crsId,$tbwdAcYWeekNo=''){
$cond = ($tbwdAcYWeekNo != '')?"AND ttWdAcYWeekNo='$tbwdAcYWeekNo' ":'';
$sql = "SELECT * FROM $this->rg_dbname.rg_TimeTable LEFT JOIN $this->rg_dbname.rg_CourseOpen ON ttCoId=coId WHERE coAcY='$year' AND coCrsId='$crsId' AND coCurId='$curId' $cond ORDER BY ttWdAcYWeekNo ASC, ttDyId ASC ";
$query = $this->db->query($sql);
return $query;
}
/*
เขียนคำสั่งดึงข้อมูลรายวิชาที่สอนของอาจารย์ย้อนหลัง 3 ปี ให้ระบบจัดการฐานข้อมูลนักวิจัยเรียกใช้
INPUT : ปีการศึกษาปัจจุบัน tmcAcY, รหัสอาจารย์ ttPrsId
OUTPUT : ttPrsId, coAcY, coTmId, crsCode, crsName
*/
function getTTByTmcAcYAndPrsId($tmcAcY, $ttPrsId){
$sql = "SELECT ttPrsId, coAcY, coTmId, crsCode, crsName
FROM $this->rg_dbname.rg_TimeTable
INNER JOIN $this->rg_dbname.rg_CourseOpen ON coId = ttCoId
INNER JOIN $this->rg_dbname.rg_Course ON coCrsId = crsId
WHERE (coAcY BETWEEN ( '$tmcAcY' -2 ) AND '$tmcAcY')
AND ttPrsId = $ttPrsId
GROUP BY coAcY, coTmId, crsId";
$query = $this->db->query($sql);
return $query;
}
} // end class Rg_timetable_model
?>
|