349 lines
16 KiB
JavaScript
349 lines
16 KiB
JavaScript
/*
|
|
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;
|
|
}
|
|
}]);
|