Exam001.Controller.js 4.8 KB
Newer Older
Thitichaipun Wutthisak committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
'use strict'

angular.module('EXAM').controller('Exam001',['$scope', '$http', 'EXAMSERVICES', '$filter', function($scope, $http, EXAMSERVICES, $filter){
   $scope.questset1 = {
      'questionset1id': '',
      'questionset1_name': '',
      'remark': '',
      'subject_req': '',
      'pass_score': '',
      'settime': '',
      'question_type': '0',
      'total_score': '0.00',
      'hour': '0',
      'minute': '0',
      'examination_time' : '0.00',
      'examworkstatus': '',
      'score_report': '',
      'status': ''
   };

   // 2 ตัวนี้ใช้เก็บเป็น Tmp เวลามีการเปลี่ยน type $scope.questset3ch จะถูกเคลียร์ค่าแต่จะมีการเก็บค่าก่อนเคลียร์ไว้ก่อน
   $scope.tmpquestset2 = [];
   $scope.tmpquestion = [];


   $scope.questset1ch = [];
   $scope.selhour = [];
   $scope.selminute = [];
   for (var i=0; i<=24; i++){
      $scope.selhour.push(i);
   }

   for (var i=0; i<=60; i++){
      $scope.selminute.push(i);
   }

   $scope.timeExam = '';

   $scope.queryByKey = function(keyname, keyval){
      EXAMSERVICES.ManageExam001.query({examid: keyval, querytype: 'ex01'})
      .$promise.then(function(data){
         $scope.questset1 = data.questset1;
         $scope.questset1ch = data.questset1ch;
         var tmptime = $scope.questset1.examination_time.split('.');
         $scope.questset1.hour = tmptime[0];
         $scope.questset1.minute = tmptime[1];
         console.log($scope.questset1.examination_time.split('.'));
         console.log('DEBUG:: queryByKey() questset1 =>', $scope.questset1, ', questset1ch =>', $scope.questset1ch);
         $scope.calScore();
      });
   }

   $scope.calScore = function(){
      var result = 0.00;

      $scope.questset1ch.forEach(function(data){
         result += parseFloat(data.score);
      });

      $scope.questset1.total_score = parseFloat(result).toFixed(2);
   };

   $scope.putNewChild = function(arrch){
      arrch.forEach(function(data){
         var isFound = $filter('findWithAttr')($scope.questset1ch, 'questionid', data.questionid);
         if (!isFound) {
            $scope.questset1ch.push(data);
         }
      });

      $scope.calScore();
      console.log('DEBUG:: putNewChild() questset1ch =>', $scope.questset1ch);
   };

   $scope.putNewQuestion = function(questionobj){
      var isFound = $filter('findWithAttr')($scope.questset1ch, 'questionid', questionobj.questionid);
      if (!isFound) {
         $scope.questset1ch.push(questionobj);
      }
      $scope.calScore();
      console.log('DEBUG:: putNewQuestion() questset1ch =>', $scope.questset1ch);
   };

   $scope.save = function(){
      if ($scope.questset1.questionset1id != '' && $scope.questset1.questionset1id != undefined){

         if ($scope.questset1.settime == '1'){
            $scope.calTimeExam();
         }

         var allobj = {
            'questionset1': $scope.questset1,
            'questionset1ch': $scope.questset1ch
         };

         EXAMSERVICES.ManageExam001.save(allobj)
         .$promise.then(function(data){
            alert(MyCode[18]);
            window.location.reload();
         });
      }
   };

   $scope.calTimeExam = function(){
      $scope.questset1.examination_time = $scope.questset1.hour+'.'+$scope.questset1.minute;
   };

   $scope.checkPassScore = function(){
      if (parseFloat($scope.questset1.pass_score) > parseFloat($scope.questset1.total_score)){
         $scope.questset1.pass_score = $scope.questset1.total_score;
      }
   }

   $scope.delete = function(){
      if ($scope.questset1.questionset1id!= undefined && $scope.questset1.questionset1id != ''){
         EXAMSERVICES.ManageExam001.delete({examid: $scope.questset1.questionset1id})
             .$promise.then(function(data){
            alert(MyCode[19]);
            window.location.reload();
         });
      }
   };

   $scope.selectAll = function(){
      $scope.questset1ch.forEach(function(data){
         data.ischeck = true;
      });
   };

   $scope.deSelectAll = function(){
      $scope.questset1ch.forEach(function(data){
         data.ischeck = false;
      });
   };

   $scope.delSelect = function(){
      var listindex = [];
      $scope.questset1ch.forEach(function(data, index){
         if (data.ischeck){
            listindex.push(index);
         }
      });
      while (listindex.length > 0){
         $scope.questset1ch.splice(listindex.pop(), 1);
      }
   };

   $scope.checkBeforeChange = function(){
      if ($scope.questset1.question_type == '0'){
         $scope.tmpquestset2 = $scope.questset1ch;
         $scope.questset1ch = $scope.tmpquestion;
      }else if ($scope.questset1.question_type == '1'){
         $scope.tmpquestion = $scope.questset1ch;
         $scope.questset1ch = $scope.tmpquestset2;
      }
   }

}]);