BemsWebApplication.ViewOperatingExpensesByFacility = function (params, viewInfo) { var endpointSelector = ""; if (BemsWebApplication.config.mode == "production") { endpointSelector = new DevExpress.EndpointSelector(BemsWebApplication.config.endpoints).config.db.production; } else { endpointSelector = new DevExpress.EndpointSelector(BemsWebApplication.config.endpoints).config.db.local; } var time_data = [ { time: 0 }, { time: 1 }, { time: 2 }, { time: 3 }, { time: 4 }, { time: 5 }, { time: 6 }, { time: 7 }, { time: 8 }, { time: 9 }, { time: 10 }, { time: 11 }, { time: 12 }, { time: 13 }, { time: 14 }, { time: 15 }, { time: 16 }, { time: 17 }, { time: 18 }, { time: 19 }, { time: 20 }, { time: 21 }, { time: 22 }, { time: 23 } ]; var PowerMeta = []; var GasMeta = []; var facility_type_data = [ { id: 999, text: "" }, { id: 999, text: "" } ]; var facility_id_data = [{ FacilityTypeId: 999, FacilityCode: 999, Name: "" }]; var mode_data = [ { id: 1, text: "병렬운전" }, { id: 2, text: "냉단운전" }, { id: 3, text: "제빙운전" } ]; var TodayAdd = new Date(); TodayAdd.setDate(TodayAdd.getDate() + 1); var MainPowerConsumption = 0, MainGasConsumption = 0, MainGasHeatQuantity = 0, MainPowerPriceTypeId = 99, MainGasPriceTypeId = 99, starthour = 99, endhour = 99; var MainFacilityType = 0, MainFacilityCode = 0, MainMode = 0, MainStartTime = 0, MainEndTime = 0; var REFRIGERATOR = 2, BOILER = 8; function initfacilityid() { facility_id_data = [{ FacilityTypeId: 999, FacilityCode: 999, Name: "" }]; } function getFacilityTypeId() { var dataSource1 = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsFacilityType", }, requireTotalCount: true, pageSize: 100 }); dataSource1.filter([ ["FacilityTypeId", "=", REFRIGERATOR], "or", ["FacilityTypeId", "=", BOILER] ]); dataSource1.sort({ getter: "FacilityTypeId", asc: true }); dataSource1.load() .done(function (result1) { if (result1.length != 0) { for (var i = 0; i < result1.length; i++) { facility_type_data[i].id = result1[i].FacilityTypeId; facility_type_data[i].text = result1[i].Name; } } else { utils.toast.show('[BemsFacilityType] 데이터가 없습니다.'); } }) .fail(function (error) { utils.toast.show(error); }); } function handleViewShowing() { getFacilityTypeId(); } function facilityidSourceAdd(cnt) { // 설비 개수만큼 추가 for (var i = 0; i < cnt ; i++) { facility_id_data.push({ FacilityTypeId: 999, FacilityCode: 999, Name: "" }); } } function GetGridData() { var gridData = new Array(); var tempMainStartTime = MainStartTime; var tempMainEndTime = MainEndTime; var DateTime; if (tempMainStartTime.getDate() == MainEndTime.getDate()) //같은 날짜 { var TotalPowerPrice = 0, TotalGasPrice = 0; for (var i = tempMainStartTime.getHours() ; i <= MainEndTime.getHours() ; i++) { DateTime = new Date(tempMainStartTime.getFullYear(), tempMainStartTime.getMonth(), tempMainStartTime.getDate(), i, 0, 0); if (MainFacilityType == REFRIGERATOR) { var tempMonth = DateTime.getMonth(); var tempHour = DateTime.getHours(); var tempPowerBasic = PowerMeta[tempMonth][tempHour]; var setData = { "DateTime": DateTime, "PowerBasic": tempPowerBasic, "PowerPrice": tempPowerBasic * MainPowerConsumption, "GasBasic": '-', "GasPrice": '-', "TotalPrice": Math.round(tempPowerBasic * MainPowerConsumption) }; TotalPowerPrice += Math.round(setData.PowerPrice); } else { var tempMonth = DateTime.getMonth(); var tempHour = DateTime.getHours(); var tempPowerBasic = PowerMeta[tempMonth][tempHour]; var tempGasBasic = GasMeta[tempMonth][0]; var setData = { "DateTime": DateTime, "PowerBasic": tempPowerBasic, "PowerPrice": tempPowerBasic * MainPowerConsumption, "GasBasic": tempGasBasic, "GasPrice": tempGasBasic * MainGasConsumption * MainGasHeatQuantity, "TotalPrice": Math.round(tempPowerBasic * MainPowerConsumption) + Math.round(tempGasBasic * MainGasConsumption * MainGasHeatQuantity) }; TotalPowerPrice += Math.round(setData.PowerPrice); TotalGasPrice += Math.round(setData.GasPrice); } gridData.push(setData); } } else { //다른날짜 var TotalPowerPrice = 0, TotalGasPrice = 0; for (var i = tempMainStartTime.getHours() ; i < 24; i++) { DateTime = new Date(tempMainStartTime.getFullYear(), tempMainStartTime.getMonth(), tempMainStartTime.getDate(), i, 0, 0); if (MainFacilityType == REFRIGERATOR) { var tempMonth = DateTime.getMonth(); var tempHour = DateTime.getHours(); var tempPowerBasic = PowerMeta[tempMonth][tempHour]; var setData = { "DateTime": DateTime, "PowerBasic": tempPowerBasic, "PowerPrice": tempPowerBasic * MainPowerConsumption, "GasBasic": '-', "GasPrice": '-', "TotalPrice": Math.round(tempPowerBasic * MainPowerConsumption) }; TotalPowerPrice += Math.round(setData.PowerPrice); } else { var tempMonth = DateTime.getMonth(); var tempHour = DateTime.getHours(); var tempPowerBasic = PowerMeta[tempMonth][tempHour]; var tempGasBasic = GasMeta[tempMonth][0]; var setData = { "DateTime": DateTime, "PowerBasic": tempPowerBasic, "PowerPrice": tempPowerBasic * MainPowerConsumption, "GasBasic": tempGasBasic, "GasPrice": tempGasBasic * MainGasConsumption * MainGasHeatQuantity, "TotalPrice": Math.round(tempPowerBasic * MainPowerConsumption) + Math.round(tempGasBasic * MainGasConsumption * MainGasHeatQuantity) }; TotalPowerPrice += Math.round(setData.PowerPrice); TotalGasPrice += Math.round(setData.GasPrice); } gridData.push(setData); } for (var i = 1; i <= 7; i++) //일주일치만 검색가능하니깐 { tempMainStartTime = new Date(tempMainStartTime.getFullYear(), tempMainStartTime.getMonth(), tempMainStartTime.getDate() + 1, tempMainStartTime.getHours(), tempMainStartTime.getMinutes()); if (tempMainStartTime.getDate() < tempMainEndTime.getDate()) { for (var j = 0; j < 24; j++) { DateTime = new Date(tempMainStartTime.getFullYear(), tempMainStartTime.getMonth(), tempMainStartTime.getDate(), j, 0, 0); if (MainFacilityType == REFRIGERATOR) { var tempMonth = DateTime.getMonth(); var tempHour = DateTime.getHours(); var tempPowerBasic = PowerMeta[tempMonth][tempHour]; var setData = { "DateTime": DateTime, "PowerBasic": tempPowerBasic, "PowerPrice": tempPowerBasic * MainPowerConsumption, "GasBasic": '-', "GasPrice": '-', "TotalPrice": Math.round(tempPowerBasic * MainPowerConsumption) }; TotalPowerPrice += Math.round(setData.PowerPrice); } else { var tempMonth = DateTime.getMonth(); var tempHour = DateTime.getHours(); var tempPowerBasic = PowerMeta[tempMonth][tempHour]; var tempGasBasic = GasMeta[tempMonth][0]; var setData = { "DateTime": DateTime, "PowerBasic": tempPowerBasic, "PowerPrice": tempPowerBasic * MainPowerConsumption, "GasBasic": tempGasBasic, "GasPrice": tempGasBasic * MainGasConsumption * MainGasHeatQuantity, "TotalPrice": Math.round(tempPowerBasic * MainPowerConsumption) + Math.round(tempGasBasic * MainGasConsumption * MainGasHeatQuantity) }; TotalPowerPrice += Math.round(setData.PowerPrice); TotalGasPrice += Math.round(setData.GasPrice); } gridData.push(setData); } } else { for (var k = 0; k <= tempMainEndTime.getHours() ; k++) { DateTime = new Date(tempMainStartTime.getFullYear(), tempMainStartTime.getMonth(), tempMainStartTime.getDate(), k, 0, 0); if (MainFacilityType == REFRIGERATOR) { var tempMonth = DateTime.getMonth(); var tempHour = DateTime.getHours(); var tempPowerBasic = PowerMeta[tempMonth][tempHour]; var setData = { "DateTime": DateTime, "PowerBasic": tempPowerBasic, "PowerPrice": tempPowerBasic * MainPowerConsumption, "GasBasic": '-', "GasPrice": '-', "TotalPrice": Math.round(tempPowerBasic * MainPowerConsumption) }; TotalPowerPrice += Math.round(setData.PowerPrice); } else { var tempMonth = DateTime.getMonth(); var tempHour = DateTime.getHours(); var tempPowerBasic = PowerMeta[tempMonth][tempHour]; var tempGasBasic = GasMeta[tempMonth][0]; var setData = { "DateTime": DateTime, "PowerBasic": tempPowerBasic, "PowerPrice": tempPowerBasic * MainPowerConsumption, "GasBasic": tempGasBasic, "GasPrice": tempGasBasic * MainGasConsumption * MainGasHeatQuantity, "TotalPrice": Math.round(tempPowerBasic * MainPowerConsumption) + Math.round(tempGasBasic * MainGasConsumption * MainGasHeatQuantity) }; TotalPowerPrice += Math.round(setData.PowerPrice); TotalGasPrice += Math.round(setData.GasPrice); } gridData.push(setData); } break; } } } $("#dataGrid").dxDataGrid("instance").option('dataSource', gridData); $("#Gas").dxTextBox('instance').option('value', numberWithCommas(TotalGasPrice) + '원'); $("#Power").dxTextBox('instance').option('value', numberWithCommas(TotalPowerPrice) + '원'); $("#Total").dxTextBox('instance').option('value', numberWithCommas(TotalGasPrice + TotalPowerPrice) + '원'); var dg = $("#dataGrid").dxDataGrid("instance"); dg.refresh(); } function numberWithCommas(x) { return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } function getPowerPriceMeta(PowerPriceTypeId) { PowerMeta = new Array(13); for (var i = 1; i < 13; i++) { PowerMeta[i] = new Array(24); } var dataSource = new DevExpress.data.DataSource({ store: new DevExpress.data.ODataStore({ url: endpointSelector + "/BemsPriceMeta" }), requireTotalCount: true, pageSize: 1 }); dataSource.filter([ ["PriceTypeId", "=", PowerPriceTypeId] ]); dataSource.sort({ getter: "PublishDate", desc: true }); dataSource.load() .done(function (result) { if (result.length != 0) { PriceMeta = result[0]; PowerMeta[1][0] = PriceMeta.C01_00; PowerMeta[1][1] = PriceMeta.C01_01; PowerMeta[1][2] = PriceMeta.C01_02; PowerMeta[1][3] = PriceMeta.C01_03; PowerMeta[1][4] = PriceMeta.C01_04; PowerMeta[1][5] = PriceMeta.C01_05; PowerMeta[1][6] = PriceMeta.C01_06; PowerMeta[1][7] = PriceMeta.C01_07; PowerMeta[1][8] = PriceMeta.C01_08; PowerMeta[1][9] = PriceMeta.C01_09; PowerMeta[1][10] = PriceMeta.C01_10; PowerMeta[1][11] = PriceMeta.C01_11; PowerMeta[1][12] = PriceMeta.C01_12; PowerMeta[1][13] = PriceMeta.C01_13; PowerMeta[1][14] = PriceMeta.C01_14; PowerMeta[1][15] = PriceMeta.C01_15; PowerMeta[1][16] = PriceMeta.C01_16; PowerMeta[1][17] = PriceMeta.C01_17; PowerMeta[1][18] = PriceMeta.C01_18; PowerMeta[1][19] = PriceMeta.C01_19; PowerMeta[1][20] = PriceMeta.C01_20; PowerMeta[1][21] = PriceMeta.C01_21; PowerMeta[1][22] = PriceMeta.C01_22; PowerMeta[1][23] = PriceMeta.C01_23; PowerMeta[2][0] = PriceMeta.C02_00; PowerMeta[2][1] = PriceMeta.C02_01; PowerMeta[2][2] = PriceMeta.C02_02; PowerMeta[2][3] = PriceMeta.C02_03; PowerMeta[2][4] = PriceMeta.C02_04; PowerMeta[2][5] = PriceMeta.C02_05; PowerMeta[2][6] = PriceMeta.C02_06; PowerMeta[2][7] = PriceMeta.C02_07; PowerMeta[2][8] = PriceMeta.C02_08; PowerMeta[2][9] = PriceMeta.C02_09; PowerMeta[2][10] = PriceMeta.C02_10; PowerMeta[2][11] = PriceMeta.C02_11; PowerMeta[2][12] = PriceMeta.C02_12; PowerMeta[2][13] = PriceMeta.C02_13; PowerMeta[2][14] = PriceMeta.C02_14; PowerMeta[2][15] = PriceMeta.C02_15; PowerMeta[2][16] = PriceMeta.C02_16; PowerMeta[2][17] = PriceMeta.C02_17; PowerMeta[2][18] = PriceMeta.C02_18; PowerMeta[2][19] = PriceMeta.C02_19; PowerMeta[2][20] = PriceMeta.C02_20; PowerMeta[2][21] = PriceMeta.C02_21; PowerMeta[2][22] = PriceMeta.C02_22; PowerMeta[2][23] = PriceMeta.C02_23; PowerMeta[3][0] = PriceMeta.C03_00; PowerMeta[3][1] = PriceMeta.C03_01; PowerMeta[3][2] = PriceMeta.C03_02; PowerMeta[3][3] = PriceMeta.C03_03; PowerMeta[3][4] = PriceMeta.C03_04; PowerMeta[3][5] = PriceMeta.C03_05; PowerMeta[3][6] = PriceMeta.C03_06; PowerMeta[3][7] = PriceMeta.C03_07; PowerMeta[3][8] = PriceMeta.C03_08; PowerMeta[3][9] = PriceMeta.C03_09; PowerMeta[3][10] = PriceMeta.C03_10; PowerMeta[3][11] = PriceMeta.C03_11; PowerMeta[3][12] = PriceMeta.C03_12; PowerMeta[3][13] = PriceMeta.C03_13; PowerMeta[3][14] = PriceMeta.C03_14; PowerMeta[3][15] = PriceMeta.C03_15; PowerMeta[3][16] = PriceMeta.C03_16; PowerMeta[3][17] = PriceMeta.C03_17; PowerMeta[3][18] = PriceMeta.C03_18; PowerMeta[3][19] = PriceMeta.C03_19; PowerMeta[3][20] = PriceMeta.C03_20; PowerMeta[3][21] = PriceMeta.C03_21; PowerMeta[3][22] = PriceMeta.C03_22; PowerMeta[3][23] = PriceMeta.C03_23; PowerMeta[4][0] = PriceMeta.C04_00; PowerMeta[4][1] = PriceMeta.C04_01; PowerMeta[4][2] = PriceMeta.C04_02; PowerMeta[4][3] = PriceMeta.C04_03; PowerMeta[4][4] = PriceMeta.C04_04; PowerMeta[4][5] = PriceMeta.C04_05; PowerMeta[4][6] = PriceMeta.C04_06; PowerMeta[4][7] = PriceMeta.C04_07; PowerMeta[4][8] = PriceMeta.C04_08; PowerMeta[4][9] = PriceMeta.C04_09; PowerMeta[4][10] = PriceMeta.C04_10; PowerMeta[4][11] = PriceMeta.C04_11; PowerMeta[4][12] = PriceMeta.C04_12; PowerMeta[4][13] = PriceMeta.C04_13; PowerMeta[4][14] = PriceMeta.C04_14; PowerMeta[4][15] = PriceMeta.C04_15; PowerMeta[4][16] = PriceMeta.C04_16; PowerMeta[4][17] = PriceMeta.C04_17; PowerMeta[4][18] = PriceMeta.C04_18; PowerMeta[4][19] = PriceMeta.C04_19; PowerMeta[4][20] = PriceMeta.C04_20; PowerMeta[4][21] = PriceMeta.C04_21; PowerMeta[4][22] = PriceMeta.C04_22; PowerMeta[4][23] = PriceMeta.C04_23; PowerMeta[5][0] = PriceMeta.C05_00; PowerMeta[5][1] = PriceMeta.C05_01; PowerMeta[5][2] = PriceMeta.C05_02; PowerMeta[5][3] = PriceMeta.C05_03; PowerMeta[5][4] = PriceMeta.C05_04; PowerMeta[5][5] = PriceMeta.C05_05; PowerMeta[5][6] = PriceMeta.C05_06; PowerMeta[5][7] = PriceMeta.C05_07; PowerMeta[5][8] = PriceMeta.C05_08; PowerMeta[5][9] = PriceMeta.C05_09; PowerMeta[5][10] = PriceMeta.C05_10; PowerMeta[5][11] = PriceMeta.C05_11; PowerMeta[5][12] = PriceMeta.C05_12; PowerMeta[5][13] = PriceMeta.C05_13; PowerMeta[5][14] = PriceMeta.C05_14; PowerMeta[5][15] = PriceMeta.C05_15; PowerMeta[5][16] = PriceMeta.C05_16; PowerMeta[5][17] = PriceMeta.C05_17; PowerMeta[5][18] = PriceMeta.C05_18; PowerMeta[5][19] = PriceMeta.C05_19; PowerMeta[5][20] = PriceMeta.C05_20; PowerMeta[5][21] = PriceMeta.C05_21; PowerMeta[5][22] = PriceMeta.C05_22; PowerMeta[5][23] = PriceMeta.C05_23; PowerMeta[6][0] = PriceMeta.C06_00; PowerMeta[6][1] = PriceMeta.C06_01; PowerMeta[6][2] = PriceMeta.C06_02; PowerMeta[6][3] = PriceMeta.C06_03; PowerMeta[6][4] = PriceMeta.C06_04; PowerMeta[6][5] = PriceMeta.C06_05; PowerMeta[6][6] = PriceMeta.C06_06; PowerMeta[6][7] = PriceMeta.C06_07; PowerMeta[6][8] = PriceMeta.C06_08; PowerMeta[6][9] = PriceMeta.C06_09; PowerMeta[6][10] = PriceMeta.C06_10; PowerMeta[6][11] = PriceMeta.C06_11; PowerMeta[6][12] = PriceMeta.C06_12; PowerMeta[6][13] = PriceMeta.C06_13; PowerMeta[6][14] = PriceMeta.C06_14; PowerMeta[6][15] = PriceMeta.C06_15; PowerMeta[6][16] = PriceMeta.C06_16; PowerMeta[6][17] = PriceMeta.C06_17; PowerMeta[6][18] = PriceMeta.C06_18; PowerMeta[6][19] = PriceMeta.C06_19; PowerMeta[6][20] = PriceMeta.C06_20; PowerMeta[6][21] = PriceMeta.C06_21; PowerMeta[6][22] = PriceMeta.C06_22; PowerMeta[6][23] = PriceMeta.C06_23; PowerMeta[7][0] = PriceMeta.C07_00; PowerMeta[7][1] = PriceMeta.C07_01; PowerMeta[7][2] = PriceMeta.C07_02; PowerMeta[7][3] = PriceMeta.C07_03; PowerMeta[7][4] = PriceMeta.C07_04; PowerMeta[7][5] = PriceMeta.C07_05; PowerMeta[7][6] = PriceMeta.C07_06; PowerMeta[7][7] = PriceMeta.C07_07; PowerMeta[7][8] = PriceMeta.C07_08; PowerMeta[7][9] = PriceMeta.C07_09; PowerMeta[7][10] = PriceMeta.C07_10; PowerMeta[7][11] = PriceMeta.C07_11; PowerMeta[7][12] = PriceMeta.C07_12; PowerMeta[7][13] = PriceMeta.C07_13; PowerMeta[7][14] = PriceMeta.C07_14; PowerMeta[7][15] = PriceMeta.C07_15; PowerMeta[7][16] = PriceMeta.C07_16; PowerMeta[7][17] = PriceMeta.C07_17; PowerMeta[7][18] = PriceMeta.C07_18; PowerMeta[7][19] = PriceMeta.C07_19; PowerMeta[7][20] = PriceMeta.C07_20; PowerMeta[7][21] = PriceMeta.C07_21; PowerMeta[7][22] = PriceMeta.C07_22; PowerMeta[7][23] = PriceMeta.C07_23; PowerMeta[8][0] = PriceMeta.C08_00; PowerMeta[8][1] = PriceMeta.C08_01; PowerMeta[8][2] = PriceMeta.C08_02; PowerMeta[8][3] = PriceMeta.C08_03; PowerMeta[8][4] = PriceMeta.C08_04; PowerMeta[8][5] = PriceMeta.C08_05; PowerMeta[8][6] = PriceMeta.C08_06; PowerMeta[8][7] = PriceMeta.C08_07; PowerMeta[8][8] = PriceMeta.C08_08; PowerMeta[8][9] = PriceMeta.C08_09; PowerMeta[8][10] = PriceMeta.C08_10; PowerMeta[8][11] = PriceMeta.C08_11; PowerMeta[8][12] = PriceMeta.C08_12; PowerMeta[8][13] = PriceMeta.C08_13; PowerMeta[8][14] = PriceMeta.C08_14; PowerMeta[8][15] = PriceMeta.C08_15; PowerMeta[8][16] = PriceMeta.C08_16; PowerMeta[8][17] = PriceMeta.C08_17; PowerMeta[8][18] = PriceMeta.C08_18; PowerMeta[8][19] = PriceMeta.C08_19; PowerMeta[8][20] = PriceMeta.C08_20; PowerMeta[8][21] = PriceMeta.C08_21; PowerMeta[8][22] = PriceMeta.C08_22; PowerMeta[8][23] = PriceMeta.C08_23; PowerMeta[9][0] = PriceMeta.C09_00; PowerMeta[9][1] = PriceMeta.C09_01; PowerMeta[9][2] = PriceMeta.C09_02; PowerMeta[9][3] = PriceMeta.C09_03; PowerMeta[9][4] = PriceMeta.C09_04; PowerMeta[9][5] = PriceMeta.C09_05; PowerMeta[9][6] = PriceMeta.C09_06; PowerMeta[9][7] = PriceMeta.C09_07; PowerMeta[9][8] = PriceMeta.C09_08; PowerMeta[9][9] = PriceMeta.C09_09; PowerMeta[9][10] = PriceMeta.C09_10; PowerMeta[9][11] = PriceMeta.C09_11; PowerMeta[9][12] = PriceMeta.C09_12; PowerMeta[9][13] = PriceMeta.C09_13; PowerMeta[9][14] = PriceMeta.C09_14; PowerMeta[9][15] = PriceMeta.C09_15; PowerMeta[9][16] = PriceMeta.C09_16; PowerMeta[9][17] = PriceMeta.C09_17; PowerMeta[9][18] = PriceMeta.C09_18; PowerMeta[9][19] = PriceMeta.C09_19; PowerMeta[9][20] = PriceMeta.C09_20; PowerMeta[9][21] = PriceMeta.C09_21; PowerMeta[9][22] = PriceMeta.C09_22; PowerMeta[9][23] = PriceMeta.C09_23; PowerMeta[10][0] = PriceMeta.C10_00; PowerMeta[10][1] = PriceMeta.C10_01; PowerMeta[10][2] = PriceMeta.C10_02; PowerMeta[10][3] = PriceMeta.C10_03; PowerMeta[10][4] = PriceMeta.C10_04; PowerMeta[10][5] = PriceMeta.C10_05; PowerMeta[10][6] = PriceMeta.C10_06; PowerMeta[10][7] = PriceMeta.C10_07; PowerMeta[10][8] = PriceMeta.C10_08; PowerMeta[10][9] = PriceMeta.C10_09; PowerMeta[10][10] = PriceMeta.C10_10; PowerMeta[10][11] = PriceMeta.C10_11; PowerMeta[10][12] = PriceMeta.C10_12; PowerMeta[10][13] = PriceMeta.C10_13; PowerMeta[10][14] = PriceMeta.C10_14; PowerMeta[10][15] = PriceMeta.C10_15; PowerMeta[10][16] = PriceMeta.C10_16; PowerMeta[10][17] = PriceMeta.C10_17; PowerMeta[10][18] = PriceMeta.C10_18; PowerMeta[10][19] = PriceMeta.C10_19; PowerMeta[10][20] = PriceMeta.C10_20; PowerMeta[10][21] = PriceMeta.C10_21; PowerMeta[10][22] = PriceMeta.C10_22; PowerMeta[10][23] = PriceMeta.C10_23; PowerMeta[11][0] = PriceMeta.C11_00; PowerMeta[11][1] = PriceMeta.C11_01; PowerMeta[11][2] = PriceMeta.C11_02; PowerMeta[11][3] = PriceMeta.C11_03; PowerMeta[11][4] = PriceMeta.C11_04; PowerMeta[11][5] = PriceMeta.C11_05; PowerMeta[11][6] = PriceMeta.C11_06; PowerMeta[11][7] = PriceMeta.C11_07; PowerMeta[11][8] = PriceMeta.C11_08; PowerMeta[11][9] = PriceMeta.C11_09; PowerMeta[11][10] = PriceMeta.C11_10; PowerMeta[11][11] = PriceMeta.C11_11; PowerMeta[11][12] = PriceMeta.C11_12; PowerMeta[11][13] = PriceMeta.C11_13; PowerMeta[11][14] = PriceMeta.C11_14; PowerMeta[11][15] = PriceMeta.C11_15; PowerMeta[11][16] = PriceMeta.C11_16; PowerMeta[11][17] = PriceMeta.C11_17; PowerMeta[11][18] = PriceMeta.C11_18; PowerMeta[11][19] = PriceMeta.C11_19; PowerMeta[11][20] = PriceMeta.C11_20; PowerMeta[11][21] = PriceMeta.C11_21; PowerMeta[11][22] = PriceMeta.C11_22; PowerMeta[11][23] = PriceMeta.C11_23; PowerMeta[12][0] = PriceMeta.C12_00; PowerMeta[12][1] = PriceMeta.C12_01; PowerMeta[12][2] = PriceMeta.C12_02; PowerMeta[12][3] = PriceMeta.C12_03; PowerMeta[12][4] = PriceMeta.C12_04; PowerMeta[12][5] = PriceMeta.C12_05; PowerMeta[12][6] = PriceMeta.C12_06; PowerMeta[12][7] = PriceMeta.C12_07; PowerMeta[12][8] = PriceMeta.C12_08; PowerMeta[12][9] = PriceMeta.C12_09; PowerMeta[12][10] = PriceMeta.C12_10; PowerMeta[12][11] = PriceMeta.C12_11; PowerMeta[12][12] = PriceMeta.C12_12; PowerMeta[12][13] = PriceMeta.C12_13; PowerMeta[12][14] = PriceMeta.C12_14; PowerMeta[12][15] = PriceMeta.C12_15; PowerMeta[12][16] = PriceMeta.C12_16; PowerMeta[12][17] = PriceMeta.C12_17; PowerMeta[12][18] = PriceMeta.C12_18; PowerMeta[12][19] = PriceMeta.C12_19; PowerMeta[12][20] = PriceMeta.C12_20; PowerMeta[12][21] = PriceMeta.C12_21; PowerMeta[12][22] = PriceMeta.C12_22; PowerMeta[12][23] = PriceMeta.C12_23; GetGridData(); } else { PowerMeta = 0; utils.toast.show('[BemsPriceMeta-Power] 해당하는 데이터가 없습니다.'); return; } }) .fail(function (error) { alert(error); }); } function getGasPriceMeta(PowerPriceTypeId, GasPriceTypeId) { GasMeta = new Array(13); for (var i = 1; i < 13; i++) { GasMeta[i] = new Array(24); } var dataSource = new DevExpress.data.DataSource({ store: new DevExpress.data.ODataStore({ url: endpointSelector + "/BemsPriceMeta" }), requireTotalCount: true, pageSize: 1 }); dataSource.filter([ ["PriceTypeId", "=", PowerPriceTypeId] ]); dataSource.sort({ getter: "PublishDate", desc: true }); dataSource.load() .done(function (result) { if (result.length != 0) { PriceMeta = result[0]; GasMeta[1][0] = PriceMeta.C01_00; GasMeta[2][0] = PriceMeta.C02_00; GasMeta[3][0] = PriceMeta.C03_00; GasMeta[4][0] = PriceMeta.C04_00; GasMeta[5][0] = PriceMeta.C05_00; GasMeta[6][0] = PriceMeta.C06_00; GasMeta[7][0] = PriceMeta.C07_00; GasMeta[8][0] = PriceMeta.C08_00; GasMeta[9][0] = PriceMeta.C09_00; GasMeta[10][0] = PriceMeta.C10_00; GasMeta[11][0] = PriceMeta.C11_00; GasMeta[12][0] = PriceMeta.C12_00; getPowerPriceMeta(GasPriceTypeId) } else { GasMeta = 0; utils.toast.show('[BemsPriceMeta-Gas] 해당하는 데이터가 없습니다.'); return; } }) .fail(function (error) { alert(error); }); } function handleViewShown() { $("#Facility_Type_Id").dxSelectBox({ placeholder: "설비 타입", dataSource: facility_type_data, displayExpr: "text", valueExpr: "id", onValueChanged: function () { initfacilityid(); var FacilityTypeId = $("#Facility_Type_Id").dxSelectBox('instance').option('value'); switch (FacilityTypeId) { case REFRIGERATOR: $("#Mode").dxSelectBox('instance').option('disabled', false); break; case BOILER: $("#Mode").dxSelectBox('instance').option('disabled', true); $("#Mode").dxSelectBox('instance').option('value', null); break; case KITCHEN: $("#Mode").dxSelectBox('instance').option('disabled', true); $("#Mode").dxSelectBox('instance').option('value', null); break; } var dataSource2 = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/CmFacility", }, requireTotalCount: true, pageSize: 5000 }); dataSource2.filter([ ["SiteId", "=", BWA.UserInfo.SiteId()], "and", ["FacilityTypeId", "=", FacilityTypeId], ]); dataSource2.sort({ getter: "Name", asc: true }); dataSource2.load() .done(function (result2) { var cnt = result2.length; if (cnt != 0) { if (cnt > 1) { if (FacilityTypeId != 99) //주방은 1개만 facilityidSourceAdd(cnt - 1); } for (var i = 0; i < result2.length; i++) { facility_id_data[i].FacilityTypeId = result2[i].FacilityTypeId; facility_id_data[i].FacilityCode = result2[i].FacilityCode facility_id_data[i].Name = result2[i].Name; } $("#Facility_Id").dxSelectBox({ dataSource: facility_id_data, displayExpr: "Name", valueExpr: "FacilityCode" }); } else { utils.toast.show('[CmFacility] 데이터가 없습니다.'); } }) .fail(function (error) { utils.toast.show(error); }); } }); $("#Facility_Id").dxSelectBox({ placeholder: "설비명칭" }); $("#Mode").dxSelectBox({ placeholder: "운전모드", dataSource: mode_data, displayExpr: "text", valueExpr: "id", disabled: true }); $("#Search_Btn").dxButton({ text: "조회", onClick: function () { MainFacilityType = 0, MainFacilityCode = 0, MainMode = 0, MainStartTime = 0, MainEndTime = 0; MainFacilityType = $("#Facility_Type_Id").dxSelectBox('instance').option('value'); MainFacilityCode = $("#Facility_Id").dxSelectBox('instance').option('value'); if (MainFacilityCode == null) { utils.toast.show('설비 명칭을 선택해야합니다.'); return; } MainMode = $("#Mode").dxSelectBox('instance').option('value'); if (MainFacilityType == REFRIGERATOR) { if (MainMode == null) { utils.toast.show('운전 모드를 선택해야합니다.'); return; } } var MainStartDay = $("#Start_Day").dxDateBox('instance').option('value'); var MainStartHour = $("#Start_Hour").dxSelectBox('instance').option('value'); if (MainStartHour == null) { utils.toast.show('시작 시간을 선택해야합니다.'); return; } var MainEndDay = $("#End_Day").dxDateBox('instance').option('value'); var MainEndHour = $("#End_Hour").dxSelectBox('instance').option('value'); if (MainEndHour == null) { utils.toast.show('종료 시간을 선택해야합니다.'); return; } MainStartTime = new Date(MainStartDay.getFullYear(), MainStartDay.getMonth(), MainStartDay.getDate(), MainStartHour, 0, 0); MainEndTime = new Date(MainEndDay.getFullYear(), MainEndDay.getMonth(), MainEndDay.getDate(), MainEndHour, 59, 0); if (MainStartTime > MainEndTime) { utils.toast.show('시간 설정이 잘못 되었습니다.'); return; } if (MainStartTime < new Date()) { utils.toast.show('시작 시간이 현재 시간보다 커야합니다.'); return; } var MainStartTimeAddSeven = MainStartTime; MainStartTimeAddSeven.setDate(MainStartTimeAddSeven.getDate() + 7); if (MainStartTimeAddSeven <= MainEndTime) { utils.toast.show('일주일 이상 조회할수 없습니다.'); return; } MainStartTimeAddSeven.setDate(MainStartTimeAddSeven.getDate() - 7); //초기화 MainPowerConsumption = 0; MainGasConsumption = 0; MainGasHeatQuantity = 0; MainPowerPriceTypeId = 99; MainGasPriceTypeId = 99; var dataSource3 = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsEnergyCost", }, requireTotalCount: true, pageSize: 1, }); dataSource3.filter([ ["SiteId", "=", BWA.UserInfo.SiteId()], "and", ["FacilityTypeId", "=", MainFacilityType], "and", ["FacilityCode", "=", MainFacilityCode], "and", ["IsUse", "=", true], ]); dataSource3.load() .done(function (result3) { if (result3.length != 0) { if (MainFacilityType == REFRIGERATOR) { if (MainMode == 3) { //제빙 운전 MainPowerConsumption = result3[0].PowerConsumption2; } else { MainPowerConsumption = result3[0].PowerConsumption1; } var MainPowerPriceTypeId = result3[0].PowerPriceTypeId; getPowerPriceMeta(MainPowerPriceTypeId); } else { MainPowerConsumption = result3[0].PowerConsumption1; MainGasConsumption = result3[0].GasConsumption; MainGasHeatQuantity = result3[0].GasHeatQuantity; MainPowerPriceTypeId = result3[0].PowerPriceTypeId; MainGasPriceTypeId = result3[0].GasPriceTypeId; getGasPriceMeta(MainGasPriceTypeId, MainPowerPriceTypeId); } } else { utils.toast.show('[BemsEnergyCost] 해당하는 데이터가 없습니다.'); return; } }) .fail(function (error) { utils.toast.show(error); }); } }); $("#Start_Day").dxDateBox({ value: TodayAdd }); $("#Start_Hour").dxSelectBox({ dataSource: time_data, displayExpr: "time", valueExpr: "time", onValueChanged: function () { starthour = $("#Start_Hour").dxSelectBox('instance').option('value'); } }); $("#End_Day").dxDateBox({ value: TodayAdd }); $("#End_Hour").dxSelectBox({ dataSource: time_data, displayExpr: "time", valueExpr: "time", onValueChanged: function () { endhour = $("#End_Hour").dxSelectBox('instance').option('value'); } }); $("#Power").dxTextBox({ placeholder: "전력비용", disabled: true }); $("#Gas").dxTextBox({ placeholder: "가스비용", disabled: true }); $("#Total").dxTextBox({ placeholder: "합계", disabled: true }); $("#LoadPanel").dxLoadPanel({ message: '로딩 중...', showIndicator: true, visible: false }); $("#dataGrid").dxDataGrid({ paging: { pageSize: 16 } }); } var searchViewOptions = { }; function handleSearchInSearchView() { } var viewModel = $.extend(BWA.CommonView.create(params, viewInfo, searchViewOptions, ko.observable(null), handleViewShown, null, handleSearchInSearchView), { viewShowing: handleViewShowing, dataGrid: utils.datagrid.defaultOptions({ width: 1200, height: 600, columns: [ { dataField: 'DateTime', width: '18%', caption: "날짜", alignment: 'center', dataType: 'date', format: 'yyyy-MM-dd HH:mm:ss', sortOrder: 'asc', }, { dataField: 'PowerBasic', width: '16%', caption: "전력 단가(원)", alignment: 'center' }, { dataField: 'PowerPrice', width: '16%', caption: "전력 요금(원)", alignment: 'center', format: "currency" }, { dataField: 'GasBasic', width: '16%', caption: "가스 단가(원)", alignment: 'center' }, { dataField: 'GasPrice', width: '16%', caption: "가스 요금(원)", alignment: 'center', format: "currency" }, { dataField: 'TotalPrice', width: '18%', caption: "요금합산", alignment: 'center', format: "currency" } ] }) }); return viewModel; };