'use strict'
angular.module('APS_JET_PER_MAN').controller('ApsManForm',['$scope','$sce', '$filter', '$http', 'ManListCtrl', '$q', function($scope, $sce, $filter, $http, ManListCtrl, $q){
	$scope.apsid = $('input[name="apsid"]').val()
	$scope.assessy = $('input[name="assessy"]').val()
	$scope.type = $('input[name="type"]').val()
	$scope.tapstran = {}
	$scope.assessydata = {}
	$scope.assessordata = {}
	$scope.apsform = {}
	$scope.selectscore = []
	$scope.selectscore2 = []
	$scope.activitiescore = []
	$scope.apsscore = []
	$scope.op1desc ={}
	$scope.apsstate = 0
	$scope.isApsassessy = false
	$scope.isApsapprove1 = false
	$scope.tastran = {}
	$scope.masanswer ={}
	
	var WindowObject;
	var DocumentContainer;

  for(var i=0.0; i<=17.5; i=i+0.5){
    var data ={
      score: i.toFixed(2),
      show: i
    };
    $scope.selectscore.push(data);
  }
  for(var i=0; i<=30; i++){
    var data ={
      score: i.toFixed(2),
      show: i
    };
    $scope.selectscore2.push(data);
  }
  for(var i=0; i<=1; i++){
      var data ={
        score: i+".00",
        show: i
    };
    $scope.activitiescore.push(data);
  }
  for(var i=0; i<=5; i++){
      var data ={
        score: i+".00",
        show: i
    };
    $scope.apsscore.push(data);
  }

	$scope.myparam = {
		apsid: $scope.apsid
		,assessy: $scope.assessy
		,type: $scope.type
	};

	if($scope.type=='self'){
		$('.emv-headmenu').css('display', 'block')
	}

	$scope.sumWeight = function(tmp_tab1){
		let total = 0
		if(tmp_tab1.length>0){
			for(let i in tmp_tab1){
				total += parseFloat(tmp_tab1[i].asranswer || 0)
			}
		}
		return total
	}

	$scope.sumWeightTab1 = function(){
		let total = 0
		let tmp_tab1 = $scope.tastran_tab1
		if(tmp_tab1.length>0){
			for(let i in tmp_tab1){
				total += parseFloat(tmp_tab1[i].asranswer || 0)
			}
		}
		$scope.score = total
		$scope.result = ($scope.score / $scope.max).toFixed(2)
	}

	ManListCtrl.manageApsManForm.query($scope.myparam).$promise.then(function(data){
		
		$scope.tapstran = data.objtapstran;
	//	console.log($scope.tapstran);
		$scope.assessydata = data.objassessy;
		$scope.assessordata = data.objassessor;
		$scope.apsform = data.apsform;
	//	alert($scope.apsform.length);
		if($scope.apsform.length>0){
			$scope.tastran_tab1 = data.apsform[0].groupAry[0].masAry;
			$scope.tastran_tab2 = data.apsform[0].groupAry[1].masAry;
			$scope.tastran_tab3 = data.apsform[0].groupAry[2].masAry;
			
			let tmp_tab1 = $scope.tastran_tab1
			$scope.score = $scope.sumWeight(tmp_tab1)

			$scope.max = $scope.tastran_tab1.length
			$scope.result = ($scope.score / $scope.max).toFixed(2)

			$scope.masanswer = data.masanswer;
			$scope.masanswer_tab1 = data.masanswer.MAN0101;
			$scope.masanswer_tab2 = data.masanswer.MAN0201;
			$scope.masanswer_tab3 = data.masanswer.MAN0301;
		//	console.log($scope.masanswer);
			$scope.apsstate = $scope.tapstran.apsstate;
			if($scope.tapstran.employeeid == $scope.tapstran.apsassessy){
				$scope.isApsassessy = true;
			}else if($scope.tapstran.employeeid == $scope.tapstran.apsapprove1){
				$scope.isApsapprove1 = true;
			}
		}else{
			$('.form-horizontal').css('display', 'none');
		}
		$('.loading-page').css('display', 'none');
	});

	$scope.saveDraft = function(){
		if(confirm(MyCode[1])){
			$scope.sendparam = {
				apsid: $scope.apsid
				,assessy: $scope.assessy
				,assessordata: $scope.assessordata
				,apsform: $scope.apsform
				,tapstran: $scope.tapstran
				,savetype: '0'
			}
			console.log($scope.sendparam);
			ManListCtrl.manageApsManForm.save(JSON.stringify($scope.sendparam))
			.$promise.then(function(){
				alert(MyCode[18]);
			});	
		}
	}

	$scope.save = function(){
		if(confirm(MyCode[1])){
			$scope.sendparam = {
				apsid: $scope.apsid
				,assessy: $scope.assessy
				,assessordata: $scope.assessordata
				,apsform: $scope.apsform
				,tapstran: $scope.tapstran
				,savetype: '1'
			}
			ManListCtrl.manageApsManForm.save(JSON.stringify($scope.sendparam))
			.$promise.then(function(){
				alert(MyCode[18]);
				$scope.apsstate  = parseFloat($scope.apsstate)+1;
			});
		}
	}

	$scope.closePage = function(){
		closePage();
	}

	$scope.checkprivilege = function(state){
	//	ครึ่งปีแรก = state = 0   &&   16/12/ปีก่อน  -  15/06/ปีปัจจุบัน
	//	ครึ่งปีหลัง = state = 1   &&   16/06/ปีก่อน  -  15/12/ปีปัจจุบัน

		if($scope.assessordata.length > 0){
			var result = true;  // false == มีสิทธิ์ประเมิน  -- true == ไม่มีสิทธิ์ประเมิน

			if(state == "0"){  // เช็ค สิทธิครึ่งปีแรก
				if(($scope.assessordata[0].apsstate == "0") || ($scope.assessordata[0].apsstate == "C")){
					if($scope.checkuser()){
						result = false ;
					}else{
						result = true ;
					}
				}
			}else if(state == "1"){ // เช็ค สิทธิครึ่งปีหลัง
				if(($scope.assessordata[0].apsstate == "1") || ($scope.assessordata[0].apsstate == "D")){
					if($scope.checkuser()){
						result = false ;
					}else{
						result = true ;
					}
				}
			}else if(state == "2"){ // เช็คข้อ 3
				if(($scope.assessordata[0].apsstate == "0") || ($scope.assessordata[0].apsstate == "C") || ($scope.assessordata[0].apsstate == "1") || ($scope.assessordata[0].apsstate == "D")){
					result = false ;
				}else{
					result = true ;
				}
			}else if(state == "time"){ // เช็คข้อ 4
				if((($scope.assessordata[0].apsstate == "0") || ($scope.assessordata[0].apsstate == "C") || ($scope.assessordata[0].apsstate == "1") || ($scope.assessordata[0].apsstate == "D")) && $scope.checkuser()){
					result = false ;
				}else{
					result = true ;
				}
			}else{
				console.error("หมดรอบประเมิน");
			}
		}
		return result;
	}

	$scope.checkuser = function(){
		var result = false;
		var me = $('input[name="me"]').val();

		if($scope.assessordata.length > 0){
			var userlist = $scope.assessordata[0].user;
			for(var u=0; u<userlist.length; u++){
				if(userlist[u].toUpperCase() == me.toUpperCase()){
					result = true;
				}
			}
		}
		return result;
	}

	$(document).ready(function(){
		$(".op1score").on( "keyup", function(){
			let score1_half = parseFloat($scope.assessordata[0].score1_half)
			let score1_last = parseFloat($scope.assessordata[0].score1_last)
			let score2_half = parseFloat($scope.assessordata[0].score2_half)
			let score2_last = parseFloat($scope.assessordata[0].score2_last)

			if(score1_half > 17.5 || score1_half < 0){
				$scope.assessordata[0].score1_half = "0.00"
				$(this).val("0.00")
			}
			if(score1_last > 17.5 || score1_last < 0){
				$scope.assessordata[0].score1_last = "0.00"
				$(this).val("0.00")
			}
			if(score2_half > 17.5 || score2_half < 0){
				$scope.assessordata[0].score2_half = "0.00"
				$(this).val("0.00")
			}
			if(score2_last > 17.5 || score2_last < 0){
				$scope.assessordata[0].score2_last = "0.00"
				$(this).val("0.00")
			}
		}).on("blur",function(){
			if($(this).val()==''){
				$(this).val("0.00")
			}
		})

		$(".op2score").on( "keyup", function() {
			let score3_half = parseFloat($scope.assessordata[0].score3_half)
			let score4_half = parseFloat($scope.assessordata[0].score4_half)

			if(score3_half > 30 || score3_half < 0){
				$scope.assessordata[0].score3_half = "0.00"
				$(this).val("0.00")
			}
			if(score4_half > 30 || score4_half < 0){
				$scope.assessordata[0].score4_half = "0.00"
				$(this).val("0.00")
			}
		}).on("blur",function(){
			if($(this).val()==''){
				$(this).val("0.00")
			}
		})

		$(".op1score, .op2score").on( "keypress", function( event ) {
			// a-z [97-122]
			// A-Z [65-90]
			// 0-9 [48-57]
			// Enter [13]
			// Backspace [8]
			// _ [95]
			// . [46]
			if( !(event.which >= 48 && event.which <= 57) && event.which !== 8 && event.which !== 46){
				event.preventDefault();
			}
		});

	});

}]);