BemsWebApplication.EnergyUsageFactorAnalysis = function (params, viewInfo) { "use strict"; 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 facilityDataSource = BWA.db.createDataSource('CmFacility'); var eq = BWA.DataUtil.constructEqualFilter; var SITEID = BWA.UserInfo.SiteId(); var visiblePopup = ko.observable(false); var toe = 0; var kwh = 0; var HDDStandard = 0; var CDDStandard = 0; var powerFuelTypeId = 1; //전력 고유 구분 코드 var gasFuelTypeId = 2; //가스 고유 구분 코드 var powerFacilityTypeId = $Code.FacilityType.ELECTRICITY; //전력 타입 고유 ID - 100 var gasFacilityTypeId = $Code.FacilityType.GAS; //가스 타입 고유 ID - 101 var powerFacilityCode = 0; //전력 시설 코드 var powerFormulaId = 1; //전력 전체 사용량 수식 var gasFacilityCode = 0; //가스 시설 코드 var gasFormulaId = 1; //가스 전체 사용량 수식 var temperatureFormula = [ //외기온도 조회 정보(외기온도 관제점 추가시 배열형태로 추가할것) { FacilityCode: 4864, PropertyId: 1 } ] // 2019.04.16 : 그리드 도표 작업 : 팝업창 추가 ~~~ // 팝업창뷰 보이기 속성 제어용 변수 선언 var DataGridPopup_Visible = ko.observable(false); var DataGridPopup_Visible1 = ko.observable(false); var DataGridPopup_Visible2 = ko.observable(false); // 그래프 출력 이후 엑셀출력을 위한 팝업창을 위해 임시 저장용 배열 선언 var dataArrayresult = ko.observableArray(); var dataArrayresult1 = ko.observableArray(); var dataArrayresult2 = ko.observableArray(); // ~~~ 2019.04.16 : 그리드 도표 작업 : 팝업창 추가 var useFactor = [{ id: 0, value: "인원증감" }, { id: 1, value: "임대율" }, { id: 2, value: "냉방도일" }, { id: 3, value: "난방도일" }, { id: 4, value: "냉/난방도일" }]; var rentalRateYear = ""; var peopleIncreaseYear = ""; var rentalRate = [{ month: "1", value: 0 }, { month: "2", value: 0 }, { month: "3", value: 0 }, { month: "4", value: 0 }, { month: "5", value: 0 }, { month: "6", value: 0 }, { month: "7", value: 0 }, { month: "8", value: 0 }, { month: "9", value: 0 }, { month: "10", value: 0 }, { month: "11", value: 0 }, { month: "12", value: 0 }]; var peopleIncrease = [{ month: "1", value: 0 }, { month: "2", value: 0 }, { month: "3", value: 0 }, { month: "4", value: 0 }, { month: "5", value: 0 }, { month: "6", value: 0 }, { month: "7", value: 0 }, { month: "8", value: 0 }, { month: "9", value: 0 }, { month: "10", value: 0 }, { month: "11", value: 0 }, { month: "12", value: 0 }]; var powerDataSource = [{ month: "1", value: 0 }, { month: "2", value: 0 }, { month: "3", value: 0 }, { month: "4", value: 0 }, { month: "5", value: 0 }, { month: "6", value: 0 }, { month: "7", value: 0 }, { month: "8", value: 0 }, { month: "9", value: 0 }, { month: "10", value: 0 }, { month: "11", value: 0 }, { month: "12", value: 0 }]; var gasDataSource = [{ month: "1", value: 0 }, { month: "2", value: 0 }, { month: "3", value: 0 }, { month: "4", value: 0 }, { month: "5", value: 0 }, { month: "6", value: 0 }, { month: "7", value: 0 }, { month: "8", value: 0 }, { month: "9", value: 0 }, { month: "10", value: 0 }, { month: "11", value: 0 }, { month: "12", value: 0 }]; var HDDDataSource = [{ month: "1", value: 0 }, { month: "2", value: 0 }, { month: "3", value: 0 }, { month: "4", value: 0 }, { month: "5", value: 0 }, { month: "6", value: 0 }, { month: "7", value: 0 }, { month: "8", value: 0 }, { month: "9", value: 0 }, { month: "10", value: 0 }, { month: "11", value: 0 }, { month: "12", value: 0 }]; var CDDDataSource = [{ month: "1", value: 0 }, { month: "2", value: 0 }, { month: "3", value: 0 }, { month: "4", value: 0 }, { month: "5", value: 0 }, { month: "6", value: 0 }, { month: "7", value: 0 }, { month: "8", value: 0 }, { month: "9", value: 0 }, { month: "10", value: 0 }, { month: "11", value: 0 }, { month: "12", value: 0 }]; var chartDataSource = [{ month: "1", use: 0, factor: 0 }, { month: "2", use: 0, factor: 0 }, { month: "3", use: 0, factor: 0 }, { month: "4", use: 0, factor: 0 }, { month: "5", use: 0, factor: 0 }, { month: "6", use: 0, factor: 0 }, { month: "7", use: 0, factor: 0 }, { month: "8", use: 0, factor: 0 }, { month: "9", use: 0, factor: 0 }, { month: "10", use: 0, factor: 0 }, { month: "11", use: 0, factor: 0 }, { month: "12", use: 0, factor: 0 }]; var chartDataSourceHDDCDD = [{ month: "1", use: 0, cdd: 0, hdd: 0 }, { month: "2", use: 0, cdd: 0, hdd: 0 }, { month: "3", use: 0, cdd: 0, hdd: 0 }, { month: "4", use: 0, cdd: 0, hdd: 0 }, { month: "5", use: 0, cdd: 0, hdd: 0 }, { month: "6", use: 0, cdd: 0, hdd: 0 }, { month: "7", use: 0, cdd: 0, hdd: 0 }, { month: "8", use: 0, cdd: 0, hdd: 0 }, { month: "9", use: 0, cdd: 0, hdd: 0 }, { month: "10", use: 0, cdd: 0, hdd: 0 }, { month: "11", use: 0, cdd: 0, hdd: 0 }, { month: "12", use: 0, cdd: 0, hdd: 0 }]; var monthInputArray = [{ month: "1", value: 0 }, { month: "2", value: 0 }, { month: "3", value: 0 }, { month: "4", value: 0 }, { month: "5", value: 0 }, { month: "6", value: 0 }, { month: "7", value: 0 }, { month: "8", value: 0 }, { month: "9", value: 0 }, { month: "10", value: 0 }, { month: "11", value: 0 }, { month: "12", value: 0 }]; function numberWithCommas(x) { return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } function SetUseFactorSelect() { $("#factorSelect").dxSelectBox("instance").option('dataSource', useFactor); $("#factorSelect").dxSelectBox("instance").option('displayExpr', "value"); $("#factorSelect").dxSelectBox("instance").option('valueExpr', "id"); $("#factorSelect").dxSelectBox("instance").option('value', 0); } function GetSiteHDDCDDStandard() { var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/CmSite" }, requireTotalCount: true, pageSize: 1 }); dataSource.filter([ ["SiteId", "=", SITEID] ]); dataSource.load() .done(function (result) { HDDStandard = result[0].HDD; CDDStandard = result[0].CDD; $("#inputHDD").dxTextBox("instance").option('value', HDDStandard.toString()); $("#inputCDD").dxTextBox("instance").option('value', CDDStandard.toString()); GetHDDCDD(); }) .fail(function (error) { utils.toast.show(error); }); } function GetSitePeopleIncrease() { var now = new Date(); var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsPeopleIncrease" }, requireTotalCount: true, pageSize: 1 }); dataSource.filter([ ["SiteId", "=", SITEID], "and", ["Date", "=", now.getFullYear().toString()] ]); dataSource.sort({ getter: "Date", desc: true }); dataSource.load() .done(function (result) { if (result.length != 0) { peopleIncreaseYear = result[0].Date; peopleIncrease[0].value = result[0].m1; peopleIncrease[1].value = result[0].m2; peopleIncrease[2].value = result[0].m3; peopleIncrease[3].value = result[0].m4; peopleIncrease[4].value = result[0].m5; peopleIncrease[5].value = result[0].m6; peopleIncrease[6].value = result[0].m7; peopleIncrease[7].value = result[0].m8; peopleIncrease[8].value = result[0].m9; peopleIncrease[9].value = result[0].m10; peopleIncrease[10].value = result[0].m11; peopleIncrease[11].value = result[0].m12; var tmpValue; for (var i = 11; i >= 0; i--) { if (peopleIncrease[i].value != null) { tmpValue = peopleIncrease[i].value; for (var j = i; j <= now.getMonth() ; j++) { peopleIncrease[j].value = tmpValue; } break; } } var store = new DevExpress.data.ODataStore({ url: endpointSelector + "/BemsPeopleIncrease", key: ["Date", "SiteId"], keyType: { Date: "String", SiteId: "Int32" } }); store.update({ Date: peopleIncreaseYear.toString(), SiteId: SITEID }, { m1: peopleIncrease[0].value, m2: peopleIncrease[1].value, m3: peopleIncrease[2].value, m4: peopleIncrease[3].value, m5: peopleIncrease[4].value, m6: peopleIncrease[5].value, m7: peopleIncrease[6].value, m8: peopleIncrease[7].value, m9: peopleIncrease[8].value, m10: peopleIncrease[9].value, m11: peopleIncrease[10].value, m12: peopleIncrease[11].value }) } else if (result.length == 0) { var dataSource2 = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsPeopleIncrease" }, requireTotalCount: true, pageSize: 1 }); dataSource2.filter([ ["SiteId", "=", SITEID], ]); dataSource2.sort({ getter: "Date", desc: true }); dataSource2.load() .done(function (result2) { if (result2.length != 0) { peopleIncreaseYear = result2[0].Date; peopleIncrease[0].value = result2[0].m1; peopleIncrease[1].value = result2[0].m2; peopleIncrease[2].value = result2[0].m3; peopleIncrease[3].value = result2[0].m4; peopleIncrease[4].value = result2[0].m5; peopleIncrease[5].value = result2[0].m6; peopleIncrease[6].value = result2[0].m7; peopleIncrease[7].value = result2[0].m8; peopleIncrease[8].value = result2[0].m9; peopleIncrease[9].value = result2[0].m10; peopleIncrease[10].value = result2[0].m11; peopleIncrease[11].value = result2[0].m12; var tmpValue; for (var i = 11; i >= 0; i--) { if (peopleIncrease[i].value != null) { tmpValue = peopleIncrease[i].value; for (var j = i; j < peopleIncrease.length; j++) { peopleIncrease[j].value = tmpValue; } break; } } var store = new DevExpress.data.ODataStore({ url: endpointSelector + "/BemsPeopleIncrease", key: ["Date", "SiteId"], keyType: { Date: "String", SiteId: "Int32" } }); store.update({ Date: peopleIncreaseYear.toString(), SiteId: SITEID }, { m1: peopleIncrease[0].value, m2: peopleIncrease[1].value, m3: peopleIncrease[2].value, m4: peopleIncrease[3].value, m5: peopleIncrease[4].value, m6: peopleIncrease[5].value, m7: peopleIncrease[6].value, m8: peopleIncrease[7].value, m9: peopleIncrease[8].value, m10: peopleIncrease[9].value, m11: peopleIncrease[10].value, m12: peopleIncrease[11].value }) var curYear = new Date().getFullYear() - (parseInt(peopleIncreaseYear)); for (var i = 0; i < curYear; i++) { if (i == curYear - 1) { peopleIncreaseYear = new Date().getFullYear(); var tmpMonth = new Date().getMonth(); for (var j = 0; j < peopleIncrease.length; j++) { if (j <= tmpMonth) { peopleIncrease[j].value = tmpValue; } else { peopleIncrease[j].value = null; } } store.insert({ Date: peopleIncreaseYear.toString(), SiteId: SITEID, m1: CheckNull(peopleIncrease[0].value), m2: CheckNull(peopleIncrease[1].value), m3: CheckNull(peopleIncrease[2].value), m4: CheckNull(peopleIncrease[3].value), m5: CheckNull(peopleIncrease[4].value), m6: CheckNull(peopleIncrease[5].value), m7: CheckNull(peopleIncrease[6].value), m8: CheckNull(peopleIncrease[7].value), m9: CheckNull(peopleIncrease[8].value), m10: CheckNull(peopleIncrease[9].value), m11: CheckNull(peopleIncrease[10].value), m12: CheckNull(peopleIncrease[11].value) }) } else { store.insert({ Date: (parseInt(peopleIncreaseYear.toString()) + (i + 1)).toString(), SiteId: SITEID, m1: tmpValue.toString(), m2: tmpValue.toString(), m3: tmpValue.toString(), m4: tmpValue.toString(), m5: tmpValue.toString(), m6: tmpValue.toString(), m7: tmpValue.toString(), m8: tmpValue.toString(), m9: tmpValue.toString(), m10: tmpValue.toString(), m11: tmpValue.toString(), m12: tmpValue.toString() }) } } } else { utils.toast.show("데이터가 없습니다."); } }) .fail(function (error) { utils.toast.show(error); }); } }) .fail(function (error) { utils.toast.show(error); }); } function GetSitePeopleIncreaseHistory() { var selectDate = $("#standardDatePicker").dxDateBox("instance").option('value'); var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsPeopleIncrease" }, requireTotalCount: true, pageSize: 1 }); dataSource.filter([ ["SiteId", "=", SITEID], "and", ["Date", "=", selectDate.getFullYear().toString()] ]); dataSource.sort({ getter: "Date", desc: true }); dataSource.load() .done(function (result) { if (result.length == 0) { peopleIncreaseYear = selectDate.getFullYear(); peopleIncrease[0].value = null; peopleIncrease[1].value = null; peopleIncrease[2].value = null; peopleIncrease[3].value = null; peopleIncrease[4].value = null; peopleIncrease[5].value = null; peopleIncrease[6].value = null; peopleIncrease[7].value = null; peopleIncrease[8].value = null; peopleIncrease[9].value = null; peopleIncrease[10].value = null; peopleIncrease[11].value = null; } else { peopleIncreaseYear = result[0].Date; peopleIncrease[0].value = result[0].m1; peopleIncrease[1].value = result[0].m2; peopleIncrease[2].value = result[0].m3; peopleIncrease[3].value = result[0].m4; peopleIncrease[4].value = result[0].m5; peopleIncrease[5].value = result[0].m6; peopleIncrease[6].value = result[0].m7; peopleIncrease[7].value = result[0].m8; peopleIncrease[8].value = result[0].m9; peopleIncrease[9].value = result[0].m10; peopleIncrease[10].value = result[0].m11; peopleIncrease[11].value = result[0].m12; } }) .fail(function (error) { utils.toast.show(error); }); } function GetSiteRentalRate() { var now = new Date(); var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsRentalRate" }, requireTotalCount: true, pageSize: 1 }); dataSource.filter([ ["SiteId", "=", SITEID], "and", ["Date", "=", now.getFullYear().toString()] ]); dataSource.sort({ getter: "Date", desc: true }); dataSource.load() .done(function (result) { if (result.length != 0) { rentalRateYear = result[0].Date; rentalRate[0].value = result[0].m1; rentalRate[1].value = result[0].m2; rentalRate[2].value = result[0].m3; rentalRate[3].value = result[0].m4; rentalRate[4].value = result[0].m5; rentalRate[5].value = result[0].m6; rentalRate[6].value = result[0].m7; rentalRate[7].value = result[0].m8; rentalRate[8].value = result[0].m9; rentalRate[9].value = result[0].m10; rentalRate[10].value = result[0].m11; rentalRate[11].value = result[0].m12; var tmpValue; for (var i = 11; i >= 0; i--) { if (rentalRate[i].value != null) { tmpValue = rentalRate[i].value; for (var j = i; j <= now.getMonth() ; j++) { rentalRate[j].value = tmpValue; } break; } } var store = new DevExpress.data.ODataStore({ url: endpointSelector + "/BemsRentalRate", key: ["Date", "SiteId"], keyType: { Date: "String", SiteId: "Int32" } }); store.update({ Date: rentalRateYear.toString(), SiteId: SITEID }, { m1: rentalRate[0].value, m2: rentalRate[1].value, m3: rentalRate[2].value, m4: rentalRate[3].value, m5: rentalRate[4].value, m6: rentalRate[5].value, m7: rentalRate[6].value, m8: rentalRate[7].value, m9: rentalRate[8].value, m10: rentalRate[9].value, m11: rentalRate[10].value, m12: rentalRate[11].value }) } else if (result.length == 0) { var dataSource2 = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsRentalRate" }, requireTotalCount: true, pageSize: 1 }); dataSource2.filter([ ["SiteId", "=", SITEID], ]); dataSource2.sort({ getter: "Date", desc: true }); dataSource2.load() .done(function (result2) { if (result2.length != 0) { rentalRateYear = result2[0].Date; rentalRate[0].value = result2[0].m1; rentalRate[1].value = result2[0].m2; rentalRate[2].value = result2[0].m3; rentalRate[3].value = result2[0].m4; rentalRate[4].value = result2[0].m5; rentalRate[5].value = result2[0].m6; rentalRate[6].value = result2[0].m7; rentalRate[7].value = result2[0].m8; rentalRate[8].value = result2[0].m9; rentalRate[9].value = result2[0].m10; rentalRate[10].value = result2[0].m11; rentalRate[11].value = result2[0].m12; var tmpValue; for (var i = 11; i >= 0; i--) { if (rentalRate[i].value != null) { tmpValue = rentalRate[i].value; for (var j = i; j < rentalRate.length; j++) { rentalRate[j].value = tmpValue; } break; } } var store = new DevExpress.data.ODataStore({ url: endpointSelector + "/BemsRentalRate", key: ["Date", "SiteId"], keyType: { Date: "String", SiteId: "Int32" } }); store.update({ Date: rentalRateYear.toString(), SiteId: SITEID }, { m1: rentalRate[0].value, m2: rentalRate[1].value, m3: rentalRate[2].value, m4: rentalRate[3].value, m5: rentalRate[4].value, m6: rentalRate[5].value, m7: rentalRate[6].value, m8: rentalRate[7].value, m9: rentalRate[8].value, m10: rentalRate[9].value, m11: rentalRate[10].value, m12: rentalRate[11].value }) var curYear = new Date().getFullYear() - (parseInt(rentalRateYear)); for (var i = 0; i < curYear; i++) { if (i == curYear - 1) { rentalRateYear = new Date().getFullYear(); var tmpMonth = new Date().getMonth(); for (var j = 0; j < rentalRate.length; j++) { if (j <= tmpMonth) { rentalRate[j].value = tmpValue; } else { rentalRate[j].value = null; } } store.insert({ Date: rentalRateYear.toString(), SiteId: SITEID, m1: CheckNull(rentalRate[0].value), m2: CheckNull(rentalRate[1].value), m3: CheckNull(rentalRate[2].value), m4: CheckNull(rentalRate[3].value), m5: CheckNull(rentalRate[4].value), m6: CheckNull(rentalRate[5].value), m7: CheckNull(rentalRate[6].value), m8: CheckNull(rentalRate[7].value), m9: CheckNull(rentalRate[8].value), m10: CheckNull(rentalRate[9].value), m11: CheckNull(rentalRate[10].value), m12: CheckNull(rentalRate[11].value) }) } else { store.insert({ Date: (parseInt(rentalRateYear.toString()) + (i + 1)).toString(), SiteId: SITEID, m1: tmpValue.toString(), m2: tmpValue.toString(), m3: tmpValue.toString(), m4: tmpValue.toString(), m5: tmpValue.toString(), m6: tmpValue.toString(), m7: tmpValue.toString(), m8: tmpValue.toString(), m9: tmpValue.toString(), m10: tmpValue.toString(), m11: tmpValue.toString(), m12: tmpValue.toString() }) } } } else { utils.toast.show("데이터가 없습니다."); } }) .fail(function (error) { utils.toast.show(error); }); } }) .fail(function (error) { utils.toast.show(error); }); } function CheckNull(value) { if (value == null) { return null; } else { return value; } } function GetSiteRentalRateHistory() { var selectDate = $("#standardDatePicker").dxDateBox("instance").option('value'); var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsRentalRate" }, requireTotalCount: true, pageSize: 1 }); dataSource.filter([ ["SiteId", "=", SITEID], "and", ["Date", "=", selectDate.getFullYear().toString()] ]); dataSource.sort({ getter: "Date", desc: true }); dataSource.load() .done(function (result) { if (result.length == 0) { rentalRateYear = selectDate.getFullYear(); rentalRate[0].value = null; rentalRate[1].value = null; rentalRate[2].value = null; rentalRate[3].value = null; rentalRate[4].value = null; rentalRate[5].value = null; rentalRate[6].value = null; rentalRate[7].value = null; rentalRate[8].value = null; rentalRate[9].value = null; rentalRate[10].value = null; rentalRate[11].value = null; } else { rentalRateYear = result[0].Date; rentalRate[0].value = result[0].m1; rentalRate[1].value = result[0].m2; rentalRate[2].value = result[0].m3; rentalRate[3].value = result[0].m4; rentalRate[4].value = result[0].m5; rentalRate[5].value = result[0].m6; rentalRate[6].value = result[0].m7; rentalRate[7].value = result[0].m8; rentalRate[8].value = result[0].m9; rentalRate[9].value = result[0].m10; rentalRate[10].value = result[0].m11; rentalRate[11].value = result[0].m12; } }) .fail(function (error) { utils.toast.show(error); }); } function GetEnergyData(FuelTypeId, FacilityTypeId, FacilityCode, FormulaId) { var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsFormulaParameter" }, requireTotalCount: true, pageSize: 100 }); dataSource.filter([ ["SiteId", "=", SITEID], "and", ["FacilityTypeId", "=", FacilityTypeId], "and", ["FacilityCode", "=", FacilityCode], "and", ["FormulaId", "=", FormulaId] ]); dataSource.sort({ getter: "ParameterId", desc: true }); dataSource.load() .done(function (result) { var formulaArray = new Array(result.length); for (var i = 0; i < formulaArray.length; i++) { formulaArray[i] = new Array(2); } for (var i = 0; i < formulaArray.length; i++) { formulaArray[i][0] = result[i].ParameterFacilityCode; formulaArray[i][1] = result[i].ParameterPropertyId; } for (var i = 0; i < formulaArray.length; i++) { GetDailyData(FuelTypeId, formulaArray[i]); } }) .fail(function (error) { utils.toast.show(error); }); } function GetDailyData(FuelTypeId, formulaArray) { var now = new Date(); var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsMonitoringPointHistoryDaily" }, requireTotalCount: true, pageSize: 366 }); dataSource.filter([ ["SiteId", "=", SITEID], "and", ["FacilityCode", "=", formulaArray[0]], "and", ["PropertyId", "=", formulaArray[1]], "and", ["CreatedDateTime", ">=", new Date(now.getFullYear(), 1 - 1, 1)], "and", ["CreatedDateTime", "<=", new Date(now.getFullYear(), 12 - 1, 31)] ]); dataSource.sort({ getter: "CreatedDateTime", asc: true }); dataSource.load() .done(function (result) { for (var i = 0; i < result.length; i++) { if (FuelTypeId == powerFuelTypeId) { for (var j = 0; j < powerDataSource.length; j++) { if (powerDataSource[j].month.toString() == (result[i].CreatedDateTime.getMonth() + 1).toString()) { powerDataSource[j].value = powerDataSource[j].value + result[i].DailyValue; } } } else if (FuelTypeId == gasFuelTypeId) { for (var j = 0; j < gasDataSource.length; j++) { if (gasDataSource[j].month.toString() == (result[i].CreatedDateTime.getMonth() + 1).toString()) { gasDataSource[j].value = gasDataSource[j].value + (result[i].DailyValue * toe / kwh); } } } else { /*for (var j = 0; j < waterDataSource.length; j++) { if (waterDataSource[j].month.toString() == (result[i].CreatedDateTime.getMonth() + 1).toString()) { waterDataSource[j].value = waterDataSource[j].value + result[i].DailyValue; } }*/ } } }) .fail(function (error) { utils.toast.show(error); }); } function GetEnergyDataHistory(FuelTypeId, FacilityTypeId, FacilityCode, FormulaId) { var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsFormulaParameter" }, requireTotalCount: true, pageSize: 100 }); dataSource.filter([ ["SiteId", "=", SITEID], "and", ["FacilityTypeId", "=", FacilityTypeId], "and", ["FacilityCode", "=", FacilityCode], "and", ["FormulaId", "=", FormulaId] ]); dataSource.sort({ getter: "ParameterId", desc: true }); dataSource.load() .done(function (result) { var formulaArray = new Array(result.length); for (var i = 0; i < formulaArray.length; i++) { formulaArray[i] = new Array(2); } for (var i = 0; i < formulaArray.length; i++) { formulaArray[i][0] = result[i].ParameterFacilityCode; formulaArray[i][1] = result[i].ParameterPropertyId; } if (FuelTypeId == powerFuelTypeId) { for (var i = 0; i < powerDataSource.length; i++) { powerDataSource[i].value = null; } } else if (FuelTypeId == gasFuelTypeId) { for (var i = 0; i < gasDataSource.length; i++) { gasDataSource[i].value = null; } } for (var i = 0; i < formulaArray.length; i++) { GetDailyDataHistory(FuelTypeId, formulaArray[i]); } }) .fail(function (error) { utils.toast.show(error); }); } function GetDailyDataHistory(FuelTypeId, formulaArray) { var selectDate = $("#standardDatePicker").dxDateBox("instance").option('value'); var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsMonitoringPointHistoryDaily" }, requireTotalCount: true, pageSize: 366 }); dataSource.filter([ ["SiteId", "=", SITEID], "and", ["FacilityCode", "=", formulaArray[0]], "and", ["PropertyId", "=", formulaArray[1]], "and", ["CreatedDateTime", ">=", new Date(selectDate.getFullYear(), 1 - 1, 1)], "and", ["CreatedDateTime", "<=", new Date(selectDate.getFullYear(), 12 - 1, 31)] ]); dataSource.sort({ getter: "CreatedDateTime", asc: true }); dataSource.load() .done(function (result) { for (var i = 0; i < result.length; i++) { if (FuelTypeId == powerFuelTypeId) { for (var j = 0; j < powerDataSource.length; j++) { if (powerDataSource[j].month.toString() == (result[i].CreatedDateTime.getMonth() + 1).toString()) { powerDataSource[j].value = powerDataSource[j].value + result[i].DailyValue; } } } else if (FuelTypeId == gasFuelTypeId) { for (var j = 0; j < gasDataSource.length; j++) { if (gasDataSource[j].month.toString() == (result[i].CreatedDateTime.getMonth() + 1).toString()) { gasDataSource[j].value = gasDataSource[j].value + (result[i].DailyValue * toe / kwh); } } } else { /*for (var j = 0; j < waterDataSource.length; j++) { if (waterDataSource[j].month.toString() == (result[i].CreatedDateTime.getMonth() + 1).toString()) { waterDataSource[j].value = waterDataSource[j].value + result[i].DailyValue; } }*/ } } }) .fail(function (error) { utils.toast.show(error); }); } function SetChart() { var selectFactor = $("#factorSelect").dxSelectBox("instance").option('value'); if (selectFactor == 0) { for (var i = 0; i < chartDataSource.length; i++) { if (powerDataSource[i].value == null && gasDataSource[i].value == null) { chartDataSource[i].use = null; } else { chartDataSource[i].use = powerDataSource[i].value + gasDataSource[i].value; } chartDataSource[i].factor = peopleIncrease[i].value; } $("#compareChart").dxChart("instance").option('dataSource', chartDataSource); var tmpSeries = $("#compareChart").dxChart("instance").option('series'); if (tmpSeries.length == 3) { tmpSeries.pop(); } tmpSeries[0].name = "에너지 사용량(kWh/월)"; tmpSeries[0].valueField = "use"; tmpSeries[0].axis = "에너지 사용량"; tmpSeries[1].name = "재실 인원(명/월)"; tmpSeries[1].valueField = "factor"; tmpSeries[1].axis = "재실 인원"; $("#compareChart").dxChart("instance").option('series', tmpSeries); var tmpValueAxis = $("#compareChart").dxChart("instance").option('valueAxis'); if (tmpValueAxis.length == 3) { tmpValueAxis.pop(); } tmpValueAxis[0].name = "에너지 사용량"; tmpValueAxis[0].position = "left"; tmpValueAxis[0].title = "에너지 사용량(kWh/월)"; tmpValueAxis[1].name = "재실 인원"; tmpValueAxis[1].position = "right"; tmpValueAxis[1].inverted = true; tmpValueAxis[1].title = "재실 인원(명/월)"; $("#compareChart").dxChart("instance").option('valueAxis', tmpValueAxis); } else if (selectFactor == 1) { for (var i = 0; i < chartDataSource.length; i++) { if (powerDataSource[i].value == null && gasDataSource[i].value == null) { chartDataSource[i].use = null; } else { chartDataSource[i].use = powerDataSource[i].value + gasDataSource[i].value; } chartDataSource[i].factor = rentalRate[i].value; } $("#compareChart").dxChart("instance").option('dataSource', chartDataSource); var tmpSeries = $("#compareChart").dxChart("instance").option('series'); if (tmpSeries.length == 3) { tmpSeries.pop(); } tmpSeries[0].name = "에너지 사용량(kWh/월)"; tmpSeries[0].valueField = "use"; tmpSeries[0].axis = "에너지 사용량"; tmpSeries[1].name = "임대율(%/월)"; tmpSeries[1].valueField = "factor"; tmpSeries[1].axis = "임대율"; $("#compareChart").dxChart("instance").option('series', tmpSeries); var tmpValueAxis = $("#compareChart").dxChart("instance").option('valueAxis'); if (tmpValueAxis.length == 3) { tmpValueAxis.pop(); } tmpValueAxis[0].name = "에너지 사용량"; tmpValueAxis[0].position = "left"; tmpValueAxis[0].title = "에너지 사용량(kWh/월)"; tmpValueAxis[1].name = "임대율"; tmpValueAxis[1].position = "right"; tmpValueAxis[1].inverted = true; tmpValueAxis[1].title = "임대율(%/월)"; $("#compareChart").dxChart("instance").option('valueAxis', tmpValueAxis); } else if (selectFactor == 2) { for (var i = 0; i < chartDataSource.length; i++) { if (powerDataSource[i].value == null && gasDataSource[i].value == null) { chartDataSource[i].use = null; } else { chartDataSource[i].use = powerDataSource[i].value + gasDataSource[i].value; } chartDataSource[i].factor = CDDDataSource[i].value; } $("#compareChart").dxChart("instance").option('dataSource', chartDataSource); var tmpSeries = $("#compareChart").dxChart("instance").option('series'); if (tmpSeries.length == 3) { tmpSeries.pop(); } tmpSeries[0].name = "에너지 사용량(kWh/월)"; tmpSeries[0].valueField = "use"; tmpSeries[0].axis = "에너지 사용량"; tmpSeries[1].name = "냉방도일(월)"; tmpSeries[1].valueField = "factor"; tmpSeries[1].axis = "냉방도일"; $("#compareChart").dxChart("instance").option('series', tmpSeries); var tmpValueAxis = $("#compareChart").dxChart("instance").option('valueAxis'); if (tmpValueAxis.length == 3) { tmpValueAxis.pop(); } tmpValueAxis[0].name = "에너지 사용량"; tmpValueAxis[0].position = "left"; tmpValueAxis[0].title = "에너지 사용량(kWh/월)"; tmpValueAxis[1].name = "냉방도일"; tmpValueAxis[1].position = "right"; tmpValueAxis[1].inverted = false; tmpValueAxis[1].title = "냉방도일(월)"; $("#compareChart").dxChart("instance").option('valueAxis', tmpValueAxis); } else if (selectFactor == 3) { for (var i = 0; i < chartDataSource.length; i++) { if (powerDataSource[i].value == null && gasDataSource[i].value == null) { chartDataSource[i].use = null; } else { chartDataSource[i].use = powerDataSource[i].value + gasDataSource[i].value; } chartDataSource[i].factor = HDDDataSource[i].value; } $("#compareChart").dxChart("instance").option('dataSource', chartDataSource); var tmpSeries = $("#compareChart").dxChart("instance").option('series'); if (tmpSeries.length == 3) { tmpSeries.pop(); } tmpSeries[0].name = "에너지 사용량(kWh/월)"; tmpSeries[0].valueField = "use"; tmpSeries[0].axis = "에너지 사용량"; tmpSeries[1].name = "난방도일(월)"; tmpSeries[1].valueField = "factor"; tmpSeries[1].axis = "난방도일"; $("#compareChart").dxChart("instance").option('series', tmpSeries); var tmpValueAxis = $("#compareChart").dxChart("instance").option('valueAxis'); if (tmpValueAxis.length == 3) { tmpValueAxis.pop(); } tmpValueAxis[0].name = "에너지 사용량"; tmpValueAxis[0].position = "left"; tmpValueAxis[0].title = "에너지 사용량(kWh/월)"; tmpValueAxis[1].name = "난방도일"; tmpValueAxis[1].position = "right"; tmpValueAxis[1].inverted = false; tmpValueAxis[1].title = "난방도일(월)"; $("#compareChart").dxChart("instance").option('valueAxis', tmpValueAxis); } else if (selectFactor == 4) { for (var i = 0; i < chartDataSourceHDDCDD.length; i++) { if (powerDataSource[i].value == null && gasDataSource[i].value == null) { chartDataSourceHDDCDD[i].use = null; } else { chartDataSourceHDDCDD[i].use = powerDataSource[i].value + gasDataSource[i].value; } chartDataSourceHDDCDD[i].hdd = HDDDataSource[i].value; chartDataSourceHDDCDD[i].cdd = CDDDataSource[i].value; } $("#compareChart").dxChart("instance").option('dataSource', chartDataSourceHDDCDD); var tmpSeries = $("#compareChart").dxChart("instance").option('series'); if (tmpSeries.length == 2) { tmpSeries.push({ valueField: "hdd", name: "난방도일(월)", color: '#FFBB00', axis: "난방도일" }); } tmpSeries[0].name = "에너지 사용량(kWh/월)"; tmpSeries[0].valueField = "use"; tmpSeries[0].axis = "에너지 사용량"; tmpSeries[1].name = "냉방도일(월)"; tmpSeries[1].valueField = "cdd"; tmpSeries[1].axis = "냉방도일"; $("#compareChart").dxChart("instance").option('series', tmpSeries); var tmpValueAxis = $("#compareChart").dxChart("instance").option('valueAxis'); if (tmpValueAxis.length == 2) { tmpValueAxis.push({ valueField: "hdd", name: "난방도일", axis: "난방도일", position: "right", title: "난방도일(월)" }); } tmpValueAxis[0].name = "에너지 사용량"; tmpValueAxis[0].position = "left"; tmpValueAxis[0].title = "에너지 사용량(kWh/월)"; tmpValueAxis[1].name = "냉방도일"; tmpValueAxis[1].position = "right"; tmpValueAxis[1].inverted = false; tmpValueAxis[1].title = "냉방도일(월)"; $("#compareChart").dxChart("instance").option('valueAxis', tmpValueAxis); } else { utils.toast.show("소비 요인이 선택되지 않았습니다."); } } function GetTOEKWH() { var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsFactorToe" }, requireTotalCount: true, pageSize: 10 }); dataSource.filter([ ["FuelTypeId", "=", powerFuelTypeId], "or", ["FuelTypeId", "=", gasFuelTypeId] ]); dataSource.sort({ getter: "FuelTypeId", asc: true }); dataSource.load() .done(function (result) { toe = result[1].PureFactor; kwh = result[0].PureFactor; }) .fail(function (error) { utils.toast.show(error); }); } function GetHDDCDD() { for (var i = 0; i < temperatureFormula.length; i++) { var now = new Date(); var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsMonitoringPointHistoryDaily" }, requireTotalCount: true, pageSize: 366 }); dataSource.filter([ ["SiteId", "=", SITEID], "and", ["FacilityCode", "=", temperatureFormula[i].FacilityCode], "and", ["PropertyId", "=", temperatureFormula[i].PropertyId], "and", ["CreatedDateTime", ">=", new Date(now.getFullYear(), 1 - 1, 1)], "and", ["CreatedDateTime", "<=", new Date(now.getFullYear(), 12 - 1, 31)] ]); dataSource.sort({ getter: "CreatedDateTime", asc: true }); dataSource.load() .done(function (result) { for (var i = 0; i < result.length; i++) { for (var j = 0; j < HDDDataSource.length; j++) { if (HDDDataSource[j].month.toString() == (result[i].CreatedDateTime.getMonth() + 1).toString()) { HDDDataSource[j].value = HDDDataSource[j].value + (HDDStandard - parseFloat(result[i].DailyValue.toString())); } } for (var j = 0; j < CDDDataSource.length; j++) { if (CDDDataSource[j].month.toString() == (result[i].CreatedDateTime.getMonth() + 1).toString()) { CDDDataSource[j].value = CDDDataSource[j].value + (parseFloat(result[i].DailyValue.toString()) - CDDStandard); } } } for (var j = 0; j < HDDDataSource.length; j++) { HDDDataSource[j].value = HDDDataSource[j].value / temperatureFormula.length; } for (var j = 0; j < CDDDataSource.length; j++) { CDDDataSource[j].value = CDDDataSource[j].value / temperatureFormula.length; } }) .fail(function (error) { utils.toast.show(error); }); } } function GetHDDCDDHistory() { for (var i = 0; i < HDDDataSource.length; i++) { HDDDataSource[i].value = null; } for (var i = 0; i < CDDDataSource.length; i++) { CDDDataSource[i].value = null; } for (var i = 0; i < temperatureFormula.length; i++) { var selectDate = $("#standardDatePicker").dxDateBox("instance").option('value'); var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsMonitoringPointHistoryDaily" }, requireTotalCount: true, pageSize: 366 }); dataSource.filter([ ["SiteId", "=", SITEID], "and", ["FacilityCode", "=", temperatureFormula[i].FacilityCode], "and", ["PropertyId", "=", temperatureFormula[i].PropertyId], "and", ["CreatedDateTime", ">=", new Date(selectDate.getFullYear(), 1 - 1, 1)], "and", ["CreatedDateTime", "<=", new Date(selectDate.getFullYear(), 12 - 1, 31)] ]); dataSource.sort({ getter: "CreatedDateTime", asc: true }); dataSource.load() .done(function (result) { for (var i = 0; i < result.length; i++) { for (var j = 0; j < HDDDataSource.length; j++) { if (HDDDataSource[j].month.toString() == (result[i].CreatedDateTime.getMonth() + 1).toString()) { HDDDataSource[j].value = HDDDataSource[j].value + (HDDStandard - parseFloat(result[i].DailyValue.toString())); } } for (var j = 0; j < CDDDataSource.length; j++) { if (CDDDataSource[j].month.toString() == (result[i].CreatedDateTime.getMonth() + 1).toString()) { CDDDataSource[j].value = CDDDataSource[j].value + (parseFloat(result[i].DailyValue.toString()) - CDDStandard); } } } for (var j = 0; j < HDDDataSource.length; j++) { if (HDDDataSource[j].value == null) { HDDDataSource[j].value = null; } else { HDDDataSource[j].value = HDDDataSource[j].value / temperatureFormula.length; } } for (var j = 0; j < CDDDataSource.length; j++) { if (CDDDataSource[j].value == null) { CDDDataSource[j].value = null; } else { CDDDataSource[j].value = CDDDataSource[j].value / temperatureFormula.length; } } }) .fail(function (error) { utils.toast.show(error); }); } } function UpdatePeopleIncreseRentalRate() { var changeIndex = 0; for (var i = 0; i < monthInputArray.length; i++) { var inputValue = $("#textBox" + (i + 1).toString()).dxTextBox("instance").option('value'); if (monthInputArray[i].value.toString() != inputValue.toString()) { changeIndex = i + 1; break; } } if (changeIndex == 0) { visiblePopup(false); return; } for (var i = changeIndex; i <= monthInputArray.length; i++) { $("#textBox" + i.toString()).dxTextBox("instance").option('value', $("#textBox" + changeIndex.toString()).dxTextBox("instance").option('value')); } var selectFactor = $("#factorSelect").dxSelectBox("instance").option('value'); if (selectFactor == 0) { var store = new DevExpress.data.ODataStore({ url: endpointSelector + "/BemsPeopleIncrease", key: ["Date", "SiteId"], keyType: { Date: "String", SiteId: "Int32" } }); if (peopleIncreaseYear.toString() != new Date().getFullYear().toString()) { store.insert({ Date: new Date().getFullYear().toString(), SiteId: SITEID, m1: $("#textBox1").dxTextBox("instance").option('value').toString(), m2: $("#textBox2").dxTextBox("instance").option('value').toString(), m3: $("#textBox3").dxTextBox("instance").option('value').toString(), m4: $("#textBox4").dxTextBox("instance").option('value').toString(), m5: $("#textBox5").dxTextBox("instance").option('value').toString(), m6: $("#textBox6").dxTextBox("instance").option('value').toString(), m7: $("#textBox7").dxTextBox("instance").option('value').toString(), m8: $("#textBox8").dxTextBox("instance").option('value').toString(), m9: $("#textBox9").dxTextBox("instance").option('value').toString(), m10: $("#textBox10").dxTextBox("instance").option('value').toString(), m11: $("#textBox11").dxTextBox("instance").option('value').toString(), m12: $("#textBox12").dxTextBox("instance").option('value').toString() }).done(function (key, result) { peopleIncrease[0].value = parseFloat($("#textBox1").dxTextBox("instance").option('value').toString()); peopleIncrease[1].value = parseFloat($("#textBox2").dxTextBox("instance").option('value').toString()); peopleIncrease[2].value = parseFloat($("#textBox3").dxTextBox("instance").option('value').toString()); peopleIncrease[3].value = parseFloat($("#textBox4").dxTextBox("instance").option('value').toString()); peopleIncrease[4].value = parseFloat($("#textBox5").dxTextBox("instance").option('value').toString()); peopleIncrease[5].value = parseFloat($("#textBox6").dxTextBox("instance").option('value').toString()); peopleIncrease[6].value = parseFloat($("#textBox7").dxTextBox("instance").option('value').toString()); peopleIncrease[7].value = parseFloat($("#textBox8").dxTextBox("instance").option('value').toString()); peopleIncrease[8].value = parseFloat($("#textBox9").dxTextBox("instance").option('value').toString()); peopleIncrease[9].value = parseFloat($("#textBox10").dxTextBox("instance").option('value').toString()); peopleIncrease[10].value = parseFloat($("#textBox11").dxTextBox("instance").option('value').toString()); peopleIncrease[11].value = parseFloat($("#textBox12").dxTextBox("instance").option('value').toString()); for (var i = 0; i < chartDataSource.length; i++) { chartDataSource[i].factor = peopleIncrease[i].value; } $("#compareChart").dxChart("instance").option('dataSource', chartDataSource); visiblePopup(false); }) .fail(function (error) { utils.toast.show(error); }); } else { store.update({ Date: peopleIncreaseYear, SiteId: SITEID }, { m1: $("#textBox1").dxTextBox("instance").option('value').toString(), m2: $("#textBox2").dxTextBox("instance").option('value').toString(), m3: $("#textBox3").dxTextBox("instance").option('value').toString(), m4: $("#textBox4").dxTextBox("instance").option('value').toString(), m5: $("#textBox5").dxTextBox("instance").option('value').toString(), m6: $("#textBox6").dxTextBox("instance").option('value').toString(), m7: $("#textBox7").dxTextBox("instance").option('value').toString(), m8: $("#textBox8").dxTextBox("instance").option('value').toString(), m9: $("#textBox9").dxTextBox("instance").option('value').toString(), m10: $("#textBox10").dxTextBox("instance").option('value').toString(), m11: $("#textBox11").dxTextBox("instance").option('value').toString(), m12: $("#textBox12").dxTextBox("instance").option('value').toString(), }) .done(function (key, result) { peopleIncrease[0].value = parseFloat($("#textBox1").dxTextBox("instance").option('value').toString()); peopleIncrease[1].value = parseFloat($("#textBox2").dxTextBox("instance").option('value').toString()); peopleIncrease[2].value = parseFloat($("#textBox3").dxTextBox("instance").option('value').toString()); peopleIncrease[3].value = parseFloat($("#textBox4").dxTextBox("instance").option('value').toString()); peopleIncrease[4].value = parseFloat($("#textBox5").dxTextBox("instance").option('value').toString()); peopleIncrease[5].value = parseFloat($("#textBox6").dxTextBox("instance").option('value').toString()); peopleIncrease[6].value = parseFloat($("#textBox7").dxTextBox("instance").option('value').toString()); peopleIncrease[7].value = parseFloat($("#textBox8").dxTextBox("instance").option('value').toString()); peopleIncrease[8].value = parseFloat($("#textBox9").dxTextBox("instance").option('value').toString()); peopleIncrease[9].value = parseFloat($("#textBox10").dxTextBox("instance").option('value').toString()); peopleIncrease[10].value = parseFloat($("#textBox11").dxTextBox("instance").option('value').toString()); peopleIncrease[11].value = parseFloat($("#textBox12").dxTextBox("instance").option('value').toString()); for (var i = 0; i < chartDataSource.length; i++) { chartDataSource[i].factor = peopleIncrease[i].value; } $("#compareChart").dxChart("instance").option('dataSource', chartDataSource); visiblePopup(false); }) .fail(function (error) { utils.toast.show(error); }); } } else { var store = new DevExpress.data.ODataStore({ url: endpointSelector + "/BemsRentalRate", key: ["Date", "SiteId"], keyType: { Date: "String", SiteId: "Int32" } }); if (rentalRateYear.toString() != new Date().getFullYear().toString()) { store.insert({ Date: new Date().getFullYear().toString(), SiteId: SITEID, m1: $("#textBox1").dxTextBox("instance").option('value').toString(), m2: $("#textBox2").dxTextBox("instance").option('value').toString(), m3: $("#textBox3").dxTextBox("instance").option('value').toString(), m4: $("#textBox4").dxTextBox("instance").option('value').toString(), m5: $("#textBox5").dxTextBox("instance").option('value').toString(), m6: $("#textBox6").dxTextBox("instance").option('value').toString(), m7: $("#textBox7").dxTextBox("instance").option('value').toString(), m8: $("#textBox8").dxTextBox("instance").option('value').toString(), m9: $("#textBox9").dxTextBox("instance").option('value').toString(), m10: $("#textBox10").dxTextBox("instance").option('value').toString(), m11: $("#textBox11").dxTextBox("instance").option('value').toString(), m12: $("#textBox12").dxTextBox("instance").option('value').toString() }).done(function (key, result) { rentalRate[0].value = parseFloat($("#textBox1").dxTextBox("instance").option('value').toString()); rentalRate[1].value = parseFloat($("#textBox2").dxTextBox("instance").option('value').toString()); rentalRate[2].value = parseFloat($("#textBox3").dxTextBox("instance").option('value').toString()); rentalRate[3].value = parseFloat($("#textBox4").dxTextBox("instance").option('value').toString()); rentalRate[4].value = parseFloat($("#textBox5").dxTextBox("instance").option('value').toString()); rentalRate[5].value = parseFloat($("#textBox6").dxTextBox("instance").option('value').toString()); rentalRate[6].value = parseFloat($("#textBox7").dxTextBox("instance").option('value').toString()); rentalRate[7].value = parseFloat($("#textBox8").dxTextBox("instance").option('value').toString()); rentalRate[8].value = parseFloat($("#textBox9").dxTextBox("instance").option('value').toString()); rentalRate[9].value = parseFloat($("#textBox10").dxTextBox("instance").option('value').toString()); rentalRate[10].value = parseFloat($("#textBox11").dxTextBox("instance").option('value').toString()); rentalRate[11].value = parseFloat($("#textBox12").dxTextBox("instance").option('value').toString()); for (var i = 0; i < chartDataSource.length; i++) { chartDataSource[i].factor = rentalRate[i].value; } $("#compareChart").dxChart("instance").option('dataSource', chartDataSource); visiblePopup(false); }) .fail(function (error) { utils.toast.show(error); }); } else { store.update({ Date: rentalRateYear, SiteId: SITEID }, { m1: $("#textBox1").dxTextBox("instance").option('value').toString(), m2: $("#textBox2").dxTextBox("instance").option('value').toString(), m3: $("#textBox3").dxTextBox("instance").option('value').toString(), m4: $("#textBox4").dxTextBox("instance").option('value').toString(), m5: $("#textBox5").dxTextBox("instance").option('value').toString(), m6: $("#textBox6").dxTextBox("instance").option('value').toString(), m7: $("#textBox7").dxTextBox("instance").option('value').toString(), m8: $("#textBox8").dxTextBox("instance").option('value').toString(), m9: $("#textBox9").dxTextBox("instance").option('value').toString(), m10: $("#textBox10").dxTextBox("instance").option('value').toString(), m11: $("#textBox11").dxTextBox("instance").option('value').toString(), m12: $("#textBox12").dxTextBox("instance").option('value').toString(), }) .done(function (key, result) { rentalRate[0].value = parseFloat($("#textBox1").dxTextBox("instance").option('value').toString()); rentalRate[1].value = parseFloat($("#textBox2").dxTextBox("instance").option('value').toString()); rentalRate[2].value = parseFloat($("#textBox3").dxTextBox("instance").option('value').toString()); rentalRate[3].value = parseFloat($("#textBox4").dxTextBox("instance").option('value').toString()); rentalRate[4].value = parseFloat($("#textBox5").dxTextBox("instance").option('value').toString()); rentalRate[5].value = parseFloat($("#textBox6").dxTextBox("instance").option('value').toString()); rentalRate[6].value = parseFloat($("#textBox7").dxTextBox("instance").option('value').toString()); rentalRate[7].value = parseFloat($("#textBox8").dxTextBox("instance").option('value').toString()); rentalRate[8].value = parseFloat($("#textBox9").dxTextBox("instance").option('value').toString()); rentalRate[9].value = parseFloat($("#textBox10").dxTextBox("instance").option('value').toString()); rentalRate[10].value = parseFloat($("#textBox11").dxTextBox("instance").option('value').toString()); rentalRate[11].value = parseFloat($("#textBox12").dxTextBox("instance").option('value').toString()); for (var i = 0; i < chartDataSource.length; i++) { chartDataSource[i].factor = rentalRate[i].value; } $("#compareChart").dxChart("instance").option('dataSource', chartDataSource); visiblePopup(false); }) .fail(function (error) { utils.toast.show(error); }); } } } function handleViewShowing() { facilityDataSource.filter([ eq('SiteId', SITEID), 'and', eq('FacilityTypeId', powerFacilityTypeId), 'or', eq('FacilityTypeId', gasFacilityTypeId) ]); facilityDataSource.load().done(function (facilities) { if (_.isEmpty(facilities) === false) { for (var i = 0; i < facilities.length; i++) { if (facilities[i].FacilityTypeId() == powerFacilityTypeId) { powerFacilityCode = facilities[i].FacilityCode(); } else { gasFacilityCode = facilities[i].FacilityCode(); } } } }); GetTOEKWH(); GetSiteHDDCDDStandard(); GetSiteRentalRate(); GetSitePeopleIncrease(); GetEnergyData(powerFuelTypeId, powerFacilityTypeId, powerFacilityCode, powerFormulaId); GetEnergyData(gasFuelTypeId, gasFacilityTypeId, gasFacilityCode, gasFormulaId); } // 2019.04.16 : 그리드 도표 작업 : 팝업창 추가 ~~~ function DataGridPopup_ButtonClick() { // DevExpress.ui.notify("날짜가 일치하지 않는 데이타가 존재합니다", "fail", 1000); var selectFactor = $("#factorSelect").dxSelectBox("instance").option('value'); // 팝업창 레이아웃 **********kgp if (selectFactor == 4) DataGridPopup_Visible2(true); else if (selectFactor == 2 || selectFactor == 3) DataGridPopup_Visible1(true); else DataGridPopup_Visible(true); } // 도표를 선택하면 함수호출 function handlePopupShown() { var today = new Date(); var TodayMonth = today.getMonth(); var TodayYear = today.getFullYear(); var selectDate = $("#standardDatePicker").dxDateBox("instance").option('value'); var selectedYear = selectDate.getFullYear(); var selectFactor = $("#factorSelect").dxSelectBox("instance").option('value'); if (selectFactor == 4) { dataArrayresult2 = chartDataSourceHDDCDD.slice(); if (selectedYear == TodayYear) dataArrayresult2.splice(TodayMonth, 12 - TodayMonth); // 불필요 데이터 삭제 } else if (selectFactor == 2 || selectFactor == 3) { dataArrayresult1 = chartDataSource.slice(); if (selectedYear == TodayYear) dataArrayresult1.splice(TodayMonth, 12 - TodayMonth); // 불필요 데이터 삭제 } else { dataArrayresult = chartDataSource.slice(); if (selectedYear == TodayYear) dataArrayresult.splice(TodayMonth, 12 - TodayMonth); // 불필요 데이터 삭제 } // 컬럼명 업데이트 var ColumnCaptionName = ""; if (selectFactor == 0) { ColumnCaptionName = "재실 인원(명/월)"; viewModel.EnergyUsageFactorOptions.columns[2].caption = ColumnCaptionName; $("#EnergyUsageFactor_Container").dxDataGrid("instance").option("dataSource", dataArrayresult); DataGridPopup_Visible(true); } else if (selectFactor == 1) { ColumnCaptionName = "임대율(%/월)"; viewModel.EnergyUsageFactorOptions.columns[2].caption = ColumnCaptionName; $("#EnergyUsageFactor_Container").dxDataGrid("instance").option("dataSource", dataArrayresult); DataGridPopup_Visible(true); } else if (selectFactor == 2) { ColumnCaptionName = "냉방도일(월)"; viewModel.EnergyUsageFactorOptions1.columns[2].caption = ColumnCaptionName; $("#EnergyUsageFactor_Container1").dxDataGrid("instance").option("dataSource", dataArrayresult1); DataGridPopup_Visible1(true); } else if (selectFactor == 3) { ColumnCaptionName = "난방도일(월)"; viewModel.EnergyUsageFactorOptions1.columns[2].caption = ColumnCaptionName; $("#EnergyUsageFactor_Container1").dxDataGrid("instance").option("dataSource", dataArrayresult1); DataGridPopup_Visible1(true); } else if (selectFactor == 4) { viewModel.EnergyUsageFactorOptions2.columns[2].caption = "냉방도일(월)"; viewModel.EnergyUsageFactorOptions2.columns[3].caption = "난방도일(월)"; $("#EnergyUsageFactor_Container2").dxDataGrid("instance").option("dataSource", dataArrayresult2); DataGridPopup_Visible2(true); } } // ~~~ 2019.04.16 : 그리드 도표 작업 : 팝업창 추가 function handleViewShown() { $("#loadIndicator").dxLoadIndicator("instance").option('visible', true); setTimeout(function () { SetUseFactorSelect(); $("#loadIndicator").dxLoadIndicator("instance").option('visible', false); }, 500); visiblePopup(false); } var searchViewOptions = { }; function handleSearchInSearchView() { } var viewModel = $.extend(BWA.CommonView.create(params, viewInfo, searchViewOptions, ko.observable(null), handleViewShown, null, handleSearchInSearchView), { viewShowing: handleViewShowing, factorSelect: { onSelectionChanged: function () { var selectFactor = $("#factorSelect").dxSelectBox("instance").option('value'); if (selectFactor == 0) { $("#insertBtn").show(); $("#textHDD").hide(); $("#inputHDD").hide(); $("#textCDD").hide(); $("#inputCDD").hide(); GetSitePeopleIncreaseHistory(); GetEnergyDataHistory(powerFuelTypeId, powerFacilityTypeId, powerFacilityCode, powerFormulaId); GetEnergyDataHistory(gasFuelTypeId, gasFacilityTypeId, gasFacilityCode, gasFormulaId); $("#loadIndicator").dxLoadIndicator("instance").option('visible', true); setTimeout(function () { SetChart(); $("#loadIndicator").dxLoadIndicator("instance").option('visible', false); }, 500); } else if (selectFactor == 1) { $("#insertBtn").show(); $("#textHDD").hide(); $("#inputHDD").hide(); $("#textCDD").hide(); $("#inputCDD").hide(); GetSiteRentalRateHistory(); GetEnergyDataHistory(powerFuelTypeId, powerFacilityTypeId, powerFacilityCode, powerFormulaId); GetEnergyDataHistory(gasFuelTypeId, gasFacilityTypeId, gasFacilityCode, gasFormulaId); $("#loadIndicator").dxLoadIndicator("instance").option('visible', true); setTimeout(function () { SetChart(); $("#loadIndicator").dxLoadIndicator("instance").option('visible', false); }, 500); } else if (selectFactor == 2) { $("#insertBtn").hide(); $("#textCDD").show(); $("#inputCDD").show(); $("#textHDD").hide(); $("#inputHDD").hide(); $("#loadIndicator").dxLoadIndicator("instance").option('visible', true); GetHDDCDDHistory(); GetEnergyDataHistory(powerFuelTypeId, powerFacilityTypeId, powerFacilityCode, powerFormulaId); GetEnergyDataHistory(gasFuelTypeId, gasFacilityTypeId, gasFacilityCode, gasFormulaId); setTimeout(function () { SetChart(); $("#loadIndicator").dxLoadIndicator("instance").option('visible', false); }, 500); } else if (selectFactor == 3) { $("#insertBtn").hide(); $("#textCDD").hide(); $("#inputCDD").hide(); $("#textHDD").show(); $("#inputHDD").show(); GetHDDCDDHistory(); GetEnergyDataHistory(powerFuelTypeId, powerFacilityTypeId, powerFacilityCode, powerFormulaId); GetEnergyDataHistory(gasFuelTypeId, gasFacilityTypeId, gasFacilityCode, gasFormulaId); $("#loadIndicator").dxLoadIndicator("instance").option('visible', true); setTimeout(function () { SetChart(); $("#loadIndicator").dxLoadIndicator("instance").option('visible', false); }, 500); } else if (selectFactor == 4) { $("#insertBtn").hide(); $("#textHDD").show(); $("#inputHDD").show(); $("#textCDD").show(); $("#inputCDD").show(); GetHDDCDDHistory(); GetEnergyDataHistory(powerFuelTypeId, powerFacilityTypeId, powerFacilityCode, powerFormulaId); GetEnergyDataHistory(gasFuelTypeId, gasFacilityTypeId, gasFacilityCode, gasFormulaId); $("#loadIndicator").dxLoadIndicator("instance").option('visible', true); setTimeout(function () { SetChart(); $("#loadIndicator").dxLoadIndicator("instance").option('visible', false); }, 500); } else { utils.toast.show("소비 요인이 선택되지 않았습니다."); } } }, compareChart: { size: { height: 650 }, commonSeriesSettings: { argumentField: "month", type: "line" }, series: ko.observable([ { valueField: "use", name: "에너지 사용량", color: '#5F8B95' }, { valueField: "factor", name: "재실 인원", color: '#FF5E00', axis: "재실 인원" } ]), legend: { verticalAlignment: "top", horizontalAlignment: "center", position: "outside", border: { visible: false } }, argumentAxis: ko.observable({ visible: true, label: { customizeText: function () { return this.value + '월'; } }, min: 1, max: 12, valueType: 'numeric', tickInterval: 1 }), valueAxis: [{ name: "에너지 사용량", position: "left", }, { name: "재실 인원", position: "right", } ], "export": { enabled: true }, tooltip: { enabled: true, customizeTooltip: function (point) { return { text: numberWithCommas(parseFloat(point.value.toString()).toFixed(2)) }; } } }, InsertButtonClicked: function () { visiblePopup(true); }, textBox1: {}, textBox2: {}, textBox3: {}, textBox4: {}, textBox5: {}, textBox6: {}, textBox7: {}, textBox8: {}, textBox9: {}, textBox10: {}, textBox11: {}, textBox12: {}, AcceptButtonClicked: function () { UpdatePeopleIncreseRentalRate(); }, inputHDD: { readOnly: true }, inputCDD: { readOnly: true }, loadIndicator: { visible: false }, standardDatePicker: { pickerType: "calendar", value: new Date(), formatString: "yyyy년", maxZoomLevel: "decade", width: "8%", onValueChanged: function () { var selectFactor = $("#factorSelect").dxSelectBox("instance").option('value'); if (selectFactor == 0) { GetSitePeopleIncreaseHistory(); GetEnergyDataHistory(powerFuelTypeId, powerFacilityTypeId, powerFacilityCode, powerFormulaId); GetEnergyDataHistory(gasFuelTypeId, gasFacilityTypeId, gasFacilityCode, gasFormulaId); $("#loadIndicator").dxLoadIndicator("instance").option('visible', true); setTimeout(function () { SetChart(); $("#loadIndicator").dxLoadIndicator("instance").option('visible', false); }, 500); } else if (selectFactor == 1) { GetSiteRentalRateHistory(); GetEnergyDataHistory(powerFuelTypeId, powerFacilityTypeId, powerFacilityCode, powerFormulaId); GetEnergyDataHistory(gasFuelTypeId, gasFacilityTypeId, gasFacilityCode, gasFormulaId); $("#loadIndicator").dxLoadIndicator("instance").option('visible', true); setTimeout(function () { SetChart(); $("#loadIndicator").dxLoadIndicator("instance").option('visible', false); }, 500); } else if (selectFactor == 2) { GetHDDCDDHistory(); GetEnergyDataHistory(powerFuelTypeId, powerFacilityTypeId, powerFacilityCode, powerFormulaId); GetEnergyDataHistory(gasFuelTypeId, gasFacilityTypeId, gasFacilityCode, gasFormulaId); $("#loadIndicator").dxLoadIndicator("instance").option('visible', true); setTimeout(function () { SetChart(); $("#loadIndicator").dxLoadIndicator("instance").option('visible', false); }, 500); } else if (selectFactor == 3) { GetHDDCDDHistory(); GetEnergyDataHistory(powerFuelTypeId, powerFacilityTypeId, powerFacilityCode, powerFormulaId); GetEnergyDataHistory(gasFuelTypeId, gasFacilityTypeId, gasFacilityCode, gasFormulaId); $("#loadIndicator").dxLoadIndicator("instance").option('visible', true); setTimeout(function () { SetChart(); $("#loadIndicator").dxLoadIndicator("instance").option('visible', false); }, 500); } else if (selectFactor == 4) { GetHDDCDDHistory(); GetEnergyDataHistory(powerFuelTypeId, powerFacilityTypeId, powerFacilityCode, powerFormulaId); GetEnergyDataHistory(gasFuelTypeId, gasFacilityTypeId, gasFacilityCode, gasFormulaId); $("#loadIndicator").dxLoadIndicator("instance").option('visible', true); setTimeout(function () { SetChart(); $("#loadIndicator").dxLoadIndicator("instance").option('visible', false); }, 500); } else { utils.toast.show("소비 요인이 선택되지 않았습니다."); } } }, // 2019.04.16 : 그리드 도표 작업 : 팝업창 추가 EnergyUsageFactorPopup_ButtonClicked: DataGridPopup_ButtonClick }); // 2019.04.16 : 그리드 도표 작업 : 팝업창 추가 ~~~ // 그래프 도표 팝업창 viewModel.EnergyUsageFactorPopupOptions = { width: '480px', height: '750px', // cyim 2017.05.30 : 테스트 결과 Devextreme 버그임. px 로 지정하면 초기 출력시 정확하게 가운데에 있지만, auto 설정시 화면아래에 위치하게 됨 contentTemplate: "content", showTitle: true, title: "도표", visible: DataGridPopup_Visible, dragEnabled: true, closeOnOutsideClick: true, shownAction: handlePopupShown, animation: window.utils.popup.createAnimation() }; viewModel.EnergyUsageFactorPopupOptions1 = { width: '480px', height: '750px', // cyim 2017.05.30 : 테스트 결과 Devextreme 버그임. px 로 지정하면 초기 출력시 정확하게 가운데에 있지만, auto 설정시 화면아래에 위치하게 됨 contentTemplate: "content", showTitle: true, title: "도표", visible: DataGridPopup_Visible1, dragEnabled: true, closeOnOutsideClick: true, shownAction: handlePopupShown, animation: window.utils.popup.createAnimation() }; viewModel.EnergyUsageFactorPopupOptions2 = { width: '480px', height: '750px', // cyim 2017.05.30 : 테스트 결과 Devextreme 버그임. px 로 지정하면 초기 출력시 정확하게 가운데에 있지만, auto 설정시 화면아래에 위치하게 됨 contentTemplate: "content", showTitle: true, title: "도표", visible: DataGridPopup_Visible2, dragEnabled: true, closeOnOutsideClick: true, shownAction: handlePopupShown, animation: window.utils.popup.createAnimation() }; // ~~~ 2019.04.16 : 그리드 도표 작업 : 팝업창 추가 viewModel.popupOptions = { width: 350, height: 548, visible: visiblePopup, dragEnabled: false, shading: true, showTitle: true, title: "월별 자료 입력", showCloseButton: true, onShowing: function () { }, onShown: function () { var selectFactor = $("#factorSelect").dxSelectBox("instance").option('value'); if (selectFactor == 0) { $("#textBox1").dxTextBox("instance").option('value', peopleIncrease[0].value.toString()); $("#textBox2").dxTextBox("instance").option('value', peopleIncrease[1].value.toString()); $("#textBox3").dxTextBox("instance").option('value', peopleIncrease[2].value.toString()); $("#textBox4").dxTextBox("instance").option('value', peopleIncrease[3].value.toString()); $("#textBox5").dxTextBox("instance").option('value', peopleIncrease[4].value.toString()); $("#textBox6").dxTextBox("instance").option('value', peopleIncrease[5].value.toString()); $("#textBox7").dxTextBox("instance").option('value', peopleIncrease[6].value.toString()); $("#textBox8").dxTextBox("instance").option('value', peopleIncrease[7].value.toString()); $("#textBox9").dxTextBox("instance").option('value', peopleIncrease[8].value.toString()); $("#textBox10").dxTextBox("instance").option('value', peopleIncrease[9].value.toString()); $("#textBox11").dxTextBox("instance").option('value', peopleIncrease[10].value.toString()); $("#textBox12").dxTextBox("instance").option('value', peopleIncrease[11].value.toString()); monthInputArray[0].value = parseFloat(peopleIncrease[0].value.toString()); monthInputArray[1].value = parseFloat(peopleIncrease[1].value.toString()); monthInputArray[2].value = parseFloat(peopleIncrease[2].value.toString()); monthInputArray[3].value = parseFloat(peopleIncrease[3].value.toString()); monthInputArray[4].value = parseFloat(peopleIncrease[4].value.toString()); monthInputArray[5].value = parseFloat(peopleIncrease[5].value.toString()); monthInputArray[6].value = parseFloat(peopleIncrease[6].value.toString()); monthInputArray[7].value = parseFloat(peopleIncrease[7].value.toString()); monthInputArray[8].value = parseFloat(peopleIncrease[8].value.toString()); monthInputArray[9].value = parseFloat(peopleIncrease[9].value.toString()); monthInputArray[10].value = parseFloat(peopleIncrease[10].value.toString()); monthInputArray[11].value = parseFloat(peopleIncrease[11].value.toString()); $("#label1").text("1월(명)"); $("#label2").text("2월(명)"); $("#label3").text("3월(명)"); $("#label4").text("4월(명)"); $("#label5").text("5월(명)"); $("#label6").text("6월(명)"); $("#label7").text("7월(명)"); $("#label8").text("8월(명)"); $("#label9").text("9월(명)"); $("#label10").text("10월(명)"); $("#label11").text("11월(명)"); $("#label12").text("12월(명)"); } else if (selectFactor == 1) { $("#textBox1").dxTextBox("instance").option('value', rentalRate[0].value.toString()); $("#textBox2").dxTextBox("instance").option('value', rentalRate[1].value.toString()); $("#textBox3").dxTextBox("instance").option('value', rentalRate[2].value.toString()); $("#textBox4").dxTextBox("instance").option('value', rentalRate[3].value.toString()); $("#textBox5").dxTextBox("instance").option('value', rentalRate[4].value.toString()); $("#textBox6").dxTextBox("instance").option('value', rentalRate[5].value.toString()); $("#textBox7").dxTextBox("instance").option('value', rentalRate[6].value.toString()); $("#textBox8").dxTextBox("instance").option('value', rentalRate[7].value.toString()); $("#textBox9").dxTextBox("instance").option('value', rentalRate[8].value.toString()); $("#textBox10").dxTextBox("instance").option('value', rentalRate[9].value.toString()); $("#textBox11").dxTextBox("instance").option('value', rentalRate[10].value.toString()); $("#textBox12").dxTextBox("instance").option('value', rentalRate[11].value.toString()); monthInputArray[0].value = parseFloat(rentalRate[0].value.toString()); monthInputArray[1].value = parseFloat(rentalRate[1].value.toString()); monthInputArray[2].value = parseFloat(rentalRate[2].value.toString()); monthInputArray[3].value = parseFloat(rentalRate[3].value.toString()); monthInputArray[4].value = parseFloat(rentalRate[4].value.toString()); monthInputArray[5].value = parseFloat(rentalRate[5].value.toString()); monthInputArray[6].value = parseFloat(rentalRate[6].value.toString()); monthInputArray[7].value = parseFloat(rentalRate[7].value.toString()); monthInputArray[8].value = parseFloat(rentalRate[8].value.toString()); monthInputArray[9].value = parseFloat(rentalRate[9].value.toString()); monthInputArray[10].value = parseFloat(rentalRate[10].value.toString()); monthInputArray[11].value = parseFloat(rentalRate[11].value.toString()); $("#label1").text("1월(%)"); $("#label2").text("2월(%)"); $("#label3").text("3월(%)"); $("#label4").text("4월(%)"); $("#label5").text("5월(%)"); $("#label6").text("6월(%)"); $("#label7").text("7월(%)"); $("#label8").text("8월(%)"); $("#label9").text("9월(%)"); $("#label10").text("10월(%)"); $("#label11").text("11월(%)"); $("#label12").text("12월(%)"); } else { utils.toast.show("소비 요인이 선택되지 않았습니다."); } }, onHidden: function () { } }; // 2019.04.16 : 그리드 도표 작업 : 팝업창 추가 ~~~ // 주석이 너무 없음. 나중에 변경 작업을 진행하는 누군가가 시간 소비를 하지 않기 위해...남김 // 시간 포맷은 그래프에 귀속해야 되므로 포맷은 변경하지 않는 것이 유리함 // 전기,가스,수도 와 같이 선택적으로 변경해야 된다면 아래와 같이 캡션은 고정하지 말것 viewModel.EnergyUsageFactorOptions = { dataSource: dataArrayresult, paging: { pageSize: 17 }, columns: [ { dataField: 'month', caption: "월", width: '20%', alignment: 'center', },// dataType: 'date', format: 'yyyy-MM-dd HH:mm' }, { dataField: 'use', caption: "에너지 사용량(kWh/월)", width: '46%', alignment: 'center', format: 'fixedPoint', precision: 2 }, { dataField: 'factor', width: '33%', alignment: 'center', format: 'fixedPoint', precision: 2 } ], // 엑셀 출력 "export": { enabled: true, fileName: '에너지 소비요인' } }; viewModel.EnergyUsageFactorOptions1 = { dataSource: dataArrayresult1, paging: { pageSize: 17 }, columns: [ { dataField: 'month', caption: "월", width: '20%', alignment: 'center', },// dataType: 'date', format: 'yyyy-MM-dd HH:mm' }, { dataField: 'use', caption: "에너지 사용량(kWh/월)", width: '46%', alignment: 'center', format: 'fixedPoint', precision: 2 }, { dataField: 'factor', width: '33%', alignment: 'center', format: 'fixedPoint', precision: 2 } ], // 엑셀 출력 "export": { enabled: true, fileName: '에너지 소비요인' } }; viewModel.EnergyUsageFactorOptions2 = { dataSource: dataArrayresult2, paging: { pageSize: 17 }, columns: [ { dataField: 'month', caption: "월", width: '15%', alignment: 'center', },// dataType: 'date', format: 'yyyy-MM-dd HH:mm' }, { dataField: 'use', caption: "에너지 사용량(kWh/월)", width: '35%', alignment: 'center', format: 'fixedPoint', precision: 2 }, { dataField: 'cdd', width: '25%', alignment: 'center', format: 'fixedPoint', precision: 2 }, { dataField: 'hdd', width: '25%', alignment: 'center', format: 'fixedPoint', precision: 2 } ], // 엑셀 출력 "export": { enabled: true, fileName: '에너지 소비요인 분석' } }; // ~~~ 2019.04.16 : 그리드 도표 작업 : 팝업창 추가 return viewModel; };