demo20230512/Browser_Local/js/LCA/LCADetailLayoutController.js

349 lines
16 KiB
JavaScript
Raw Normal View History

2023-05-12 10:20:28 +08:00
/*
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;
}
}]);