(function () { "use strict"; angular .module('codeAPLEBOX.client.user.employee.system.employeelist') .controller('employeelistController', employeelistController); /* @ngInject */ function employeelistController($state, appConfig, $log, WEB_API_EMPLOYEE) { var vm = this; // ======================================================================= // 초기데이터 // ======================================================================= iniData(); // ======================================================================= // Angularjs Function // ======================================================================= vm.changeNewMemberPage = function(index){ if(index == 0){ vm.newEmployeeInfo.checkInner = true; // 공판장 직원 }else if(index == 1){ vm.newEmployeeInfo.checkInner = false; // 공판장 직원 } } /* start dialog */ vm.clickDialogActive = function(check, employeeInfo){ vm.modifiedEmployeeInfoIndex = 1; vm.selectedEmployee = employeeInfo; vm.checkActive = check; if(check){ vm.activeStr = "활성" }else{ vm.activeStr = "비활성" } vm.checkDialogActive = true; } vm.clickDialogNewMember = function(){ vm.newEmployeeInfo = { checkEnable: false, checkInner: true, accountNumber: null, name: null, mobile1: null, mobile2: null, mobile3: null, group: null, level: null, } vm.checkDialogNewMember = true; // 신규 직원 등록 } vm.clickDialogModifyMember = function(employeeInfo){ vm.modifiedEmployeeInfoIndex = 2; vm.selectedEmployee = employeeInfo; vm.modifiedEmployeeInfo = _.cloneDeep(employeeInfo); vm.checkDialogModifyMember = true; // 직원 수정 } vm.closeDialog = function(){ vm.activeStr = "활성" vm.checkDialogActive = false; vm.checkDialogNewMember = false; // 신규 직원 등록 vm.checkDialogModifyMember = false; // 직원 수정 } /* end dialog */ vm.resetBoard = function () { // board 초기화 vm.flag = true; vm.curPage = 1; // 현재 페이지 vm.startRange = 1; // 시작 페이지 번호 vm.endRange = 1; // 마지막 페이지 번호 vm.searchInfo = { checkEnable: null, checkInner: null, nameOrEmployeeNumber: null, } vm.orderInfo = null; getEmployeeList(); } vm.iniBoard = function(){ vm.flag = true; vm.curPage = 1; // 현재 페이지 vm.startRange = 1; // 시작 페이지 번호 vm.endRange = 1; // 마지막 페이지 번호 } vm.searchForBoard = function(){ if(vm.searchNameOrEmployeeNumber == null || vm.searchNameOrEmployeeNumber == ''){ vm.searchNameOrEmployeeNumber = null; } vm.searchInfo = { checkEnable: vm.searchActive, checkInner: vm.searchInner, nameOrEmployeeNumber: vm.searchNameOrEmployeeNumber } vm.iniBoard(); getEmployeeList(); } vm.searchForActive = function(check){ // 0: 전체, 1: 활성화, 2: 비활성화 if(check == 0){ vm.searchActive = null; }else if(check == 1){ vm.searchActive = true; }else if(check == 2){ vm.searchActive = false; } vm.searchForBoard(); } vm.searchForInner = function(check){ // 0: 전체, 1: 공판장, 2: 외부직원 if(check == 0){ vm.searchInner = null; }else if(check == 1){ vm.searchInner = true; }else if(check == 2){ vm.searchInner = false; } vm.searchForBoard(); } vm.searchForNameOrEmployeeNumber = function(check){ if(check == 0){ vm.searchNameOrEmployeeNumber = null; } vm.searchForBoard(); } vm.selectBoardCnt = function(number){ vm.boardCnt = number; vm.iniBoard(); getEmployeeList(); } /* start update employeeInfo */ vm.submitModifyInfo = function(){ if(vm.modifiedEmployeeInfo.name == null || vm.modifiedEmployeeInfo.name == '' ){ alert('직원 이름을 입력해 주세요.'); return; }else if( vm.modifiedEmployeeInfo.mobile1 == null || vm.modifiedEmployeeInfo.mobile1 == '' || vm.modifiedEmployeeInfo.mobile2 == null || vm.modifiedEmployeeInfo.mobile2 == '' || vm.modifiedEmployeeInfo.mobile3 == null || vm.modifiedEmployeeInfo.mobile3 == '' ){ alert('직원 휴대폰 번호를 입력해 주세요.'); return; }else{ vm.updateEmployeeInfo(); } } vm.updateEmployeeInfo = function(){ if(vm.modifiedEmployeeInfoIndex == 1){ var employeeInfo ={ checkEnable: vm.checkActive } }else if(vm.modifiedEmployeeInfoIndex == 2){ var employeeInfo ={ name: vm.modifiedEmployeeInfo.name, mobile1: vm.modifiedEmployeeInfo.mobile1, mobile2: vm.modifiedEmployeeInfo.mobile2, mobile3: vm.modifiedEmployeeInfo.mobile3, department: vm.modifiedEmployeeInfo.department, level: vm.modifiedEmployeeInfo.level, } } WEB_API_EMPLOYEE.updateEmployeeInfo_employeeManager({ id: vm.selectedEmployee.id, employeeInfo: employeeInfo }).then(function (result) { vm.closeDialog(); vm.iniBoard(); getEmployeeList(); }).catch(function (err) { $log.error(err); }); } /* end update employeeInfo */ /* start new employeeInfo */ vm.submitNewEmployeeInfo = function(){ if(vm.newEmployeeInfo.accountNumber == null || vm.newEmployeeInfo.accountNumber == '' ){ alert('직원 번호를 입력해 주세요.'); return; }else if(vm.newEmployeeInfo.name == null || vm.newEmployeeInfo.name == '' ){ alert('직원 이름을 입력해 주세요.'); return; }else if( vm.newEmployeeInfo.mobile1 == null || vm.newEmployeeInfo.mobile1 == '' || vm.newEmployeeInfo.mobile2 == null || vm.newEmployeeInfo.mobile2 == '' || vm.newEmployeeInfo.mobile3 == null || vm.newEmployeeInfo.mobile3 == '' ){ alert('직원 휴대폰 번호를 입력해 주세요.'); return; }else{ WEB_API_EMPLOYEE.submitNewEmployeeInfo({ employeeInfo: vm.newEmployeeInfo }).then(function (result) { if(!result.data.check){ alert("직원 번호를 확인해 주세요."); return; } vm.closeDialog(); vm.iniBoard(); getEmployeeList(); }).catch(function (err) { $log.error(err); }); } } /* end new employeeInfo */ // ======================================================================= // Common API // ======================================================================= function iniData(){ /* start dialog */ vm.checkSearchResult = true; vm.checkActive = true; vm.activeStr = "활성" vm.checkDialogActive = false; // 활성화 선택 vm.checkDialogNewMember = false; // 신규 직원 등록 vm.checkDialogModifyMember = false; // 직원 수정 /* end dialog */ // board 초기화 vm.flag = true; vm.curPage = 1; // 현재 페이지 vm.boardCnt = 15; // 한페이지에 보여지는 콘텐츠 개수 vm.arrowPageCnt = 5; vm.maxShownPageCnt = 5; // 보여지는 최대 페이지 개수 vm.startRange = 1; // 시작 페이지 번호 vm.endRange = 1; // 마지막 페이지 번호 vm.searchInfo = { checkEnable: null, checkInner: null, nameOrEmployeeNumber: null, } vm.orderInfo = null; vm.searchActive = null; vm.searchInner = null; vm.searchNameOrEmployeeNumber = null; // function vm.selectedEmployee = null; // 선택된 직원 getEmployeeList(); } /*start: employeeList*/ function getEmployeeList() { if( vm.searchInfo.checkEnable == null && vm.searchInfo.checkInner== null && vm.searchInfo.nameOrEmployeeNumber== null ){ vm.checkSearchResult = false; }else{ vm.checkSearchResult = true; } WEB_API_EMPLOYEE.getEmployeeList_employeeManager({ curPage: vm.curPage, boardCnt: vm.boardCnt, searchInfo: vm.searchInfo, orderInfo: vm.orderInfo }).then(function (result) { vm.employeeList = result.data.rows; vm.totalBoardLen = result.data.count; vm.pageCnt = Math.ceil(vm.totalBoardLen / vm.boardCnt); if (vm.flag) { if (vm.pageCnt <= vm.maxShownPageCnt) { vm.endRange = vm.pageCnt; } else { vm.endRange = vm.maxShownPageCnt; } } vm.flag = false; }).catch(function (err) { $log.error(err); }); } // ======================================================================= // 페이지 범위 계산 // ======================================================================= vm.pageRange = function (min, max) { var input = []; for (var i = min; i <= max; i += 1) { input.push(i); } return input; }; // ======================================================================= // 버튼클릭 이벤트 // ======================================================================= // clickFirstArrow 클릭 vm.clickFirstArrow = function () { vm.curPage = 1; vm.startRange = 1; if (vm.pageCnt <= vm.maxShownPageCnt) { vm.endRange = vm.pageCnt; } else { vm.endRange = vm.maxShownPageCnt; } getEmployeeList(); }; // clickLastArrow 클릭 vm.clickLastArrow = function () { vm.curPage = vm.pageCnt; vm.endRange = vm.pageCnt; if (vm.pageCnt <= vm.maxShownPageCnt) { vm.startRange = 1; } else { var remainderValue = vm.pageCnt % vm.maxShownPageCnt; var value = vm.maxShownPageCnt - remainderValue; if (remainderValue != 0) { vm.startRange = vm.pageCnt - remainderValue + 1; } else { vm.startRange = vm.endRange; } } getEmployeeList(); }; // leftArrow 클릭 vm.clickLeftArrow = function () { if (vm.curPage > 1) { vm.curPage -= vm.arrowPageCnt; } if (vm.curPage < vm.startRange) { if ((vm.endRange % vm.maxShownPageCnt) != 0) { vm.endRange += (vm.maxShownPageCnt - (vm.endRange % vm.maxShownPageCnt)); } vm.startRange -= vm.arrowPageCnt; vm.endRange = vm.startRange + (vm.arrowPageCnt - 1); } vm.curPage = vm.endRange; getEmployeeList(); }; // rightArrow 클릭 vm.clickRightArrow = function () { if (vm.curPage < vm.pageCnt) { vm.curPage += vm.arrowPageCnt; } if (vm.curPage > vm.endRange) { vm.startRange += vm.arrowPageCnt; vm.endRange += vm.arrowPageCnt; if (vm.endRange >= vm.pageCnt) { vm.endRange = vm.pageCnt; } } vm.curPage = vm.startRange; getEmployeeList(); }; // 페이지 직접 클릭 vm.clickPage = function (index) { vm.curPage = index; getEmployeeList(); }; /* end: employeeList*/ } })();