'use strict' angular.module('APP_PERFORMANCE').controller('ApsUpForm',['$scope','$sce', '$filter', '$http', 'ListAssessorCtrl', '$q', function($scope, $sce, $filter, $http, ListAssessorCtrl, $q){ $scope.apsid = $('input[name="apsid"]').val() $scope.assessy = $('input[name="assessy"]').val() $scope.assessordata = {} $scope.timedata = {} $scope.apsform = {} $scope.selectscore = [] $scope.selectscore2 = [] $scope.activitiescore = [] $scope.apsscore = [] $scope.op1desc ={} var WindowObject; var DocumentContainer; var datadesc = { "senaface": { "topic1":"1. การบริหารรายได้ (เสนาเฟสท์)", "desc1":"(คะแนนที่ได้จะแปรเปลี่ยนตามเปอร์เซ็นต์ของ MTOP)", "topic2":"2. การให้บริการของหน่วยงาน", "desc2":"(คะแนนที่ได้มาจากแบบประเมินการให้บริการของหน่วยงาน)" }, "corporation":{ "topic1":"1. ยอดโอนรวมบริษัท (ตาม MTOP)", "desc1":"(คะแนนที่ได้จะแปรเปลี่ยนตามเปอร์เซ็นต์ของ MTOP)", "topic2":"2. ผลการดำเนินงานของ VIC", "desc2":"(คะแนนที่ได้วัดจากกำไรสุทธิเฉพาะส่วนของบริหารนิติฯ ที่ทางบัญชีปิดงบโดยให้เทียบกับที่ประมาณการไว้คือ 12%)" }, "senawarehouse":{ "topic1":"1. การบริหารรายได้ (เสนาแวร์เฮ้าส์/โกดัง)", "desc1":"(คะแนนที่ได้จะแปรเปลี่ยนตามเปอร์เซ็นต์ของ MTOP)", "topic2":"การให้บริการของหน่วยงาน", "desc2":"(คะแนนที่ได้มาจากแบบประเมินการให้บริการของหน่วยงาน)" }, "warehouse":{ "topic1":"1. การบริหารรายได้ (เสนาเฮ้าส์พหลโยธิน 30)", "desc1":"(คะแนนที่ได้จะแปรเปลี่ยนตามเปอร์เซ็นต์ของ MTOP)", "topic2":"2. การให้บริการของหน่วยงาน", "desc2":"(คะแนนที่ได้มาจากแบบประเมินการให้บริการของหน่วยงาน)" }, "else":{ "topic1":"1. ความมีส่วนร่วมในการสนับสนุนเป้าขายของบริษัท ถ้าได้ 100% ของ MTOP", "desc1":"(คะแนนที่ได้จะแปรเปลี่ยนตามเปอร์เซ็นต์ของ MTOP)", "topic2":"2. ความมีส่วนร่วมในการสนับสนุนยอดโอนของบริษัท ถ้าได้ 100% ของ MTOP", "desc2":"(คะแนนที่ได้จะแปรเปลี่ยนตามเปอร์เซ็นต์ของ MTOP)" } } function setOP1desc(bu5){ // นิติบุคคล list var corporationlist = ['90_3','90_310','90_3111','90_3112','90_3113','90_317','90_3114','90_3115','90_3116','90_3117','90_3121','90_3124','90_3125','90_3126','90_3132','90_314','90_315','90_318'] var head = bu5.substr(0,2); var body = parseInt(bu5.substr(3)); //console.log('bu5 -- '+bu5); if(head == "80"){ if(bu5 == '80_310'){ // เสนาแวร์เฮ้าส์ $scope.op1desc = datadesc.senawarehouse }else if(body >= 1 && body <= 130){ // เสนาเฟส $scope.op1desc = datadesc.senaface }else if(body >= 320 && body <= 331){ // แวร์เฮ้าส์พหลโยธิน $scope.op1desc = datadesc.warehouse }else{ $scope.op1desc = datadesc.else } }else if($.inArray(bu5, corporationlist) > -1){ // นิติบุคคล $scope.op1desc = datadesc.corporation }else{ $scope.op1desc = datadesc.else } } 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 }; ListAssessorCtrl.manageApsUp2Form.query($scope.myparam).$promise.then(function(data){ $scope.assessordata = data.header; $scope.timedata = data.time; $scope.apsform = data.body; // $scope.sequence = $scope.assessordata[0].sequence; // console.log($scope.timedata); // console.log($scope.assessordata); console.log(data) setOP1desc($scope.assessordata[0].bu5id) }); $scope.goPage = function(){ $('form[name="cscform"]').attr('target','myform'); $('form[name="cscform"]').attr('action','APPRAISAL_UPPER2_SENA.jsp'); 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(); } $.closePage = function(){ winopen.close(); } } $scope.calscore = function(num=0, scorehalf=0, scorelast=0){ /* -------- NUM --------- 0 = (half+last)/2 1 = (half+last)/2 tofixed(2) 2 = (half+last) tofixed(2) 3 = half tofixed(2) 4 = last tofixed(2) 5 = half 6 = last */ var totalscore = parseFloat(0.0); if((num == 1) || (num == 0)){ totalscore = (parseFloat(scorehalf) + parseFloat(scorelast))/parseFloat(2); }else if(num == 2){ totalscore = parseFloat(scorehalf) + parseFloat(scorelast); }else if((num == 3) || (num == 5)){ totalscore = parseFloat(scorehalf); }else if((num == 4) || (num == 6)){ totalscore = parseFloat(scorelast); } if((num == 1) || (num == 2) || (num == 3) || (num == 4)){ if(isNaN(totalscore)){ return '0.00'; }else{ return totalscore.toFixed(2); } }else{ if(isNaN(totalscore)){ return '0.00'; }else{ return totalscore; } } } $scope.caltotaltime = function(tpye_cal,timedata){ var result = parseInt(0) ; if($scope.timedata.length > 0){ if(tpye_cal=='0'){ result = parseInt(timedata.sick_half) + parseInt(timedata.leave_half) + parseInt(timedata.absent_half); timedata.total_half = result; }else if(tpye_cal=='1'){ result = parseInt(timedata.sick_last) + parseInt(timedata.leave_last) + parseInt(timedata.absent_last); timedata.total_last = result; } } return result; } $scope.caltime_absent = function(ab_time){ var score = parseInt(4); if(ab_time >= 15){ score = score - 25; }else if(ab_time >= 10){ score = score - 20; }else if(ab_time >= 5){ score = score - 10; } if(score < 0){ return 0; }else{ return score; } } $scope.caltime_lete = function(lt_time){ var score = parseInt(4); if(lt_time >= 1000){ score = score - 25; }else if(lt_time >= 950){ score = score - 20; }else if(lt_time >= 901){ score = score - 10; } if(score < 0){ return 0; }else{ return score; } } $scope.calscorefullyear = function(segment){ var result = 0; var score1 = 0; var score2 = 0; if(segment == "4_1"){ score1 = parseInt($(".op4_1_1").text()); score2 = parseInt($(".op4_1_2").text()); result = parseInt((score1 + score2)/2); return result; }else if(segment == "4_2"){ score1 = parseInt($(".op4_2_1").text()); score2 = parseInt($(".op4_2_2").text()); result = parseInt((score1 + score2)/2); return result; }else if(segment == "4_half"){ score1 = parseInt($(".op4_1_1").text()); score2 = parseInt($(".op4_2_1").text()); result = parseInt((score1 + score2)/2); return result; }else if(segment == "4_last"){ score1 = parseInt($(".op4_1_2").text()); score2 = parseInt($(".op4_2_2").text()); result = parseInt((score1 + score2)/2); return result; }else if(segment == "4_all"){ score1 = parseInt($(".4_1").text()); score2 = parseInt($(".4_2").text()); result = parseInt((score1 + score2)/2); return result; }else if(segment == "1_all"){ score1 = parseFloat($(".op1_1").text()); score2 = parseFloat($(".op1_2").text()); result = parseFloat(score1 + score2); return result.toFixed(2); } } $scope.calw8 = function(index){ var result = parseFloat(0) ; if($scope.apsform.length > 0){ $scope.apsform[index].groupAry.forEach(function(obj){ obj.masAry.forEach(function(data){ result += parseFloat(data.weight); }); }); } return result.toFixed(2); } $scope.calscoreop3 = function(index){ var result = parseFloat(0) ; if($scope.apsform.length > 0){ $scope.apsform[index].groupAry.forEach(function(obj){ obj.masAry.forEach(function(data){ result += parseFloat(data.score); }); }); } return result.toFixed(2); } $scope.caltotalscoreop3 = function(index){ var result = parseFloat(0) ; if($scope.apsform.length > 0){ $scope.apsform[index].groupAry.forEach(function(obj){ obj.masAry.forEach(function(data){ result += parseFloat(data.weight) * parseFloat(data.score); }); }); } return result.toFixed(2); } $scope.calmultiplicateur = function(index){ var totalscore = parseFloat(0) ; var result = parseFloat(0) ; if($scope.apsform.length > 0){ $scope.apsform[index].groupAry.forEach(function(obj){ obj.masAry.forEach(function(data){ totalscore += parseFloat(data.weight) * parseFloat(5); }); }); result = parseFloat(10)/totalscore; } return result; } $scope.caltotalscore = function(index){ var totalscore = $scope.caltotalscoreop3(index) ; var multiply = $scope.calmultiplicateur(index); var result = parseFloat(0) ; result = parseFloat(totalscore) * parseFloat(multiply); return result.toFixed(2); } $scope.calscoreop3all = function(){ var result = parseFloat(0) ; result = parseFloat($scope.caltotalscore(0)) + parseFloat($scope.caltotalscore(1)) + parseFloat($scope.caltotalscore(2)); if($scope.apsform.length > 0){ if(($scope.assessordata[0].apsstate == "0") || ($scope.assessordata[0].apsstate == "C")){ $scope.assessordata[0].scoreop3_half = result.toFixed(1); }else if(($scope.assessordata[0].apsstate == "1") || ($scope.assessordata[0].apsstate == "D")){ $scope.assessordata[0].scoreop3_last = result.toFixed(1); } } return result.toFixed(1); } $scope.calalltotalscore = function(index){ var result = parseFloat(0); if(index == "h"){ $(".score_h").each(function(){ result += parseFloat($(this).text()); }); }else if(index == "l"){ $(".score_l").each(function(){ result += parseFloat($(this).text()); }); }else if(index == "sum"){ $(".total_score").each(function(){ result += parseFloat($(this).text()); }); $("#finalscore").text(result.toFixed(2)); $scope.calgrade(result); } return result.toFixed(2); } $scope.calgrade = function(score){ var grade = "C"; if(score >= 85){ grade = "A"; }else if(score >= 80){ grade = "A-"; }else if(score >= 75){ grade = "B"; }else if(score >= 65){ grade = "B-"; }else if(score < 65){ grade = "C"; } $("#grade").text(grade); } $scope.saveDraff = function(){ if (confirm(MyCode[1])){ $scope.sendparam = { apsid: $scope.apsid ,assessy: $scope.assessy ,assessordata: $scope.assessordata ,apsform: $scope.apsform ,timedata: $scope.timedata ,op4score: $("input[name='op4score']").val() ,savetype: '0' } ListAssessorCtrl.manageApsUp2Form.save(JSON.stringify($scope.sendparam)) .$promise.then(function(){ alert(MyCode[18]); //window.opener.location.reload(); }); } } $scope.save = function(){ if (checkCommnet()){ alert("กรุณากรอกเป้าหมายของหน่วยงานให้ครบถ้วน"); }else if(checkScore()){ alert("กรุณากรอกคะแนนให้ครบถ้วน"); }else if (confirm(MyCode[1])){ $scope.sendparam = { apsid: $scope.apsid ,assessy: $scope.assessy ,assessordata: $scope.assessordata ,apsform: $scope.apsform ,timedata: $scope.timedata ,op4score: $("input[name='op4score']").val() ,savetype: '1' } ListAssessorCtrl.manageApsUp2Form.save(JSON.stringify($scope.sendparam)) .$promise.then(function(){ alert(MyCode[18]); closePage(); //window.opener.location.reload(); }); } } function checkScore(){ var result = false $scope.apsform.forEach(function(obj){//debugger; obj.groupAry.forEach(function(group){ let objlist = group.masAry.filter((masobj) => masobj.score == 0.00) if (objlist.length>0){ result = true } }); }); if(($scope.assessordata[0].apsstate == "0") || ($scope.assessordata[0].apsstate == "C")){ let objlistaps = $scope.assessordata.filter((objaps) => (objaps.score1_half == 0.00 || objaps.score2_half == 0.00 || objaps.score3_half == 0.00 || objaps.score4_half == 0.00)) if (objlistaps.length>0){ console.log(objlistaps) result = true } }else if(($scope.assessordata[0].apsstate == "1") || ($scope.assessordata[0].apsstate == "D")){ let objlistaps = $scope.assessordata.filter((objaps) => (objaps.score1_last == 0.00 || objaps.score2_last == 0.00 || objaps.score3_last == 0.00 || objaps.score4_last == 0.00)) if (objlistaps.length>0){ console.log(objlistaps) result = true } } return result } function checkCommnet(){ var result = false; $scope.apsform[1].groupAry.forEach(function(obj){ obj.masAry.forEach(function(data){ if((data.masdesc == "" ) && (data.title == "")){ result = true; } }); }); return result; } $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("หมดรอบประเมิน"); } } //result = false; /// for Test 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; } $scope.goprint = function(){ hidelement(); promisePrint().then((obj) => { WindowObject.focus(); console.log(WindowObject); window.close(); WindowObject.print(); }) } function promisePrint(){ return new Promise((resolve, reject) => { DocumentContainer = document.getElementById('target_warpper'); WindowObject = window.open('', 'PrintWindow', 'width=1200,height=666,top=10,right=10,toolbars=no,scrollbars=yes,status=no,resizable=yes'); WindowObject.document.writeln('<!DOCTYPE html>'); WindowObject.document.writeln('<html><head><title></title>'); WindowObject.document.writeln('<link rel="stylesheet" type="text/css" href="css/APP_UP/style_apsup.css">'); WindowObject.document.writeln('<link rel="stylesheet" type="text/css" href="css/APP_UP/style_printkpi.css">'); WindowObject.document.writeln('<link rel="stylesheet" type="text/css" href="../CSS/Bootstrap/css/bootstrap.css">'); WindowObject.document.writeln('<link rel="stylesheet" type="text/css" href="../CSS/EMPVIEW_LAYOUT.min.css">'); WindowObject.document.writeln('</head><body>'); WindowObject.document.writeln(DocumentContainer.innerHTML); WindowObject.document.writeln('</body></html>'); WindowObject.document.close(); setTimeout(() => resolve(WindowObject), 1000) }) } function hidelement(){ var score = parseFloat(0.00); $(".grp_all").each(function(){ score = parseFloat($(this).val()); if(isNaN(score)){ score = parseFloat(0.00); } $(this).hide(); if($(this).attr("class").indexOf("tofix") == 0){ $(this).parents("td").text(score.toFixed(2)); }else{ $(this).parents("td").text(score); } }); $(".grp_all-time").each(function(){ score = parseFloat($(this).val()); if(isNaN(score)){ score = parseInt(0.00); } $(this).hide(); $(this).parents("td").text(score); }); $('.print-btn').hide() } $scope.processtime = function(){ if (confirm(MyCode[184])){ $scope.sendparam = { apsid: $scope.apsid ,assessy: $scope.assessy ,assessordata: $scope.assessordata ,apsform: $scope.apsform ,timedata: $scope.timedata ,savetype: '2' } ListAssessorCtrl.manageApsUp2Form.save(JSON.stringify($scope.sendparam)) .$promise.then(function(){ alert("ประมวลผล Time เรียบร้อยแล้ว"); location.reload(); }); } } $(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, .grp_all-time").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(); } }); }); //alert($(window).height()); ==> check height of window }]);