$(function () { "use strict"; BemsWebApplication.Factory.Facility = { getBasicDataSourceRef: function (options) { var dbModeIId = options.dbModeIId, primaryKeyDataField = options.primaryKeyDataField, moreSelectFields = options.moreSelectFields, expand = ['CmFacility']; var select = [ 'SiteId', primaryKeyDataField, 'FacilityCode', 'CmFacility/Name', 'CmFacility/FirstClassId', 'CmFacility/SecondClassId', 'CmFacility/ThirdClassId', ]; if (_.isArray(moreSelectFields)) { select = select.concat(moreSelectFields); } if (_.isArray(options.expand)) { expand = expand.concat(options.expand); } return BWA.DataUtil.createDataSource({ dataSourceOptions: { paginate: false, // 전체를 모두 가져옴 select: select, expand: expand, extendOptions: { forceOriginalField: true, alterNames: { 'CmFacility/Name': 'Name', 'CmFacility/FirstClassId': 'FirstClassId', 'CmFacility/SecondClassId': 'SecondClassId', 'CmFacility/ThirdClassId': 'ThirdClassId', } } } }, dbModeIId); }, getDataSourceWithRelation: function (store, options) { return BWA.Factory.getBaseDataSourceWithRelation( store, options, BemsWebApplication.Factory.Facility.getDataSourceForRefDataGrid(), 'CmFacility'); //var factory = BemsWebApplication.Factory.Facility; //var dataSourceOptions = factory.dataSourceForRefDataGrid; //return BWA.DataUtil.createDataSource({ // dataSourceOptions: { // store: store, // select: dataSourceOptions.select, // expand: dataSourceOptions.expand, // refOptions: options, // extendOptions: { // multipleItems: dataSourceOptions.extendOptions.multipleItems, // alterNames: BWA.DataUtil.mapObject(dataSourceOptions.extendOptions.alterNames, function(x) { // return 'CmFacility/' + x; // }) // } // }, // ref: 'CmFacility' //}); }, formatClassName: function (firstClassName, secondClassName, thirdClassName) { var className = _.reduce(arguments, function (sb, name) { if (_.isEmpty(name)) return sb; if (_.isEmpty(sb)) { sb.push(name); return sb; } sb.push('-') sb.push(name); return sb; }, []); return className.join(''); }, formatName: function (name, nickName) { return '{0} / {1}'.formati(name, nickName); }, cellPrepared: function (cellElement, cellInfo) { var data = cellInfo.data; var self = BemsWebApplication.Factory.Facility; if (cellInfo.rowType == 'data') // hcLee V14-V15 { switch (cellInfo.column.dataField) { case 'ClassName': { if (!data.FirstClassName) break; $(cellElement).text(self.formatClassName(data.FirstClassName(), data.SecondClassName(), data.ThirdClassName())); break; } case 'Name': { $(cellElement).text(self.formatName(data.Name(), data.Nickname())); break; } case 'Location': { if (!data.BuildingName) break; $(cellElement).text($G.formatLocation(data.BuildingName(), data.FloorName(), data.ZoneName())); break; } } } }, selectItemsInDataSource: [ 'SiteId', 'FacilityCode', 'ParentFacilityName', 'FirstClassName', 'SecondClassName', 'ThirdClassName', 'Name', 'Nickname', 'BuildingName', 'FloorName', 'ZoneName', 'ManufactureModel', 'MainContactorUserName', 'SubContactorUserName', 'CmFloor/Name', 'FmsFacilityCodeClass/Name' ], getDataSourceForDataGrid: function () { return { select: [ 'SiteId', 'FacilityCode', 'FacilityTypeId', 'CmFacility2/Name', 'FmsFacilityCodeClass/Name', 'FmsFacilityCodeClass1/Name', 'FmsFacilityCodeClass2/Name', 'Name', 'Nickname', 'CmBuilding/Name', 'CmFloor/Name', 'CmZone/Name', 'ManufactureModel', 'CmUser/Name', 'CmUser1/Name', 'BemsFuelType/Name', 'BemsNoticePriceContractType/Name', 'FacilityCapacity', 'FirstClassId', 'SecondClassId', 'ThirdClassId', 'ParentFacilityCode'// hcLee 2016 06 03 추가 //'MainContactorUserName' ], expand: ['CmBuilding', 'CmFloor', 'CmZone', 'CmUser', 'CmUser1', 'FmsFacilityCodeClass', 'FmsFacilityCodeClass1', 'FmsFacilityCodeClass2', 'CmFacility2', 'BemsFuelType', 'BemsNoticePriceContractType'], //expand: ['CmBuilding', 'CmFloor', 'CmZone'], filter: [ ['SiteId', '=', BWA.UserInfo.SiteId()], 'and', ['FacilityCode', '>=', $Code.Facility.UPPER_BOUND], 'and', ['IsVirtualFacility', '=', false], 'and', ['FacilityTypeId', '<', 99] ], extendOptions: { forceOriginalField: true, multipleItems: [ /* { id: 'FacilityClassId', entries: ['FmsFacilityCodeClass', 'FmsFacilityCodeClass1', 'FmsFacilityCodeClass2'], fields: ['FirstClassId', 'SecondClassId', 'ThirdClassId'], },*/ /* { id: 'UserId', entries: ['CmUser', 'CmUser1'], fields: ['MainContactorUserId', 'SubContactorUserId'], },*/ /* { id: 'FacilityCode', entries: ['CmFacility2'], fields: ['ParentFacilityCode'], }*/ ], alterNames: { 'CmFacility/ParentFacilityCode/Name': 'ParentFacilityName', /* 'FmsFacilityCodeClass/FirstClassId/Name': 'FirstClassName', 'FmsFacilityCodeClass/SecondClassId/Name': 'SecondClassName', 'FmsFacilityCodeClass/ThirdClassId/Name': 'ThirdClassName', */ // 'FmsFacilityCodeClass/Name': 'FirstClassName', // 'FmsFacilityCodeClass1/Name': 'SecondClassName', // 'FmsFacilityCodeClass2/Name': 'ThirdClassName', 'CmUser/MainContactorUserId/Name': 'MainContactorUserName', 'CmUser/SubContactorUserId/Name': 'SubContactorUserName', // 'CmBuilding/Name': 'BuildingName', // 'CmFloor/Name': 'FloorName', // // 'CmZone/Name': 'ZoneName', } } }; }, getDataSourceForRefDataGrid: function () { return { select: [ 'SiteId', 'FacilityCode', 'FmsFacilityCodeClass/Name', 'FmsFacilityCodeClass1/Name', 'FmsFacilityCodeClass2/Name', 'Name', 'Nickname', 'CmBuilding/Name', 'CmFloor/Name', 'CmZone/Name', 'ManufactureModel', 'CmUser/Name', 'CmUser1/Name' ], //expand: ['CmBuilding', 'CmFloor', 'CmZone'], expand: ['CmBuilding', 'CmFloor', 'CmZone', 'CmUser', 'CmUser1', 'FmsFacilityCodeClass', 'FmsFacilityCodeClass1', 'FmsFacilityCodeClass2', 'CmFacility2', 'BemsFuelType', 'BemsNoticePriceContractType'], filter: [ ['SiteId', '=', BWA.UserInfo.SiteId()], 'and', ['FacilityCode', '>=', $Code.Facility.UPPER_BOUND] ], extendOptions: { forceOriginalField: true, multipleItems: [ /* { id: 'FacilityClassId', entries: ['FmsFacilityCodeClass', 'FmsFacilityCodeClass1', 'FmsFacilityCodeClass2'], fields: ['FirstClassId', 'SecondClassId', 'ThirdClassId'], }, { id: 'UserId', entries: ['CmUser', 'CmUser1'], fields: ['MainContactorUserId', 'SubContactorUserId'], }*/ ], alterNames: { 'SiteId': 'SiteId', 'FacilityCode': 'FacilityCode', 'Name': 'Name', 'Nickname': 'Nickname', /* 'FmsFacilityCodeClass/FirstClassId/Name': 'FirstClassName', 'FmsFacilityCodeClass/SecondClassId/Name': 'SecondClassName', 'FmsFacilityCodeClass/ThirdClassId/Name': 'ThirdClassName', */ // 'FmsFacilityCodeClass/Name': 'FirstClassName', // 'FmsFacilityCodeClass1/Name': 'SecondClassName', // 'FmsFacilityCodeClass2/Name': 'ThirdClassName', 'CmUser/MainContactorUserId/Name': 'MainContactorUserName', 'CmUser/SubContactorUserId/Name': 'SubContactorUserName', // 'CmBuilding/Name': 'BuildingName', // 'CmFloor/Name': 'FloorName', // 'CmZone/Name': 'ZoneName', } } }; }, defaultColumns: [ { dataField: 'FacilityCode', caption: $G('number'), width: '10%', alignment: 'center', sortOrder: 'desc' }, //{ dataField: 'ClassName', caption: $G('facilityClassName'), width: '20%', alignment: 'center', allowFiltering: false }, { dataField: 'FirstClassId', caption: '시설(대)', width: '7%', alignment: 'center', allowFiltering: false }, { dataField: 'SecondClassId', caption: '시설(중)', width: '10%', alignment: 'center', allowFiltering: false }, { dataField: 'ThirdClassId', caption: '시설(소)', width: '10%', alignment: 'center', allowFiltering: false }, { dataField: 'Name', caption: $G('facilityName'), width: '20%', alignment: 'center' }, { dataField: 'ManufactureModel', caption: $G('facilityManufactureModel'), width: '10%', alignment: 'center', allowFiltering: false }, //{ dataField: 'MainContactorUserName', caption: $G('facilityMainContactorUserName'), width: '10%', alignment: 'center', allowFiltering: false }, //{ dataField: 'SubContactorUserName', caption: $G('facilitySubContactorUserName'), width: '10%', alignment: 'center', allowFiltering: false }, //{ dataField: 'Location', caption: $G('facilityLocation'), width: '20%', alignment: 'center' } { dataField: 'CmUser/Name', caption: $G('facilityMainContactorUserName'), width: '7%', alignment: 'center', allowFiltering: false }, { dataField: 'CmUser1/Name', caption: $G('facilitySubContactorUserName'), width: '7%', alignment: 'center', allowFiltering: false }, //{ dataField: 'FloorName', caption: $G('facilityLocation'), width: '20%', alignment: 'center' } //{ dataField: 'CmBuilding/Name', caption: $G('facilityLocation'), width: '20%', alignment: 'center' }, { dataField: 'CmFloor/Name', caption: $G('facilityLocation'), width: '20%', alignment: 'center' }, //{ dataField: 'CmZone/Name', caption: $G('facilityLocation'), width: '20%', alignment: 'center' } ], }; $.extend(BWA.Factory.Facility, BWA.DataUtil.pickFunctions(BWA.Factory)); });