| Viewing file:  clsTimeTableAssess.php (11.23 KB)      -rwxr-xr-x Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
<?php
//--Class TimeTableAssess--------------------------
 //--PK of TimeTableAssess ::
 //    1. ttId
 //    2. ttClId
 //    3. ttDyId
 //    4. ttFrPr
 //    5. ttToPr
 //    6. ttOfId
 //    7. ttSstId
 
 class TimeTableAssess extends clsDB{
 
 var $result;
 var $status;
 
 var $ttId;
 var $ttClId;
 var $ttWdAcYWeekNo;
 var $ttDyId;
 var $ttFrPr;
 var $ttToPr;
 var $ttOfId;
 var $ttSstId;
 var $ttTitle;
 var $ttRmId;
 var $ttEpMepId;
 var $ttEpSepId;
 //var $mepName;
 //var $sepName;
 function TimeTableAssess(&$c){
 $this->c=$c->c;
 $this->DB=$c->db;
 }
 function AddNew(){
 //--ใช้เมธอดนี้เมื่อต้องการเพิ่มข้อมูลใหม่
 //--โดยจะกำหนดสถานะของข้อมูลของอ๊อบเจ๊กให้เป็น 1
 $this->status = 1;
 }
 
 function Edit(){
 //--ใช้เมธอดนี้เมื่อต้องการปรับปรุงข้อมูล
 //--โดยจะกำหนดสถานะของข้อมูลของอ๊อบเจ๊กให้เป็น 2
 $this->status = 2;
 }
 
 function Save(){
 //--ใช้เมธอดนี้เมื่อต้องการบันทึกข้อมูลในอ๊อบเจ๊กเข้าสู่ฐานข้อมูล
 //--โดยจะตรวจสอบสถานะของข้อมูลว่าข้อมูลในอ๊อบเจ๊กเป็นข้อมูลใหม่หรือข้อมูลเดิม
 //--1 เป็นข้อมูลใหม่  2 เป็นข้อมูลเดิม
 if ($this->status==1){
 //$this->Array=$this->GetNextCode();
 $sql = "insert into TimeTableAssess values('$this->ttId', '$this->ttClId', '$this->ttWdAcYWeekNo', '$this->ttDyId', '$this->ttFrPr', '$this->ttToPr', '$this->ttOfId', '$this->ttSstId', '$this->ttTitle', '$this->ttRmId', '$this->ttEpMepId', '$this->ttEpSepId')";
 }else {
 $sql = "update TimeTableAssess set ttClId='$this->ttClId', ttWdAcYWeekNo='$this->ttWdAcYWeekNo', ttDyId='$this->ttDyId', ttFrPr='$this->ttFrPr', ttToPr='$this->ttToPr', ttOfId='$this->ttOfId', ttSstId='$this->ttSstId', ttTitle='$this->ttTitle', ttRmId='$this->ttRmId', ttEpMepId='$this->ttEpMepId', ttEpSepId='$this->ttEpSepId' where ttId='$this->ttId' and ttClId='$this->ttClId' and ttDyId='$this->ttDyId' and ttFrPr='$this->ttFrPr' and ttToPr='$this->ttToPr' and ttOfId='$this->ttOfId' and ttSstId='$this->ttSstId'";
 }
 $this->SetQuery($sql);
 }
 
 function Delete(){
 //--ใช้เมธอดนี้เพื่อลบข้อมูลเดิมในอ๊อบเจ๊ก
 //--เป็นการลบข้อมูลทีละ 1 เรคอร์ด
 //--ต้องเรียกเมธอดตามลำดับดังนี้ SearchByKey()-->GetRecord()-->Delete()
 $this->SetQuery("delete from TimeTableAssess where ttId='$this->ttId' and ttClId='$this->ttClId' and ttDyId='$this->ttDyId' and ttFrPr='$this->ttFrPr' and ttToPr='$this->ttToPr' and ttOfId='$this->ttOfId' and ttSstId='$this->ttSstId'");
 }
 
 function GetNextCode(){
 //--ใช้เมธอดนี้เพื่อหาค่าสูงสุดของฟิลด์ที่ใช้เป็นคีย์ของตาราง ในลักษณะ auto increment
 //--ต้องเป็นฟิลด์ที่ไม่ได้กำหนดรหัสเองทางจอภาพ
 $this->SetQuery("select max(ttId) as num from TimeTableAssess");
 if ($result=$this->GetResult()) {
 return $result['num']+1;
 }
 }
 
 function RSTimeTableAssess(){
 //--เมธอดที่ขึ้นต้นด้วย RS (Result Set) มีความหมายว่าจะได้รับข้อมูลกลับมาจากการ select มากกว่า 1 เรคอร์ด
 //--ปกติเมื่อเรียกใช้เมธอด RSxxxx จะต้องเรียกเมธอด GetRecord() ด้วยเสมอ
 //--โดยสามารถเพิ่มเมธอดได้ตามต้องการ แต่ต้องขึ้นต้นด้วย RS
 $this->SetQuery("select * from TimeTableAssess");
 }
 
 function GetRecord(){
 //--เป็นเมธอดที่นำข้อมูลจาก ResultSet มากำหนดให้กับแอตทริบิวต์ของอ๊อบเจ็ก
 //--เรียก GetRecord() หนึ่งครั้ง จะเลื่อนตัวชี้เรคอร์ดไปอีกหนึ่งเรคอร์ด
 if ($this->result = $this->GetResult()) {
 $this->ttId = $this->result['ttId'];
 $this->ttClId = $this->result['ttClId'];
 $this->ttWdAcYWeekNo = $this->result['ttWdAcYWeekNo'];
 $this->ttDyId = $this->result['ttDyId'];
 $this->ttFrPr = $this->result['ttFrPr'];
 $this->ttToPr = $this->result['ttToPr'];
 $this->ttOfId = $this->result['ttOfId'];
 $this->ttSstId = $this->result['ttSstId'];
 $this->ttTitle = $this->result['ttTitle'];
 $this->ttRmId = $this->result['ttRmId'];
 $this->ttEpMepId = $this->result['ttEpMepId'];
 $this->ttEpSepId = $this->result['ttEpSepId'];
 
 //        $this->mepName = $this->result['mepName'];
 //        $this->sepName = $this->result['sepName'];
 return 1;
 }else {
 return 0;
 }
 }
 
 function SearchByKey($xKey1, $xKey2, $xKey3, $xKey4, $xKey5, $xKey6, $xKey7){
 //--ใช้เมธอดนี้เพื่อค้นหาข้อมูลตาม PK ต้องระบุพารามิเตอร์ด้วย
 //--และต้องตามด้วยเมธอด GetRecord() เสมอ
 if ($this->SetQuery("select * from TimeTableAssess where ttId='$xKey1' and ttClId='$xKey2' and ttDyId='$xKey3' and ttFrPr='$xKey4' and ttToPr='$xKey5' and ttOfId='$xKey6' and ttSstId='$xKey7'")){
 return 1;
 }else {
 return 0;
 }
 }
 
 function NumRow(){
 //--เป็นเมธอดที่คืนค่าจำนวนข้อมูลจากการ select โดยเมธอด RSxxxx
 return $this->GetRowSelected();
 }
 
 function Destroy(){
 //--เป็นเมธอดสำหรับปิดการติดต่อจากฐานข้อมูล
 return $this->DestroyDb();
 }
 
 //****************** You can add new functions below **********************//
 function DeleteTimeTableByAcadSem($xacadYear,$xsemester){
 return $this->Dml("delete tt.* from TimeTableAssess tt
 join ClassAssess ca
 on ttClId=classId
 where acadYear='$xacadYear'
 and semester='$xsemester'");
 }
 
 function searchDistinctClIdByAcadSem($xacadYear,$xsemester){
 return $this->SetQuery("select distinct ttClId
 from TimeTableAssess
 join ClassAssess
 on ttClId=classId
 where acadYear='$xacadYear'
 and semester='$xsemester'");
 }
 
 function searchByClIdAcadSem($cl,$acadYear,$semester){
 return $this->SetQuery("select *
 from TimeTableAssess
 join ClassAssess
 on ttClId=classId
 where acadYear='$acadYear'
 and semester='$semester'
 and ttClId='$cl'
 order by ttWdAcYWeekNo,ttDyId ,ttFrPr");
 }
 
 //-------------
 function RSTimeTableByAcYSeM($xacadYear, $xsemester){
 $this->SetQuery("select tt.* from TimeTableAssess tt
 join ClassAssess ca
 on ttClId=classId
 where acadYear='$xacadYear'
 and semester='$xsemester'");
 }
 function RSClIdAcYTmAndBetweenSCDate($cl,$acY,$tm,$scDate){
 $this->SetQuery("SELECT tt.* FROM TimeTableAssess tt
 JOIN WeekDateAssess wd
 ON ttWdAcYWeekNo=wdAcYWeekNo
 WHERE ttClId='$cl'
 and wdAcY='$acY'
 and wdTmId='$tm'
 and '$scDate'
 between wdFrDate
 and wdToDate ");
 }
 function SearchByClassIdGroupOfficerId($xKey){
 $this->SetQuery("select * from TimeTableAssess
 where ttClId='$xKey'
 group by ttClId, ttOfId");
 }
 
 function RSTimeTableByWdAcYWeekLessthenThisWeek($cl,$acY,$tm,$scDate){
 $this->SetQuery("SELECT distinct tt FROM TimeTableAssess tt
 JOIN WeekDateAssess wd
 ON ttWdAcYWeekNo=wdAcYWeekNo
 WHERE ttClId='322'
 and wdAcY='$acY'
 and wdTmId='$tm'
 and wdAcYWeekNo <= (
 select wdAcYWeekNo
 from WeekDateAssess
 where '$scDate'
 between wdFrDate and wdToDate
 and wdAcY='$acY'
 and wdTmId='$tm'
 )
 ");
 }
 function SearchTimeTableByttId($key){
 $this->SetQuery("SELECT * FROM TimeTableAssess WHERE ttId='$key' order by ttWdAcYWeekNo,ttFrPr");
 }
 
 function RSDistinctClassId(){
 $this->SetQuery("select distinct tt.ttClId
 from TimeTableAssess tt
 join ( select *
 from HoldCourseTmp
 where 1
 )A
 on tt.ttId=A.ttId");
 }
 
 function RSDistinctClassIdJoinHC($defineid){
 $this->SetQuery("select distinct tt.ttClId
 from TimeTableAssess tt
 join ( select *
 from HoldCourse
 where defineid='$defineid'
 )A
 on tt.ttId=A.ttId");
 
 }
 function RSJoinHCByDefineidClId($defineid,$cl){
 $this->SetQuery("select tt.*
 from TimeTableAssess tt
 join ( select *
 from HoldCourse
 where defineid='$defineid'
 )A
 on tt.ttId=A.ttId
 where tt.ttClId='$cl'
 order by ttWdAcYWeekNo,ttFrPr");
 }
 
 function RSJoinHCByDefineidClIdNotIsPre($defineid,$cl,$wd,$day){
 $this->SetQuery("select tt.*
 from TimeTableAssess tt
 join ( select *
 from HoldCourse
 where defineid='$defineid'
 )A
 on tt.ttId=A.ttId
 where tt.ttClId='$cl'
 and ttWdAcYWeekNo <= '$wd' and ttDyId < '$day'
 order by ttWdAcYWeekNo,ttFrPr");
 }
 
 function RSDistinctOfId($classId){
 $this->SetQuery("select distinct ttOfId
 from TimeTableAssess
 where ttClId=$classId order by ttOfId");
 
 }
 
 function RSJoinHCByDefineidClIdOfId($defineid,$cl,$Of){
 $this->SetQuery("select tt.*
 from TimeTableAssess tt
 join ( select *
 from HoldCourse
 where defineid = '$defineid'
 )A
 on tt.ttId = A.ttId
 where tt.ttClId = '$cl'
 and tt.ttOfId = '$Of'
 order by ttWdAcYWeekNo,ttFrPr");
 }
 
 function SearchMaxWeekByClIdOfId($cl,$Of){
 $this->SetQuery("select max(ttWdAcYWeekNo) as ttWdAcYWeekNo from TimeTableAssess
 where ttClId = '$cl' and ttOfId = '$Of'");
 }
 
 function SearchByClassIdWeekNoOrderMaxDyId($cl,$wd){
 $this->SetQuery("select * from TimeTableAssess
 where ttClId='$cl'
 and ttWdAcYWeekNo = '$wd'
 order by ttDyId desc ");
 }
 
 function RSTimeTableAssessByClId($clId){
 $this->SetQuery("select * from TimeTableAssess where ttClId='$clId'");
 }
 
 function RSMepSepByClassId($cl) {
 $this->SetQuery("SELECT mep.mepId AS ttEpMepId , sep.sepId AS ttEpSepId
 FROM TimeTableAssess tt
 JOIN ea_MainExternalPlace mep ON ttEpMepId = mepId
 JOIN ea_SubExternalPlace sep ON ttEpSepId = sepId
 WHERE ttClId = '$cl'
 GROUP BY mepId, sepId
 ");
 }
 
 function RSHoldPlaceByAcYSePgCo($acY,$se,$pg,$co){
 $sql = "
 SELECT mep.mepId AS ttEpMepId , sep.sepId AS ttEpSepId
 FROM ClassAssess cl
 JOIN TimeTableAssess tt
 ON ttClId = cl.classId
 JOIN ea_MainExternalPlace mep
 ON ttEpMepId = mepId
 JOIN ea_SubExternalPlace sep
 ON ttEpSepId = sepId
 LEFT JOIN ClassOpenForAssess cof
 ON cl.classId = cof.classId
 WHERE acadYear = '$acY'
 AND semester = '$se'
 AND ( cl.programId = '$pg' OR cof.programId = '$pg' )
 AND courseId = '$co'
 GROUP BY mepId, sepId
 ";
 if($this->SetQuery($sql))
 {
 return 1;
 }else{
 return 0;
 }
 }
 
 function RSMainPlaceByAcYSePgCo($acY,$se,$pg,$co){
 $sql = "
 SELECT DISTINCT (ttEpMepId)
 FROM ClassAssess cl
 JOIN TimeTableAssess tt ON tt.ttClId = cl.classId
 LEFT JOIN ClassOpenForAssess cof ON cl.classId = cof.classId
 WHERE acadYear = '$acY'
 AND semester = '$se'
 AND cl.courseId = '$co'
 AND (
 cl.programId = '$pg'
 OR cof.programId = '$pg'
 )
 ORDER BY ttEpMepId
 ";
 if($this->SetQuery($sql))
 {
 return 1;
 }else{
 return 0;
 }
 }
 
 function RSSubPlaceByAcYSePgCoMep($acY,$se,$pg,$co,$mep){
 $sql = "
 SELECT DISTINCT (ttEpSepId)
 FROM ClassAssess cl
 JOIN TimeTableAssess tt ON tt.ttClId = cl.classId
 JOIN ea_ExternalPlace ep ON epSepId = ttEpSepId
 LEFT JOIN ClassOpenForAssess cof ON cl.classId = cof.classId
 WHERE acadYear = '$acY'
 AND semester = '$se'
 AND cl.courseId = '$co'
 AND epMepId = '$mep'
 AND (
 cl.programId = '$pg'
 OR cof.programId = '$pg'
 )
 ORDER BY ttEpSepId
 ";
 if($this->SetQuery($sql))
 {
 return 1;
 }else{
 return 0;
 }
 }
 
 //--End class TimeTableAssess--
 }
 
 ?>
 |