(function () { "use strict"; angular .module('codeAPLEBOX.client.user.employee.stock.stockstatus') .controller('stockstatusController', stockstatusController) .filter("cut", cut); /* @ngInject */ function cut() { return function (value, wordwise, max, tail) { if (!value) return ''; max = parseInt(max, 10); if (!max) return value; if (value.length <= max) return value; value = value.substr(0, max); if (wordwise) { var lastspace = value.lastIndexOf(' '); if (lastspace !== -1) { //Also remove . and , so its gives a cleaner result. if (value.charAt(lastspace-1) === '.' || value.charAt(lastspace-1) === ',') { lastspace = lastspace - 1; } value = value.substr(0, lastspace); } } return value + (tail || ' ...'); }; } /* @ngInject */ function stockstatusController($rootScope, $state, appConfig, $log, Auth, WEB_API_EMPLOYEE, $cookies) { var vm = this; // ======================================================================= // 초기데이터 // ======================================================================= vm.employeeInfo = $cookies.getObject("employeeInfo"); vm.availabeDateList = []; iniData(); // ======================================================================= // Angularjs Function // ======================================================================= // start 공통 vm.clickDialogCustomerSearch = function(index){// 고객검색 vm.indexOfCustomerSearch = index; if(index == 1){ vm.checkDialogTodayStored = false; $rootScope.showCustomerListForReleaseOrReceipt = false; //true: release, false: receipt }else if(index == 0){ $rootScope.showCustomerListForReleaseOrReceipt = true; //true: release, false: receipt } getCustomerList(); vm.checkDialogCustomerSearch = true; } vm.clickOpenReleaseOrStored = function(customerInfo){ vm.selectedCustomerInfo = customerInfo; vm.checkInsertReleaseQuantity = false; vm.checkInsertReceiptQuantity = false; if(vm.indexOfCustomerSearch == 0){ if(vm.selectedCustomerInfo.remainingDeposit <= 500000){ if(vm.selectedCustomerInfo.Deposit.length == 0){ // 계약없음 vm.checkDialogNoneDeposit = true; }else{ vm.checkDialogLackOfRemainigDeposit = true;// 50만원이하 잔여보증금 부족 } return; } vm.checkDialogCustomerSearch = false vm.checkInsertReleaseQuantity = true; vm.checkDialogTodayRelease = true;// 출고 등록 }else if(vm.indexOfCustomerSearch == 1){ if(customerInfo.Deposit.length > 0 && customerInfo.Release.length > 0 ){ vm.checkInsertReceiptQuantity = true; vm.checkDialogCustomerSearch = false; vm.checkDialogTodayStored = true;// 입고 등록 getCostPerRelease(); }else{ if(customerInfo.Deposit.length <= 0){ vm.checkDialogNoneDeposit = true; // 보증금 계약 여부 }else if(customerInfo.Release.length <= 0){ vm.checkDialogNoneRelease = true; // 출고 계약 여부 } } } } vm.chanageStoredDate = function(){ getCostPerRelease(); } function getCostPerRelease(){ var dateTime = moment(vm.startStoredDateTime).format("YYYY-MM-DD").toString() + " " + vm.selectedStoredHour.code + ":" + vm.selectedStoredMinutes.code + ":00"; WEB_API_EMPLOYEE.getCostPerRelease({// 해당 release의 cost를 가져와 customerId: vm.selectedCustomerInfo.id, dateTime: dateTime }).then(function (result) { vm.getCostPerRelease = result.data.costPerRelease; }).catch(function (err) { $log.error(err); }); } vm.closeDialogackOfDeposit= function(){ vm.checkDialogLackOfDeposit = false; // 보증금 계약 여부 } vm.closeDialogNoneDeposit= function(){ vm.checkDialogNoneDeposit = false;// 50만원이하 잔여보증금 부족 var inputJson = { accountID: vm.selectedCustomerInfo.accountID, businessNumber: vm.selectedCustomerInfo.businessNumber, ceo: vm.selectedCustomerInfo.ceo, company: vm.selectedCustomerInfo.company, contractDeposit: 0, contractStatus: 0, contractingCount: 0, customerId: vm.selectedCustomerInfo.id, endDateTime: null, mobile1: vm.selectedCustomerInfo.mobile1, mobile2: vm.selectedCustomerInfo.mobile2, mobile3: vm.selectedCustomerInfo.mobile3, name: vm.selectedCustomerInfo.name, remainingDeposit: 0, uniqueNumber: vm.selectedCustomerInfo.uniqueNumber, waitingCount: 0 } $state.go('employee.detaildepositmanagement',{ selectedCustomerDepositInfo: inputJson }) } vm.closeDialogNoneRelease= function(){ vm.checkDialogNoneRelease = false; // 보증금 계약 여부 $state.go('employee.releasestatus'); } vm.closeDialog = function(){ vm.checkRootUploading = false; vm.selectedCustomerInfo = null; vm.checkMobilePolicy = false; // 공통 vm.checkDialogCustomerSearch = false;// 고객검색 vm.checkDialogNumberOfStock = false;// 총 재고수량 vm.checkDialogTodayRelease = false;// 출고 등록 vm.checkDialogTodayStored = false;// 입고 등록 vm.checkDialogTransferSubmit = false; vm.checkDialogTransferSubmitCompleted = false; vm.checkDialogNoneDeposit = false; vm.checkDialogNoneRelease = false; // 출고 계약 여부 // 입고 vm.checkDialogCommonStored = true;// 일반입고 vm.checkDialogStoreStored = false;// 점포입고 vm.checkDialogNonMemberStored = false;// 비회원입고 vm.checkDialogNonMemberPolicyMobile = false;// 비회원 휴대폰 동의 vm.checkDialogNonMemberPolicyPersonal = false;// 비회원 휴대폰 동의 vm.checkDialogSubmitSetReceipt = false //입고 저장 완료 vm.checkDialogLackOfDeposit = true; // 보증금 계약 여부 vm.checkInsertReceiptQuantity = false; vm.submitReceiptInfo = { receiptStatus: 0, nonMember: null, nonMobile1: null, nonMobile2: null, nonMobile3: null, checkPersonAgree: false, checkSNS: false, quantity: 0, damageQuantity: 0, pollutionQuantity: 0, outsideQuantity: 0, overQuantity: 0, carNumber: null, note: null, customerId: null, employeeName: vm.employeeInfo.name, employeeId: vm.employeeInfo.id, // history checkTransaction: false, deposit: 0, // 보증금 returnDeposit: 0, // 환급보증금 demageFee: 0, // 파손/분실비 pollutionFee: 0, // 오염비 addFee: 0, // 추가사용료 history: [] }; // 출고 vm.checkDialogLackOfStock = false;// 재고수량 부족 vm.checkDialogLackOfDeposit = false;// 잔여보증금 부족 vm.checkDialogLackOfRemainigDeposit = false;// 50만원이하 잔여보증금 부족 vm.checkDialogSubmitSetRelease = false; // 출고 저장 완료 vm.checkInsertReleaseQuantity = false; vm.submitReleaseInfo = { customerId: null, quantity: 0, remindQuantity: 0, useFee: 0, useDeposit: 0, costId: null, releaseStatus: 0, employeeInfo: { id: vm.employeeInfo.id, name: vm.employeeInfo.name } }; } vm.closeDialogCustomerSearch = function(){ vm.checkDialogCustomerSearch = false;// 고객검색 if(vm.indexOfCustomerSearch == 0){ vm.checkDialogTodayRelease = true;// 출고 등록 }else if(vm.indexOfCustomerSearch == 1){ vm.checkDialogTodayStored = true;// 입고 등록 } } vm.closeDialogCustomerSearch = function(){ vm.checkDialogCustomerSearch = false;// 고객검색 vm.checkDialogTodayRelease = true;// 출고 등록 } vm.changePageView = function(index){ switch (index) { case 1: // 최근 출고 더보기 $state.go("employee.releasestatus"); break; case 2: // 최근 입고 더보기 $state.go("employee.storedstatus"); break; case 3: // 신규 이관신청 더보기 $state.go("employee.transferstatus"); break; default: break; } } /* start customerList board search */ vm.searchForBoard_customerList = function(){ if(vm.searchCustomerNameOrNumber_customerList == null || vm.searchCustomerNameOrNumber_customerList == ''){ vm.searchCustomerNameOrNumber_customerList = null; } vm.searchInfo_customerList = { searchCustomerNameOrNumber: vm.searchCustomerNameOrNumber_customerList } vm.iniBoard_customerList(); getCustomerList(); } vm.onKeyPress_customerList = function($event){ var pressKey = getKeyboardEventResult($event); if(pressKey == 13){ vm.searchForCustomerNameOrNumber_customerList() } }; vm.searchForCustomerNameOrNumber_customerList = function(check){ if(check == 0){ vm.searchCustomerNameOrNumber_customerList = null; } vm.searchForBoard_customerList(); } /* end customerList board search */ /* start customerList board function */ vm.resetBoard_customerList = function () { // board 초기화 vm.flag_customerList = true; vm.curPage_customerList = 1; // 현재 페이지 vm.startRange_customerList = 1; // 시작 페이지 번호 vm.endRange_customerList = 1; // 마지막 페이지 번호 vm.searchInfo_customerList = { searchCustomerNameOrNumber: vm.searchCustomerNameOrNumber_customerList } vm.searchCustomerNameOrNumber_customerList = null; vm.orderInfo_customerList = null; getCustomerList(); } vm.iniBoard_customerList = function(){ vm.flag_customerList = true; vm.curPage_customerList = 1; // 현재 페이지 vm.startRange_customerList = 1; // 시작 페이지 번호 vm.endRange_customerList = 1; // 마지막 페이지 번호 } vm.selectBoardCnt_customerList = function(number){ vm.boardCnt_customerList = number; vm.iniBoard_customerList(); getCustomerList(); } /* end customerList board function */ // end 공통 // start 재고설정 vm.setStock = function(){ if(vm.releaseCountInStock > vm.newTotalQuantity){ alert("입력하신 재고수량이 현재 출고한 수량보다 적습니다."); return; } vm.checkRootUploading = true; var dateTime = new Date(); // 현재 날짜 dateTime = moment(dateTime).format("YYYY-MM-DD HH:mm:ss").toString(); var newStock = { dateTime: dateTime, newTotalQuantity: vm.newTotalQuantity, } WEB_API_EMPLOYEE.setStock({ newStock: newStock }).then(function (result) { vm.checkRootUploading = false; vm.closeDialog(); getSummary(); }).catch(function (err) { $log.error(err); }); } // start 입고 vm.clickDialogTodayStored = function(){// 입고 등록 vm.startStoredDateTime = moment(new Date()).format("YYYY-MM-DD"); setStoredDate(); vm.checkDialogTodayStored = true; vm.selectedCustomerInfo = null; vm.checkInsertReceiptQuantity = false; vm.submitReceiptInfo = { receiptStatus: 0, nonMember: null, nonMobile1: null, nonMobile2: null, nonMobile3: null, checkPersonAgree: false, checkSNS: false, quantity: 0, damageQuantity: 0, pollutionQuantity: 0, outsideQuantity: 0, overQuantity: 0, carNumber: null, note: null, customerId: null, employeeName: vm.employeeInfo.name, employeeId: vm.employeeInfo.id, // history checkTransaction: false, deposit: 0, //보증금 returnDeposit: 0, // 환급보증금 demageFee: 0, // 파손/분실비 pollutionFee: 0, // 오염비 addFee: 0, // 추가사용료 history: [] }; }; vm.clickOpenNonMemberPolicyPersonal = function(){ if(vm.submitReceiptInfo.checkPersonAgree){ WEB_API_EMPLOYEE.getMemberPolicyPersonal() .then(function (result) { var getMemberPolicyPersonal = result.data.getMemberPolicyPersonal; vm.contentOfMemberPolicyPersonal = getMemberPolicyPersonal.description; vm.checkDialogNonMemberPolicyPersonal = true;// 비회원 개인정보 수집 및 이용약관 동의 }).catch(function (err) { $log.error(err); }); }else{ vm.checkDialogNonMemberPolicyPersonal = false;// 비회원 개인정보 수집 및 이용약관 동의 } } vm.clickOpenNonMemberPolicyMobile = function(){ if(vm.submitReceiptInfo.checkSNS){ WEB_API_EMPLOYEE.getMemberPolicyMobile() .then(function (result) { var getMemberPolicyMobile = result.data.getMemberPolicyMobile; vm.contentOfMemberPolicyMobile = getMemberPolicyMobile.description; vm.checkDialogNonMemberPolicyMobile = true;// 비회원 휴대폰 동의 }).catch(function (err) { $log.error(err); }); }else{ vm.checkDialogNonMemberPolicyMobile = false;// 비회원 휴대폰 동의 } } vm.closeDialog_SubmitSetReceipt = function(){ // vm.iniBoard(); // getStoredList(); vm.closeDialog(); getSummary(); } vm.closeDialogNonMemberPolicyMobile = function(){ vm.submitReceiptInfo.checkSNS = false; vm.checkDialogNonMemberPolicyMobile = false;// 비회원 휴대폰 동의 } vm.approveDialogNonMemberPolicyMobile = function(){ vm.checkDialogNonMemberPolicyMobile = false;// 비회원 휴대폰 동의 } vm.closeDialogNonMemberPolicyPersonal = function(){ vm.submitReceiptInfo.checkPersonAgree = false; vm.checkDialogNonMemberPolicyPersonal = false;// 비회원 휴대폰 동의 } vm.approveDialogNonMemberPolicyPersonal = function(){ vm.checkDialogNonMemberPolicyPersonal = false;// 비회원 개인정보 수집 및 이용약관 동의 } /* start 입고 형태 */ vm.clickDialogTypeOfStored = function(index){// 입고 형태 vm.submitReceiptInfo.checkSNS = false; vm.submitReceiptInfo.checkPersonAgree = false; vm.checkDialogCommonStored = false;// 일반입고 vm.checkDialogStoreStored = false;// 점포입고 vm.checkDialogNonMemberStored = false;// 비회원입고 vm.checkDialogNonMemberPolicyMobile = false;// 비회원 휴대폰 동의 vm.checkDialogNonMemberPolicyPersonal = false;// 비회원 개인정보 수집 및 이용약관 동의 // vm.selectedCustomerInfo = null; // vm.checkInsertReceiptQuantity = false; vm.submitReceiptInfo = { receiptStatus: 0, nonMember: null, nonMobile1: null, nonMobile2: null, nonMobile3: null, checkPersonAgree: false, checkSNS: false, quantity: 0, damageQuantity: 0, pollutionQuantity: 0, outsideQuantity: 0, overQuantity: 0, carNumber: null, note: null, customerId: null, employeeName: vm.employeeInfo.name, employeeId: vm.employeeInfo.id, // history checkTransaction: false, deposit: 0, //보증금 returnDeposit: 0, // 환급보증금 demageFee: 0, // 파손/분실비 pollutionFee: 0, // 오염비 addFee: 0, // 추가사용료 history: [] }; if(index == 0){ vm.checkDialogCommonStored = true; vm.submitReceiptInfo.receiptStatus = 0; }else if(index == 1){ vm.checkDialogStoreStored = true; vm.submitReceiptInfo.receiptStatus = 1; }else if(index == 2){ vm.checkDialogNonMemberStored = true; vm.submitReceiptInfo.receiptStatus = 2; } }; vm.clickSubmitReceipt = function(){ vm.submitReceiptInfo.customerId = vm.selectedCustomerInfo.id; vm.submitReceiptInfo['customerName'] = vm.selectedCustomerInfo.name; vm.submitReceiptInfo['phoneNumber'] = vm.selectedCustomerInfo.mobile1 + vm.selectedCustomerInfo.mobile2 + vm.selectedCustomerInfo.mobile3; vm.submitReceiptInfo['customerCheckSNS'] = vm.selectedCustomerInfo.checkSNS; /*if(vm.submitReceiptInfo.receiptStatus != 2){ vm.submitReceiptInfo['phoneNumber'] = vm.selectedCustomerInfo.mobile1 + vm.selectedCustomerInfo.mobile2 + vm.selectedCustomerInfo.mobile3; }else{ vm.submitReceiptInfo['phoneNumber'] = vm.submitReceiptInfo.nonMobile1 + vm.submitReceiptInfo.nonMobile1 + vm.submitReceiptInfo.nonMobile1; }*/ var dateTime = moment(vm.startStoredDateTime).format("YYYY-MM-DD").toString() + " " + vm.selectedStoredHour.code + ":" + vm.selectedStoredMinutes.code + ":00"; vm.submitReceiptInfo["dateTime"] = dateTime; vm.checkRootUploading = true; WEB_API_EMPLOYEE.setReceipt({ receiptInfo: vm.submitReceiptInfo }).then(function (result) { WEB_API_EMPLOYEE.updateStock() .then(function (resultOfUpdateStock) { vm.checkRootUploading = false; vm.selectedCustomerInfo = null; vm.checkInsertReceiptQuantity = false; vm.submitReceiptInfo = { receiptStatus: 0, nonMember: null, nonMobile1: null, nonMobile2: null, nonMobile3: null, checkPersonAgree: false, checkSNS: false, quantity: 0, damageQuantity: 0, pollutionQuantity: 0, outsideQuantity: 0, overQuantity: 0, carNumber: null, note: null, customerId: null, employeeName: vm.employeeInfo.name, employeeId: vm.employeeInfo.id, // history checkTransaction: false, deposit: 0, //보증금 returnDeposit: 0, // 환급보증금 demageFee: 0, // 파손/분실비 pollutionFee: 0, // 오염비 addFee: 0, // 추가사용료 history: [] }; vm.checkDialogSubmitSetReceipt = true; //입고 저장 완료 }).catch(function (err) { $log.error(err); }); }).catch(function (err) { $log.error(err); }); } vm.changeReceiptCount = function(number, index){ // 1: 입고수량, 2: 파손, 3: 오염, 4: 외부 if(vm.getCostPerRelease != null){ if(number != null){ /* vm.getCostPerRelease 출고수량과 해당 출고건별 cost*/ if(index == 1){ vm.submitReceiptInfo.quantity += number; }else if(index == 2){ vm.submitReceiptInfo.damageQuantity += number; }else if(index == 3){ vm.submitReceiptInfo.pollutionQuantity += number; }else if(index == 4){ vm.submitReceiptInfo.outsideQuantity += number; } } if(vm.submitReceiptInfo.quantity != null && vm.submitReceiptInfo.quantity != '' ){ var deposit = 0; // // 환급(입고) 보증금 var demageAndOutsideFee = 0; // 파손/분실비 var pollutionFee = 0; // 오염비 var addFee = 0; // 추가사용료 var releaseInfo = vm.getCostPerRelease; var overQuantity = 0; var remainingReceiptCount = vm.submitReceiptInfo.quantity; // 입고수량 var remainingDemageAndOutSideCount = vm.submitReceiptInfo.damageQuantity + vm.submitReceiptInfo.outsideQuantity; // 파손/분실 수량 + 외부상자 var remainingPollutionCount = vm.submitReceiptInfo.pollutionQuantity; // 오염 수량 var totalReleaseCount = 0; var totalReceiptCount = _.cloneDeep(remainingReceiptCount); vm.submitReceiptInfo.history = []; for(var i = 0; i < releaseInfo.length; i++){ var inputHistory = { checkTransaction: false, quantity: null, damageAndOutSideQuantity: null, pollutionQuantity: null, damageAndOutSideFee: null, pollutionFee: null, addFee: null, returnDeposit: null, deposit: null, ReleaseId: releaseInfo[i].id } var releaseCount = releaseInfo[i].remindQuantity; // 미반납수량 totalReleaseCount += _.cloneDeep(releaseCount) // 미반납수량 // 환급(입고) 보증금 계산 var countReceipt = 0; // 입고 수량 if(remainingReceiptCount >= releaseCount){ countReceipt = releaseCount; remainingReceiptCount -= releaseCount }else{ countReceipt = remainingReceiptCount; remainingReceiptCount = 0; } inputHistory.quantity = countReceipt inputHistory.deposit = countReceipt * releaseInfo[i].Cost.deposit; deposit += countReceipt * releaseInfo[i].Cost.deposit; // 보증금 // 계산: 추가사용료 var rentalPeriod = releaseInfo[i].Cost.rentalPeriod; var additionalPeriod = releaseInfo[i].Cost.additionalPeriod; var additionalFee = releaseInfo[i].Cost.additionalFee; var releaseDate = releaseInfo[i].dateTime; var tmpReleaseDate = new Date(moment(releaseDate).format("YYYY/MM/DD")); // var storedDate = new Date(moment(new Date()).format("YYYY/MM/DD")); var storedDate = new Date(moment(vm.startStoredDateTime).format("YYYY/MM/DD")); // var dateTime = moment(vm.startStoredDateTime).format("YYYY-MM-DD").toString() + " " + vm.selectedStoredHour.code + ":" + vm.selectedStoredMinutes.code + ":00"; var diffrenceDate = Math.floor((storedDate.getTime() - tmpReleaseDate.getTime()) / (1000*60*60*24)); var overDate = 0; // 연체기간 var settingOverDate = additionalPeriod if(diffrenceDate - rentalPeriod > 0){ var overDue = diffrenceDate - rentalPeriod overDate = parseInt(overDue / settingOverDate) + 1; } inputHistory.addFee = countReceipt * additionalFee * overDate; addFee += countReceipt * additionalFee * overDate; // 파손/분실, 오염 계산 var releaseCountForCalc = _.cloneDeep(releaseCount); // 출고수량(계산용) if(remainingDemageAndOutSideCount > releaseCountForCalc){ // 파손/분실, 외부상자 계산 inputHistory.damageAndOutSideQuantity = releaseCountForCalc; inputHistory.damageAndOutSideFee = releaseCountForCalc * releaseInfo[i].Cost.deposit; demageAndOutsideFee += releaseCountForCalc * releaseInfo[i].Cost.deposit; remainingDemageAndOutSideCount -= releaseCountForCalc; releaseCountForCalc = 0; }else{ // 파손/분실, 외부상자 계산 inputHistory.damageAndOutSideQuantity = remainingDemageAndOutSideCount; inputHistory.damageAndOutSideFee = remainingDemageAndOutSideCount * releaseInfo[i].Cost.deposit; demageAndOutsideFee += remainingDemageAndOutSideCount * releaseInfo[i].Cost.deposit; releaseCountForCalc -= remainingDemageAndOutSideCount; remainingDemageAndOutSideCount = 0; if(remainingPollutionCount > releaseCountForCalc){// 오염상자 계산 inputHistory.pollutionQuantity = releaseCountForCalc; inputHistory.pollutionFee = releaseCountForCalc * releaseInfo[i].Cost.deposit; pollutionFee += releaseCountForCalc * releaseInfo[i].Cost.deposit; remainingPollutionCount -= releaseCountForCalc; releaseCountForCalc = 0; }else{// 오염상자 계산 inputHistory.pollutionQuantity = remainingPollutionCount; inputHistory.pollutionFee = remainingPollutionCount * releaseInfo[i].Cost.deposit; pollutionFee += remainingPollutionCount * releaseInfo[i].Cost.deposit; releaseCountForCalc -= remainingPollutionCount; remainingPollutionCount = 0; } } inputHistory.returnDeposit = inputHistory.deposit - (inputHistory.damageAndOutSideFee + inputHistory.pollutionFee); vm.submitReceiptInfo.history.push(inputHistory); if(remainingReceiptCount == 0){ break; } } vm.submitReceiptInfo.deposit = deposit; vm.submitReceiptInfo.returnDeposit = deposit - (demageAndOutsideFee + pollutionFee); vm.submitReceiptInfo.demageFee = demageAndOutsideFee; vm.submitReceiptInfo.pollutionFee = pollutionFee; vm.submitReceiptInfo.addFee = addFee; if(totalReceiptCount > totalReleaseCount){ overQuantity = totalReceiptCount - totalReleaseCount; } vm.submitReceiptInfo.overQuantity = overQuantity }else{ vm.submitReceiptInfo.deposit = 0; vm.submitReceiptInfo.demageFee = 0; vm.submitReceiptInfo.pollutionFee = 0; vm.submitReceiptInfo.returnDeposit = 0; vm.submitReceiptInfo.addFee = 0; } } } /* end 입고 형태 */ // end 입고 // start 출고 vm.clickDialogNumberOfStock = function(){// 총 재고수량 vm.newTotalQuantity = 0; vm.checkDialogNumberOfStock = true; } vm.clickDialogTodayRelease = function(){// 출고 등록 vm.startReleaseDateTime = moment(new Date()).format("YYYY-MM-DD"); setReleaseDate(); vm.checkDialogTodayRelease = true; vm.selectedCustomerInfo = null; vm.checkInsertReleaseQuantity = false; vm.submitReleaseInfo = { customerId: null, quantity: 0, remindQuantity: 0, useFee: 0, useDeposit: 0, costId: null, releaseStatus: 0, employeeInfo: { id: vm.employeeInfo.id, name: vm.employeeInfo.name } }; } vm.clickLackOfRemainigDeposit = function(customerInfo){ vm.selectedCustomerInfo = customerInfo; if(vm.selectedCustomerInfo.Deposit.length == 0){ // 계약없음 vm.checkDialogNoneDeposit = true; }else{ vm.checkDialogLackOfRemainigDeposit = true;// 50만원이하 잔여보증금 부족 } } vm.closeDialog_SubmitSetRelease = function(){ // getReleaseList(); vm.closeDialog(); getSummary(); } vm.closeDialogLackOfStock = function(){ vm.checkDialogLackOfStock = false;// 재고수량 부족 } vm.closeDialogLackOfDeposit = function(){ vm.checkDialogLackOfDeposit = false;// 잔여보증금 부족 var inputJson = { accountID: vm.selectedCustomerInfo.accountID, businessNumber: vm.selectedCustomerInfo.businessNumber, ceo: vm.selectedCustomerInfo.ceo, company: vm.selectedCustomerInfo.company, contractDeposit: 0, contractStatus: 0, contractingCount: 0, customerId: vm.selectedCustomerInfo.id, endDateTime: null, mobile1: vm.selectedCustomerInfo.mobile1, mobile2: vm.selectedCustomerInfo.mobile2, mobile3: vm.selectedCustomerInfo.mobile3, name: vm.selectedCustomerInfo.name, remainingDeposit: 0, uniqueNumber: vm.selectedCustomerInfo.uniqueNumber, waitingCount: 0 } $state.go('employee.detaildepositmanagement',{ selectedCustomerDepositInfo: inputJson }) } vm.closeDialogLackOfRemainigDepositDeposit = function(){ vm.checkDialogLackOfRemainigDeposit = false;// 50만원이하 잔여보증금 부족 var inputJson = { accountID: vm.selectedCustomerInfo.accountID, businessNumber: vm.selectedCustomerInfo.businessNumber, ceo: vm.selectedCustomerInfo.ceo, company: vm.selectedCustomerInfo.company, contractDeposit: 0, contractStatus: 0, contractingCount: 0, customerId: vm.selectedCustomerInfo.id, endDateTime: null, mobile1: vm.selectedCustomerInfo.mobile1, mobile2: vm.selectedCustomerInfo.mobile2, mobile3: vm.selectedCustomerInfo.mobile3, name: vm.selectedCustomerInfo.name, remainingDeposit: 0, uniqueNumber: vm.selectedCustomerInfo.uniqueNumber, waitingCount: 0 } $state.go('employee.detaildepositmanagement',{ selectedCustomerDepositInfo: inputJson }) } vm.clickSubmitRelease = function(){ vm.submitReleaseInfo.remindQuantity = vm.submitReleaseInfo.quantity; vm.submitReleaseInfo.customerId = vm.selectedCustomerInfo.id; // 등록 if(vm.submitReleaseInfo.useDeposit > vm.selectedCustomerInfo.remainingDeposit){ vm.checkDialogLackOfDeposit = true;// 잔여보증금 부족 return; } vm.checkRootUploading = true; if(vm.submitReleaseInfo.quantity > vm.getStock.inventory){ vm.checkDialogLackOfStock = true;// 재고수량 부족 return; }else{ vm.submitReleaseInfo['rentalPeriod'] = vm.getCost.rentalPeriod; vm.submitReleaseInfo['customerName'] = vm.selectedCustomerInfo.name; vm.submitReleaseInfo['phoneNumber'] = vm.selectedCustomerInfo.mobile1 + vm.selectedCustomerInfo.mobile2 + vm.selectedCustomerInfo.mobile3; vm.submitReleaseInfo['feePerBox'] = vm.getCost.fee; vm.submitReleaseInfo['depositPerBox'] = vm.getCost.deposit; vm.submitReleaseInfo['customerCheckSNS'] = vm.selectedCustomerInfo.checkSNS; var dateTime = moment(vm.startReleaseDateTime).format("YYYY-MM-DD").toString() + " " + vm.selectedReleaseHour.code + ":" + vm.selectedReleaseMinutes.code + ":00"; vm.submitReleaseInfo.dateTime = dateTime; WEB_API_EMPLOYEE.setRelease({ releaseInfo: vm.submitReleaseInfo }).then(function (result) { WEB_API_EMPLOYEE.updateStock() .then(function (result) { vm.checkRootUploading = false; vm.selectedCustomerInfo = null; vm.checkInsertReleaseQuantity = false; vm.submitReleaseInfo = { customerId: null, quantity: 0, remindQuantity: 0, useFee: 0, useDeposit: 0, costId: null, releaseStatus: 0, employeeInfo: { id: vm.employeeInfo.id, name: vm.employeeInfo.name } }; vm.checkDialogSubmitSetRelease = true; // 출고 저장 완료 }).catch(function (err) { $log.error(err); }); }).catch(function (err) { $log.error(err); }); } } vm.changeReleaseCount = function(number){ if(number != null){ vm.submitReleaseInfo.quantity += number; } if(vm.submitReleaseInfo.quantity != null && vm.submitReleaseInfo.quantity != ''){ WEB_API_EMPLOYEE.getCost() .then(function (result) { vm.getCost = result.data.cost; var useFee = 0; // 사용료 var useDeposit = 0; // 예상보증금 // 사용료 계산 useFee = vm.submitReleaseInfo.quantity * vm.getCost.fee; // 예상보증금 계산 useDeposit = vm.submitReleaseInfo.quantity * vm.getCost.deposit; vm.submitReleaseInfo.useFee = useFee; vm.submitReleaseInfo.useDeposit = useDeposit; vm.submitReleaseInfo.costId = vm.getCost.id; }).catch(function (err) { $log.error(err); }); } } // end 출고 // start 이관 vm.clickOpenDialogTransferSubmit = function(transactionInfo){ vm.selectedTransactionInfo = transactionInfo; vm.checkDialogTransferSubmit = true; // 이관대기 } // end 이관 vm.clickTransferSubmitCompleted = function(check){ if(check == 1){ vm.joinStr = "승인" }else if(check == 2){ vm.joinStr = "거부" } var remindReleaseInfoList = []; for(var i = 0; i < vm.selectedTransactionInfo.Release.length; i++){ var releaseId = vm.selectedTransactionInfo.Release[i].id; var quantiy = vm.selectedTransactionInfo.Release[i].History.quantity; var remindReleaseInfo = { releaseId: releaseId, quantiy: quantiy, } remindReleaseInfoList.push(remindReleaseInfo); } vm.checkRootUploading = true; WEB_API_EMPLOYEE.setTransaction({ EmployeeId: vm.employeeInfo.id, ReleaseCustomerId: vm.selectedTransactionInfo.ReleaseCustomerId, ReceiptCustomerId: vm.selectedTransactionInfo.ReceiptCustomerId, transactionId: vm.selectedTransactionInfo.id, transactionQuantity: vm.selectedTransactionInfo.quantity, permissionStatus: check, remindReleaseInfoList: remindReleaseInfoList }).then(function (result) { vm.checkRootUploading = false; vm.checkDialogTransferSubmit = false; vm.checkDialogTransferSubmitCompleted = true; vm.selectedTransactionInfo = null; getSummary(); }).catch(function (err) { $log.error(err); }); } // ======================================================================= // Common Function // ======================================================================= function iniData(){ vm.checkRootUploading = false; vm.newTotalQuantity = 0; // new 총 재고수량 /* start 공통 */ vm.checkMobilePolicy = false; vm.indexOfCustomerSearch = 0; // 0: 출고등록, 1: 입고등록 vm.selectedCustomerInfo = null; vm.selectedTransactionInfo = null; /* dialog */ vm.checkDialogCustomerSearch = false;// 고객검색 vm.checkDialogNumberOfStock = false;// 총 재고수량 vm.checkDialogTransferSubmit = false; vm.checkDialogTransferSubmitCompleted = false; vm.checkDialogNoneDeposit = false; vm.checkDialogNoneRelease = false; // 출고 계약 여부 /* start customerList board 초기화*/ vm.flag_customerList = true; vm.curPage_customerList = 1; // 현재 페이지 vm.boardCnt_customerList = 15; // 한페이지에 보여지는 콘텐츠 개수 vm.arrowPageCnt_customerList = 5; vm.maxShownPageCnt_customerList = 5; // 보여지는 최대 페이지 개수 vm.startRange_customerList = 1; // 시작 페이지 번호 vm.endRange_customerList = 1; // 마지막 페이지 번호 vm.searchInfo_customerList = { searchCustomerNameOrNumber: null } vm.searchCustomerNameOrNumber_customerList = null; /* end customerList board 초기화*/ /* end 공통 */ /* start 입고 */ vm.checkInsertReceiptQuantity = false; vm.submitReceiptInfo = { receiptStatus: 0, nonMember: null, nonMobile1: null, nonMobile2: null, nonMobile3: null, checkPersonAgree: false, checkSNS: false, quantity: 0, damageQuantity: 0, pollutionQuantity: 0, outsideQuantity: 0, overQuantity: 0, carNumber: null, note: null, customerId: null, employeeName: vm.employeeInfo.name, employeeId: vm.employeeInfo.id, // history checkTransaction: false, deposit: 0, //보증금 returnDeposit: 0, // 환급보증금 demageFee: 0, // 파손/분실비 pollutionFee: 0, // 오염비 addFee: 0, // 추가사용료 history: [] }; /* start dialog */ vm.checkDialogTodayStored = false;// 오늘 입고 vm.checkDialogCommonStored = true;// 일반입고 vm.checkDialogStoreStored = false;// 점포입고 vm.checkDialogNonMemberStored = false;// 비회원입고 vm.checkDialogNonMemberPolicyMobile = false;// 비회원 휴대폰 동의 vm.checkDialogNonMemberPolicyPersonal = false;// 비회원 개인정보 수집 및 이용약관 동의 vm.checkDialogSubmitSetReceipt = false; //입고 저장 완료 vm.checkDialogLackOfDeposit = false; // 보증금 계약 여부 /* end dialog */ /* end 입고 */ /* start 출고 */ vm.checkInsertReleaseQuantity = false; vm.submitReleaseInfo = { customerId: null, quantity: 0, remindQuantity: 0, useFee: 0, useDeposit: 0, costId: null, releaseStatus: 0, employeeInfo: { id: vm.employeeInfo.id, name: vm.employeeInfo.name } }; /* start dialog */ vm.checkDialogTodayRelease = false;// 출고 등록 vm.checkDialogLackOfStock = false;// 재고수량 부족 vm.checkDialogLackOfDeposit = false;// 잔여보증금 부족 vm.checkDialogLackOfRemainigDeposit = false;// 50만원이하 잔여보증금 부족 vm.checkDialogSubmitSetRelease = false; // 출고 저장 완료 /* end dialog */ /* end 출고 */ getSummary(); } // 요약정보 (총재고수량, 오늘 출고, 오늘 입고, 최근출고, 최근 입고, 신규 이관 신청 function getSummary(){ WEB_API_EMPLOYEE.getSummary() .then(function (result) { vm.getStock = result.data.getStock; // 총 재고 수량 // vm.releaseCountInStock = vm.getStock.totalQuantity - vm.getStock.inventory - vm.getStock.damageQuantity - vm.getStock.pollutionQuantity - vm.getStock.outsideQuantity; // 현재 출고중 vm.releaseCountInStock = result.data.getReleaseCountInStock; // 현재 출고중 vm.getTodayRelease = result.data.getTodayRelease; // 오늘 출고 vm.getTodayReceipt = result.data.getTodayReceipt; // 오늘 입고 vm.getRecentlyRelease = result.data.getRecentlyRelease; // 최근출고(top10) vm.getRecentlyReceipt = result.data.getRecentlyReceipt; // 최근입고(top10) var getTransactionData = result.data.getRecentlyTransaction; // 신규 이관 신청 vm.getRecentlyTransaction = getTransactionData.transactionData; // 신규 이관 신청 vm.getNumberOfNew = getTransactionData.numberOfNew; // 신규 이관 신청 }).catch(function (err) { $log.error(err); }); } function setStoredDate() { var storedToday = new Date(); // 이용가능 일시 for(var i = 0; i < 3; i++) { var availabeDate = moment(storedToday).subtract(i, "days").format("YYYY/MM/DD").toString(); vm.availabeDateList.push(availabeDate); } // 입고일시 $("#startDateTimeStored").datepicker({ dateFormat: "yy-mm-dd", beforeShowDay: unavailable }); $("#startDateTimeStored").datepicker('setDate', storedToday); // 입고 시간 var tmpHour = storedToday.getHours(); if(tmpHour.toString().length == 1){ tmpHour = "0"+tmpHour.toString(); }else{ tmpHour = tmpHour.toString(); } vm.selectedStoredHourList = []; var tmpHourIndex = 0; for(var i = 0; i < 24; i++){ var hour = "00" if(i.toString().length == 1){ hour = "0"+i.toString(); }else{ hour = i.toString(); } var inputJson = { code: hour, name: hour, } if(tmpHour == hour){ tmpHourIndex = i; } vm.selectedStoredHourList.push(inputJson); } vm.selectedStoredHour = vm.selectedStoredHourList[tmpHourIndex]; // 입고 분 var tmpMinutes = storedToday.getMinutes(); if(tmpMinutes.toString().length == 1){ tmpMinutes = "0"+tmpMinutes.toString(); }else{ tmpMinutes = tmpMinutes.toString(); } vm.selectedStoredMinutesList = []; var tmpMinutesIndex = 0; for(var i = 0; i < 60; i++){ var minutes = "00" if(i.toString().length == 1){ minutes = "0"+i.toString(); }else{ minutes = i.toString(); } var inputJson = { code: minutes, name: minutes, } if(tmpMinutes == minutes){ tmpMinutesIndex = i; } vm.selectedStoredMinutesList.push(inputJson); } vm.selectedStoredMinutes = vm.selectedStoredMinutesList[tmpMinutesIndex]; } function setReleaseDate() { var releaseToday = new Date(); // 이용가능 일시 for(var i = 0; i < 10; i++) { // for(var i = 0; i < 3; i++) { var availabeDate = moment(releaseToday).subtract(i, "days").format("YYYY/MM/DD").toString(); vm.availabeDateList.push(availabeDate); } // 입고일시 $("#startDateTimeRelease").datepicker({ dateFormat: "yy-mm-dd", beforeShowDay: unavailable }); $("#startDateTimeRelease").datepicker('setDate', releaseToday); // 입고 시간 var tmpHour = releaseToday.getHours(); if(tmpHour.toString().length == 1){ tmpHour = "0"+tmpHour.toString(); }else{ tmpHour = tmpHour.toString(); } vm.selectedReleaseHourList = []; var tmpHourIndex = 0; for(var i = 0; i < 24; i++){ var hour = "00" if(i.toString().length == 1){ hour = "0"+i.toString(); }else{ hour = i.toString(); } var inputJson = { code: hour, name: hour, } if(tmpHour == hour){ tmpHourIndex = i; } vm.selectedReleaseHourList.push(inputJson); } vm.selectedReleaseHour = vm.selectedReleaseHourList[tmpHourIndex]; // 입고 분 var tmpMinutes = releaseToday.getMinutes(); if(tmpMinutes.toString().length == 1){ tmpMinutes = "0"+tmpMinutes.toString(); }else{ tmpMinutes = tmpMinutes.toString(); } vm.selectedReleaseMinutesList = []; var tmpMinutesIndex = 0; for(var i = 0; i < 60; i++){ var minutes = "00" if(i.toString().length == 1){ minutes = "0"+i.toString(); }else{ minutes = i.toString(); } var inputJson = { code: minutes, name: minutes, } if(tmpMinutes == minutes){ tmpMinutesIndex = i; } vm.selectedReleaseMinutesList.push(inputJson); } vm.selectedReleaseMinutes = vm.selectedReleaseMinutesList[tmpMinutesIndex]; } function unavailable(date) { var tmpDate = moment(date).format("YYYY/MM/DD").toString(); if (vm.availabeDateList.includes(tmpDate)) { return [true, ""]; } else { return [false, "", "Unavailable"]; } } /* start: customerList board */ function getCustomerList() { WEB_API_EMPLOYEE.getCustomerList({ stock: true, curPage: vm.curPage_customerList, boardCnt: vm.boardCnt_customerList, searchInfo: vm.searchInfo_customerList, orderInfo: vm.orderInfo_customerList, }).then(function (result) { vm.getCustomerList = result.data.rows; vm.totalBoardLen_customerList = result.data.count; vm.pageCnt_customerList = Math.ceil(vm.totalBoardLen_customerList / vm.boardCnt_customerList); if (vm.flag_customerList) { if (vm.pageCnt_customerList <= vm.maxShownPageCnt_customerList) { vm.endRange_customerList = vm.pageCnt_customerList; } else { vm.endRange_customerList = vm.maxShownPageCnt_customerList; } } vm.flag_customerList = false; }).catch(function (err) { $log.error(err); }); } // ======================================================================= // 페이지 범위 계산 // ======================================================================= vm.pageRange_customerList = function (min, max) { var input = []; for (var i = min; i <= max; i += 1) { input.push(i); } return input; }; // ======================================================================= // 버튼클릭 이벤트 // ======================================================================= // clickFirstArrow 클릭 vm.clickFirstArrow_customerList = function () { vm.curPage_customerList = 1; vm.startRange_customerList = 1; if (vm.pageCnt_customerList <= vm.maxShownPageCnt_customerList) { vm.endRange_customerList = vm.pageCnt_customerList; } else { vm.endRange_customerList = vm.maxShownPageCnt_customerList; } getCustomerList(); }; // clickLastArrow 클릭 vm.clickLastArrow_customerList = function () { vm.curPage_customerList = vm.pageCnt_customerList; vm.endRange_customerList = vm.pageCnt_customerList; if (vm.pageCnt_customerList <= vm.maxShownPageCnt_customerList) { vm.startRange_customerList = 1; } else { var remainderValue = vm.pageCnt_customerList % vm.maxShownPageCnt_customerList; var value = vm.maxShownPageCnt_customerList - remainderValue; if (remainderValue != 0) { vm.startRange_customerList = vm.pageCnt_customerList - remainderValue + 1; } else { vm.startRange_customerList = vm.endRange_customerList; } } getCustomerList(); }; // leftArrow 클릭 vm.clickLeftArrow_customerList = function () { if (vm.curPage_customerList > 1) { vm.curPage_customerList -= vm.arrowPageCnt_customerList; } if (vm.curPage_customerList < vm.startRange_customerList) { if ((vm.endRange_customerList % vm.maxShownPageCnt_customerList) != 0) { vm.endRange_customerList += (vm.maxShownPageCnt_customerList - (vm.endRange_customerList % vm.maxShownPageCnt_customerList)); } vm.startRange_customerList -= vm.arrowPageCnt_customerList; vm.endRange_customerList = vm.startRange_customerList + (vm.arrowPageCnt_customerList - 1); } vm.curPage_customerList = vm.endRange_customerList; getCustomerList(); }; // rightArrow 클릭 vm.clickRightArrow_customerList = function () { if (vm.curPage_customerList < vm.pageCnt_customerList) { vm.curPage_customerList += vm.arrowPageCnt_customerList; } if (vm.curPage_customerList > vm.endRange_customerList) { vm.startRange_customerList += vm.arrowPageCnt_customerList; vm.endRange_customerList += vm.arrowPageCnt_customerList; if (vm.endRange_customerList >= vm.pageCnt_customerList) { vm.endRange_customerList = vm.pageCnt_customerList; } } vm.curPage_customerList = vm.startRange_customerList; getCustomerList(); }; // 페이지 직접 클릭 vm.clickPage_customerList = function (index) { vm.curPage_customerList = index; getCustomerList(); }; /* end: customerList board */ var getKeyboardEventResult = function(keyEvent){ return(window.event ? keyEvent.keyCode : keyEvent.which); }; } })();