BemsWebApplication.setprice = function (params, viewInfo) { var priceTypeDataSource = [{ FuelTypeId: 1, PriceTypeId: 1, PriceTypeIdDesc: "" }]; var priceCodeDataSource; var beforeSelectPriceTypeId; var energySelectButton = "power"; function getSitePrice(SiteID, FuelTypeId, PriceCode) { var dataSource = new DevExpress.data.DataSource({ store: new DevExpress.data.ODataStore({ url: 'http://localhost:3403/BemsDataService.svc/BemsSitePrice' }), expand: 'BemsPriceType', requireTotalCount: true, pageSize: 100 }); dataSource.filter([ ["SiteID", "=", SiteID], "and", ["FuelTypeId", "=", FuelTypeId] //"and", //["PriceCode", "=", PriceCode] ]); dataSource.load() .done(function (result) { $("#priceSelect").dxSelectBox("instance").option('value', result[0].BemsPriceType.PriceTypeId); beforeSelectPriceTypeId = result[0].BemsPriceType.PriceTypeId; }) .fail(function (error) { alert(error); }); } function getPriceType(FuelTypeId) { var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", //url: "http://61.33.215.51:8086/BemsDataService.svc/BemsFormula" url: "http://localhost:3403/BemsDataService.svc/BemsPriceType" }, map: function (itemData) { return { PriceTypeId: itemData.PriceTypeId, PriceTypeIdDesc: itemData.PriceTypeIdDesc, FuelTypeId: itemData.FuelTypeId } }, requireTotalCount: true, pageSize: 100 }); dataSource.filter([ ["FuelTypeId", "=", FuelTypeId] ]); dataSource.sort({ getter: "PriceTypeIdDesc", asc: true }); dataSource.load() .done(function (result) { priceTypeDataSource = dataSource; //var array = PriceTypeDataSourceToArray(priceTypeDataSource); //$("#priceSelect").dxSelectBox("instance").option('items', array); $("#priceSelect").dxSelectBox("instance").option('dataSource', priceTypeDataSource); $("#priceSelect").dxSelectBox("instance").option('displayExpr', 'PriceTypeIdDesc'); $("#priceSelect").dxSelectBox("instance").option('valueExpr', "PriceTypeId"); getSitePrice(BWA.UserInfo.SiteId(), result[0].FuelTypeId);//PriceCode P038 청구요금 //$("#priceSelect").dxSelectBox("instance").option('value', priceTypeDataSource._items[0].PriceTypeIdDesc); }) .fail(function (error) { alert(error); }); } function PriceTypeDataSourceToArray(dataSource) { var resultArray = new Array(dataSource._items.length); /*for (var i = 0; i < dataSource._items.length; i++) { resultArray[i] = new Array(3); }*/ /*for (var i = 0; i < dataSource._items.length;i++) { resultArray[i][0] = dataSource._items[i].PriceTypeId; resultArray[i][1] = dataSource._items[i].PriceTypeIdDesc; resultArray[i][2] = dataSource._items[i].FuelTypeId; }*/ for (var i = 0; i < dataSource._items.length; i++) { resultArray[i] = dataSource._items[i].PriceTypeIdDesc; } return resultArray; } function getPriceCode(FuelTypeId) { var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: "http://localhost:3403/BemsDataService.svc/BemsPriceCode" }, map: function (itemData) { return { PriceCode: itemData.PriceCode, PriceCodeDesc: itemData.PriceCodeDesc, FuelTypeId: itemData.FuelTypeId, Unit: itemData.Unit } }, requireTotalCount: true, pageSize: 100 }); dataSource.filter([ ["FuelTypeId", "=", FuelTypeId] ]); dataSource.sort({ getter: "PriceCode", asc: true }); dataSource.load() .done(function (result) { priceCodeDataSource = result; var $PriceCodeLayOut = $('#PriceCodeLayOut'); // finds the element $('#PriceCodeLayOut').empty(); for (var i = 0; i < result.length; i++) { $('') // creates a new HTML element .appendTo($PriceCodeLayOut) // appends a new HTML element to the element $('
') .appendTo($PriceCodeLayOut) .dxSwitch(); if (i % 4 == 3) { $('
').appendTo($PriceCodeLayOut) $('
').appendTo($PriceCodeLayOut) $('
').appendTo($PriceCodeLayOut) } } var setInputIds = document.querySelectorAll('.setInputId'); var setSwitchIds = document.querySelectorAll('.setSwitchId'); for (var i = 0; i < result.length; i++) { setInputIds[i].id = 'input' + i; setInputIds[i].value = result[i].PriceCodeDesc; setSwitchIds[i].id = 'switch' + i; $('#switch' + i).dxSwitch("instance").option('onText', 'On'); $('#switch' + i).dxSwitch("instance").option('offText', 'Off'); } getPriceCodeYN(BWA.UserInfo.SiteId(), FuelTypeId); }) .fail(function (error) { alert(error); }); } function getPriceCodeYN(SiteID, FuelTypeId) { var dataSource = new DevExpress.data.DataSource({ store: new DevExpress.data.ODataStore({ url: 'http://localhost:3403/BemsDataService.svc/BemsSitePrice' }), //expand: 'BemsPriceType', requireTotalCount: true, pageSize: 100 }); dataSource.filter([ ["SiteID", "=", SiteID], "and", ["FuelTypeId", "=", FuelTypeId], ]); dataSource.sort({ getter: "PriceCode", asc: true }); dataSource.load() .done(function (result) { for (var i = 0; i < result.length; i++) { var tmpYN; if (result[i].UseYN == "Y") { tmpYN = true; } else { tmpYN = false; } $("#switch" + i).dxSwitch("instance").option('value', tmpYN); } }) .fail(function (error) { alert(error); }); } function saveSettings() { var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: "http://localhost:3403/BemsDataService.svc/BemsSitePrice" }, requireTotalCount: true, pageSize: 100 }); var FuelTypeId; //if ($("#powerBtn").css("background-image") == "linear-gradient(180deg, rgb(155, 171, 195) 0%, rgb(65, 97, 140) 100%)") { if (energySelectButton == "power") { FuelTypeId = 1; //} else if ($("#gasBtn").css("background-image") == "linear-gradient(180deg, rgb(155, 171, 195) 0%, rgb(65, 97, 140) 100%)") { }else if (energySelectButton == "gas") { FuelTypeId = 2; //} else if ($("#waterBtn").css("background-image") == "linear-gradient(180deg, rgb(155, 171, 195) 0%, rgb(65, 97, 140) 100%)") { }else if (energySelectButton == "water") { FuelTypeId = 3; } else { alert("에너지원이 선택되지 않았습니다."); } dataSource.filter([ ["FuelTypeId", "=", FuelTypeId] ]); var selectPriceTypeId = parseInt($("#priceSelect").dxSelectBox("instance").option('value')); var failCnt = 0; for (var i = 0; i < priceCodeDataSource.length; i++) { var UseYN = $("#switch" + i).dxSwitch("instance").option('value'); if (UseYN == true) { UseYN = 'Y'; } else { UseYN = 'N'; } dataSource.store().update({ SiteID: BWA.UserInfo.SiteId(), FuelTypeId: FuelTypeId, PriceCode: priceCodeDataSource[i].PriceCode }, { PriceTypeId: selectPriceTypeId, UseYN: UseYN }) //dataSource.store().update({ SiteID: BWA.UserInfo.SiteId(), FuelTypeId: FuelTypeId, PriceCode: priceCodeDataSource[i].PriceCode }, { PriceTypeId: selectPriceTypeId, UseYN: UseYN }) .done(function(key, result){ //alert(key + "/" + result); }) .fail(function (error) { //alert(error); failCnt++; }); } if (failCnt > 0) { alert("저장에 실패 했습니다."); } else { alert("저장되었습니다."); } /*var context = new DevExpress.data.ODataContext({ url: "http://localhost:3403/BemsDataService.svc", entities: { BemsSitePrice: { key: ["SiteID", "FuelTypeId", "PriceTypeId","PriceCode"], keyType: { SiteID: "Int32", FuelTypeId: "Int32",PriceTypeId:"Int32", PriceCode: "String" } } } }); context.BemsSitePrice.update({ SiteID: BWA.UserInfo.SiteId(), FuelTypeId: 1, PriceTypeId: 10, PriceCode: 'P002' }, { PriceTypeId: 11 }).done(function (key, result) { var test = result; }).fail(function (error) { alert(error);});*/ } function handleViewShown() { getPriceType(1); getPriceCode(1); } var searchViewOptions = { //templete function }; function handleSearchInSearchView() { //templete function } var viewModel = $.extend(BWA.CommonView.create(params, viewInfo, searchViewOptions, ko.observable(null), handleViewShown, null, handleSearchInSearchView), { priceSelect : { dataSource: priceTypeDataSource }, powerButtonClicked : function () { $("#powerBtn").css("background-image", "linear-gradient(180deg,#9babc3 0%,#41618c 100%)"); $("#gasBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); $("#waterBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); getPriceType(1); getPriceCode(1); }, gasButtonClicked : function () { $("#gasBtn").css("background-image", "linear-gradient(180deg,#9babc3 0%,#41618c 100%)"); $("#powerBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); $("#waterBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); getPriceType(2); getPriceCode(2); }, waterButtonClicked : function () { $("#waterBtn").css("background-image", "linear-gradient(180deg,#9babc3 0%,#41618c 100%)"); $("#gasBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); $("#powerBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); getPriceType(3); getPriceCode(3); }, saveButtonClicked: function () { saveSettings(); } }); return viewModel; };