'use strict'
angular.module('APS_JET_PER_EMP').controller('ApsEmpForm',['$scope','$sce', '$filter', '$http', 'EmpListCtrl', '$q', function($scope, $sce, $filter, $http, EmpListCtrl, $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.isApsapprove2 = 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,key){
		let score = 0
		if(tmp_tab1.length>0){
			for(let i in tmp_tab1){
				score += parseFloat(tmp_tab1[i][key] || 0)
			}
		}
		return score
	}

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

	$scope.calSumScore = function(name,key){
		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][key] || 0)
			}
		}
		$scope[name] = (total / $scope.max * 20).toFixed(2)
	}

	EmpListCtrl.manageApsEmpForm.query($scope.myparam).$promise.then(function(data){
		
		$scope.tapstran = data.objtapstran;
		$scope.assessydata = data.objassessy;
		$scope.assessordata = data.objassessor;
		$scope.apsform = data.apsform;
		if($scope.apsform.length>0){
			$scope.formdesc = data.apsform[0].formdesc
			$scope.tastran_tab1 = data.apsform[0].groupAry[0].masAry;
			
			$scope.score1 = $scope.sumWeight('asranswer1')
			$scope.score2 = $scope.sumWeight('asranswer2')
			$scope.score3 = $scope.sumWeight('asranswer3')

			$scope.max = $scope.tastran_tab1.length

			$scope.result1 = ($scope.score1 / $scope.max * 20).toFixed(2)
			$scope.result2 = ($scope.score2 / $scope.max * 20).toFixed(2)
			$scope.result3 = ($scope.score3 / $scope.max * 20).toFixed(2)

			$scope.masanswer = data.masanswer;
			$scope.masanswer_tab1 = data.masanswer.tab1;
			$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 if($scope.tapstran.employeeid == $scope.tapstran.apsapprove2){
				$scope.isApsapprove2 = true;
			}
		}else{
			$('.form-horizontal').css('display', 'none');
		}
		$('.loading-page').css('display', 'none');
	});

	$scope.chkRequire = function(){
		console.log("state : "+$scope.apsstate)
		let result = false
		if($scope.apsstate==0){
			result = $scope.chkState0()
		}else if($scope.apsstate==1){
			result = $scope.chkState1()
		}else if($scope.apsstate==2){
			result = $scope.chkState2()
		}
		return result
	}

	$scope.chkState0 = function(){
		let nullvalue = false
		if($scope.tastran_tab1.length>0){
			for(let i in $scope.tastran_tab1){
				if($scope.tastran_tab1[i]["asranswer1"]==""){
					nullvalue = true
				}
			}
		}
		console.log($scope.tapstran.employeeid)
		console.log($scope.tapstran.apsappcomment1)
		if($scope.tapstran.apsappcomment1==""){
			nullvalue = true
		}
		return !nullvalue
	}

	$scope.chkState1 = function(){
		let nullvalue = false
		if($scope.tastran_tab1.length>0){
			for(let i in $scope.tastran_tab1){
				if($scope.tastran_tab1[i]["asranswer2"]==""){
					nullvalue = true
				}
			}
		}
		if($scope.tapstran.apsappcomment2==""){
			nullvalue = true
		}
		return !nullvalue
	}

	$scope.chkState2 = function(){
		let nullvalue = false
		if($scope.tastran_tab1.length>0){
			for(let i in $scope.tastran_tab1){
				if($scope.tastran_tab1[i]["asranswer3"]==""){
					nullvalue = true
				}
			}
		}
		if($scope.tapstran.apsappcomment3==""){
			nullvalue = true
		}
		return !nullvalue
	}

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

	$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'
			}
			EmpListCtrl.manageApsEmpForm.save(JSON.stringify($scope.sendparam))
			.$promise.then(function(){
				alert(MyCode[18]);
				$scope.apsstate  = parseFloat($scope.apsstate)+1;
			});
		}
	}

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

}]);