(function () { "use strict"; angular .module('codeAPLEBOX.client.user.employee.stock.storedstatus') .controller('storedstatusController', storedstatusController); /* @ngInject */ function storedstatusController($rootScope, $state, appConfig, $log, WEB_API_EMPLOYEE, $cookies, moment, Auth) { var vm = this; // ======================================================================= // 초기데이터 // ======================================================================= vm.employeeInfo = $cookies.getObject("employeeInfo"); vm.availabeDateList = []; iniData(); // ======================================================================= // Angularjs Function // ======================================================================= /* start storedList board search */ vm.searchForBoard = function(){ if(vm.searchCustomerNameOrNumber == null || vm.searchCustomerNameOrNumber == ''){ vm.searchCustomerNameOrNumber = null; } vm.searchInfo = { searchDate: { startDate: vm.startDate, endDate: vm.endDate, }, searchReceiptStatus: vm.searchReceiptStatus, searchCustomerNameOrNumber: vm.searchCustomerNameOrNumber } vm.iniBoard(); getStoredList(); } vm.checkDuring = function(check){ if(check == 1){ // 오늘 vm.checkChangeDate = false; }else{ vm.checkChangeDate = true; } } vm.searchForDate = function(check){ if(check){ vm.checkChangeDate = false; vm.startDate = null; vm.endDate = null; }else{ vm.startDate = $("#startDate").val(); vm.endDate = $("#endDate").val(); } vm.searchForBoard(); } vm.searchForReceiptStatus = function(check){ if(check == null){ vm.searchReceiptStatus = null; }else{ vm.searchReceiptStatus = check; } vm.searchForBoard(); } vm.searchForCustomerNameOrNumber = function(check){ if(check == 0){ vm.searchCustomerNameOrNumber = null; } vm.searchForBoard(); } /* end storedList board search */ /* start storedList board function */ vm.resetBoard = function () { /* start storedList board search 초기화*/ vm.checkChangeDate = false; /* end storedList board search 초기화*/ // board 초기화 vm.flag = true; vm.curPage = 1; // 현재 페이지 vm.startRange = 1; // 시작 페이지 번호 vm.endRange = 1; // 마지막 페이지 번호 vm.searchInfo = { searchDate: { startDate: vm.startDate, endDate: vm.endDate, }, searchReceiptStatus: vm.searchReceiptStatus, searchCustomerNameOrNumber: vm.searchCustomerNameOrNumber } vm.startDate = null; vm.endDate = null; vm.searchReceiptStatus = null; vm.searchCustomerNameOrNumber = null; vm.orderInfo = null; getStoredList(); } vm.iniBoard = function(){ vm.flag = true; vm.curPage = 1; // 현재 페이지 vm.startRange = 1; // 시작 페이지 번호 vm.endRange = 1; // 마지막 페이지 번호 } vm.selectBoardCnt = function(number){ vm.boardCnt = number; vm.iniBoard(); getStoredList(); } /* end storedList board function */ /* 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 */ // ======================================================================= // JavaScript Function // ======================================================================= 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.clickDialogStoredModify = function(selectedStoredInfoModify){// 출고 수정 vm.selectedStoredInfoModify = selectedStoredInfoModify; vm.selectedStoredInfoModify["modifyQuantity"] = selectedStoredInfoModify.receiptCount; vm.selectedStoredInfoModify["modifyDamageQuantity"] = selectedStoredInfoModify.damageQuantity; vm.selectedStoredInfoModify["modifyPollutionQuantity"] = selectedStoredInfoModify.pollutionQuantity; vm.selectedStoredInfoModify["modifyOutsideQuantity"] = selectedStoredInfoModify.outsideQuantity; vm.selectedStoredInfoModify["modifyReturnDeposit"] = selectedStoredInfoModify.returnDeposit; vm.selectedStoredInfoModify["modifyDamageFee"] = selectedStoredInfoModify.damageFee; vm.selectedStoredInfoModify["modifyPollutionFee"] = selectedStoredInfoModify.pollutionFee; vm.selectedStoredInfoModify["modifyAddFee"] = selectedStoredInfoModify.addFee; vm.checkDialogStoredModify = true; vm.checkInsertStoredModifyQuantity = true; } vm.clickDialogStoredRemove = function(selectedStoredInfoModify){// 출고 삭제 vm.selectedStoredInfoModify = selectedStoredInfoModify; vm.checkDialogStoredRemove = true; // 출고 삭제 확인 vm.checkDialogStoredRemoveSubmitPassword = false;// 비밀번호 확인 vm.checkDialogCompletedStoredRemove = false;// 저장 완료 } vm.clickOpenDialogRemoveStoredSubmitPassword = function(){ vm.checkDialogStoredRemove = false;// 출고 삭제 확인 vm.checkDialogStoredRemoveSubmitPassword = true;// 비밀번호 확인 vm.checkDialogCompletedStoredRemove = false;// 저장 완료 vm.checkPassword = false; vm.password = ''; } vm.clickOpenDialogRemoveStoredSubmitComplete = function(){ // 비밀번호 확인 if(vm.password == null || vm.password == ""){ alert("비밀번호를 입력해 주세요.") return; }else{ var removeInfo = { receiptId: vm.selectedStoredInfoModify.receiptId, customerId: vm.selectedStoredInfoModify.customerId, receiptDate: vm.selectedStoredInfoModify.receiptDate } Auth.certifiedPassword({ accountNumber: vm.employeeInfo.accountNumber, password: vm.password }).then(function (info) { if (info.infoCode == '1' || info.infoCode == '2') { //no register vm.checkPassword = true; }else{ vm.checkDialogStoredRemove = false;// 출고 삭제 확인 vm.checkDialogStoredRemoveSubmitPassword = false;// 비밀번호 확인 vm.checkRootRemoving = true; WEB_API_EMPLOYEE.removeReceipt({ removeInfo: removeInfo }).then(function (result) { WEB_API_EMPLOYEE.updateStock() .then(function (resultOfUpdateStock) { vm.checkRootRemoving = false; vm.checkDialogCompletedStoredRemove = true;// 저장 완료 }).catch(function (err) { $log.error(err); }); }).catch(function (err) { $log.error(err); }); } }).catch(function (err) { $log.debug(err); }); } } vm.clickDialogCustomerSearch = function(){// 고객검색 vm.checkDialogTodayStored = false;// 입고 등록 // vm.closeDialog(); getCustomerList(); $rootScope.showCustomerListForReleaseOrReceipt = false; //true: release, false: receipt vm.checkDialogCustomerSearch = true; } vm.clickOpenReleaseOrStored = function(customerInfo){ vm.selectedCustomerInfo = customerInfo; if(customerInfo.Deposit.length > 0 && customerInfo.Release.length > 0 ){ vm.checkInsertReceiptQuantity = true; vm.checkDialogCustomerSearch = false;// 고객검색 vm.checkDialogTodayStored = true;// 입고 등록 }else{ if(customerInfo.Deposit.length <= 0){ vm.checkDialogNoneDeposit = true; // 보증금 계약 여부 }else if(customerInfo.Release.length <= 0){ vm.checkDialogNoneRelease = true; // 출고 계약 여부 } } } 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.closeDialogNoneDeposit= function(){ vm.checkDialogNoneDeposit = 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.closeDialogNoneRelease= function(){ vm.checkDialogNoneRelease = false; // 출고 계약 여부 $state.go('employee.releasestatus'); } vm.closeDialog_SubmitSetReceipt = function(){ vm.iniBoard(); getStoredList(); vm.closeDialog(); } vm.closeDialog_SubmitSetModifiedStored = function(){ vm.iniBoard(); getStoredList(); vm.closeDialog(); } vm.closeDialogStoredRemove = function(){ vm.checkDialogStoredRemove = false; vm.checkDialogCompletedStoredRemove = true; } vm.closeDialogCompletedRemoveOfStored = function(){ vm.closeDialog(); vm.iniBoard(); getStoredList(); } vm.closeDialog = function(){ vm.checkDialogTodayStored = false;// 입고 등록 // 입고형태 vm.checkDialogCommonStored = true;// 일반입고 vm.checkDialogStoreStored = false;// 점포입고 vm.checkDialogNonMemberStored = false;// 비회원입고 vm.checkDialogNonMemberPolicyMobile = false;// 비회원 휴대폰 동의 vm.checkDialogNonMemberPolicyPersonal = false;// 비회원 휴대폰 동의 vm.checkDialogSubmitSetReceipt = false //입고 저장 완료 vm.checkDialogNoneDeposit = false; // 보증금 계약 여부 vm.checkDialogNoneRelease = false; // 출고 계약 여부 vm.checkDialogStoredModify = false;// 입고 수정 vm.checkDialogSubmitSetModifyStored = false; // 입고 수정 완료 vm.checkDialogStoredRemove = false;// 입고 삭제 vm.checkDialogStoredRemoveSubmitPassword = false;// 입고 삭제 vm.checkDialogCompletedStoredRemove = 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.closeDialogCustomerSearch = function(){ vm.checkDialogCustomerSearch = false;// 고객검색 vm.checkDialogTodayStored = true;// 입고 등록 } 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){// 입고 형태 setStoredDate(); 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; } }; /* end 입고 형태 */ 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.closeDialog_InsertStoredModifyQuantit = function(){ vm.checkInsertStoredModifyQuantity = true; } vm.clickSubmitModifyStored = function(){ vm.selectedStoredInfoModify['ChangeEmployeeId'] = vm.employeeInfo.id; vm.selectedStoredInfoModify['modifyDateTime'] = moment(new Date()).format("YYYY-MM-DD HH:mm:ss").toString(); vm.checkRootUploading = true; WEB_API_EMPLOYEE.modifyReceipt({ modifyReceiptInfo: vm.selectedStoredInfoModify }).then(function (result) { WEB_API_EMPLOYEE.updateStock() .then(function (resultOfUpdateStock) { vm.checkRootUploading = false; vm.checkDialogSubmitSetModifyStored = true; // 출고 수정 완료 }).catch(function (err) { $log.error(err); }); }).catch(function (err) { $log.error(err); }); } vm.changeModifyStoredCount = function(number, index){ if(number != null){ if(index == 1){ vm.selectedStoredInfoModify.modifyQuantity += number; }else if(index == 2){ vm.selectedStoredInfoModify.modifyDamageQuantity += number; }else if(index == 3){ vm.selectedStoredInfoModify.modifyPollutionQuantity += number; }else if(index == 4){ vm.selectedStoredInfoModify.modifyOutsideQuantity += number; } } if(vm.selectedStoredInfoModify.modifyQuantity != null && vm.selectedStoredInfoModify.modifyQuantity != '' ){ var modifyReturnDeposit = 0; // 예상환급보증금 var modifyDamageFee = 0; // 예상 파손/분실비 var modifyPollutionFee = 0; // 예상 오염비 var modifyAddFee = 0; // 예상 오염비 // 환급 보증금 계산 modifyReturnDeposit = vm.selectedStoredInfoModify.modifyQuantity * vm.selectedStoredInfoModify.currentCost.deposit; // 파손/분실비 계산 modifyDamageFee = vm.selectedStoredInfoModify.modifyDamageQuantity * vm.selectedStoredInfoModify.currentCost.deposit; // 예상 오염비 계산 modifyPollutionFee = vm.selectedStoredInfoModify.modifyPollutionQuantity * vm.selectedStoredInfoModify.currentCost.deposit; // 계산: 추가사용료 var rentalPeriod = vm.selectedStoredInfoModify.currentCost.rentalPeriod; var additionalPeriod = vm.selectedStoredInfoModify.currentCost.additionalPeriod; var additionalFee = vm.selectedStoredInfoModify.currentCost.additionalFee; var releaseDate = vm.selectedStoredInfoModify.releaseDate; var tmpReleaseDate = new Date(moment(releaseDate).format("YYYY/MM/DD")); var storedDate = new Date(moment(vm.startStoredDateTime).format("YYYY/MM/DD")); 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; } modifyAddFee = vm.selectedStoredInfoModify.modifyPollutionQuantity * additionalFee * overDate; vm.selectedStoredInfoModify.modifyReturnDeposit = modifyReturnDeposit; vm.selectedStoredInfoModify.modifyDamageFee = modifyDamageFee; vm.selectedStoredInfoModify.modifyPollutionFee = modifyPollutionFee; vm.selectedStoredInfoModify.modifyAddFee = modifyAddFee; } } vm.changeReceiptCount = function(number, index){ // 1: 입고수량, 2: 파손, 3: 오염, 4: 외부 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; } } calcQuantity() } // ======================================================================= // Common Function // ======================================================================= function iniData(){ vm.checkSearchResult = true; vm.checkInsertReceiptQuantity = false; vm.selectedCustomerInfo = null; 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: [] }; /* dialog */ vm.checkDialogTodayStored = false;// 오늘 입고 /* 입고 형태 */ vm.checkDialogCommonStored = true;// 일반입고 vm.checkDialogStoreStored = false;// 점포입고 vm.checkDialogNonMemberStored = false;// 비회원입고 vm.checkDialogNonMemberPolicyMobile = false;// 비회원 휴대폰 동의 vm.checkDialogNonMemberPolicyPersonal = false;// 비회원 개인정보 수집 및 이용약관 동의 vm.checkDialogSubmitSetReceipt = false; //입고 저장 완료 vm.checkDialogNoneDeposit = false; // 보증금 계약 여부 vm.checkDialogNoneRelease = false; // 출고 계약 여부 vm.checkDialogStoredRemove = false;// 입고 수정 vm.checkInsertStoredModifyQuantity = true; vm.checkDialogStoredRemove = false;// 입고 삭제 vm.checkDialogStoredRemoveSubmitPassword = false;// 입고 삭제 비밀번호 vm.checkDialogCompletedStoredRemove = false;// 입고 삭제 완료 /* start storedList board search 초기화*/ vm.checkChangeDate = false; /* end storedList board search 초기화*/ /* start storedList board 초기화*/ vm.flag = true; vm.curPage = 1; // 현재 페이지 vm.boardCnt = 15; // 한페이지에 보여지는 콘텐츠 개수 vm.arrowPageCnt = 5; vm.maxShownPageCnt = 5; // 보여지는 최대 페이지 개수 vm.startRange = 1; // 시작 페이지 번호 vm.endRange = 1; // 마지막 페이지 번호 vm.searchInfo = { searchDate: { startDate: null, endDate: null, }, searchReceiptStatus: null, searchCustomerNameOrNumber: null } vm.startDate = null; vm.endDate = null; vm.searchReceiptStatus = null; vm.searchCustomerNameOrNumber = null; /* end storedList board 초기화*/ /* 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 초기화*/ getStoredList(); } vm.chanageStoredDate = function(){ calcQuantity(); } function calcQuantity(){ 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; 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(vm.startStoredDateTime).format("YYYY/MM/DD")); 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; } } if(totalReceiptCount > totalReleaseCount){ overQuantity = totalReceiptCount - totalReleaseCount; } 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; } }).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 unavailable(date) { var tmpDate = moment(date).format("YYYY/MM/DD").toString(); if (vm.availabeDateList.includes(tmpDate)) { return [true, ""]; } else { return [false, "", "Unavailable"]; } } /* start: storedList board */ function getStoredList() { if( vm.searchInfo.searchDate.startDate == null && vm.searchInfo.searchDate.endDate == null && vm.searchInfo.searchReceiptStatus == null && vm.searchInfo.searchCustomerNameOrNumber== null ){ vm.checkSearchResult = false; }else{ vm.checkSearchResult = true; } WEB_API_EMPLOYEE.getStoredList({ curPage: vm.curPage, boardCnt: vm.boardCnt, searchInfo: vm.searchInfo, orderInfo: vm.orderInfo, }).then(function (result) { vm.getStoredList = result.data.rows; vm.totalBoardLen = result.data.count; // 이번달 +- 5일 구하기. var tmpYear = new Date().getFullYear().toString(); var tmpMonth = (new Date().getMonth()+1).toString(); var currentFullDay = tmpYear+"-"+tmpMonth+"-01"; var previousDay = moment(currentFullDay).add(-2, 'days').format("YYYY-MM-DD 00:00").toString(); // 5일전 var afterDay = moment(currentFullDay).add(2, 'days').format("YYYY-MM-DD 23:59").toString(); // 5일후 var tmpCurrentFullDay = moment(new Date()).format("YYYY-MM-DD HH:mm").toString(); var fullCheckRegister = true; if(tmpCurrentFullDay >= previousDay && tmpCurrentFullDay <= afterDay){ // 현재일 기준 fullCheckRegister = false; } for(var i = 0; i < vm.getStoredList.length; i++){ var checkRegister = false; if(fullCheckRegister){ var previousTime = moment(new Date()).format("YYYY-MM-DD 00:00").toString(); var afterTime = moment(new Date()).format("YYYY-MM-DD 23:59").toString(); var registerTime = moment(vm.getStoredList[i].createdAt).format("YYYY-MM-DD HH:mm").toString(); if(registerTime >= previousTime && registerTime <= afterTime){ // 등록기준 당일 checkRegister = true } } vm.getStoredList[i]['checkRegister'] = checkRegister; // 사용일 var tmpStoredDate = new Date(moment(vm.getStoredList[i].dateTime).format("YYYY/MM/DD")); // var storedDate = new Date(moment(new Date()).format("YYYY/MM/DD")); var storedDate = new Date(moment(new Date()).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() - tmpStoredDate.getTime()) / (1000*60*60*24)); vm.getStoredList[i]['useDay'] = diffrenceDate; } 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; } getStoredList(); }; // 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; } } getStoredList(); }; // 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; getStoredList(); }; // 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; getStoredList(); }; // 페이지 직접 클릭 vm.clickPage = function (index) { vm.curPage = index; getStoredList(); }; /* end: storedList board */ /* 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); }; } })();