/** * Created by Jady on 22/11/2017. */ 'use strict' angular.module('RECRUIT').controller('CommitteeSetup', function ($scope, $mdDialog, RecService, SwapLang, $filter) { $scope.clsFormApplicant = new FormApplicant() $scope.dbName = '' $scope.lang = getLang() $scope.del_olddata = "1" $scope.swaplang = new swaplang(); let cscForm = document.cscform $scope.job = {} let referrelist = [] // for get employee to search $scope.committee =[] $scope.seqlist = [] $scope.isgetreferre = false $scope.hascommittee = false $scope.status_desc = [{ status: 'N', desc:{ tha: 'ยังไม่มีใบประเมิน', eng: 'Document Not Created' } },{ status: '0', desc:{ tha: 'ยังไม่ได้ประเมิน', eng: 'Not Evaluated' } },{ status: '1', desc:{ tha: 'บันทึกร่าง', eng: 'Save Draff' } },{ status: '2', desc:{ tha: 'ประเมินแล้ว', eng: 'Success' } }] let initSeqCommit = () =>{ $scope.seqlist = [] for(let i=1; i<=$scope.committee.length; i++){ let data = { value : i } $scope.seqlist.push(data) } } let getMasterData = () =>{ // Get Job RecService.JobController.query({jobid: "'"+$scope.clsFormApplicant.formApplicant.jobid+"'"}).$promise.then(function (data) { $scope.job = data.job[0][`jobdesc_${$scope.lang}`] }) // Get Referre RecService.GetMreferee.get().$promise.then(function (data) { referrelist = data.referee $scope.isgetreferre = true }) } $scope.queryCandidate = (canid) => { RecService.RestMcandidate.getQuery({id: canid}).$promise.then(function (data) { angular.merge($scope.clsFormApplicant.formApplicant, data.result) // console.log(data.result) getMasterData() queryCommittee($scope.clsFormApplicant.formApplicant.applicantid, canid); }) } $scope.queryApplicant = (appid) => { // canid = > appid RecService.RestMapplicant.getQuery({appid: appid}).$promise.then(function (data) { angular.merge($scope.clsFormApplicant.formApplicant, data.result) // console.log(data.result) getMasterData() queryCommittee(appid, 0); }) } let queryCommittee = (appid,canid) => { let param = { 'canid' : canid, 'appid' : appid } RecService.ManageCommittee.query(param).$promise.then(function (data) { angular.merge($scope.committee, data.committee) //console.log(data); initSeqCommit() $scope.hascommittee = data.hascommittee }) } $scope.addCommittee = () =>{ let data ={ employeeid: '', fullname: '', bu1: '', bu2: '', bu3: '', bu4: '', bu5: '', position: '', job: '', seq: '1', apsstatus: 'N' } $scope.committee.push(data) initSeqCommit() } $scope.delCommittee = (index) =>{ $scope.committee.splice(index,1); initSeqCommit() } // Call MD-Dialog $scope.SearchCommittee = function(ev, index) { $mdDialog.show({ controller: $scope.searchCommitteeCtrl, templateUrl: 'DIALOGTEMPLATE/SearchCommittee.html', parent: angular.element(document.body), targetEvent: ev, clickOutsideToClose:true, }).then(function(empID = null) { if(empID != null){ setEmptoCOmmitee(empID, index, ev) } }) }; // MD-Dialog Controller $scope.searchCommitteeCtrl = ($scope, $mdDialog, RecService) => { $scope.referrelist = referrelist $scope.hide = () => { $mdDialog.hide() }; $scope.setEmpItem = (empID) =>{ $mdDialog.hide(empID) } $scope.callDataTable = () => { $('#datareferre').DataTable() } } let setEmptoCOmmitee = (empID, index, ev) => { let empItem = $filter('filter')(referrelist, {employeeid:empID}, true) if(chkDuplicateCommittee(empID)){ angular.merge($scope.committee[index], empItem[0] ) }else{ showAlert(ev) } // console.log($scope.committee); } let chkDuplicateCommittee = (empID) => { let result = true let finDuplicate = $filter('filter')($scope.committee, {employeeid:empID}, true) if(finDuplicate.length > 0){ result = false } return result } // Call MD-Dialog alert let showAlert = function(ev) { $mdDialog.show( $mdDialog.alert() .parent(angular.element(document.querySelector('#popupContainer'))) .clickOutsideToClose(true) //.title('alert Dialog') .textContent('มีกรรมการท่านนี้แล้ว กรุณาเลือกกรรมการใหม่') //.ariaLabel('Alert Dialog') .ok('ตกลง') .targetEvent(ev) ); }; $scope.save = function(save_type){ if(chkdata()){ if (confirm(MyCode[1])){ $scope.sendparam = setParamToSave(save_type) RecService.ManageCommittee.save(JSON.stringify($scope.sendparam)).$promise.then(function(){ alert(MyCode[18]); $scope.hascommittee = true }); } }else{ alert('กรุณาเลือกกรรมการ') } } let chkdata = () => { let result = false for(let i=0;i<$scope.committee.length;i++){ if($scope.committee[i].employeeid != ''){ result = true }else{ result = false } } return result } let setParamToSave = (save_type) => { let arr_committeelist = [] for(let i=0;i<$scope.committee.length;i++){ let data = { committeeid : $scope.committee[i].employeeid, seq : $scope.committee[i].seq } arr_committeelist.push(data) } let obj_param = { candidateid : chkUndefind($scope.clsFormApplicant.formApplicant.candidateid), applicantid : chkUndefind($scope.clsFormApplicant.formApplicant.applicantid), committeelist : JSON.stringify(arr_committeelist), savetype : save_type, del_olddata : $scope.del_olddata } console.log(obj_param); return obj_param } let chkUndefind = (data) =>{ if(data == undefined){ return '0' }else{ return data } } $scope.viewApsForm = (committeeid) =>{ let pageName = '' let jobid = $scope.clsFormApplicant.formApplicant.jobid $('input[name="committeeid"]').val(committeeid); $('input[name="jobid"]').val(jobid); $('form[name="cscform"]').attr('target','myform'); if ($scope.dbName.toUpperCase() === ("STD_NEW")) { pageName = "../APS_FORM_INTERVIEW_DHAS.jsp"; } else if ($scope.dbName.toUpperCase() === ("DHAS")) { pageName = "../APS_FORM_INTERVIEW_DHAS.jsp"; } else if ($scope.dbName.toUpperCase() === ("ITE")) { pageName = "../APS_FORM_INTERVIEW_ITE.jsp"; } else if ($scope.dbName.toUpperCase() === ("KOKOTEL")) { pageName = "../APS_FORM_INTERVIEW_KOKOTEL.jsp"; } else if ($scope.dbName.toUpperCase() === ("NHSO")) { if (jobid.toUpperCase() === ("S") || jobid.toUpperCase() === ("E") || jobid.toUpperCase() === ("O")) { pageName = "../APS_FORM_INTERVIEW_NHSO.jsp"; } else { pageName = "../APS_FORM_INTERVIEW_NHSO_MT.jsp"; } } else { pageName = "../APS_FORM_INTERVIEW_DHAS.jsp"; } $('form[name="cscform"]').attr('action', pageName); var winopen = window.open('','myform','left=150,top=150,width=2000,height=2000,toolbar=no,status=yes,scrollbars=yes,resizable=yes'); if (winopen){ $('form[name="cscform"]').submit(); winopen.focus(); } } $scope.getApsStatus = (index) =>{ let result = '' let arr = [] if($scope.committee.length > 0){ arr = $filter('filter')($scope.status_desc, {status:$scope.committee[index].apsstatus}, true) result = arr[0].desc[$scope.lang] } return result } $scope.showConfirm = function(ev) { var confirm = $mdDialog.confirm() .title('ต้องการประมวลผลโดยลบข้อมูลเก่าหรือไม่') .textContent('ข้อมูลใบประเมินเก่าจะถูกลบและสร้างใหม่') .ariaLabel('Process Confirm') .targetEvent(ev) .ok('ลบ') .cancel('ไม่ลบ'); $mdDialog.show(confirm).then(function() { $scope.del_olddata = '1'; // ok $scope.save('1') }, function() { $scope.del_olddata = '0'; // cancel $scope.save('1') }); }; $scope.chkPage = () =>{ let page = $("input[name='parentPage']").val() let result = false if(page == 'applicant'){ result = true } return result } // Jquery Zone // End Jquery })