/* 2nd level route entry point this controller is responsible for Routing Organization LCA , Product LCA with or without PCR selected and the stutus of a LCA --------------------------------- */ angular.module('CarbonFootprint') .config(function ($locationProvider, $routeProvider, CONSTANTS) { $routeProvider.when('/LCA/:DetailType/:LCAID', { templateUrl: CONSTANTS.PB + 'LCA-DetailLayout', controller: 'LCADetailLayoutController' }) }).config(function ($locationProvider, $routeProvider, CONSTANTS) { $routeProvider.when('/LCA/:DetailType/:LCAID/:SearchText', { templateUrl: CONSTANTS.PB + 'LCA-DetailLayout', controller: 'LCADetailLayoutController' }) }) .controller('LCADetailLayoutController', ['$scope', '$location', 'LCADetailCacheService', '$routeParams', 'CONSTANTS', 'MultiLanguageService', '$http', '$timeout', function ($scope, $location, LCADetailCacheService, $routeParams, CONSTANTS, MultiLanguageService, $http, $timeout) { // Hide sheet header in Detail page if ($routeParams.DetailType == 'Detail' || $routeParams.DetailType == 'HighLevelAnalyze' || $routeParams.DetailType == 'ProductUsageStage' || $routeParams.DetailType == 'AbandonedStage') { $scope.isHideSheetHeader = true; } // 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; } var resource; MultiLanguageService.getResourceAsync().then(function (result) { resource = result; $scope.toWaitState = function () { if ($scope.lcaDetail.VerifierCompanyID == undefined || $scope.lcaDetail.VerifierCompanyID <= 0) { alert("請選擇查證單位") } else if(confirm(resource.DoubleCheckSendToWait)) { LCADetailCacheService.setLCAStatusFromProcessToWaitAsync($routeParams.LCAID, 1); $scope.lcaDetail.Status = 2; } } }); $scope.toProcessState = function () { LCADetailCacheService.setLCAStatusFromRejectToProcessAsync($routeParams.LCAID); $scope.lcaDetail.Status = 1; }; $scope.toCompleteState = function () { LCADetailCacheService.setLCAStatusFromConfirmToCompleteAsync($routeParams.LCAID) .then(function () { $scope.lcaDetail.Status = 5; //$location.path('/Report/Index'); }); }; // 產生產品型報表1 //$scope.toGenerateProductReport = function () { // //console.log('產生產品型報表1'); //}; // 產生所有報表 CFT-89 $scope.toGenerateReport = function () { LCADetailCacheService.GenerateReport($routeParams.LCAID).then(res => { if (res != null) { let arr = res.slice(1, res.length-1).split(','); for (let i = 0; i < arr.length; i++) { var url = arr[i]; var elemIF = document.createElement("iframe"); elemIF.src = url; elemIF.style.display = "none"; document.body.appendChild(elemIF); //let a = document.createElement('a'); //a.setAttribute('download', ''); //a.setAttribute('href', arr[i]); //a.click(); } } }); }; //產生盤查表 $scope.toGenerateLCAdataReport = function () { console.log('toGenerateLCAdataReport'); LCADetailCacheService.GenerateLCAdataReport($routeParams.LCAID).then(res => { console.log('GenerateLCAdataReport',res); if (res != null) { let arr = res.slice(1, res.length - 1).split(','); for (let i = 0; i < arr.length; i++) { var url = arr[i]; var elemIF = document.createElement("iframe"); elemIF.src = url; elemIF.style.display = "none"; document.body.appendChild(elemIF); } } }); }; //產生清冊 $scope.toGenerateLCAlistReport = function () { console.log('toGenerateLCAlistReport'); LCADetailCacheService.GenerateLCAlistReport($routeParams.LCAID).then(res => { console.log('GenerateLCAlistReport'); if (res != null) { let arr = res.slice(1, res.length - 1).split(','); for (let i = 0; i < arr.length; i++) { var url = arr[i]; var elemIF = document.createElement("iframe"); elemIF.src = url; elemIF.style.display = "none"; document.body.appendChild(elemIF); } } }); }; //產生報告書 $scope.toGenerateLCAreport = function () { LCADetailCacheService.GenerateLCAreport($routeParams.LCAID).then(res => { console.log('產生報告書1', res); if (res != null) { let arr = res.slice(1, res.length - 1).split(','); for (let i = 0; i < arr.length; i++) { var url = arr[i]; var elemIF = document.createElement("iframe"); elemIF.src = url; elemIF.style.display = "none"; document.body.appendChild(elemIF); } } }); }; //產生合併清冊 $scope.toGenerateMergedLCAlistReport = function () { LCADetailCacheService.GenerateMergedLCAlistReport($routeParams.LCAID).then(res => { if (res != null) { let arr = res.slice(1, res.length - 1).split(','); for (let i = 0; i < arr.length; i++) { var url = arr[i]; var elemIF = document.createElement("iframe"); elemIF.src = url; elemIF.style.display = "none"; document.body.appendChild(elemIF); } } }); }; //產生合併報告書 $scope.toGenerateMergedLCAreport = function () { LCADetailCacheService.GenerateMergedLCAreport($routeParams.LCAID).then(res => { if (res != null) { let arr = res.slice(1, res.length - 1).split(','); for (let i = 0; i < arr.length; i++) { var url = arr[i]; var elemIF = document.createElement("iframe"); elemIF.src = url; elemIF.style.display = "none"; document.body.appendChild(elemIF); } } }); }; $scope.reportUploadOption = {}; $scope.uploadZipReport = function (id, isProductLCA) { //console.log('id',id) var selectedFiles = {}; $scope.reportUploadOption.show = true; let p0 = document.getElementById("upload-file-result-msg"); if (p0 != null) p0.innerHTML = ""; $scope.reportUploadOption.selectFile = function (files) { selectedFiles = files; }; $scope.uploadZipReportPost = function () { var formData = new FormData(); formData.append('file', selectedFiles); formData.append('lcaId', id); let p0 = document.getElementById("upload-file-result-msg"); if (p0 != null) p0.innerHTML = ""; // to do: Should refactor $http.post($scope.baseUrl+'/api/UploadLcaFiles/' + isProductLCA, formData, { transformRequest: angular.identity, headers: { 'Content-Type': undefined } }).success(function (data) { if (data != null) { let p = document.getElementById("upload-file-result-msg"); if (p != null) { p.innerHTML = data.Msg != null ? data.Msg : ""; if (data.Success == true) { document.getElementById("upload-file-result-msg").style.color = "green"; } else { document.getElementById("upload-file-result-msg").style.color = "red"; } } } }).error(function (data, status) { //console.log(status); }); }; }; $scope.downloadZipReport = function (id) { LCADetailCacheService.downloadZipReport(id).then(res => { if (res != null) { let url = res.slice(1, res.length - 1); if (url != "") { //for (let i = 0; i < arr.length; i++) { let a = document.createElement('a'); a.setAttribute('download', ''); a.setAttribute('href', url); a.click(); //} } } }); }; $scope.templateImportOption = {}; //End LCADetailCacheService.getLCADetailAsync($routeParams.LCAID).then( function (data) { //detailtype 目前是由sidebar.js 中的items 定義 if ($routeParams.DetailType == 'Detail') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-Detail'; } else if ($routeParams.DetailType == 'BOM') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-BOM'; } else if ($routeParams.DetailType == 'HighLevelAnalyze') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-HighLevelAnalyze'; } else if ($routeParams.DetailType == 'DirectMaterial') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-DirectMaterial'; } else if ($routeParams.DetailType == 'InDirectMaterial') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-InDirectMaterial'; } else if ($routeParams.DetailType == 'WrapMaterial') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-WrapMaterial'; } else if ($routeParams.DetailType == 'WorkHour') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-WorkHour'; } else if ($routeParams.DetailType == 'PowerUsage') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-PowerUsage'; } else if ($routeParams.DetailType == 'WaterUsage') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-WaterUsage'; } else if ($routeParams.DetailType == 'Waste') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-Waste'; } else if ($routeParams.DetailType == 'WasteWater') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-WasteWater'; } else if ($routeParams.DetailType == 'Transport') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-Transport'; } else if ($routeParams.DetailType == 'WasteTransport') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-WasteTransport' } else if ($routeParams.DetailType == 'Vehicle') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-Vehicle'; } else if ($routeParams.DetailType == 'GasolineEquipment') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-GasolineEquipment'; } else if ($routeParams.DetailType == 'Kitchen') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-Kitchen'; } else if ($routeParams.DetailType == 'Refrigerant') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-Refrigerant'; } else if ($routeParams.DetailType == 'FireEquipment') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-FireEquipment'; } else if ($routeParams.DetailType == 'SteamUsage') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-SteamUsage'; } else if ($routeParams.DetailType == 'OtherCompound') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-OtherCompound'; } else if ($routeParams.DetailType == 'ProductUsageStage') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-ProductUsageStage'; } else if ($routeParams.DetailType == 'AbandonedStage') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-AbandonedStage'; } else if ($routeParams.DetailType == 'RiskAssmtLayout') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-RiskAssmtLayout'; } else if ($routeParams.DetailType == 'Report') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-Report'; } else if ($routeParams.DetailType == 'EmployeeCommuting') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-EmployeeCommuting'; } else if ($routeParams.DetailType == 'MaterialTransport') { $scope.IncludeTemplate = CONSTANTS.PB + 'LCA-DetailSurveyForm-MaterialTransport'; } else { $scope.IncludeTemplate = CONSTANTS.PB+ '/Partials/NotFound' } }); if ($routeParams.SearchText) { $scope.searchText = $routeParams.SearchText } // sheetHeader model $scope.sheetHeader = {}; // sheet Header Form $scope.sheetHeaderForm = { editable: false, resultMsg: '' }; // save sheetHeader $scope.saveSheetHeader = function () { $scope.isCheckOnce = true; if ($scope.headerForm.$invalid) return; $scope.sheetHeaderForm.resultMsg = ''; var newSheetHeader = $scope.sheetHeader; newSheetHeader.LCAID = $routeParams.LCAID; $http.post($scope.baseUrl+'/api/' + $routeParams.DetailType + '/SaveSheetHeader', newSheetHeader) .success(function (data) { $scope.sheetHeaderForm.resultMsg = resource['UpdateSuccess']; }) .error(function (error) { $scope.cancelEditSheetHeader(); $scope.sheetHeaderForm.resultMsg = resource['UpdateFail']; //console.log(error); }) .finally(function () { // set timeout $timeout(function () { $scope.sheetHeaderForm.resultMsg = '' }, 3000); // switch to uneditable $scope.sheetHeaderForm.editable = false; }); } // edit sheetheader $scope.editSheetHeader = function () { $scope.tempSheetHeader = angular.copy($scope.sheetHeader); $scope.sheetHeaderForm.editable = true; } // canael edit sheetheader $scope.cancelEditSheetHeader = function () { $scope.headerForm.$setPristine(); $scope.sheetHeader = angular.copy($scope.tempSheetHeader); $scope.sheetHeaderForm.editable = false; } }]);