angular.module('APP_MBO').controller('CareerVision', function($scope, MBOrest, MBOutil, APSRest, $state, $stateParams, $q, $filter) { $scope.employeeid = $stateParams.employeeid; $scope.apsyear = $stateParams.apsyear; $scope.state = 0; $scope.user_data = {}; $scope.CareerGoals = {}; $scope.CareerLanguage = []; $scope.CareerCk = []; $scope.CareerCkMaxLength = 3; $scope.CareerExpertiseArea = []; $scope.CareerExpertiseAreaMaxLength = 5; $scope.CareerOther = []; $scope.CareerOtherMaxLength = 3; $scope.CareerApsComment = {}; $scope.userdata = {}; $scope.aprraisee_data = {}; $scope.isAppraisee = ''; $scope.isAppraiser = ''; $scope.approverLevel = ''; $scope.dateNow = new Date().toISOString().slice(0,10); $scope.TapsstateList = MBOutil.TapsstateList; $scope.alertSaveComplete = MBOutil.alertSaveComplete; $scope.loading = MBOutil.loading; if( MBOutil.TapsstateList.length == 0 ){ MBOrest.TapsstateList.query({ apsid: 'MBO' }) .$promise.then(function(data) { MBOutil.TapsstateList = data.TapsstateList; $scope.TapsstateList = MBOutil.TapsstateList; }); } APSRest.ApsState.query( { apsid: 'MBO', employeeid: $scope.employeeid, apsyear: $scope.apsyear } ) .$promise.then(function(data) { $scope.state = data.apsstate; }); MBOrest.Profile.query({ apsyear: $scope.apsyear, employeeid: $scope.employeeid }) .$promise.then(function(data) { $scope.aprraisee_data = data.aprraisee_data; $scope.userdata = data.userdata; $scope.isAppraisee = data.isAppraisee; $scope.isAppraiser = data.isAppraiser; $scope.approverLevel = data.approverLevel; }); MBOrest.CareerVision.CareerGoals.query( { apsyear: $scope.apsyear, employeeid: $scope.employeeid } ) .$promise.then(function(data) { $scope.CareerGoals = data.CareerGoals; }); MBOrest.CareerVision.CareerLanguage.query( { apsyear: $scope.apsyear, employeeid: $scope.employeeid } ) .$promise.then(function(data) { $scope.CareerLanguage = data.CareerLanguage; }); MBOrest.CareerVision.CareerCk.query( { apsyear: $scope.apsyear, employeeid: $scope.employeeid } ) .$promise.then(function(data) { $scope.CareerCk = data.CareerCk; }); MBOrest.CareerVision.CareerExpertiseArea.query( { apsyear: $scope.apsyear, employeeid: $scope.employeeid } ) .$promise.then(function(data) { $scope.CareerExpertiseArea = data.CareerExpertiseArea; }); MBOrest.CareerVision.CareerOther.query( { apsyear: $scope.apsyear, employeeid: $scope.employeeid } ) .$promise.then(function(data) { $scope.CareerOther = data.CareerOther; }); MBOrest.CareerVision.CareerApsComment.query( { apsyear: $scope.apsyear, employeeid: $scope.employeeid } ) .$promise.then(function(data) { $scope.CareerApsComment = data.CareerApsComment; }); $scope.$on('$stateChangeStart', function(event) { if($scope.myForm.$dirty){ var answer = confirm("Data has not been save. Are you sure to leave this tab?") if(!answer) { event.preventDefault(); } } }); $scope.save = function(isAlert){ /*$scope.loading();*/ /*for(let i=0;i<100;i++){ MBOrest.CareerVision.CareerGoals.save( { apsyear: $scope.apsyear, employeeid: $scope.employeeid }, $scope.CareerGoals ) .$promise.then(function(data) { //console.log(i); }); }*/ let saveCareerGoals = $q.defer(); let saveCareerLanguage = $q.defer(); let saveCareerCk = $q.defer(); let saveCareerExpertiseArea = $q.defer(); let saveCareerOther = $q.defer(); let saveCareerApsComment = $q.defer(); $q.all( [ saveCareerGoals.promise, saveCareerLanguage.promise, saveCareerCk.promise, saveCareerExpertiseArea.promise, saveCareerOther.promise, saveCareerApsComment.promise ] ).then(function() { if(isAlert != false){ /*$scope.alertSaveComplete();*/ } alert("Save Complete"); if($scope.myForm != undefined){ $scope.myForm.$setPristine(); } return true; }); MBOrest.CareerVision.CareerGoals.save( { apsyear: $scope.apsyear, employeeid: $scope.employeeid }, $scope.CareerGoals ) .$promise.then(function(data) { saveCareerGoals.resolve(data); }); MBOrest.CareerVision.CareerLanguage.save( { apsyear: $scope.apsyear, employeeid: $scope.employeeid }, $scope.CareerLanguage ) .$promise.then(function(data) { saveCareerLanguage.resolve(data); }); MBOrest.CareerVision.CareerCk.save( { apsyear: $scope.apsyear, employeeid: $scope.employeeid }, $scope.CareerCk ) .$promise.then(function(data) { saveCareerCk.resolve(data); }); MBOrest.CareerVision.CareerExpertiseArea.save( { apsyear: $scope.apsyear, employeeid: $scope.employeeid }, $scope.CareerExpertiseArea ) .$promise.then(function(data) { saveCareerExpertiseArea.resolve(data); }); MBOrest.CareerVision.CareerOther.save( { apsyear: $scope.apsyear, employeeid: $scope.employeeid }, $scope.CareerOther ) .$promise.then(function(data) { saveCareerOther.resolve(data); }); MBOrest.CareerVision.CareerApsComment.save( { apsyear: $scope.apsyear, employeeid: $scope.employeeid }, $scope.CareerApsComment ) .$promise.then(function(data) { saveCareerApsComment.resolve(data); }); }; $scope.delRow = function(obj){ MBOutil.deleteCheckedlist(obj); }; $scope.getIdx = function(obj){ let sort = $filter('orderBy')(obj, 'idx'); if(sort == ''){ return 1; } return parseInt(sort[ sort.length-1 ].idx)+1; } $scope.addRowCK = function(){ if($scope.CareerCk.length < $scope.CareerCkMaxLength){ $scope.CareerCk.push( { 'idx': $scope.getIdx($scope.CareerCk), 'dev_oppo': '', 'cklc': '', 'action': '', 'timeframe': '', 'isChecked': false, 'isDelete': false, 'isNew': true } ); } }; $scope.addRowExpertise = function(){ if($scope.CareerExpertiseArea.length < $scope.CareerExpertiseAreaMaxLength){ $scope.CareerExpertiseArea.push( { 'idx': $scope.getIdx($scope.CareerExpertiseArea), 'dev_oppo': '', 'expertise_area': '', 'action': '', 'timeframe': '', 'isChecked': false, 'isDelete': false, 'isNew': true } ); } }; $scope.addRowOther = function(){ if($scope.CareerOther.length < $scope.CareerOtherMaxLength){ $scope.CareerOther.push( { 'idx': $scope.getIdx($scope.CareerOther), 'training_needs': '', 'timeframe': '', 'isChecked': false, 'isDelete': false, 'isNew': true } ); } }; $scope.addRowLanguage = function(){ $scope.CareerLanguage.push( { 'idx': $scope.getIdx($scope.CareerLanguage), 'language': '', 'level': '', 'score': '', 'isChecked': false, 'isDelete': false, 'isNew': true } ); }; $scope.Next = function(){ if( confirm("Are you sure to confirm data?") == true ){ /*$scope.loading();*/ let isAlert = false; let Q1 = $q.defer(); let Q2 = $q.defer(); $q.all( [ Q1.promise, Q2.promise ] ).then(function() { $scope.myForm.$setPristine(); $state.reload(); }); Q1.resolve( $scope.save(isAlert) ); MBOrest.CareerVision.CareerGoals.transfer( { apsyear: $scope.apsyear, employeeid: $scope.employeeid } ) .$promise.then(function(data) { /*$scope.alertSaveComplete(data.Message);*/ Q2.resolve(data); }); } }; });