/* ** Views/Partial/LCA/BOM.cshtml is using this controller */ angular.module('CarbonFootprint') .controller('IntlTravelController', ['$scope', '$http', '$routeParams', 'Notification', 'JoinSurveyItemAndParameter', 'MultiLanguageService', '$q','$filter', function ($scope, $http, $routeParams, Notification, JoinService, MultiLanguageService, $q ,$filter) { // Multi-language resource object var resource, inited = false; // This property controlls modal form, will be passed to table-edit-modal directive $scope.modalFormOption = {}; $scope.model = []; // set $scope.baseUrl var baseUrl = $scope.baseUrl; if (typeof (baseUrl) === 'undefined' || baseUrl == null) { var arr = window.location.href.split("/"); if (arr[3].indexOf('app') == 0) baseUrl = ''; else baseUrl = '/' + arr[3]; $scope.baseUrl = baseUrl; } $scope.changeKgCo2 = function (toBeEdit) { var transferStation1KgCo2 = toBeEdit.TransferStation1KgCo2 || 0; var transferStation2KgCo2 = toBeEdit.TransferStation2KgCo2 || 0; var lastKgCo2 = toBeEdit.LastKgCo2 || 0; toBeEdit.KgCo2 = transferStation1KgCo2 + transferStation2KgCo2 + lastKgCo2; }; $scope.changeUncertaintyAnalysis = function (model) { var dataAttribute = parseInt(model.DataAttribute || '0'), dataSource = parseInt(model.DataSource || '0'); switch (dataAttribute * dataSource) { case 1: model.UncertaintyAnalysis = 'C'; break; case 2: model.UncertaintyAnalysis = 'B'; break; case 4: model.UncertaintyAnalysis = 'A'; break; default: model.UncertaintyAnalysis = ''; } }; $scope.createProcess = function () { // Create an object & select it var toBeCreated = {}; toBeCreated.ID = 0; toBeCreated.LCAID = $routeParams.LCAID; //// just for testing //toBeCreated.Traveller = '刘刚'; //toBeCreated.TravelDate = '2020-1-12'; //toBeCreated.AirportFrom = '香港' //toBeCreated.AirportTo = '台北'; //toBeCreated.AirportClass = '经济舱'; ////toBeCreated.KgCo2 = ; //toBeCreated.Comment = '出发'; // For modal form $scope.selectRow.toBeEdit = toBeCreated; $scope.modalFormOption.show = true; $scope.save = function () { if (!validateModel(toBeCreated)) { return; } $http.post($scope.baseUrl+'/api/IntlTravel/Save/' + $routeParams.LCAID + "/" + toBeCreated.ID, toBeCreated) .success(function (data) { $scope.model.unshift(data); $scope.modalFormOption.show = false; }) .error(function (error) { console.log(error); }); }; }; $scope.editProcess = function (selected) { var toBeEdit = $scope.selectRow.toBeEdit = angular.copy(selected); toBeEdit.TravelDate = $filter('date')(toBeEdit.TravelDate, 'yyyy/MM/dd'); //$("input[name=TravelDate]").datepicker('setDate', moment(toBeEdit.TravelDate, 'YYYY/MM/DD').toDate()); $scope.modalFormOption.show = true; $scope.save = function () { if (!validateModel(toBeEdit)) { return; } $http.post($scope.baseUrl+'/api/IntlTravel/Save/' + toBeEdit.LCAID + "/" + toBeEdit.ID, toBeEdit) .success(function (data) { angular.copy(data, selected); $scope.modalFormOption.show = false; }); }; }; $scope.deleteProcess = function (selected) { var isConfirm = confirm(resource.DeleteItemMsg); if (isConfirm) { $http.delete($scope.baseUrl+"/api/IntlTravel/Delete/" + selected.ID) .success(function () { var index = $scope.model.indexOf(selected); $scope.model.splice(index, 1); // This operate is base on selectRow directive in TableEdit.js file $scope.selectRow.unSelect(); }); } }; $scope.$on('changeSelectedTab', function (event, args) { if (!inited && args.selectedTab == 'IntlTravel') { inited = true; // Get data and prepare $scope.model getAllDataAsync($routeParams.LCAID) .then(function (response) { $scope.model = response.Purchases; }, function (error) { console.log(error); }); // Get multilanguage resource MultiLanguageService.getResourceAsync() .then(function (response) { resource = response; }, function (error) { console.log(error); }); } }); /** * Get all list data from server * @param {[Int]} : LCAID * @return {[promise]} */ function getAllDataAsync(LCAID) { var deferred = $q.defer(); $http.get($scope.baseUrl+'/api/IntlTravel/GetByLcaId/' + LCAID) .success(function (data) { deferred.resolve(data); }) .error(function () { deferred.resolve(null); }) return deferred.promise; } function validateModel(model) { model.TransferStation1 = model.TransferStation1 || ''; model.TransferStation1KgCo2 = model.TransferStation1KgCo2 || 0; model.TransferStation2 = model.TransferStation2 || ''; model.TransferStation2KgCo2 = model.TransferStation2KgCo2 || 0; if (model.TransferStation1.length == 0 && model.TransferStation1KgCo2 > 0) { Notification.error({ message: '中转站一不能为空0', positionX: 'center', delay: 3000 }); return false; } if (model.TransferStation2.length == 0 && model.TransferStation2KgCo2 > 0) { Notification.error({ message: '中转站二不能为空0', positionX: 'center', delay: 3000 }); return false; } if (model.TransferStation1.length > 0 && model.TransferStation1KgCo2 <= 0) { Notification.error({ message: '中转站一系数必须大于0', positionX: 'center', delay: 3000 }); return false; } if (model.TransferStation2.length > 0 && model.TransferStation2KgCo2 <= 0) { Notification.error({ message: '中转站二系数必须大于0', positionX: 'center', delay: 3000 }); return false; } if (model.TransferStation2.length > 0 && model.TransferStation1.length == 0) { Notification.error({ message: '中转站一不能为空', positionX: 'center', delay: 3000 }); return false; } return true; } }]);