(function () { "use strict"; angular .module('codeAPLEBOX.client.user.customer.transfer.customersearch.requesttransfer') .controller('requesttransferController', requesttransferController); /* @ngInject */ function requesttransferController($state, $cookies, $stateParams, appConfig, $log, moment, WEB_API_CUSTOMER, $q) { var vm = this; // ======================================================================= // 초기데이터 // ======================================================================= vm.customerInfo = $cookies.getObject("customerInfo"); if($stateParams.transferCustomer != null){ $cookies.putObject('transferCustomer', $stateParams.transferCustomer); } vm.transferCustomer = $cookies.getObject('transferCustomer'); iniData(); // ======================================================================= // Angularjs Function // ======================================================================= vm.goBack = function(){ // 다른페이지 $state.go('customer.customersearch'); } vm.submitRequest = function(){ // 수량확인 WEB_API_CUSTOMER.getAvailableTransactionCount({ customerId: vm.customerInfo.id }).then(function (result) { vm.todayReleaseCount = result.data.todayReleaseCount; vm.getAvailableTransactionCount = result.data.getAvailableTransactionCount; vm.costInfo = result.data.costInfo; vm.releaseId = result.data.releaseId; vm.transactionQuantity = result.data.transactionQuantity; if( vm.transactionCount > vm.getAvailableTransactionCount || vm.transactionCount <= 0){ alert("이관 가능 수량을 확인해 주세요."); return; } // 시스템 업데이트 확인 WEB_API_CUSTOMER.checkSystemUpdateToday() .then(function (result) { vm.checkSystemUpdateToday = result.data.checkSystemUpdateToday; if(vm.checkSystemUpdateToday){ var requestDateTime = moment(new Date()).format("YYYY-MM-DD HH:mm").toString(); var transactionInfo = { requestDateTime: requestDateTime, approvalDateTime: null, quantity: vm.transactionCount, permissionStatus: 0, ReleaseCustomerId: vm.customerInfo.id, ReceiptCustomerId: vm.transferCustomer.id, EmployeeId: null, } var historyInfo = { checkTransaction: true, dateTime: requestDateTime, quantity: vm.transactionCount, damageAndOutSideQuantity: 0, pollutionQuantity: 0, deposit: 0, damageAndOutSideFee: 0, pollutionFee: 0, addFee: 0, returnDeposit: vm.availableReturnDeposit, ReceiptId: null, ReleaseId: vm.releaseId , TransactionId: null, } WEB_API_CUSTOMER.requestTransaction({ transactionInfo: transactionInfo, historyInfo: historyInfo }).then(function (result) { vm.checkDialogCompletedSubmit = true; // 완료 }).catch(function (err) { $log.error(err); }); }else{ vm.checkDialogRejectSubmit = true;// 거부 } }).catch(function (err) { $log.error(err); }); }).catch(function (err) { $log.error(err); }); } vm.closeDialog = function(){ vm.checkDialogCompletedSubmit = false; // 완료 vm.checkDialogRejectSubmit = false;// 거부 } vm.closeDialogCompleted = function(){ vm.checkDialogCompletedSubmit = false; // 완료 vm.checkDialogRejectSubmit = false;// 거부 $state.go("customer.transfer") } vm.clickOpenDialogDepositCancel = function(){ vm.checkDialogDepositCancel = true; // 보증금 계약 취소 } vm.changeTransactionCount = function(number){ vm.transactionCount += number; var deposit = 0; if(vm.costInfo != null){ deposit = vm.costInfo.deposit; } vm.availableReturnDeposit = deposit * vm.transactionCount } vm.changeAvailableDeposit = function(){ var deposit = 0; if(vm.costInfo != null){ deposit = vm.costInfo.deposit; } vm.availableReturnDeposit = deposit * vm.transactionCount } // ======================================================================= // Common API // ======================================================================= function iniData(){ vm.transactionCount = 0; // 이관수량 vm.availableReturnDeposit = 0; // 예상환급보증금 /* start dialog */ vm.checkDialogCompletedSubmit = false; // 완료 vm.checkDialogRejectSubmit = false;// 거부 /* end dialog */ getAvailableTransactionCount(); } function getAvailableTransactionCount() { WEB_API_CUSTOMER.getAvailableTransactionCount({ customerId: vm.customerInfo.id }).then(function (result) { vm.todayReleaseCount = result.data.todayReleaseCount; vm.getAvailableTransactionCount = result.data.getAvailableTransactionCount; vm.costInfo = result.data.costInfo; vm.releaseId = result.data.releaseId; vm.transactionQuantity = result.data.transactionQuantity; deferred.resolve(result); }).catch(function (err) { $log.error(err); }); } } })();