Viewing file:      passSt.php (14.2 KB)      -rwxr-xr-x Select action/file-type:    (+) |   (+) |   (+) | Code (+) | Session (+) |   (+) | SDB (+) |   (+) |   (+) |   (+) |   (+) |   (+) |
 
<?php
 include("rg_controller.php");
 class passSt extends Rg_controller {
 
     function showPassStCur() {
 
         $this->output($this->config->item("rg_folder")."v_showPassStCur");
     }
 
     function passStCur() {
         $this->load->library('form_validation');
         $this->form_validation->set_error_delimiters('<div class="error">','</div>');
         $this->form_validation->set_rules('curName',' ','trim|xss_clean');
         $this->form_validation->set_rules('curId','  ','trim|required|xss_clean');
         $this->form_validation->set_rules('adY',' ','trim|xss_clean');
         $this->form_validation->set_rules('stdSyId',' ','trim|required|callback_checkSy|xss_clean');
 
         if($this->form_validation->run() == true) {
             $this->load->model($this->config->item("rg_folder").'mo_rg_curriculum','cur');
             $this->load->model($this->config->item("rg_folder").'mo_rg_studyyear','sy');
             $this->load->model($this->config->item("rg_folder").'mo_rg_studentsummary','ssm');
             $this->load->model($this->config->item("rg_folder").'mo_rg_term','tm');
             $this->load->model($this->config->item("rg_folder").'mo_rg_student','std');
             $this->load->model($this->config->item("rg_folder").'mo_rg_registdetails','rd');
             $this->load->model($this->config->item("rg_folder").'mo_rg_courseopen','co');
             $this->load->model($this->config->item("rg_folder").'mo_rg_condition','cd');
             $this->load->model($this->config->item("rg_folder").'mo_rg_grade','grd');
 
             $curId = $this->input->post('curId');
             $adY = $this->input->post('adY');
             $syId = $this->input->post('stdSyId');
 
             $this->cur->curId = $curId;
             $qu_cur = $this->cur->get_by_key();
             $this->contents['qu_cur'] = $qu_cur;
             $row_cur = $qu_cur->row();
 
             $this->contents['adY'] = $adY;
 
             $this->sy->syId = $syId;
             $this->contents['qu_sy'] = $this->sy->get_by_key();
 
             $stStatus = '1, 2';        //สถานะนักศึกษาต้องเป็น กำลังศึกษาอยู่และรักษาสภาพ
             $acY = $this->ssm->getMaxAcYByCurIdAdYSyId($curId, $adY, $syId, $stStatus); //หาปีการศึกษาที่มากสุด
 
             $this->contents['acY'] = $acY;
 
             /* หาเทอมที่มากสุด 
                note: เวลาประมวลผลเกรดแล้วต้องมี record ที่ตารางนี้ */
             $tmId = $this->ssm->getMaxTmIdByCurIdAdYSyIdAcY($curId, $adY, $syId, $acY, $stStatus); 
             $this->tm->tmId = $tmId;
             $this->contents['qu_tm'] = $this->tm->get_by_key();
             
 
 
             /* กรณีที่ยังไม่ประมวลผลเกรด */
             if(!$tmId) {
                 $this->contents['err_msg'] = "** ยังไม่ได้ประมวลผลเกรด **";
 
                 $rs_std = $this->std->qryStdByCurIdAdYSyIdSstIdStr($curId, $adY, $syId, $stStatus);
               
 /*            } else if ($tmId == 1) {
                 if ($tmId == $this->session->userdata('tmId')) {
                     $this->contents['err_msg'] = "** ไม่สามารถเลื่อนชั้นได้ เนื่องจากเป็นภาคการศึกษาที่ 1 **";
                 } else {
                     $this->contents['err_msg'] = "** ยังไม่ได้ประมวลผลเกรดภาคการศึกษานี้ **";
                 }  */
             }
             /* กรณีส่งเกรดไม่ครบ */
             else {
                 $flagIEPX = 0;
                 $msgIEPX = "";
                 $rs_std = $this->std->qryStdByCurIdAdYSyIdSstIdStr($curId, $adY, $syId, $stStatus);
                 foreach ($rs_std->result() as $row_std) {
                     // ส่งเกรดไม่ครบ ไม่ให้เลื่อนชั้น
                     $rs_rd = $this->rd->qryRdByStdIdAcYSendGrIsNUnionGradeInIEPX($row_std->stdId, $acY);
                     if ($rs_rd->num_rows()) {
                         $flagIEPX = 1;
 
                         $con_rs_co = array('coId'    => $rs_rd->row()->rdCoId);
                         $rs_co = $this->co->qryCoJoinCrs($con_rs_co);
                         $msgIEPX .= '<br>'.$row_std->stdCode.' => '.$rs_co->row()->crsCode;
                     }
                 }
                 
                 $this->contents['flagIEPX'] = $flagIEPX;
                 if ($flagIEPX) {
                     $this->contents['err_msg'] = "** ส่งเกรดไม่ครบ **";
                     $this->contents['msgIEPX'] = $msgIEPX;
                 }
             }
 
             $arr = array();
             $flagPass = 0;
             $i = 0;
             $rs_std = $this->std->qryStdByCurIdAdYSyIdSstIdStr($curId, $adY, $syId, $stStatus);
             foreach ($rs_std->result() as $row_std) {
                 $this->ssm->ssmStdId = $row_std->stdId;
                 $this->ssm->ssmAcY = $acY;
                 $this->ssm->ssmTmId = $tmId;
                 $qu_ssm = $this->ssm->get_by_key();
 // echo $this->std->db->last_query();
                 if ($qu_ssm->num_rows() && $qu_ssm->row()->ssmPassStatus == 0) {
 
                     // หาสถานะการเลื่อนชั้น
                     $passStatus = $this->rd->getPassStatusByStdIdAcY($row_std->stdId, $acY);
                     $arr[$i]['passStatus'] = $passStatus;
 
                     $con_qu_std = array('stdId'     => $row_std->stdId);
                     $arr[$i]['qu_std'] = $this->std->qryStdJoinPf($con_qu_std);
 
                     $grdStr = "";
                     $j = 0;
                     $con_rs_rd = array('rdStdId'    => $row_std->stdId,
                         'rdAcY'    => $acY
                     );
                     $rs_rd = $this->rd->qryRdJoinCoCrs($con_rs_rd);
 
                     foreach ($rs_rd->result() as $row_rd) {
                         $this->cd->cdId = $row_rd->coCdId1;
                         $qu_cd = $this->cd->get_by_key();
 
                         $con_qu_grd = array('grdGrade'    => $row_rd->rdGrade,
                             'grdGtpId'    => $row_cur->curGtpId
                         );
                         $qu_grd1 = $this->grd->qryGrd($con_qu_grd);
 
                         $con_qu_grd = array('grdGrade'    => $qu_cd->row()->cdMinGrade,
                             'grdGtpId'    => $row_cur->curGtpId
                         );
                         $qu_grd2 = $this->grd->qryGrd($con_qu_grd);
                         $grdPoint2 = $qu_grd2->num_rows() ? $qu_grd2->row()->grdPoint : 0;
 
                         $qu_rd = $this->rd->qryRdByStdIdAcYCoIdGrInAtoF($row_std->stdId, $acY, $row_rd->rdCoId);
 
                         if ($row_rd->rdGrade && (($qu_rd && ($qu_grd1->row()->grdPoint < $grdPoint2)) || ($row_rd->rdGrade == 'U'))) {
                             if (($j%4) == 0) {
                                 if ($j != 0)
                                     $grdStr .= ',';
 
                                 $grdStr .= '<br>';
                             } else
                                 $grdStr .= ', ';
                         
                             $grdStr .= $row_rd->crsCode.' : '.$row_rd->rdGrade;
 
                             $j++;
                         }
                     }
                     $arr[$i]['grdStr'] = $grdStr;
 
                     $flagPass = 1;
                 }
 
                 $i++;
             }
             $this->contents['rs'] = $arr;
             $this->contents['flagPass'] = $flagPass;
             $this->contents['rs_passStatus'] = array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5);
 
             $this->output($this->config->item("rg_folder")."v_passStCur");
         } else
             $this->showPassStCur();
     }
 
     function processPassStCur() {
         $this->load->model($this->config->item("rg_folder").'mo_rg_student','std');
         $this->load->model($this->config->item("rg_folder").'mo_rg_studyyear','sy');
         $this->load->model($this->config->item("rg_folder").'mo_rg_studentsummary','ssm');
 
         $stdId = $this->input->post('stdId');
         $acY = $this->input->post('acY');
         $tmId = $this->input->post('tmId');
         $passStatus = $this->input->post('passStatus');
 
         $this->db->trans_begin();
 
         $cntPass = 0;
         for ($i = 0; $i < count($passStatus); $i++) {
             if ($passStatus[$i] <= 3) {
                 $this->std->stdId = $stdId[$i];
                 $this->std->get_by_key(TRUE);
 
                 $this->sy->syId = $this->std->stdSyId;
                 $qu_sy = $this->sy->get_by_key();
                 $syCode = $qu_sy->num_rows() ? ($qu_sy->row()->syCode + 1) : 0;
 
                 $con_qu_sy = array('syCode'    => $syCode);
                 $qu_sy = $this->sy->qrySy($con_qu_sy);
                 if ($qu_sy->num_rows()) {
                     $this->std->stdSyId = $qu_sy->row()->syId;
                     $this->std->stdUpdateUsLogin = $this->session->userdata('UsLogin');
                     $this->std->stdUpdateDate = date('Y-m-d H:i:s');
                     $this->std->update();
 
                     $cntPass++;
                 }
             }
 
             $this->std->stdId = $stdId[$i];
             $this->std->get_by_key(TRUE);
 
             $this->ssm->ssmStdId = $stdId[$i];
             $this->ssm->ssmTmId = $tmId;
             $this->ssm->ssmAcY = $acY;
             $this->ssm->get_by_key(TRUE);
 
             $this->ssm->ssmUpdateUserId = $this->session->userdata('UsLogin');
             $this->ssm->ssmUpdateDate = date('Y-m-d H:i:s');
             $this->ssm->ssmPassStatus = $passStatus[$i];
             $this->ssm->ssmSyId = $this->std->stdSyId;
             $this->ssm->update();
         }
 
         if ($this->db->trans_status() === false) {
             $this->db->trans_rollback();
         } else {
             $this->db->trans_commit();
         }
 
         $this->contents['success_msg'] = "จำนวนนักศึกษาที่เลื่อนชั้น ".$cntPass." คน";
         $this->showPassStCur();
     }
 
     function passStStd() {
         $this->load->model($this->config->item("rg_folder").'mo_rg_student','std');
         $this->load->model($this->config->item("rg_folder").'mo_rg_studentsummary','ssm');
         $this->load->model($this->config->item("rg_folder").'mo_rg_curriculum','cur');
         $this->load->model($this->config->item("rg_folder").'mo_rg_registdetails','rd');
         $this->load->model($this->config->item("rg_folder").'mo_rg_condition','cd');
         $this->load->model($this->config->item("rg_folder").'mo_rg_grade','grd');
 
         $stdCode = $this->input->post('stdCode');
 
         $this->form_validation->set_error_delimiters('<div class="error">','</div>');
         $this->form_validation->set_rules('stdCode',' ','trim|is_natural_no_zero|callback_checkInt|integer|xss_clean');
 
         if($this->form_validation->run() == true) {
                 $stStatus = '1, 2';
                 $qu_std = $this->std->qryStdByCodeStStatus($stdCode, $stStatus);
 
                 if ($qu_std->num_rows()) {
                     $this->contents['stdCode'] = $stdCode;
                     
                     $row_std = $qu_std->row();
 
                     $acY = $this->ssm->getMaxAcYByStdId($row_std->stdId);
                     $this->contents['acY'] = $acY;
                     $tmId = $this->ssm->getMaxTmIdByStdIdAcY($row_std->stdId, $acY);
                     $this->contents['tmId'] = $tmId;
 
                     $con_qu_std = array('stdId'     => $row_std->stdId);
                     $this->contents['qu_std'] = $this->std->qryStdJoinPfCurSySstElv($con_qu_std);
 
                     $this->ssm->ssmStdId = $row_std->stdId;
                     $this->ssm->ssmTmId = $tmId;
                     $this->ssm->ssmAcY = $acY;
 
                     $qu_ssm = $this->ssm->get_by_key();
                     $this->contents['qu_ssm'] = $qu_ssm;
 
                     $this->cur->curId = $row_std->stdCurId;
                     $qu_cur = $this->cur->get_by_key();
                     $row_cur = $qu_cur->row();
 
                     // หารายวิชาที่สอบไม่ผ่าน
                     $grdStr = "";
                     $i = 0;
                     $con_rs_rd = array('rdStdId'    => $row_std->stdId,
                         'rdAcY'    => $acY
                     );
                     $rs_rd = $this->rd->qryRdJoinCoCrs($con_rs_rd);
                     foreach ($rs_rd->result() as $row_rd) {
                         $this->cd->cdId = $row_rd->coCdId1;
                         $qu_cd = $this->cd->get_by_key();
 
                         $con_qu_grd = array('grdGrade'    => $row_rd->rdGrade,
                             'grdGtpId'    => $row_cur->curGtpId
                         );
                         $qu_grd1 = $this->grd->qryGrd($con_qu_grd);
 
                         $con_qu_grd = array('grdGrade'    => $qu_cd->row()->cdMinGrade,
                             'grdGtpId'    => $row_cur->curGtpId
                         );
                         $qu_grd2 = $this->grd->qryGrd($con_qu_grd);
 
                         $grdPoint2 = $qu_grd2->num_rows() ? $qu_grd2->row()->grdPoint : 0;
 
                         $qu_rd = $this->rd->qryRdByStdIdAcYCoIdGrInAtoF($row_std->stdId, $acY, $row_rd->rdCoId);
 
                         if ($row_rd->rdGrade && (($qu_rd && ($qu_grd1->row()->grdPoint < $grdPoint2)) || ($row_rd->rdGrade == 'U'))) {
                             $grdStr .= '<div>';
                             $grdStr .= '<span style="width: 50%">'.$row_rd->crsCode.' : '.$row_rd->crsName.'</span>';
                             $grdStr .= '<span style="width: 50%">'.$row_rd->rdGrade.'</span>';
                             $grdStr .= '</div>';
 
                             $i++;
                         }
                     }
                     $this->contents['grdStr'] = $grdStr;
 
                     if (!$tmId) {
                         $this->contents['err_msg'] = "** ยังไม่ได้ประมวลผลเกรด **";
 /*                    } else if ($tmId == 1) {
                         if ($tmId == $this->session->userdata('tmId')) {
                             $this->contents['err_msg'] = "** ไม่สามารถเลื่อนชั้นได้ เนื่องจากเป็นภาคการศึกษาที่ 1 **";
                         } else {
                             $this->contents['err_msg'] = "** ยังไม่ได้ประมวลผลเกรดภาคการศึกษานี้ **";
                         }  */
                     } else {
                         if($qu_ssm->row()->ssmPassStatus) {
                             $this->contents['err_msg'] = "** เลื่อนชั้นแล้ว **";
                         } else {
                             // ส่งเกรดไม่ครบ ไม่ให้เลื่อนชั้น
                             $rs_rd = $this->rd->qryRdByStdIdAcYSendGrIsNUnionGradeInIEPX($row_std->stdId, $acY);
                             if ($rs_rd->num_rows()) {
                                 $this->contents['err_msg'] = "** ส่งเกรดไม่ครบ **";
                             } else {
                                 $passStatus = $this->rd->getPassStatusByStdIdAcY($row_std->stdId, $acY);
                                 $this->contents['passStatus'] = $passStatus;
                             }
                         }
                     }
                 }
             $this->output($this->config->item("rg_folder")."v_passSt");
         } else {
             $this->output($this->config->item("rg_folder")."v_passSt");
         }
     }
 
     function processPassSt() {
         if ($this->input->post('btnConfirm')) {
             $this->load->model($this->config->item("rg_folder").'mo_rg_student','std');
             $this->load->model($this->config->item("rg_folder").'mo_rg_studyyear','sy');
             $this->load->model($this->config->item("rg_folder").'mo_rg_studentsummary','ssm');
 
             $stdId = $this->input->post('stdId');
             $tmId = $this->input->post('tmId');
             $acY = $this->input->post('acY');
             $passStatus = $this->input->post('passStatus');
 
             $this->db->trans_begin();
 
             if($passStatus <= 3) {
                 $this->std->stdId = $stdId;
                 $this->std->get_by_key(TRUE);
 
                 $this->sy->syId = $this->std->stdSyId;
                 $qu_sy = $this->sy->get_by_key();
                 $syCode = $qu_sy->num_rows() ? ($qu_sy->row()->syCode + 1) : 0;
 
                 $con_qu_sy = array('syCode'    => $syCode);
                 $qu_sy = $this->sy->qrySy($con_qu_sy);
                 if ($qu_sy->num_rows()) {
                     $this->std->stdSyId = $qu_sy->row()->syId;
                     $this->std->stdUpdateUsLogin = $this->session->userdata('UsLogin');
                     $this->std->stdUpdateDate = date('Y-m-d H:i:s');
                     $this->std->update();
                 }
             }
 
             $this->ssm->ssmStdId = $stdId;
             $this->ssm->ssmTmId = $tmId;
             $this->ssm->ssmAcY = $acY;
             $this->ssm->get_by_key(TRUE);
 
             $this->ssm->ssmUpdateUserId = $this->session->userdata('UsLogin');
             $this->ssm->ssmUpdateDate = date('Y-m-d H:i:s');
             $this->ssm->ssmPassStatus = $passStatus;
             $this->ssm->update();
 
             if ($this->db->trans_status() === false) {
                 $this->db->trans_rollback();
             } else {
                 $this->db->trans_commit();
             }
         }
 
         $this->passStStd();
     }
 }
 ?>
  |