ee6201615b5fbd48917a4f1476e0506535bf0302.svn-base 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. $(function () {
  2. "use strict";
  3. BemsWebApplication.Factory.Facility = {
  4. getBasicDataSourceRef: function (options) {
  5. var dbModeIId = options.dbModeIId,
  6. primaryKeyDataField = options.primaryKeyDataField,
  7. moreSelectFields = options.moreSelectFields,
  8. expand = ['CmFacility'];
  9. var select = [
  10. 'SiteId', primaryKeyDataField,
  11. 'FacilityCode',
  12. 'CmFacility/Name',
  13. 'CmFacility/FirstClassId',
  14. 'CmFacility/SecondClassId',
  15. 'CmFacility/ThirdClassId',
  16. ];
  17. if (_.isArray(moreSelectFields)) {
  18. select = select.concat(moreSelectFields);
  19. }
  20. if (_.isArray(options.expand)) {
  21. expand = expand.concat(options.expand);
  22. }
  23. return BWA.DataUtil.createDataSource({
  24. dataSourceOptions: {
  25. paginate: false, // 전체를 모두 가져옴
  26. select: select,
  27. expand: expand,
  28. extendOptions: {
  29. forceOriginalField: true,
  30. alterNames: {
  31. 'CmFacility/Name': 'Name',
  32. 'CmFacility/FirstClassId': 'FirstClassId',
  33. 'CmFacility/SecondClassId': 'SecondClassId',
  34. 'CmFacility/ThirdClassId': 'ThirdClassId',
  35. }
  36. }
  37. }
  38. }, dbModeIId);
  39. },
  40. getDataSourceWithRelation: function (store, options) {
  41. return BWA.Factory.getBaseDataSourceWithRelation(
  42. store,
  43. options,
  44. BemsWebApplication.Factory.Facility.getDataSourceForRefDataGrid(),
  45. 'CmFacility');
  46. //var factory = BemsWebApplication.Factory.Facility;
  47. //var dataSourceOptions = factory.dataSourceForRefDataGrid;
  48. //return BWA.DataUtil.createDataSource({
  49. // dataSourceOptions: {
  50. // store: store,
  51. // select: dataSourceOptions.select,
  52. // expand: dataSourceOptions.expand,
  53. // refOptions: options,
  54. // extendOptions: {
  55. // multipleItems: dataSourceOptions.extendOptions.multipleItems,
  56. // alterNames: BWA.DataUtil.mapObject(dataSourceOptions.extendOptions.alterNames, function(x) {
  57. // return 'CmFacility/' + x;
  58. // })
  59. // }
  60. // },
  61. // ref: 'CmFacility'
  62. //});
  63. },
  64. formatClassName: function (firstClassName, secondClassName, thirdClassName) {
  65. var className = _.reduce(arguments, function (sb, name) {
  66. if (_.isEmpty(name)) return sb;
  67. if (_.isEmpty(sb)) {
  68. sb.push(name);
  69. return sb;
  70. }
  71. sb.push('-')
  72. sb.push(name);
  73. return sb;
  74. }, []);
  75. return className.join('');
  76. },
  77. formatName: function (name, nickName) {
  78. return '{0} / {1}'.formati(name, nickName);
  79. },
  80. cellPrepared: function (cellElement, cellInfo) {
  81. var data = cellInfo.data;
  82. var self = BemsWebApplication.Factory.Facility;
  83. if (cellInfo.rowType == 'data') // hcLee V14-V15
  84. {
  85. switch (cellInfo.column.dataField) {
  86. case 'ClassName':
  87. {
  88. if (!data.FirstClassName) break;
  89. $(cellElement).text(self.formatClassName(data.FirstClassName(), data.SecondClassName(), data.ThirdClassName()));
  90. break;
  91. }
  92. case 'Name':
  93. {
  94. $(cellElement).text(self.formatName(data.Name(), data.Nickname()));
  95. break;
  96. }
  97. case 'Location':
  98. {
  99. if (!data.BuildingName) break;
  100. $(cellElement).text($G.formatLocation(data.BuildingName(), data.FloorName(), data.ZoneName()));
  101. break;
  102. }
  103. }
  104. }
  105. },
  106. selectItemsInDataSource: [
  107. 'SiteId', 'FacilityCode', 'ParentFacilityName', 'FirstClassName', 'SecondClassName', 'ThirdClassName', 'Name', 'Nickname',
  108. 'BuildingName', 'FloorName', 'ZoneName', 'ManufactureModel', 'MainContactorUserName', 'SubContactorUserName',
  109. 'CmFloor/Name',
  110. 'FmsFacilityCodeClass/Name'
  111. ],
  112. getDataSourceForDataGrid: function () {
  113. return {
  114. select: [
  115. 'SiteId', 'FacilityCode', 'FacilityTypeId', 'CmFacility2/Name', 'FmsFacilityCodeClass/Name', 'FmsFacilityCodeClass1/Name', 'FmsFacilityCodeClass2/Name',
  116. 'Name', 'Nickname', 'CmBuilding/Name', 'CmFloor/Name', 'CmZone/Name', 'ManufactureModel', 'CmUser/Name', 'CmUser1/Name', 'BemsFuelType/Name', 'BemsNoticePriceContractType/Name',
  117. 'FacilityCapacity', 'FirstClassId', 'SecondClassId', 'ThirdClassId', 'ParentFacilityCode'// hcLee 2016 06 03 추가
  118. //'MainContactorUserName'
  119. ],
  120. expand: ['CmBuilding', 'CmFloor', 'CmZone', 'CmUser', 'CmUser1', 'FmsFacilityCodeClass', 'FmsFacilityCodeClass1', 'FmsFacilityCodeClass2', 'CmFacility2', 'BemsFuelType', 'BemsNoticePriceContractType'],
  121. //expand: ['CmBuilding', 'CmFloor', 'CmZone'],
  122. filter: [
  123. ['SiteId', '=', BWA.UserInfo.SiteId()],
  124. 'and',
  125. ['FacilityCode', '>=', $Code.Facility.UPPER_BOUND],
  126. 'and',
  127. ['IsVirtualFacility', '=', false],
  128. 'and',
  129. ['FacilityTypeId', '<', 99]
  130. ],
  131. extendOptions: {
  132. forceOriginalField: true,
  133. multipleItems: [
  134. /* {
  135. id: 'FacilityClassId',
  136. entries: ['FmsFacilityCodeClass', 'FmsFacilityCodeClass1', 'FmsFacilityCodeClass2'],
  137. fields: ['FirstClassId', 'SecondClassId', 'ThirdClassId'],
  138. },*/
  139. /* {
  140. id: 'UserId',
  141. entries: ['CmUser', 'CmUser1'],
  142. fields: ['MainContactorUserId', 'SubContactorUserId'],
  143. },*/
  144. /* {
  145. id: 'FacilityCode',
  146. entries: ['CmFacility2'],
  147. fields: ['ParentFacilityCode'],
  148. }*/
  149. ],
  150. alterNames: {
  151. 'CmFacility/ParentFacilityCode/Name': 'ParentFacilityName',
  152. /*
  153. 'FmsFacilityCodeClass/FirstClassId/Name': 'FirstClassName',
  154. 'FmsFacilityCodeClass/SecondClassId/Name': 'SecondClassName',
  155. 'FmsFacilityCodeClass/ThirdClassId/Name': 'ThirdClassName', */
  156. // 'FmsFacilityCodeClass/Name': 'FirstClassName',
  157. // 'FmsFacilityCodeClass1/Name': 'SecondClassName',
  158. // 'FmsFacilityCodeClass2/Name': 'ThirdClassName',
  159. 'CmUser/MainContactorUserId/Name': 'MainContactorUserName',
  160. 'CmUser/SubContactorUserId/Name': 'SubContactorUserName',
  161. // 'CmBuilding/Name': 'BuildingName',
  162. // 'CmFloor/Name': 'FloorName', //
  163. // 'CmZone/Name': 'ZoneName',
  164. }
  165. }
  166. };
  167. },
  168. getDataSourceForRefDataGrid: function () {
  169. return {
  170. select: [
  171. 'SiteId', 'FacilityCode', 'FmsFacilityCodeClass/Name', 'FmsFacilityCodeClass1/Name', 'FmsFacilityCodeClass2/Name',
  172. 'Name', 'Nickname', 'CmBuilding/Name', 'CmFloor/Name', 'CmZone/Name', 'ManufactureModel', 'CmUser/Name', 'CmUser1/Name'
  173. ],
  174. //expand: ['CmBuilding', 'CmFloor', 'CmZone'],
  175. expand: ['CmBuilding', 'CmFloor', 'CmZone', 'CmUser', 'CmUser1', 'FmsFacilityCodeClass', 'FmsFacilityCodeClass1', 'FmsFacilityCodeClass2', 'CmFacility2', 'BemsFuelType', 'BemsNoticePriceContractType'],
  176. filter: [
  177. ['SiteId', '=', BWA.UserInfo.SiteId()],
  178. 'and',
  179. ['FacilityCode', '>=', $Code.Facility.UPPER_BOUND]
  180. ],
  181. extendOptions: {
  182. forceOriginalField: true,
  183. multipleItems: [
  184. /* {
  185. id: 'FacilityClassId',
  186. entries: ['FmsFacilityCodeClass', 'FmsFacilityCodeClass1', 'FmsFacilityCodeClass2'],
  187. fields: ['FirstClassId', 'SecondClassId', 'ThirdClassId'],
  188. }, {
  189. id: 'UserId',
  190. entries: ['CmUser', 'CmUser1'],
  191. fields: ['MainContactorUserId', 'SubContactorUserId'],
  192. }*/
  193. ],
  194. alterNames: {
  195. 'SiteId': 'SiteId',
  196. 'FacilityCode': 'FacilityCode',
  197. 'Name': 'Name',
  198. 'Nickname': 'Nickname',
  199. /*
  200. 'FmsFacilityCodeClass/FirstClassId/Name': 'FirstClassName',
  201. 'FmsFacilityCodeClass/SecondClassId/Name': 'SecondClassName',
  202. 'FmsFacilityCodeClass/ThirdClassId/Name': 'ThirdClassName', */
  203. // 'FmsFacilityCodeClass/Name': 'FirstClassName',
  204. // 'FmsFacilityCodeClass1/Name': 'SecondClassName',
  205. // 'FmsFacilityCodeClass2/Name': 'ThirdClassName',
  206. 'CmUser/MainContactorUserId/Name': 'MainContactorUserName',
  207. 'CmUser/SubContactorUserId/Name': 'SubContactorUserName',
  208. // 'CmBuilding/Name': 'BuildingName',
  209. // 'CmFloor/Name': 'FloorName',
  210. // 'CmZone/Name': 'ZoneName',
  211. }
  212. }
  213. };
  214. },
  215. defaultColumns: [
  216. { dataField: 'FacilityCode', caption: $G('number'), width: '10%', alignment: 'center', sortOrder: 'desc' },
  217. //{ dataField: 'ClassName', caption: $G('facilityClassName'), width: '20%', alignment: 'center', allowFiltering: false },
  218. { dataField: 'FirstClassId', caption: '시설(대)', width: '7%', alignment: 'center', allowFiltering: false },
  219. { dataField: 'SecondClassId', caption: '시설(중)', width: '10%', alignment: 'center', allowFiltering: false },
  220. { dataField: 'ThirdClassId', caption: '시설(소)', width: '10%', alignment: 'center', allowFiltering: false },
  221. { dataField: 'Name', caption: $G('facilityName'), width: '20%', alignment: 'center' },
  222. { dataField: 'ManufactureModel', caption: $G('facilityManufactureModel'), width: '10%', alignment: 'center', allowFiltering: false },
  223. //{ dataField: 'MainContactorUserName', caption: $G('facilityMainContactorUserName'), width: '10%', alignment: 'center', allowFiltering: false },
  224. //{ dataField: 'SubContactorUserName', caption: $G('facilitySubContactorUserName'), width: '10%', alignment: 'center', allowFiltering: false },
  225. //{ dataField: 'Location', caption: $G('facilityLocation'), width: '20%', alignment: 'center' }
  226. { dataField: 'CmUser/Name', caption: $G('facilityMainContactorUserName'), width: '7%', alignment: 'center', allowFiltering: false },
  227. { dataField: 'CmUser1/Name', caption: $G('facilitySubContactorUserName'), width: '7%', alignment: 'center', allowFiltering: false },
  228. //{ dataField: 'FloorName', caption: $G('facilityLocation'), width: '20%', alignment: 'center' }
  229. //{ dataField: 'CmBuilding/Name', caption: $G('facilityLocation'), width: '20%', alignment: 'center' },
  230. { dataField: 'CmFloor/Name', caption: $G('facilityLocation'), width: '20%', alignment: 'center' },
  231. //{ dataField: 'CmZone/Name', caption: $G('facilityLocation'), width: '20%', alignment: 'center' }
  232. ],
  233. };
  234. $.extend(BWA.Factory.Facility, BWA.DataUtil.pickFunctions(BWA.Factory));
  235. });