0c5d2da2e13b67eacf241de53bc9d3284be3caad.svn-base 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. BemsWebApplication.setprice = function (params, viewInfo) {
  2. var priceTypeDataSource = [{
  3. FuelTypeId: 1,
  4. PriceTypeId: 1,
  5. PriceTypeIdDesc: ""
  6. }];
  7. var priceCodeDataSource;
  8. var beforeSelectPriceTypeId;
  9. var energySelectButton = "power";
  10. function getSitePrice(SiteID, FuelTypeId, PriceCode) {
  11. var dataSource = new DevExpress.data.DataSource({
  12. store: new DevExpress.data.ODataStore({
  13. url: 'http://localhost:3403/BemsDataService.svc/BemsSitePrice'
  14. }),
  15. expand: 'BemsPriceType',
  16. requireTotalCount: true,
  17. pageSize: 100
  18. });
  19. dataSource.filter([
  20. ["SiteID", "=", SiteID],
  21. "and",
  22. ["FuelTypeId", "=", FuelTypeId]
  23. //"and",
  24. //["PriceCode", "=", PriceCode]
  25. ]);
  26. dataSource.load()
  27. .done(function (result) {
  28. $("#priceSelect").dxSelectBox("instance").option('value', result[0].BemsPriceType.PriceTypeId);
  29. beforeSelectPriceTypeId = result[0].BemsPriceType.PriceTypeId;
  30. })
  31. .fail(function (error) {
  32. alert(error);
  33. });
  34. }
  35. function getPriceType(FuelTypeId) {
  36. var dataSource = new DevExpress.data.DataSource({
  37. store: {
  38. type: "odata",
  39. //url: "http://61.33.215.51:8086/BemsDataService.svc/BemsFormula"
  40. url: "http://localhost:3403/BemsDataService.svc/BemsPriceType"
  41. },
  42. map: function (itemData) {
  43. return {
  44. PriceTypeId: itemData.PriceTypeId,
  45. PriceTypeIdDesc: itemData.PriceTypeIdDesc,
  46. FuelTypeId: itemData.FuelTypeId
  47. }
  48. },
  49. requireTotalCount: true,
  50. pageSize: 100
  51. });
  52. dataSource.filter([
  53. ["FuelTypeId", "=", FuelTypeId]
  54. ]);
  55. dataSource.sort({ getter: "PriceTypeIdDesc", asc: true });
  56. dataSource.load()
  57. .done(function (result) {
  58. priceTypeDataSource = dataSource;
  59. //var array = PriceTypeDataSourceToArray(priceTypeDataSource);
  60. //$("#priceSelect").dxSelectBox("instance").option('items', array);
  61. $("#priceSelect").dxSelectBox("instance").option('dataSource', priceTypeDataSource);
  62. $("#priceSelect").dxSelectBox("instance").option('displayExpr', 'PriceTypeIdDesc');
  63. $("#priceSelect").dxSelectBox("instance").option('valueExpr', "PriceTypeId");
  64. getSitePrice(BWA.UserInfo.SiteId(), result[0].FuelTypeId);//PriceCode P038 청구요금
  65. //$("#priceSelect").dxSelectBox("instance").option('value', priceTypeDataSource._items[0].PriceTypeIdDesc);
  66. })
  67. .fail(function (error) {
  68. alert(error);
  69. });
  70. }
  71. function PriceTypeDataSourceToArray(dataSource) {
  72. var resultArray = new Array(dataSource._items.length);
  73. /*for (var i = 0; i < dataSource._items.length; i++) {
  74. resultArray[i] = new Array(3);
  75. }*/
  76. /*for (var i = 0; i < dataSource._items.length;i++) {
  77. resultArray[i][0] = dataSource._items[i].PriceTypeId;
  78. resultArray[i][1] = dataSource._items[i].PriceTypeIdDesc;
  79. resultArray[i][2] = dataSource._items[i].FuelTypeId;
  80. }*/
  81. for (var i = 0; i < dataSource._items.length; i++) {
  82. resultArray[i] = dataSource._items[i].PriceTypeIdDesc;
  83. }
  84. return resultArray;
  85. }
  86. function getPriceCode(FuelTypeId) {
  87. var dataSource = new DevExpress.data.DataSource({
  88. store: {
  89. type: "odata",
  90. url: "http://localhost:3403/BemsDataService.svc/BemsPriceCode"
  91. },
  92. map: function (itemData) {
  93. return {
  94. PriceCode: itemData.PriceCode,
  95. PriceCodeDesc: itemData.PriceCodeDesc,
  96. FuelTypeId: itemData.FuelTypeId,
  97. Unit: itemData.Unit
  98. }
  99. },
  100. requireTotalCount: true,
  101. pageSize: 100
  102. });
  103. dataSource.filter([
  104. ["FuelTypeId", "=", FuelTypeId]
  105. ]);
  106. dataSource.sort({ getter: "PriceCode", asc: true });
  107. dataSource.load()
  108. .done(function (result) {
  109. priceCodeDataSource = result;
  110. var $PriceCodeLayOut = $('#PriceCodeLayOut'); // finds the <PriceCodeLayOut> element
  111. $('#PriceCodeLayOut').empty();
  112. for (var i = 0; i < result.length; i++) {
  113. $('<input type="text" class="fl setInputId" style="width:150px;height:24px;" readonly>') // creates a new HTML element
  114. .appendTo($PriceCodeLayOut) // appends a new HTML element to the <body> element
  115. $('<div class="fl setSwitchId" style="margin-right:45px;">')
  116. .appendTo($PriceCodeLayOut)
  117. .dxSwitch();
  118. if (i % 4 == 3) {
  119. $('<br>').appendTo($PriceCodeLayOut)
  120. $('<br>').appendTo($PriceCodeLayOut)
  121. $('<br>').appendTo($PriceCodeLayOut)
  122. }
  123. }
  124. var setInputIds = document.querySelectorAll('.setInputId');
  125. var setSwitchIds = document.querySelectorAll('.setSwitchId');
  126. for (var i = 0; i < result.length; i++) {
  127. setInputIds[i].id = 'input' + i;
  128. setInputIds[i].value = result[i].PriceCodeDesc;
  129. setSwitchIds[i].id = 'switch' + i;
  130. $('#switch' + i).dxSwitch("instance").option('onText', 'On');
  131. $('#switch' + i).dxSwitch("instance").option('offText', 'Off');
  132. }
  133. getPriceCodeYN(BWA.UserInfo.SiteId(), FuelTypeId);
  134. })
  135. .fail(function (error) {
  136. alert(error);
  137. });
  138. }
  139. function getPriceCodeYN(SiteID, FuelTypeId) {
  140. var dataSource = new DevExpress.data.DataSource({
  141. store: new DevExpress.data.ODataStore({
  142. url: 'http://localhost:3403/BemsDataService.svc/BemsSitePrice'
  143. }),
  144. //expand: 'BemsPriceType',
  145. requireTotalCount: true,
  146. pageSize: 100
  147. });
  148. dataSource.filter([
  149. ["SiteID", "=", SiteID],
  150. "and",
  151. ["FuelTypeId", "=", FuelTypeId],
  152. ]);
  153. dataSource.sort({ getter: "PriceCode", asc: true });
  154. dataSource.load()
  155. .done(function (result) {
  156. for (var i = 0; i < result.length; i++) {
  157. var tmpYN;
  158. if (result[i].UseYN == "Y") {
  159. tmpYN = true;
  160. } else {
  161. tmpYN = false;
  162. }
  163. $("#switch" + i).dxSwitch("instance").option('value', tmpYN);
  164. }
  165. })
  166. .fail(function (error) {
  167. alert(error);
  168. });
  169. }
  170. function saveSettings() {
  171. var dataSource = new DevExpress.data.DataSource({
  172. store: {
  173. type: "odata",
  174. url: "http://localhost:3403/BemsDataService.svc/BemsSitePrice"
  175. },
  176. requireTotalCount: true,
  177. pageSize: 100
  178. });
  179. var FuelTypeId;
  180. //if ($("#powerBtn").css("background-image") == "linear-gradient(180deg, rgb(155, 171, 195) 0%, rgb(65, 97, 140) 100%)") {
  181. if (energySelectButton == "power") {
  182. FuelTypeId = 1;
  183. //} else if ($("#gasBtn").css("background-image") == "linear-gradient(180deg, rgb(155, 171, 195) 0%, rgb(65, 97, 140) 100%)") {
  184. }else if (energySelectButton == "gas") {
  185. FuelTypeId = 2;
  186. //} else if ($("#waterBtn").css("background-image") == "linear-gradient(180deg, rgb(155, 171, 195) 0%, rgb(65, 97, 140) 100%)") {
  187. }else if (energySelectButton == "water") {
  188. FuelTypeId = 3;
  189. } else {
  190. alert("에너지원이 선택되지 않았습니다.");
  191. }
  192. dataSource.filter([
  193. ["FuelTypeId", "=", FuelTypeId]
  194. ]);
  195. var selectPriceTypeId = parseInt($("#priceSelect").dxSelectBox("instance").option('value'));
  196. var failCnt = 0;
  197. for (var i = 0; i < priceCodeDataSource.length; i++) {
  198. var UseYN = $("#switch" + i).dxSwitch("instance").option('value');
  199. if (UseYN == true) {
  200. UseYN = 'Y';
  201. } else {
  202. UseYN = 'N';
  203. }
  204. dataSource.store().update({ SiteID: BWA.UserInfo.SiteId(), FuelTypeId: FuelTypeId, PriceCode: priceCodeDataSource[i].PriceCode }, { PriceTypeId: selectPriceTypeId, UseYN: UseYN })
  205. //dataSource.store().update({ SiteID: BWA.UserInfo.SiteId(), FuelTypeId: FuelTypeId, PriceCode: priceCodeDataSource[i].PriceCode }, { PriceTypeId: selectPriceTypeId, UseYN: UseYN })
  206. .done(function(key, result){
  207. //alert(key + "/" + result);
  208. })
  209. .fail(function (error) {
  210. //alert(error);
  211. failCnt++;
  212. });
  213. }
  214. if (failCnt > 0) {
  215. alert("저장에 실패 했습니다.");
  216. } else {
  217. alert("저장되었습니다.");
  218. }
  219. /*var context = new DevExpress.data.ODataContext({
  220. url: "http://localhost:3403/BemsDataService.svc",
  221. entities: {
  222. BemsSitePrice: {
  223. key: ["SiteID", "FuelTypeId", "PriceTypeId","PriceCode"],
  224. keyType: { SiteID: "Int32", FuelTypeId: "Int32",PriceTypeId:"Int32", PriceCode: "String" }
  225. }
  226. }
  227. });
  228. context.BemsSitePrice.update({ SiteID: BWA.UserInfo.SiteId(), FuelTypeId: 1, PriceTypeId: 10, PriceCode: 'P002' }, { PriceTypeId: 11 }).done(function (key, result) {
  229. var test = result;
  230. }).fail(function (error) { alert(error);});*/
  231. }
  232. function handleViewShown() {
  233. getPriceType(1);
  234. getPriceCode(1);
  235. }
  236. var searchViewOptions = {
  237. //templete function
  238. };
  239. function handleSearchInSearchView() {
  240. //templete function
  241. }
  242. var viewModel = $.extend(BWA.CommonView.create(params, viewInfo, searchViewOptions, ko.observable(null), handleViewShown, null, handleSearchInSearchView),
  243. {
  244. priceSelect : {
  245. dataSource: priceTypeDataSource
  246. },
  247. powerButtonClicked : function () {
  248. $("#powerBtn").css("background-image", "linear-gradient(180deg,#9babc3 0%,#41618c 100%)");
  249. $("#gasBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)");
  250. $("#waterBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)");
  251. getPriceType(1);
  252. getPriceCode(1);
  253. },
  254. gasButtonClicked : function () {
  255. $("#gasBtn").css("background-image", "linear-gradient(180deg,#9babc3 0%,#41618c 100%)");
  256. $("#powerBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)");
  257. $("#waterBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)");
  258. getPriceType(2);
  259. getPriceCode(2);
  260. },
  261. waterButtonClicked : function () {
  262. $("#waterBtn").css("background-image", "linear-gradient(180deg,#9babc3 0%,#41618c 100%)");
  263. $("#gasBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)");
  264. $("#powerBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)");
  265. getPriceType(3);
  266. getPriceCode(3);
  267. },
  268. saveButtonClicked: function () {
  269. saveSettings();
  270. }
  271. });
  272. return viewModel;
  273. };