Viewing file: 2551-11-11-1.0.01-processUpdateDBReg.php (13.27 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?
//echo "<br> method == ".$method;
//echo "<br> formUpdate == ".$formUpdate;
//echo "<br> inputAcadyear == ".$inputAcadyear;
//echo "<br> selectSemester == ".$selectSemester;
if($inputAcadyear == "" && $selectSemester == ""){
//----------->กำหนดภาคการศึกษา/ปีการศึกษา โดยดึงเอาปีการศึกษา และภาคการศึกษาปัจจุบันมาใช้
$inputAcadyear = $GLOBALS["ACADYEAR_R"];
$selectSemester = $GLOBALS["SEMESTER_R"];
}
if($method == "FormStart"){
set_time_limit(0);
$flag = 0;
$msgFlag = 0;
/*----------------------------------------update ข้อมูลนักศึกษา ทั้งหมด -------------------------------------------------*/
if($formUpdate == "FormStdMaster") {
//----->orSM สร้างขึ้นเพื่อดึงข้อมูลจากฐานข้อมูล regis ในตาราง StuderntMaster
$upTid = 1;
$nameTable = ข้อมูลนักศึกษา;
$oaStd = new StudentAssess($oCA);
//ลบข้อมูลทั้งตารางเพื่ออัพเดทใหม่
$oaStd->DeleteStudentAssess();
$orSM = new StudentMaster($oCR);
$orSM->RSStudentByGenStatusY();
while($orSM->GetRecord()){
$orLV = new Level($oCR);
$orLV->SearchByKey($orSM->levelId);
$orLV->GetRecord();
$orProg = new Program($oCR);
$orProg->SearchByKey($orSM->programId);
$orProg->GetRecord();
$orPrefix = new Prefix($oCR);
$orPrefix->SearchByKey($orSM->prefixId);
$orPrefix->GetRecord();
$oaStd->SearchByKey($orSM->studentId);
if($oaStd->GetRecord()){
$oaStd->Edit();
}else{
$oaStd->AddNew();
}
$oaStd->studentId=$orSM->studentId;
$oaStd->studentCode=$orSM->studentCode;
$oaStd->levelName=$orLV->levelName;
$oaStd->programName=$orProg->programName;
$oaStd->prefixName=$orPrefix->prefixName;
$oaStd->studentName=$orSM->studentName;
$oaStd->studentSurname=$orSM->studentSurname;
$oaStd->studentPassword=$orSM->studentPassword;
$oaStd->studentYear=$orSM->studentYear;
$oaStd->Save();
$flag = 1;
}// end while $orSM
} else if ($formUpdate == "FormOfficer") {
/*--------------------------------------------------update ข้อมูลอาจารย์ ทั้งหมด -----------------------------------------------------*/
$upTid = 2;
$nameTable = ข้อมูลอาจารย์;
$oaOF = new OfficerAssess($oCA);
//ลบข้อมูลทั้งตารางเพื่ออัพเดทใหม่
$oaOF->DeleteOfficerAssess();
$orOF = new Officer($oCR);
$orOF->RSOfficer();
while($orOF->GetRecord()){
//echo "<br> officerId = ".$orOF->officerId;
//echo "<br>officerCode = ".$orOF->officerCode;
$orPrefix = new Prefix($oCR);
$orPrefix->SearchByKey($orOF->prefixId);
$orPrefix->GetRecord();
$oaOF->SearchByKey($orOF->officerId);
if($oaOF->GetRecord()){
$oaOF->Edit();
}else{
$oaOF->AddNew();
}
$oaOF->officerId=$orOF->officerId;
$oaOF->officerCode=$orOF->officerCode;
$oaOF->officerPassword=$orOF->officerPassword;
$oaOF->officerType=$orOF->officerType;
$oaOF->prefixName=$orPrefix->prefixName;
$oaOF->officerName=$orOF->officerName;
$oaOF->officerSurname=$orOF->officerSurname;
$oaOF->officerNameEng=$orOF->officerNameEng;
$oaOF->officerSurnameEng=$orOF->officerSurnameEng;
$oaOF->Save();
$flag = 1;
}
}else if($formUpdate == "FormCourse") {
/*-------------------------------------update ข้อมูลรายวิชาทั้งหมด---------------------------------------------*/
$upTid = 3;
$nameTable = ข้อมูลรายวิชา;
$orCourse = new Course($oCR);
$orCourse->RSCourse();
while($orCourse->GetRecord()){
$OaCourse = new CourseAssess($oCA);
$OaCourse->SearchByKey($orCourse->courseId);
if($OaCourse->GetRecord()){
$OaCourse->Edit();
}else{
$OaCourse->AddNew();
}
$OaCourse->courseId=$orCourse->courseId;
$OaCourse->courseCode=$orCourse->courseCode;
$OaCourse->courseCodeEng=$orCourse->courseCodeEng;
$OaCourse->courseName=$orCourse->courseName;
$OaCourse->courseNameEng=$orCourse->courseNameEng;
$OaCourse->creditTotal=$orCourse->creditTotal;
$OaCourse->credit1=$orCourse->credit1;
$OaCourse->credit2=$orCourse->credit2;
$OaCourse->period1=$orCourse->period1;
$OaCourse->period2=$orCourse->period2;
$OaCourse->period3=$orCourse->period3;
$OaCourse->courseUnit=$orCourse->courseUnit;
$OaCourse->Save();
$flag = 1;
} // end while orCourse
}else if($formUpdate == "FormReg") {
$upTid = 4;
$nameTable = ข้อมูลการลงทะเบียนนักศึกษา;
/*-----------------------------4.1 update ข้อมูล class ที่เกี่ยวกับรายวิชา โดยอัพเดทเป็นปีการศึกษา ภาคการศึกษา ----------------------------------*/
//------> ค้นหาข้อมูลจากตาราง ClassAssess จาก DB ประเมิน เพื่อลบข้อมูลในปี/เทอมนั้นๆ ออก
$oaCA = new ClassAssess($oCA);
//ลบข้อมูลจากปีการศึกษา ภาคการศึกษา เพื่ออัพเดทใหม่
$oaCA->DeleteClassAssessByAcadSem($inputAcadyear ,$selectSemester);
//-----> ค้นหาข้อมูลจากตาราง Class จาก DB ทะเบียนนักศึกษา เพื่อเพิ่มข้อมูลใหม่ในตาราง ClassAssess
$orClass = new Class1($oCR);
$orClass->RSClassByAcYSeM($inputAcadyear ,$selectSemester);
while($orClass->GetRecord()){
$oaCA->AddNew();
$oaCA->classId=$orClass->classId;
$oaCA->programId=$orClass->programId;
$oaCA->acadYear=$orClass->acadYear;
$oaCA->semester=$orClass->semester;
$oaCA->studentYear=$orClass->studentYear;
$oaCA->courseId=$orClass->courseId;
$oaCA->sectionClass=$orClass->sectionClass;
$oaCA->section=$orClass->section;
$oaCA->totalSeat=$orClass->totalSeat;
$oaCA->enrollSeat=$orClass->enrollSeat;
$oaCA->officerId=$orClass->officerId;
$i = 1;
$arrayClassTime[$i] = "";
$orCt = new ClassTimeTable($oCR);
$orCt->RSClassTimeTableByClId($orClass->classId);
while($orCt->GetRecord()) {
$orDy = new Day($oCR);
$orDy->SearchByKey($orCt->weekDay);
$orDy->GetRecord();
//echo $orDy->dayAbbrEng.' ';
$orPr = new Period($oCR);
$orPr->SearchByKey($orCt->timeSlotStart);
$orPr->GetRecord();
//echo $orPr->startTime.'-';
$orPr->SearchByKey($orCt->timeSlotEnd);
$orPr->GetRecord();
//echo $orPr->endTime.'<br>';
$arrayClassTime[$i] = $orDy->dayAbbrEng.' '.$orPr->startTime.'-'.$orPr->endTime;
$i++;
}
$classTime=$arrayClassTime[1]." ".$arrayClassTime[2]." ".$arrayClassTime[3]." ".$arrayClassTime[4]." ".$arrayClassTime[5];
//echo "classTime = ".$classTime;
$oaCA->classTime=$classTime;
$oaCA->Save();
//กรณีที่เปิดให้มีการเีรียนการสอนให้มีหลายหลักสูตรเรียนด้วยกัน classId == null
if($orClass->programId == ""){
$orOpenFor = new ClassOpenFor($oCR);
$oaClsOpenFor = new ClassOpenForAssess($oCA);
//ลบข้อมูลรายวิชาที่เปิดสอนหลายหลักสูตร เพื่ออัพเดทใหม่
$oaClsOpenFor->SearchByClassId($orClass->classId);
while($oaClsOpenFor->GetRecord()){
$oaClsOpenFor->DeleteByClassId($oaClsOpenFor->classId);
}
$orOpenFor->SearchByClassId($orClass->classId);
while($orOpenFor->GetRecord()){
$oaClsOpenFor->AddNew();
$oaClsOpenFor->classId=$orOpenFor->classId;
$oaClsOpenFor->programId=$orOpenFor->programId;
$oaClsOpenFor->bookSeat=$orOpenFor->bookSeat;
$oaClsOpenFor->erSeat=$orOpenFor->erSeat;
$oaClsOpenFor->Save();
} // end while
} // end if
$flag_1 = 1;
} // end while orClass
/*--------------------- 4.2 update ข้อมูลอาจารย์ผู้สอนประจำวิชานั้นๆ โดยอัพเดทเป็นปีการศึกษา ภาคการศึกษา ----------------------*/
//-----> ค้นหาข้อมูลจากตาราง ClassAssess->ClassInStructorAssessจาก DB ประเมิน เพื่อลบข้อมูลในปี/เทอมนั้นๆ ออก
$oaCIn = new ClassInStructorAssess($oCA);
$oaCA = new ClassAssess($oCA);
$oaCA->SearchClassIdByAcadSem($inputAcadyear ,$selectSemester);
while($oaCA->GetRecord()){
//echo "<br> classId = ".$oaCA->classId;
//ลบข้อมูลจากปีการศึกษา ภาคการศึกษา เพื่ออัพเดทใหม่
$oaCIn = new ClassInStructorAssess($oCA);
$oaCIn->DeleteClassInStructorAssessByClassId($oaCA->classId);
}
// โค้ดปรับปรุงข้อมูลใน ClassInStructorAssess อยู่ในส่วนของการปรับปรุง TimeTableAssess
//-----> ค้นหาข้อมูลจากตาราง Class->ClassInStructor จาก DB ทะเบียนนักศึกษา เพื่ิอเพิ่มข้อมูลใหม่ในตาราง ClassInstructor
/* $orClass = new Class1($oCR);
$orClass->RSClassByAcYSeM($inputAcadyear ,$selectSemester);
while($orClass->GetRecord()){
//echo "<br> classId = ".$orClass->classId;
$orCIn = new ClassInStructor($oCR);
$orCIn->SearchByClassId($orClass->classId);
while($orCIn->GetRecord()){
//echo "<br> officerId = ".$orCIn->officerId;
$oaCIn->AddNew();
$oaCIn->sequenceId=$orCIn->sequenceId;
$oaCIn->classId=$orCIn->classId;
$oaCIn->officerId=$orCIn->officerId;
$oaCIn->Save();
}
$flag = 1;
}*/// end while orEnItem
/*------------------------4.3 update ข้อมูลลงทะเบียนเรียนของนักศึกษา โดยอัพเดทเป็นปีการศึกษา ภาคการศึกษา ------------------------*/
//------> ค้นหาข้อมูลจากตาราง Registration จาก DB ประเมิน เพื่อลบข้อมูลในปี/เทอมนั้นๆ ออก
$oaReg = new Registration($oCA);
//ลบข้อมูลจากปีการศึกษา ภาคการศึกษา เพื่ออัพเดทใหม่
$oaReg->DeleteRegistrationByAcadSem($inputAcadyear ,$selectSemester);
//-----> ค้นหาข้อมูลจากตาราง EnrollItem จาก DB ทะเบียนนักศึกษา เพื่อมาอัพเดทในตาราง Registration
$orEnItem = new EnrollItem($oCR);
$orEnItem->RSEnrollItemByAcySem2($inputAcadyear ,$selectSemester);
while($orEnItem->GetRecord()){
$orClass = new Class1($oCR);
$orClass->SearchByKey($orEnItem->classId);
$orClass->GetRecord();
$orCourse = new Course($oCR);
$orCourse->SearchByKey($orClass->courseId);
$orCourse->GetRecord();
//echo "<br>orEnItem = ".$orEnItem->classId;
//echo "<br>orClass = ".$orClass->courseId;
$oaReg->AddNew();
$oaReg->studentId=$orEnItem->studentId;
$oaReg->acadYear=$orEnItem->acadYear;
$oaReg->semester=$orEnItem->semester;
$oaReg->classId=$orEnItem->classId;
$oaReg->courseId=$orClass->courseId;
$oaReg->creditAttempt=$orEnItem->creditAttempt;
$oaReg->Save();
$flag_2 = 1;
} // end while orEnItem
//----------------4.4 update ข้อมูลตารางเรียนรายสัปดาห์ของนักศึกษา โดยอัพเดทเป็นปีการศึกษา ภาคการศึกษา
$oaTT = new TimeTableAssess($oCA);
//ลบข้อมูลจากปีการศึกษา ภาคการศึกษา เพื่ออัพเดทใหม
$oaTT->DeleteTimeTableByAcadSem($inputAcadyear ,$selectSemester);
$orTT = new rg_TimeTable($oCR);
$orTT->RSTimeTableByAcYSeM($inputAcadyear ,$selectSemester);
while($orTT->GetRecord()){
$oaTT->AddNew();
if(!$orTT->ttRmId){
//External Place set flag = 2
$oaTT->ttFlagPlace = "2";
$orMep = new rg_MainExternalPlace($oCR);
$orMep->SearchByKey($orTT->ttEpMepId);
$orMep->GetRecord();
$orSep = new rg_SubExternalPlace($oCR);
$orSep->SearchByKey($orTT->ttEpSepId);
$orSep->GetRecord();
$oaTT->ttMainPlace = $orMep->mepName;
$oaTT->ttSubPlace = $orSep->sepName;
}else{
//Internal Place set flag = 1
$oaTT->ttFlagPlace = "1";
$orRoom = new Room($oCR);
$orRoom->SearchByRoomId($orTT->ttRmId);
$orRoom->GetRecord();
$orBuilding = new Building($oCR);
$orBuilding->SearchByKey($orRoom->buildingId);
$orBuilding->GetRecord();
$oaTT->ttMainPlace = $orBuilding->buildingName;
$oaTT->ttSubPlace = $orRoom->roomNo;
}
$oaTT->ttId = $orTT->ttId;
$oaTT->ttClId = $orTT->ttClId;
$oaTT->ttWdAcYWeekNo = $orTT->ttWdAcYWeekNo;
$oaTT->ttDyId = $orTT->ttDyId;
$oaTT->ttFrPr = $orTT->ttFrPr;
$oaTT->ttToPr = $orTT->ttToPr;
$oaTT->ttOfId = $orTT->ttOfId;
$oaTT->ttSstId = $orTT->ttSstId;
$oaTT->ttTitle = $orTT->ttTitle;
$oaTT->Save();
$oaCIn->SearchByClassIdOfficerId($orTT->ttClId,$orTT->ttOfId);
if(!$oaCIn->GetRecord()){
$oaCIn->AddNew();
$oaCIn->sequenceId=$oaCIn->GetNextCode();
$oaCIn->classId=$orTT->ttClId;
$oaCIn->officerId=$orTT->ttOfId;
$oaCIn->Save();
}
$flag_3 = 1;
} // end while orTimeTable
//----------------4.5 update ข้อมูลสัปดาห์ โดยอัพเดทเป็นปีการศึกษา
$oaWD = new WeekDateAssess($oCA);
$oaWD->DeleteByAcY($inputAcadyear);
$orWD = new rg_WeekDate($oCR);
$orWD->RSByAcY($inputAcadyear);
while($orWD->GetRecord()){
$oaWD->AddNew();
$oaWD->wdAcY = $orWD->wdAcY;
$oaWD->wdAcYWeekNo = $orWD->wdAcYWeekNo;
$oaWD->wdTmId = $orWD->wdTmId;
$oaWD->wdTmWeekNo = $orWD->wdTmWeekNo;
$oaWD->wdFrDate = $orWD->wdFrDate;
$oaWD->wdToDate = $orWD->wdToDate;
$oaWD->save();
$flag_4 = 1;
}//end while orWD
}// end else if Form Reg
/*-------------------------------------เก็บวันที่/เวลาปัจจุบันของแต่ละตารางที่ update ----------------------------------------------*/
if(($flag_1 == 1)||($flag_2 == 1)||($flag_3 == 1)||($flag_4 == 1)){
$flag = 1;
}
if($flag == 1){
$y = date('Y');
$md = date('m-d');
$dateNow = ($y+543)."-".$md;
//echo $upTid;
$oUPT = new UpdateTable($oCA);
$oUPT->SearchByKey($upTid);
$oUPT->GetRecord();
$oUPT->Edit();
$oUPT->upTid=$upTid;
$oUPT->nameTable=$nameTable;
$oUPT->acadYear=$inputAcadyear;
$oUPT->semester=$selectSemester;
$oUPT->dateUp=$dateNow;
$oUPT->timeUp=date('H:i:s');
$oUPT->Save();
//echo "พบข้อมูล";
//$GLOBALS["ACADYEAR_R"] = $oAy->acadYear;
//$GLOBALS["SEMESTER_R"] = $oAy->semester;
$msgFlag = 1;
}else if($flag == 0){
$msgFlag = 0;
//echo "ไม่พบข้อมูล";
}
set_time_limit(120);
}//end if method FormStart
?>
|