/* Logic Solution WeeeCarbonFootprint Template Directive obsoleted not in use now */ var arr = window.location.href.split("/"); if (arr[3].indexOf('app') == 0) baseUrl = ''; else baseUrl = '/' + arr[3]; angular.module('View.Directive') .directive('headerContent', function (CONSTANTS) { return { restrict: 'E', replace: true, controller: function ($scope, $routeParams, $resource, $route, $cookieStore, $timeout, SURVEY_TABLE_MODEL, Survey_Data_Service, Redirect, $filter) { var MyLCAdata = Survey_Data_Service.API; var redirect = new Redirect(); var order_items = SURVEY_TABLE_MODEL.SURVEY_FORM_CONFIG; $scope.headerImageChange = function (sn, m) { var k = 'header_image' + sn; var s = 'show' + sn; this[k] = 'url(\'' + baseUrl + '/Browser_Local/img/' + k + '_' + m + '.png\')'; if (m == 1) this[s] = false; if (m == 2) this[s] = true; } for (var h = 0; h < CONSTANTS.HeaderContent.length; h++) { $scope.headerImageChange(h + 1, 1); } $scope.HeaderContent = CONSTANTS.HeaderContent; $scope.tooltipWidth = function (n) { if (typeof CONSTANTS != 'undefined' && typeof CONSTANTS.HeaderContent != 'undefined' && n <= CONSTANTS.HeaderContent.length) { var char_length = countLength(CONSTANTS.HeaderContent[n - 1]); var space_length = 0; var temp = CONSTANTS.HeaderContent[n - 1].substr(0); while (temp.indexOf(' ') > -1) { temp = temp.substr(temp.indexOf(' ') + 1); space_length++; } // 字體 10px, 字距 2px return char_length * 5 + (char_length - space_length - 1) * 2 + space_length * 10 + 15 + 8 + 'px'; } } $scope.Add = function () { $scope.Table_Add_State = true; $scope.show_table_edit = true; $scope.Enable_Add_Child = false; var roi = $routeParams.OrderItem; if (roi != 'WorkHour' && roi != 'PowerUsage' && roi != 'WaterUsage' && roi != 'SteamUsage') { // 橫向編輯 $scope.Table_Edit_State = true; $scope.targetColumn = 0; $scope.targetTable = 0; var _st = $scope.Survey_Table[$scope.targetTable]; $scope.targetRow = typeof _st.Data_Row != 'undefined' ? _st.Data_Row.length : 0; var _tdr = $scope.targetRow; if (_tdr == 0) _st.Data_Row = []; var _dr = _st.Data_Row; _dr.push([]); _dr[_tdr].rowDone = true; _dr[_tdr].ID = 0; _dr[_tdr].No = _tdr + 1; _dr[_tdr].Data_Row_Edit = {}; if (roi == 'Vehicle') { _dr[_tdr].Typeselect = CONSTANTS.Type; } else if (roi.indexOf('High') > -1) { _dr[_tdr].MaterialTypeselect = CONSTANTS.MaterialType; } for (var t = 0, _t = _st.Table_Header; t < _st.Table_Header.length; t++) { var keyname = setKeyTitle(_t[t].Keys); _dr[_tdr].Data_Row_Edit[keyname] = {}; _dr[_tdr].Data_Row_Edit[keyname].data = null; _dr[_tdr].Data_Row_Edit[keyname].edit = true; _dr[_tdr].Data_Row_Edit[keyname].required = false; if (keyname == 'Unit' && (roi.indexOf('LCI') > -1 || roi.indexOf('High') > -1)) { _dr[_tdr][keyname] = undefined; _dr[_tdr][keyname + 'select'] = setSelectOptions($scope[roi + 'UnitOptions']); } } if (typeof _dr[_tdr].Data_Row_Edit.No != 'undefined') { _dr[_tdr].Data_Row_Edit.No.data = _tdr + 1; } // 非Material跟有月份之外的頁面 var option_name = roi + 'Options'; if (roi.indexOf('LCI') > -1 || roi.indexOf('High') > -1) { setDataRowSelectOption(_st.Table_Header, _dr[_tdr], $scope[roi + 'Options'], CONSTANTS, $scope[roi + 'UnitOptions'], $scope.Supplier); _dr[_tdr].SupplierCompanyselect = setSelectOptions($scope.Supplier); } else if (roi != 'Refrigerant') { setDataRowSelectOption(_st.Table_Header, _dr[_tdr], $scope[roi + 'Options'], CONSTANTS, null); } else { setDataRowSelectOption(_st.Table_Header, _dr[_tdr], $scope[roi + 'Options1'], CONSTANTS, $scope[roi + 'Options2']); } setDataRowSelectValue(_st.Table_Header, _dr[_tdr], CONSTANTS, { 1: undefined, 2: undefined }, { 1: undefined, 2: undefined }, $scope.Supplier); var div = document.getElementsByClassName('survey_form_outer_wrap')[0]; if (typeof div.scrollHeight != 'undefined' && div.scrollHeight > 595) { $timeout(function () { div.scrollTop = div.scrollHeight - 595 + 29; }, 200); } $scope.dr = _dr[_tdr]; } } $scope.AddChild = function () { $scope.Table_Edit_State = true; $scope.Enable_Add_Child = false; $scope.Table_Child_Edit_State = true; $scope.Table_Child_Add_State = true; $scope.show_table_edit = true; $scope.targetColumn = 0; $scope.targetTable = 0; var _tdr = $scope.targetRow; var _st = $scope.Survey_Table[$scope.targetTable]; var _dr = _st.Data_Row; var roi = $scope.current_item; _dr[_tdr].child_expand = true; _dr[_tdr].rowDone = true; if (typeof _dr[_tdr].ChildMaterials == 'undefined') { $scope.targetChildRow = 0; _dr[_tdr].ChildMaterials = [{ ID: 0, Data_Row_Edit: {} }]; } else { $scope.targetChildRow = _dr[_tdr].ChildMaterials.length; _dr[_tdr].ChildMaterials.push({ ID: 0, Data_Row_Edit: {} }); } for (var d in _dr[_tdr]) { if (d != 'ChildMaterials' && d != 'Data_Row_Edit' && d != 'ID') { _dr[_tdr].ChildMaterials[_dr[_tdr].ChildMaterials.length - 1][d] = null; _dr[_tdr].ChildMaterials[_dr[_tdr].ChildMaterials.length - 1].Data_Row_Edit[d] = {}; _dr[_tdr].ChildMaterials[_dr[_tdr].ChildMaterials.length - 1].Data_Row_Edit[d].data = null; _dr[_tdr].ChildMaterials[_dr[_tdr].ChildMaterials.length - 1].Data_Row_Edit[d].edit = true; _dr[_tdr].ChildMaterials[_dr[_tdr].ChildMaterials.length - 1].Data_Row_Edit[d].required = false; } for (var t = 0, _t = _st.Table_Header; t < _st.Table_Header.length; t++) { var keyname = setKeyTitle(_t[t].Keys); if (keyname == 'Unit') { _dr[_tdr].ChildMaterials[_dr[_tdr].ChildMaterials.length - 1][keyname] = undefined; _dr[_tdr].ChildMaterials[_dr[_tdr].ChildMaterials.length - 1][keyname + 'select'] = setSelectOptions($scope[roi + 'UnitOptions']); } else if (keyname == 'DQI') { _dr[_tdr].ChildMaterials[_dr[_tdr].ChildMaterials.length - 1][keyname] = undefined; _dr[_tdr].ChildMaterials[_dr[_tdr].ChildMaterials.length - 1][keyname + 'select'] = CONSTANTS.DQI; } else if (keyname == 'ParameterType') { _dr[_tdr].ChildMaterials[_dr[_tdr].ChildMaterials.length - 1][keyname] = undefined; _dr[_tdr].ChildMaterials[_dr[_tdr].ChildMaterials.length - 1][keyname + 'select'] = setSelectOptions($scope[roi + 'Options']); } } } _dr[_tdr].ChildMaterials[_dr[_tdr].ChildMaterials.length - 1].isChild = true; $scope.dr = _dr[_tdr].ChildMaterials[_dr[_tdr].ChildMaterials.length - 1]; var div = document.getElementsByClassName('survey_form_outer_wrap')[0]; if (typeof div.scrollHeight != 'undefined' && div.scrollHeight > 595) { $timeout(function () { div.scrollTop = div.scrollHeight - 595 + 29; }, 200); } } $scope.Edit = function () { var _tth = typeof $scope.targetColumn != 'undefined' ? $scope.targetColumn : -1; var _tdr = typeof $scope.targetRow != 'undefined' ? $scope.targetRow : -1; var _tdcr = typeof $scope.targetChildRow != 'undefined' ? $scope.targetChildRow : -1; var _st = typeof $scope.Survey_Table[$scope.targetTable] != 'undefined' ? $scope.Survey_Table[$scope.targetTable] : -1; var roi = $routeParams.OrderItem; if ($scope.Table_Edit_State || $scope.Table_Child_Edit_State) { alert(CONSTANTS.AlertMessage[13]); return false; } if (_tth > -1 && (_tdr > -1 || _tdcr > -1)) { $scope.Table_Edit_State = true; if (roi == 'WorkHour' || roi == 'PowerUsage' || roi == 'WaterUsage' || roi == 'SteamUsage') { // 垂直向編輯 $scope.tempname = roi + 'Tmp'; $scope[$scope.tempname] = []; var year_row = 1; if (roi == 'PowerUsage') year_row = 5; for (var dt = 0; dt < $scope.tempcount; dt++) { $scope[$scope.tempname].push(typeof _st.Data_Row[dt][_st.Table_Header[_tth].Keys[0]] != 'undefined' ? _st.Data_Row[dt][_st.Table_Header[_tth].Keys[0]] : 0); } $scope[$scope.tempname].push(typeof _st.Data_Row[year_row][_st.Table_Header[_tth].Keys[0]] != 'undefined' ? _st.Data_Row[year_row][_st.Table_Header[_tth].Keys[0]] : null); for (var d = 0, _dr = _st.Data_Row; d < _st.Data_Row.length; d++) { for (var dre in _dr[d].Data_Row_Edit) { if (dre == _st.Table_Header[_tth].Keys[0]) { _dr[d].Data_Row_Edit[dre].edit = true; _dr[d].Data_Row_Edit[dre].data = _dr[d][dre]; break; } } } } else { // 橫向編輯 var _dr = _st.Data_Row; var _td = _tdr; if (typeof _tdcr != 'undefined' && _tdcr != -1) { _dr = _st.Data_Row[_tdr].ChildMaterials; _td = _tdcr; } for (var d = 0; d < _st.Data_Row.length; d++) { if (d == _td) { _dr[d].rowDone = true; for (var dre in _dr[d].Data_Row_Edit) { _dr[d].Data_Row_Edit[dre].edit = true; for (var th = 0, _th = _st.Table_Header; th < _st.Table_Header.length; th++) { _dr[d].Data_Row_Edit[dre].data = _dr[d][dre]; } } $scope.dr = _dr[d]; $scope.show_table_edit = true; break; } } } } } $scope.Cancel = function () { var _tth = $scope.targetColumn; var _tdr = $scope.targetRow; var _st = $scope.Survey_Table[$scope.targetTable]; var roi = $scope.current_item; if ((typeof $scope.Table_Child_Add_State == 'undefined' || !$scope.Table_Child_Add_State || typeof $scope.Table_Child_Edit_State == 'undefined' || !$scope.Table_Child_Edit_State) && (typeof $scope.targetChildRow == 'undefined' || $scope.targetChildRow == -1)) { if (typeof _tdr != 'undefined' && _tdr != -1) { if (typeof $scope.Table_Add_State == 'undefined' || !$scope.Table_Add_State) { for (var d = 0, _dr = _st.Data_Row; d < _st.Data_Row.length; d++) { if (roi == 'WorkHour' || roi.indexOf('Usage') > -1) { for (var dr in _dr[d]) { if (dr.indexOf('select') > -1) { _dr[d][_st.Table_Header[_tth].Keys[0]] = null; break; } } for (var dre in _dr[d].Data_Row_Edit) { _dr[d].Data_Row_Edit[dre].edit = false; _dr[d].rowDone = false; } } else { if (d == _tdr) { for (var dre in _dr[d].Data_Row_Edit) { _dr[d].Data_Row_Edit[dre].edit = false; _dr[d].rowDone = false; } } } } } else { _st.Data_Row.splice($scope.targetRow, 1); } } } else { if (typeof $scope.Table_Child_Add_State == 'undefined' || !$scope.Table_Child_Add_State) { var _tdcr = $scope.targetChildRow; for (var dre in _st.Data_Row[_tdr].ChildMaterials[_tdcr].Data_Row_Edit) { _st.Data_Row[_tdr].ChildMaterials[_tdcr].Data_Row_Edit[dre].edit = false; _st.Data_Row[_tdr].ChildMaterials[_tdcr].rowDone = false; } } else { _st.Data_Row[$scope.targetRow].ChildMaterials.splice($scope.targetChildRow, 1); } } resetLCAState($scope); } $scope.Delete = function () { var _tth = typeof $scope.targetColumn != 'undefined' ? $scope.targetColumn : -1; var _tdr = typeof $scope.targetRow != 'undefined' ? $scope.targetRow : -1; var _st = typeof $scope.Survey_Table[$scope.targetTable] != 'undefined' ? $scope.Survey_Table[$scope.targetTable] : -1; var roi = $scope.current_item; if (!$scope.Table_Edit_State && _tth != -1 && _tdr != -1) { if (roi == 'WorkHour' || roi == 'PowerUsage' || roi == 'WaterUsage' || roi == 'SteamUsage') { // 垂直向編輯 沒有刪除功能 } else { // 橫向編輯 loadingDisable($timeout, $scope, true); for (var d = 0, _dr = _st.Data_Row; d < _st.Data_Row.length; d++) { if (d == _tdr) { if (roi.indexOf('LCI') > -1 || roi.indexOf('High') > -1) { roi = 'Material'; var action = 'Delete' + roi; var LCAID = typeof $cookieStore.get('LCAID') != 'undefined' ? $cookieStore.get('LCAID') : $scope.product_survey.LCA.ID; Delete(MyLCAdata, null, roi, action, LCAID, _st.Data_Row[_tdr].ID).then(function (response) { _st.Data_Row.splice(d, 1); loadingDisable($timeout, $scope, false); }); } else { var action = 'Delete' + roi; Delete(MyLCAdata, null, roi, action, _st.Data_Row[_tdr].ID).then(function (response) { _st.Data_Row.splice(d, 1); loadingDisable($timeout, $scope, false); }); } break; } } } } resetLCAState($scope); } $scope.Done = function () { $scope.isCheckOnce = true; var _tth = $scope.targetColumn; var _tdr = $scope.targetRow; var _tdcr = $scope.targetChildRow; var _tb = $scope.targetTable; var _st = $scope.Survey_Table[_tb]; var roi = $scope.current_item; var LCAID = typeof $cookieStore.get('LCAID') != 'undefined' ? $cookieStore.get('LCAID') : $scope.product_survey.LCA.ID; var send_data = {}; if (roi == 'WorkHour' || roi == 'PowerUsage' || roi == 'WaterUsage' || roi == 'SteamUsage') { // 垂直向編輯 // 若沒有填任何資料,則不送回 Server // 若將數據都改成 0,還是要送回 Server,一樣算"有變動" // 除數據需填以外,亦須選擇年份才算資料填寫完成 var action = 'Save' + roi; var hasedit = false; for (var dt = 0; dt < $scope.tempcount; dt++) { if ($scope[$scope.tempname][dt] != _st.Data_Row[dt].Data_Row_Edit[_st.Table_Header[_tth].Keys[0]].data) { hasedit = true; break; } } var year_row = 1; if (roi != 'WorkHour') { if (roi == 'PowerUsage') year_row = 5; if (_st.Data_Row[year_row][_st.Table_Header[_tth].Keys[0]] == null) { hasedit = false; } else { if ($scope[$scope.tempname][$scope[$scope.tempname].length - 1] != _st.Data_Row[year_row][_st.Table_Header[_tth].Keys[0]]) { hasedit = true; } } } if (hasedit) { // Front End Data var _dr = _st.Data_Row; for (var d = 0; d < $scope.tempcount; d++) { _dr[d][_st.Table_Header[_tth].Keys[0]] = _dr[d].Data_Row_Edit[_st.Table_Header[_tth].Keys[0]].data; } for (var th = 0, _th = _st.Table_Header; th < _st.Table_Header.length - 1; th++) { var keyname = setKeyTitle(_th[th].Keys); for (var l = 0, lft = Setkeys(_st.Table_Left_Title) ; l < Setkeys(_st.Table_Left_Title).length; l++) { if (lft[l] == 'WorkRatio') { _dr[l - 1][keyname] = _dr[2][keyname] / 8; } else if (lft[l] == 'TotalHour') { _dr[l - 1][keyname] = _dr[0][keyname] * _dr[1][keyname] * _dr[2][keyname]; } else if (lft[l] == 'TotalPower') { _dr[l - 1][keyname] = _dr[0][keyname] + _dr[1][keyname] + _dr[2][keyname] + _dr[3][keyname]; } } } for (var d = 0; d < caculateTotal(_st).length; d++) { if (Setkeys(_st.Table_Left_Title)[d + 1] != 'Area' && Setkeys(_st.Table_Left_Title)[d + 1] != 'Year') { _dr[d].Total = Math.round(caculateTotal(_st)[d] * 100) / 100; } } var all_data = []; for (var s = 0; s <= _tb; s++) { for (var d = 0; d < $scope.Survey_Table[s].Data_Row.length; d++) { all_data.push($scope.Survey_Table[s].Data_Row[d]); } } // Server Data send_data = setMonthlyTableSendData($scope, _tb, _tth, all_data); send_data.ID = _st.Table_Header[_tth].ID; send_data.Area = $scope.Usage_Area_Selected; send_data.LCAID = LCAID; if (roi != 'WorkHour') { send_data.Year = _st.Data_Row[year_row][_st.Table_Header[_tth].Keys[0]]; var options = $scope[roi + 'Options']; send_data.ParameterID = parseInt(options[send_data.Area][Setkeys(options[send_data.Area])[0]][send_data.Year][0]); } if (typeof _st.Table_Header[_tth].ReferenceFileLink != 'undefined') { send_data.ReferenceFileLink = _st.Table_Header[_tth].ReferenceFileLink; } console.log(send_data); loadingDisable($timeout, $scope, true); Save(MyLCAdata, send_data, roi, action, send_data.LCAID, send_data.ID).then(function (response) { if (mergeNumber(response) != -1) { for (var d = 0; d < _dr.length; d++) { _dr[d].Data_Row_Edit[setKeyTitle(_st.Table_Header[_tth].Keys)].edit = false; } resetLCAState($scope); loadingDisable($timeout, $scope, false); if ($scope.MonthlyTableSelectArea) { $scope.MonthlyTableSelectArea = false; $route.reload(); } } }); } else { _st.Data_Row[year_row].error_list = []; for (var t = 0; t < _st.Table_Header.length; t++) { if (t != _tth) _st.Data_Row[year_row].error_list.push(false); else _st.Data_Row[year_row].error_list.push(true); } } } else { // 橫向編輯 var _dr = _st.Data_Row; var _tr = -1; var parent_material = null; if (!$scope.Table_Child_Add_State && (typeof $scope.targetChildRow == 'undefined' || $scope.targetChildRow == -1)) { _tr = _tdr; if (typeof _dr[_tr].No != 'undefined') _dr[_tr].No = _tr + 1; } else { _dr = _st.Data_Row[_tdr].ChildMaterials; parent_material = _st.Data_Row[_tdr]; _tr = _tdcr; } // 先判斷是否必填的都填了 var data_row = typeof $scope.dr != 'undefined' ? $scope.dr : _dr[_tr]; if (!checkTableEditValidation(data_row, _st.Table_Header)) return false; send_data.ID = _dr[_tr].ID != null ? _dr[_tr].ID : 0; for (var t = 0, _th = _st.Table_Header; t < _st.Table_Header.length; t++) { var keyname = setKeyTitle(_th[t].Keys); if (_th[t].Type != 'select') { for (var dre in _dr[_tr].Data_Row_Edit) { if (dre == keyname) { _dr[_tr][keyname] = _dr[_tr].Data_Row_Edit[dre].data; break; } } } } if (roi == 'Waste' && $scope.radio_id == 0) { if (_dr[_tr].Data_Row_Edit['WaterBOD'].data == null) _dr[_tr].Data_Row_Edit.WaterBOD.data = 0; _dr[_tr].WaterBOD = _dr[_tr].Data_Row_Edit.WaterBOD.data; if (_dr[_tr].Data_Row_Edit['WaterCOD'].data == null) _dr[_tr].Data_Row_Edit.WaterCOD.data = 0; _dr[_tr].WaterCOD = _dr[_tr].Data_Row_Edit.WaterCOD.data; } // Server Data for (var dre in _dr[_tr]) send_data[dre] = _dr[_tr][dre]; send_data.DQI = getCONSTANTSIndex(CONSTANTS, 'DQI', _dr[_tr].DQI); if (parent_material != null) send_data.ParentMaterialID = parent_material.ID; if (typeof _dr[_tr].InputParameterValue != 'undefined' && _dr[_tr].InputParameterValue != null) { _dr[_tr].KgCO2e = _dr[_tr].Quantity * _dr[_tr].InputParameterValue * _dr[_tr].Scalar; send_data.KgCO2e = _dr[_tr].KgCO2e; } else { if (_dr[_tr].ParameterID != null) { if (_dr[_tr].ParameterValue != null) { _dr[_tr].KgCO2e = _dr[_tr].Quantity * _dr[_tr].ParameterValue * _dr[_tr].Scalar; send_data.KgCO2e = _dr[_tr].KgCO2e; } } else { _dr[_tr].KgCO2e = 0; send_data.KgCO2e = 0; } } if (roi.indexOf('LCI') > -1 || roi.indexOf('High') > -1) send_data.HighLevelAnalyzeResult = send_data.KgCO2e; send_data.LCAID = LCAID; //var check_filled = checkFilled(_dr[_tr], _st.Table_Header); //if (check_filled.all_filled) { if (roi.indexOf('LCI') > -1 || roi.indexOf('High') > -1) { if (roi == 'LCI_Direct_Material') { send_data.MaterialType = 0; } else if (roi == 'LCI_Indirect_Material') { send_data.MaterialType = 1; } else if (roi == 'LCI_Wrap_Material') { send_data.MaterialType = 2; } else if (roi.indexOf('High') > -1) { send_data.MaterialType = getCONSTANTSIndex(CONSTANTS, 'MaterialType', send_data.MaterialType); if (send_data.MaterialType == 1) { if (send_data.Quantity == null) { _dr[_tr].Quantity = 0; send_data.Quantity = 0; } } } if (typeof _dr[_tr].InputParameterValue != 'undefined' && _dr[_tr].InputParameterValue != null && _dr[_tr].InputParameterValue != '') { _dr[_tr].KgCO2e = _dr[_tr].Quantity * _dr[_tr].InputParameterValue * _dr[_tr].Scalar; send_data.KgCO2e = _dr[_tr].KgCO2e; } if (typeof send_data.ParameterType != 'undefined' && send_data.ParameterType != '' && send_data.ParameterType != null) { send_data.ParameterTypeID = $scope[roi + 'Options'][send_data.ParameterType][send_data.ParameterType][0]; } if (typeof send_data.SupplierCompany != 'undefined' && send_data.SupplierCompany != '' && send_data.SupplierCompany != null) { send_data.SupplierCompanyID = $scope.Supplier[send_data.SupplierCompany].ID; } console.log(send_data); loadingDisable($timeout, $scope, true); Save(MyLCAdata, send_data, 'Material', 'SaveMaterial', send_data.LCAID, send_data.ID).then(function (response) { console.log(response); if (mergeNumber(response) != -1) { _dr[_tr].ID = mergeNumber(response); _dr[_tr].rowDone = false; resetLCAState($scope, _tr); } $scope.show_table_edit = false; loadingDisable($timeout, $scope, false); }); } else { var controller = roi; if (roi == 'Waste') { for (var t = 0, _th = _st.Table_Header; t < _st.Table_Header.length; t++) { if (setKeyTitle(_th[t].Keys) == 'WaterBOD') { calculateWasteWaterScalar(_dr[_tr].Data_Row_Edit); break; } } _dr[_tr].Scalar = _dr[_tr].Data_Row_Edit.Scalar.data; send_data.Scalar = _dr[_tr].Data_Row_Edit.Scalar.data; } else if (roi == 'Vehicle') { _dr[_tr].Type = getCONSTANTSIndex(CONSTANTS, 'Type', _dr[_tr].Type); } else if (roi == 'Refrigerant') { send_data.ParameterID = parseInt($scope[roi + 'Options1'][send_data.RefrigerantType][send_data.RefrigerantType][0]); send_data.ParameterID2 = parseInt($scope[roi + 'Options2'][send_data.EquipmentType][send_data.EquipmentType][0]); } else { } if (roi != 'Refrigerant') setParameterID(send_data, $scope); var action = 'Save' + controller; for (var t = 0, _th = _st.Table_Header; t < _st.Table_Header.length; t++) { // 轉換 Select Tag 選項 string to int var keyname = setKeyTitle(_th[t].Keys); // Server Data if (keyname != 'DQI') { if (_th[t].Keys.length > 1) { if (typeof send_data[_th[t].Keys[0]] == 'undefined') { send_data[_th[t].Keys[0]] = {}; } send_data[_th[t].Keys[0]][_th[t].Keys[1]] = _dr[_tr][keyname]; } else { send_data[keyname] = _dr[_tr][keyname]; } } } if (typeof $scope.radio_id != 'undefined') { send_data.Type = $scope.radio_id; } setUncommonData(roi, _dr[_tr], send_data, CONSTANTS); console.log(send_data); if (roi != 'Refrigerant') { var pid = -1; for (var sda in send_data) { if (sda.indexOf('ParameterID') > -1) { pid = send_data[sda]; break; } } loadingDisable($timeout, $scope, true); Save(MyLCAdata, [pid], 'Parameter', 'getParameterValues').then(function (response) { _dr[_tdr].KgCO2e = _dr[_tdr].Scalar * response.value[pid]; send_data.KgCO2e = _dr[_tdr].KgCO2e; }) .then(function () { Save(MyLCAdata, send_data, controller, action, send_data.LCAID, send_data.ID).then(function (response) { if (mergeNumber(response) != -1) { _dr[_tr].ID = mergeNumber(response); _dr[_tr].rowDone = false; resetLCAState($scope, _tr); } $scope.show_table_edit = false; loadingDisable($timeout, $scope, false); }); }); } else { var pid1 = send_data.ParameterID != null ? send_data.ParameterID : -1; var pid2 = send_data.ParameterID2 != null ? send_data.ParameterID2 : -1; if (pid1 != -1 && pid2 != -1) { var date_range = getDataRange($scope.product_survey.LCA, CONSTANTS); var pv1 = 0; var pv2 = 0; loadingDisable($timeout, $scope, true); Save(MyLCAdata, [pid1], 'Parameter', 'getParameterValues').then(function (response) { if (response.value[pid1] != -1) { pv1 = response.value[pid1]; }; return pv1; }) .then(function () { return Save(MyLCAdata, [pid2], 'Parameter', 'getParameterValues').then(function (response) { if (response.value[pid2] != -1) { pv2 = response.value[pid2]; _st.Data_Row[_tdr].KgCO2e = send_data.Scalar * pv1 * pv2 * date_range; send_data.KgCO2e = _st.Data_Row[_tdr].KgCO2e; } }); }) .then(function () { console.log(send_data); Save(MyLCAdata, send_data, controller, action, send_data.LCAID, send_data.ID).then(function (response) { if (mergeNumber(response) != -1) { _dr[_tr].ID = mergeNumber(response); _dr[_tr].rowDone = false; resetLCAState($scope, _tr); } $scope.show_table_edit = false; loadingDisable($timeout, $scope, false); }); }); } } } //} else { // // 資料輸入不正確或未填 // _dr[_tr].error_list = check_filled.error_list; //} } } $scope.parentCantEdit = function () { var roi = $scope.current_item; if (typeof roi != 'undefined' && typeof $scope.LCA_Status_Now != 'undefined') { if ((roi.indexOf('LCI') > -1 || roi.indexOf('High') > -1) && ($scope.LCA_Status_Now > 0 && $scope.LCA_Status_Now != 3)) { if (typeof $scope.targetChildRow != 'undefined' && $scope.targetChildRow != -1) return false; else return true; } } return false; } $scope.undelete = function () { var roi = $scope.current_item; if (typeof roi != 'undefined') { if ((roi.indexOf('LCI') > -1 || roi.indexOf('High') > -1) && ($scope.LCA_Status_Now > 0 && $scope.LCA_Status_Now != 3)) return false; else return true; } } $scope.enableAdd = function () { var roi = $scope.current_item; var LSN = $scope.LCA_Status_Now; if (typeof roi != 'undefined') { if ((roi.indexOf('LCI') > -1 || roi.indexOf('High') > -1) && LSN != 0 && LSN != 3) return false; else if (roi.indexOf('High') > -1 && LSN > 0) return false; else return true; } } $scope.DownloadCSV = function () { var csv = '\uFEFF'; var roi = $scope.current_item; var data_response_name = getCacheName(roi); var LCAID = typeof $cookieStore.get('LCAID') != 'undefined' ? $cookieStore.get('LCAID') : $scope.product_survey.LCA.ID; var api_config = { Controller: roi, Action: 'Get' + roi + 's', pa1: LCAID }; if (roi.indexOf('LCI') > -1 || roi.indexOf('High') > -1) { api_config.Controller = 'Material'; api_config.Action = 'GetMaterials'; } MyLCAdata.get(api_config, { isArray: false }).$promise.then(function (response) { setTableSelectOptionsToScope(response, $scope); for (var st = 0, _st = $scope.Survey_Table; st < $scope.Survey_Table.length; st++) { var all_header = $scope.oi[$scope.current_item_id].Table_Header[st]; var table_header = []; var table_row = []; var radio = [$scope.current_item]; if (typeof _st[st].item_radio_content != 'undefined') { radio = []; for (var rad in _st[st].item_radio_content[0]) { radio.push(rad); } } for (var r = 0; r < radio.length; r++) { table_header = setRadioSingleHeader(all_header, radio, r); if (roi == 'WorkHour' || roi.indexOf('Usage') > -1) { table_row = setCSVSingleRow(roi, _st[st].Data_Row, table_header, r); } else { table_row = setCSVSingleRow(roi, $scope[data_response_name], table_header, r); } setSelect(roi, $scope, CONSTANTS, table_row, table_header, r); csv += setCSVSingleTable(_st[st].Table_Left_Title, table_header, table_row, $scope.Supplier); } } var downloadLink = createCSVDownloadLink(csv, $scope.current_item); downloadLink.click(); }); } $scope.showUpload = function () { var lsn = typeof $scope.LCA_Status_Now != 'undefined' ? $scope.LCA_Status_Now : 0; var roi = $scope.current_item; if (lsn == 2) return false; if (lsn == 1 && (roi.indexOf('LCI') > -1 || roi.indexOf('High') > -1)) return false; if (lsn == 3 && roi.indexOf('High') > -1) return false; return true; } $scope.showQuote = function () { } $scope.UploadCSV = function () { var upload = createCSVUploadElement(); upload.onchange = function () { $scope.UploadCSVFiles(this.files); } upload.click(); } $scope.UploadCSVFiles = function (files) { if (confirm(CONSTANTS.AlertMessage[15] + '\n\n ' + files[0].name + '?')) { if (files[0].name.indexOf('.csv') > -1) { var reader = new FileReader(); reader.onload = function (e) { var _st = $scope.Survey_Table; var roi = $scope.current_item; var result = []; // 因為 Description 會有斷行的顯示方式,因此無法使用通用型 split function if (!$scope.Schedule_Table) { result = splitCSVFileData(e.target.result, _st); console.log(result); } else { result = e.target.result.split(/[\r\n]+/g); } // 從header開始解析 var result_header = !$scope.Schedule_Table ? result[0] : CSVtoArray(result[0]); console.log(result_header); var leftheader = checkCSVFileHeader($scope, result_header, CONSTANTS.AlertMessage[0]); if (!leftheader && typeof leftheader == 'boolean') return false; var LCAID = typeof $cookieStore.get('LCAID') != 'undefined' ? $cookieStore.get('LCAID') : $scope.product_survey.LCA.ID; // 無論是否有資料列,下拉式選單必重新讀取 var api_config = setApiConfig(roi, LCAID); var parameter_api_config = api_config.parameter_api_config var delete_api_config = api_config.delete_api_config; var save_all_api_config = api_config.save_all_api_config; // 資料陣列初始化 for (var s = 0; s < _st.length; s++) _st[s].Data_Row = []; var st = -1; var change_table = 0; var radio_count = 0; var null_row = 0; var all_data = []; // 轉換CSV資料給 all_data for (var r = 0; r < result.length; r++) { var monthly_row = 0; var table_header = setCSVSingleHeader($scope, st, radio_count); var row = !$scope.Schedule_Table ? result[r] : CSVtoArray(result[r]); var result_row = checkDataRowforTable(row, _st, st, $scope, leftheader, radio_count); console.log(result_row); var rc = getRadioTableCount(result_row, $scope.oi[$scope.current_item_id]); radio_count += rc.count; if (typeof result_row != 'undefined' && (result_row == null || (rc.check_header || isNullData(result_row, '')))) result_row = null; // 重新擷取標題列 if (typeof result_row != 'undefined' && result_row != null) { if (leftheader > 0) { setCSVDataToDataRow(result_row, r - null_row + st + monthly_row - 1, all_data, table_header, Setkeys(_st[st].Table_Left_Title)[r - change_table], radio_count); if (Setkeys(_st[st].Table_Left_Title)[r - change_table] == 'AverageHourPerDay' || Setkeys(_st[st].Table_Left_Title)[r - change_table] == 'OffPeak') { for (var tlt in _st[st].Table_Left_Title) { if (tlt == 'WorkRatio' || tlt == 'TotalHour' || tlt == 'TotalPower') { monthly_row++; setCSVDataToDataRow(result_row, r - null_row + st + monthly_row - 1, all_data, table_header, tlt); } } } } else { setCSVDataToDataRow(result_row, r - change_table - null_row - 1, all_data, table_header, null, radio_count, $scope.Supplier); } } else if (typeof result_row == 'undefined') { st++; change_table = r; } else if (result_row == null) { null_row++; } } // 將全部資料列加入編輯列,供 Server 存檔使用 // 原先存檔是用 Data_Row,但因為有 Multi-Table 的問題 // 所以在匯入 BOM 表的時候改採用 All_Data for (var s = 0; s < _st.length; s++) { for (var d = 0, _dr = all_data; d < all_data.length; d++) { _dr[d].Data_Row_Edit = SetEditState(_dr[d]); for (var dre in _dr[d].Data_Row_Edit) { _dr[d].Data_Row_Edit[dre].data = _dr[d][dre] != 'undefined' ? _dr[d][dre] : null; } } } // 重新擷取下拉式選單陣列 if (roi != 'WorkHour' && roi.indexOf('Usage') == -1) { var dr = []; if (typeof $scope.radio_id != 'undefined') { for (var r = 0; r < Setkeys($scope.oi[$scope.current_item_id].Radio[0][0]).length; r++) { dr.push([]); for (var d = 0; d < all_data.length; d++) { if (all_data[d].Type == r) dr[r].push(all_data[d]); } } for (var k = 0; k < dr.length; k++) { var table_header = setCSVSingleHeader($scope, 0, dr[k][0].Type); setSelect(roi, $scope, CONSTANTS, dr[k], table_header, dr[k][0].Type); } } else { setSelect(roi, $scope, CONSTANTS, all_data, table_header, $scope.radio_id); } } // 將資料列轉換成送給Server儲存用的send_data_array var send_data_array = []; var send_data_count = 0; var send_data_parameter_ID_array = []; var insert_row = []; for (var s = 0; s < _st.length; s++) { if (roi != 'WorkHour' && roi.indexOf('Usage') == -1) { for (var d = 0, _dr = all_data; d < all_data.length; d++) { var table_header = setCSVSingleHeader($scope, s, _dr[d].Type); var check_filled = checkFilled(_dr[d], table_header); if (check_filled.all_filled) { insert_row.push(d); send_data_array.push({}); if (typeof all_data[d].Type != 'undefined') send_data_array[send_data_count].Type = all_data[d].Type; for (var dre in _dr[d].Data_Row_Edit) { if (dre == 'DQI' || dre == 'MaterialType' || (dre == 'Type' && roi == 'Vehicle')) { send_data_array[send_data_count][dre] = getCONSTANTSIndex(CONSTANTS, dre, _dr[d].Data_Row_Edit[dre].data); } else { send_data_array[send_data_count][dre] = _dr[d].Data_Row_Edit[dre].data; } } send_data_array[send_data_count].LCAID = LCAID; send_data_array[send_data_count].ID = 0; if (roi.indexOf('Direct') > -1) send_data_array[send_data_count].MaterialType = 0; else if (roi.indexOf('Indirect') > -1) send_data_array[send_data_count].MaterialType = 1; else if (roi.indexOf('Wrap') > -1) send_data_array[send_data_count].MaterialType = 2; if (typeof _dr[d].ParameterType != 'undefined') { for (var p = 0; p < _dr[d].ParameterTypeselect.length; p++) { if (send_data_array[send_data_count].ParameterType == _dr[d].ParameterTypeselect[p]) { send_data_array[send_data_count].ParameterTypeID = p + 1; } } } if (roi != 'Refrigerant') { var PID = setParameterID(_dr[d], $scope); setParameterID(send_data_array[send_data_count], $scope); send_data_parameter_ID_array.push(PID); } else { _dr[d].ParameterID = $scope[roi + 'Options1'][send_data_array[send_data_count].RefrigerantType][send_data_array[send_data_count].RefrigerantType][0]; _dr[d].ParameterID2 = $scope[roi + 'Options2'][send_data_array[send_data_count].EquipmentType][send_data_array[send_data_count].EquipmentType][0]; send_data_array[send_data_count].ParameterID = _dr[d].ParameterID; send_data_array[send_data_count].ParameterID2 = _dr[d].ParameterID2; send_data_parameter_ID_array.push(_dr[d].ParameterID); send_data_parameter_ID_array.push(_dr[d].ParameterID2); } setUncommonData(roi, _dr[d], send_data_array[send_data_count], CONSTANTS); send_data_count++; } else { // 資料輸入不正確或未填 var error_list = check_filled.error_list; } } } else { var table_header = setCSVSingleHeader($scope, s); for (var t = 0; t < table_header.length; t++) { if (table_header[t].Name != 'Total') { var count = 0; for (var d = 0; d < $scope.tempcount; d++) { var row_length = 5; count += all_data[d + s * row_length][setKeyTitle(table_header[t].Keys)]; } if (count > 0) { send_data_array.push(setMonthlyTableSendData($scope, s, t, all_data)); } } } } } loadingDisable($timeout, $scope, true); Save(MyLCAdata, send_data_parameter_ID_array, 'Parameter', 'getParameterValues').then(function (response) { if (Setkeys(response.value).length > 0) { var PIDname1 = 'ParameterID'; var PIDname2 = 'ParameterID2'; var _dr = all_data; if (roi != 'Refrigerant') { for (var d = 0; d < insert_row.length; d++) { if (typeof _dr[insert_row[d]].ParameterID != 'undefined') PIDname1 = 'ParameterID'; var quantity = 1; if (typeof _dr[insert_row[d]].Quantity != 'undefined') quantity = _dr[insert_row[d]].Quantity; _dr[insert_row[d]].KgCO2e = quantity * response.value[_dr[insert_row[d]][PIDname1]] * _dr[insert_row[d]].Scalar; send_data_array[d].KgCO2e = _dr[insert_row[d]].KgCO2e; } } else { var date_range = getDataRange($scope.product_survey.LCA, CONSTANTS); for (var d = 0; d < insert_row.length; d++) { _dr[insert_row[d]].KgCO2e = _dr[insert_row[d]].Scalar * response.value[_dr[insert_row[d]][PIDname1]] * response.value[_dr[insert_row[d]][PIDname2]] * date_range; send_data_array[d].KgCO2e = _dr[insert_row[d]].KgCO2e; } } } }) .then(function () { MyLCAdata.delete(delete_api_config).$promise.then(function (response) { for (var d = 0; d < send_data_array.length; d++) delete send_data_array[d].Data_Row_Edit; }) .then(function () { console.log(send_data_array); MyLCAdata.save(save_all_api_config, send_data_array).$promise.then(function (response) { console.log(response); $route.reload(); }); }); }); } reader.onerror = function (stuff) { console.log('error', stuff); console.log(stuff.getMessage()); } reader.readAsText(files[0], 'BIG5'); } else { alert(CONSTANTS.AlertMessage[1]); } } else { } } $scope.showSimapro = function () { var roi = $scope.current_item; var _st = $scope.Survey_Table; if (typeof roi != 'undefined' && (roi.indexOf('LCI') > -1 || roi.indexOf('High') > -1) && typeof _st != 'undefined') { var _dr = _st[0].Data_Row; if ($scope.Table_Edit_State && !$scope.Schedule_Table) { return false; } else if ($scope.LCA_Status_Now == 0 && typeof $scope.targetRow != 'undefined' && $scope.targetRow != -1) { return true; } else if ($scope.LCA_Status_Now == 1) { if (typeof $scope.targetChildRow != 'undefined' && $scope.targetChildRow != -1) { if (!_dr[$scope.targetRow].IncludedInInterrogation || _dr[$scope.targetRow].SupplierCompanyEmail == null || _dr[$scope.targetRow].SupplierCompanyEmail == '') { return true; } } } else if ($scope.LCA_Status_Now == 3) { if (roi.indexOf('High') == -1) { if (typeof $scope.targetChildRow != 'undefined' && $scope.targetChildRow != -1) { if (!_dr[$scope.targetRow].IncludedInInterrogation || _dr[$scope.targetRow].SupplierCompanyEmail == null || _dr[$scope.targetRow].SupplierCompanyEmail == '') { return true; } } } } } return false; } $scope.CollapseAllChild = function () { for (var d = 0, _dr = $scope.Survey_Table[0].Data_Row; d < $scope.Survey_Table[0].Data_Row.length; d++) { _dr[d].child_expand = false; } } $scope.isMaterial = function () { if (typeof $scope.current_item != 'undefined') { if ($scope.current_item.indexOf('LCI') > -1) return true; else return false; } } $scope.PCRforHighLevelCalculate = function () { for (var d = 0; d < $scope.Survey_Table[0].Data_Row.length; d++) { if ($scope.Survey_Table[0].Data_Row[d].ParameterID == null) { alert(CONSTANTS.AlertMessage[19]); return false; } } loadingDisable($timeout, $scope, true); if (typeof $scope.selectPCRforHighLevelCalculate != 'undefined') { $scope.selectPCRforHighLevelCalculate = !$scope.selectPCRforHighLevelCalculate; } else { $scope.selectPCRforHighLevelCalculate = true; } var _th = $scope.Survey_Table[0].Table_Header; if ($scope.selectPCRforHighLevelCalculate) { if (_th[0].Type != 'checkbox') { _th.splice(0, 0, { "Name": "", "Keys": ["IncludedInInterrogation"], "Type": "checkbox", "Width": 40 }); } $scope.Survey_Table[0].Data_Row = $filter('orderBy')($scope.Survey_Table[0].Data_Row, 'KgCO2e', true); // 做KgCO2e的自動選擇 $scope.KgCO2e_total_count = 0; $scope.KgCO2e_select_count = 0; for (var d = 0, _dr = $scope.Survey_Table[0].Data_Row; d < $scope.Survey_Table[0].Data_Row.length; d++) { $scope.KgCO2e_total_count += _dr[d].KgCO2e; } $scope.KgCO2e_total_count = parseFloat(Math.round($scope.KgCO2e_total_count * 100)) / 100; if ($cookieStore.get('PCRID') != null) { getPublicPCR(MyLCAdata, $scope).then(function (res) { for (var r = 0; r < res.length; r++) { if ($cookieStore.get('PCRID') == res[r].ID) { $scope.PCR_percentage = res[r].Percentage; loadingDisable($timeout, $scope, false); break; } } setKgCO2eCount(); }); } else { $scope.PCR_percentage = 100; setKgCO2eCount(); loadingDisable($timeout, $scope, false); } } else { _th.splice(0, 1); loadingDisable($timeout, $scope, false); } $scope.Survey_Table[0].Table_Width = SetTableTotalWidth($scope.Survey_Table[0].Table_Header, null, 0); } function setKgCO2eCount() { var count_KgCO2e = 0; var send_data_array = []; var _dr = $scope.Survey_Table[0].Data_Row; if (_dr.length > 0 && (typeof $scope.show_table_edit == 'undefined' || !$scope.show_table_edit)) { count_KgCO2e += _dr[0].KgCO2e; $scope.KgCO2e_select_count = count_KgCO2e; _dr[0].IncludedInInterrogation = true; send_data_array.push($scope.resetMaterial(0)); for (var d = 1; d < _dr.length; d++) { if ((count_KgCO2e + _dr[d].KgCO2e) / $scope.KgCO2e_total_count * 100 < $scope.PCR_percentage) { count_KgCO2e += _dr[d].KgCO2e; $scope.KgCO2e_select_count = count_KgCO2e; _dr[d].IncludedInInterrogation = true; send_data_array.push($scope.resetMaterial(d)); } else { count_KgCO2e += _dr[d].KgCO2e; _dr[d].IncludedInInterrogation = false; send_data_array.push($scope.resetMaterial(d)); } } console.log(send_data_array); Save(MyLCAdata, send_data_array, 'Material', 'SaveMaterials').then(function (res) { }).then(function () { $scope.KgCO2e_select_count = parseFloat(Math.round($scope.KgCO2e_select_count * 100)) / 100; compare($scope); }); } } $scope.toNextLCAStatus = function (status) { loadingDisable($timeout, $scope, true); switch (status) { case 0: break; case 1: if ($scope.LCA_Status_Now != 1 && $scope.LCA_Status_Now != 3) { loadingDisable($timeout, $scope, false); alert(CONSTANTS.AlertMessage[2]); return false; } var LCAID = typeof $cookieStore.get('LCAID') != 'undefined' ? $cookieStore.get('LCAID') : $scope.product_survey.LCA.ID; var status_api_config = { Controller: 'LCA', Action: 'ProcessWaiting', pa1: LCAID }; if ($scope.LCA_Status_Now == 1) { if (confirm(CONSTANTS.AlertMessage[3])) { if (!$scope.isProductLCA) status_api_config.Action = 'OrganizationProcessWaiting'; MyLCAdata.save(status_api_config).$promise.then(function (response) { loadingDisable($timeout, $scope, false); if (mergeNumber(response) == 200) { alert(CONSTANTS.AlertMessage[4]); redirect.backToMainPage(); } else { alert(CONSTANTS.AlertMessage[6]); } }); } else { loadingDisable($timeout, $scope, false); } } else if ($scope.LCA_Status_Now == 3) { if ($scope.isProductLCA) status_api_config.Action = 'RejectProcessing'; else status_api_config.Action = 'OrganizationRejectProcessing'; if (confirm(CONSTANTS.AlertMessage[3])) { MyLCAdata.save(status_api_config).$promise.then(function (response) { loadingDisable($timeout, $scope, false); if (mergeNumber(response) == 200) { alert(CONSTANTS.AlertMessage[5]); } else { alert(CONSTANTS.AlertMessage[6]); } }).then(function () { if ($scope.isProductLCA) status_api_config.Action = 'ProcessWaiting'; else status_api_config.Action = 'OrganizationProcessWaiting'; MyLCAdata.save(status_api_config).$promise.then(function (response) { loadingDisable($timeout, $scope, false); if (mergeNumber(response) == 200) { alert(CONSTANTS.AlertMessage[4]); redirect.backToMainPage(); } else { alert(CONSTANTS.AlertMessage[6]); } }); }); } else { loadingDisable($timeout, $scope, false); } } break; case 5: if ($scope.LCA_Status_Now != 0 && $scope.LCA_Status_Now != 4 && $scope.Survey_Table[0].Data_Row.length == 0) { loadingDisable($timeout, $scope, false); alert(CONSTANTS.AlertMessage[7]); return false; } if (confirm(CONSTANTS.AlertMessage[14])) { var LCAID = typeof $cookieStore.get('LCAID') != 'undefined' ? $cookieStore.get('LCAID') : $scope.product_survey.LCA.ID; var status_api_config = { Controller: 'LCA', Action: 'NewCompleting', pa1: LCAID }; if (!$scope.isProductLCA) status_api_config.Action = 'OrganizationNewCompleting'; MyLCAdata.save(status_api_config).$promise.then(function (response) { loadingDisable($timeout, $scope, false); if (mergeNumber(response) == 200) { alert(CONSTANTS.AlertMessage[8]); // 跳轉至報表頁面 redirect.backToMainPage(); } else { alert(CONSTANTS.AlertMessage[6]); } }); } else { loadingDisable($timeout, $scope, false); } break; } } $scope.notMonthlyTable = function () { var roi = $scope.current_item; if (typeof roi != 'undefined') { if (roi == 'WorkHour' || roi.indexOf('Usage') > -1) return false; else return true; } } $scope.HighLevelCalculateDone = function () { // 顯示已挑選之總和及全部總和 var _dr = $scope.Survey_Table[0].Data_Row; if (_dr.length > 0) { if ($scope.KgCO2e_select_count / $scope.KgCO2e_total_count * 100 >= $scope.PCR_percentage) { if (confirm(CONSTANTS.AlertMessage[9])) { var LCAID = typeof $cookieStore.get('LCAID') != 'undefined' ? $cookieStore.get('LCAID') : $scope.product_survey.LCA.ID; Save(MyLCAdata, null, 'LCA', 'NewProcessing', LCAID).then(function (response) { resetLCAState($scope); $scope.LCA_Status_Now = 1; $cookieStore.put('LCA_Status_Now', 1); $scope.PCRforHighLevelCalculate(); $scope.sidebar = setSidebar(order_items[$scope.current_order].Item, order_items[$scope.current_order].Item.length); loadingDisable($timeout, $scope, false); }); } else { loadingDisable($timeout, $scope, false); } } else { loadingDisable($timeout, $scope, false); alert(CONSTANTS.AlertMessage[10]); } } else { loadingDisable($timeout, $scope, false); alert(CONSTANTS.AlertMessage[11]); } } // 選了地區以後要將所有資料的地區都替換掉,並且把年份欄位刪除 $scope.UsageTableAreaSelect = function () { $scope.MonthlyTableSelectArea = true; var area = $scope.Usage_Area_Selected; var roi = $scope.current_item; var year_row = 1; var _st = $scope.Survey_Table[0]; var _dr = _st.Data_Row; var _th = _st.Table_Header; var _tth = $scope.targetColumn; var options = $scope[roi + 'Options']; if (roi.indexOf('Power') > -1) year_row = 5; if (area != null) { for (var th = 0; th < _th.length; th++) { var keyname = setKeyTitle(_th[th].Keys); _dr[year_row][keyname + 'select'] = setSelectOptions(options[area][Setkeys(options[area])[0]]); } } var years = _dr[year_row][keyname + 'select']; var LCAID = typeof $cookieStore.get('LCAID') != 'undefined' ? $cookieStore.get('LCAID') : $scope.product_survey.LCA.ID; Get(MyLCAdata, false, roi, 'Get' + roi + 's', LCAID).then(function (response) { return response[roi + 's']; }).then(function (server_data) { var send_data_array = []; for (var sd = 0; sd < server_data.length; sd++) { for (var th = 0; th < _th.length; th++) { if (_th[th].Name != 'Total' && server_data[sd].Index == th) { var year = parseInt(_th[th].Keys[0].substr(0, 4)); var row = {}; var new_row = true; for (var r = 0; r < server_data.length; r++) { if (th == server_data[r].Index) { row = server_data[r]; new_row = false; } } if (new_row) { for (var tlt = 1, _tlt = Setkeys(_st.Table_Left_Title) ; tlt < Setkeys(_st.Table_Left_Title).length; tlt++) { row[_tlt[tlt]] = 0; } row.ID = 0; row.LCAID = LCAID; row.Index = th; } row.Area = area; for (var y = years.length - 1; y >= 0; y--) { if (year >= years[y]) { row.Year = years[y]; break; } } row.ParameterID = parseInt(options[row.Area][Setkeys(options[row.Area])[0]][row.Year][0]); send_data_array.push(row); } } } // 一次儲存全部 if ($scope.Table_Edit_State) { for (var tlt = 1, _tlt = Setkeys(_st.Table_Left_Title) ; tlt < Setkeys(_st.Table_Left_Title).length; tlt++) { if (_tlt[tlt].indexOf('Total') == -1 && _tlt[tlt] != 'Year') { for (var sda = 0; sda < send_data_array.length; sda++) { if (_tth == send_data_array[sda].Index) { send_data_array[sda][_tlt[tlt]] = _st.Data_Row[tlt - 1].Data_Row_Edit[_th[$scope.targetColumn].Keys[0]].data; } } } } var new_month = true; for (var s = 0; s < send_data_array.length; s++) { if (_tth == send_data_array[s].Index) new_month = false; _dr[_dr.length - 1][_th[send_data_array[s].Index].Keys[0]] = send_data_array[s].Year; } if (new_month) { if (send_data_array.length > 0) { _dr[_dr.length - 1][_th[_tth].Keys[0]] = send_data_array[0].Year; } else { var year = parseInt(_th[_tth].Keys[0].substr(0, 4)); for (var y = years.length - 1; y >= 0; y--) { if (year >= years[y]) { _dr[_dr.length - 1][_th[_tth].Keys[0]] = years[y]; break; } } } } for (var s = 0; s < send_data_array.length; s++) { if (send_data_array[s].Index == $scope.targetColumn) send_data_array.splice(s, 1); } } Save(MyLCAdata, send_data_array, roi, 'Save' + roi + 's').then(function (response) { if (!$scope.Table_Edit_State) $route.reload(); }) }); } $scope.quoteCurrentTableData = function () { $scope.show_popout = true; $scope.show_quote = true; } }, templateUrl: CONSTANTS.TB + 'header_content' }; })