123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- $(function () {
- 'use strict';
- var materialClassForSearch = ko.observableArray();
- BemsWebApplication.Factory.Material = {
- getBasicDataSourceRef: function (options) {
- var dbModeIId = options.dbModeIId,
- primaryKeyDataField = options.primaryKeyDataField,
- moreSelectFields = options.moreSelectFields,
- expand = ['FmsMaterial',
- 'FmsMaterial/FmsMaterialTradeCompany'];
- var select = [
- 'SiteId',
- 'BusinessFieldId',
- primaryKeyDataField,
- 'MaterialId',
- 'MaterialCount',
- 'FmsMaterial/FmsMaterialTradeCompany/Name',
- 'FmsMaterial/MaterialCode',
- 'FmsMaterial/Name',
- 'FmsMaterial/FirstClassId',
- 'FmsMaterial/SecondClassId',
- 'FmsMaterial/ThirdClassId',
- 'FmsMaterial/Standard',
- 'FmsMaterial/Unit'
- ];
- if (options.dbModeIId == "FmsMaterialRelease") {
- select.push('StockCountByPoint');
- }
- 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: {
- 'FmsMaterial/MaterialCode': 'MaterialCode',
- 'FmsMaterial/Name': 'Name',
- 'FmsMaterial/FirstClassId': 'FirstClassId',
- 'FmsMaterial/SecondClassId': 'SecondClassId',
- 'FmsMaterial/ThirdClassId': 'ThirdClassId',
- 'FmsMaterial/Standard': 'Standard',
- 'FmsMaterial/Unit': 'Unit'
- }
- }
- }
- }, dbModeIId);
- },
- getDataSourceWithRelation: function (store, options) {
- return BWA.Factory.getBaseDataSourceWithRelation(
- store,
- options,
- BWA.Factory.Material.getDataSourceForRefDataGrid(),
- 'FmsMaterial');
- },
- 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('');
- },
- cellPrepared: function (cellElement, cellInfo) {
- var data = cellInfo.data;
- var self = BemsWebApplication.Factory.Facility;
- switch (cellInfo.column.dataField) {
- case 'ClassName':
- if (!data.FirstClassName) break;
- $(cellElement).text(self.formatClassName(data.FirstClassName(), data.SecondClassName(), data.ThirdClassName()));
- break;
- }
- },
- getDataSourceForDataGrid: function () {
- return {
- select: [
- 'SiteId',
- 'BusinessFieldId',
- 'MaterialId',
- 'MaterialCode',
- 'Name',
- 'Unit',
- 'MaterialCode',
- 'Standard',
- 'Standard',
- 'DurableYears',
- 'IsDiscontinued',
- 'IsUse',
- 'FinalPrice',
- 'ReasonableStockCount',
- 'FinalStockCount',
- 'FinalTotalStockAmount',
- 'CmBusinessField/Name',
- 'FmsMaterialCodeClass/Name',
- 'FmsMaterialCodeClass1/Name',
- 'FmsMaterialCodeClass2/Name',
- 'FmsMaterialCodeClass/Abbreviation',
- 'FmsMaterialCodeClass1/Abbreviation',
- 'FmsMaterialCodeClass2/Abbreviation',
- 'FmsMaterialCodeLocation/Name',
- 'FmsMaterialCodeType/Name',
- 'FmsMaterialWarehouse/Name',
- 'FmsMaterialTradeCompany/Name'
- ],
- expand: ['CmBusinessField',
- 'FmsMaterialCodeLocation',
- 'FmsMaterialCodeType',
- 'FmsMaterialWarehouse',
- 'FmsMaterialTradeCompany'],
- extendOptions: {
- multipleItems: [
- {
- id: 'MaterialClassId',
- entries: ['FmsMaterialCodeClass', 'FmsMaterialCodeClass1', 'FmsMaterialCodeClass2'],
- fields: ['FirstClassId', 'SecondClassId', 'ThirdClassId'],
- }
- ],
- forceOriginalField: true,
- alterNames: {
- 'FmsMaterialCodeClass/FirstClassId/Name': 'FirstClassName',
- 'FmsMaterialCodeClass1/SecondClassId/Name': 'SecondClassName',
- 'FmsMaterialCodeClass2/ThirdClassId/Name': 'ThirdClassName',
- }
- },
- sort: { field: "MaterialId", desc: true }
- };
- },
- getDataSourceForRefDataGrid: function () {
- return {
- select: [
- 'SiteId', 'BusinessFieldId', 'MaterialId', 'MaterialCode', 'Name', 'Unit', 'MaterialCode', 'Standard',
- 'FinalPrice', 'DurableYears', 'CmBusinessField/Name'
- ],
- expand: ['CmBusinessField'],
- filter: [
- ['SiteId', '=', BWA.UserInfo.SiteId()]
- ],
- extendOptions: {
- forceOriginalField: true
- }
- };
- },
- defaultColumns: [
- { dataField: 'MaterialId', caption: $G('number'), width: '10%', alignment: 'center', allowFiltering: false, sortOrder: 'desc' },
- { dataField: 'CmBusinessField/Name', caption: $G('businessField'), width: '10%', alignment: 'center' },
- {
- dataField: 'FirstClassName', width: '10%', caption: '자재(대)', alignment: 'center', allowSorting: false,
- },
- {
- dataField: 'SecondClassName', width: '10%', caption: '자재(중)', alignment: 'center', allowSorting: false,
- },
- {
- dataField: 'ThirdClassName', width: '10%', caption: '자재(소)', alignment: 'center', allowSorting: false,
- },
- { dataField: 'MaterialCode', caption: $G('materialCode'), width: '20%', alignment: 'center', visible: false },
- { dataField: 'Name', caption: $G('materialName'), width: '25%', alignment: 'center' },
- { dataField: 'Standard', caption: $G('materialStandard'), width: '20%', alignment: 'center', },
- { dataField: 'Unit', caption: $G('materialUnit'), width: '8%', alignment: 'center' },
- { dataField: 'FinalPrice', caption: '단가', width: '8%', alignment: 'center', format: 'fixedPoint', },
- { dataField: 'ReasonableStockCount', caption: '적정재고량', width: '8%', alignment: 'center', format: 'fixedPoint' },
- { dataField: 'DurableYears', caption: $G('durableYears'), width: '8%', alignment: 'center', visible: false },
- {
- dataField: 'IsDiscontinued', caption: $G('isDiscontinued'), width: '8%', alignment: 'center',
- customizeText: function (cellInfo) {
- return $G.isYes(cellInfo.value);
- }
- },
- {
- dataField: 'IsUse', caption: '사용여부', width: '8%', alignment: 'center',
- customizeText: function (cellInfo) {
- return $G.isYes(cellInfo.value);
- }
- }
- ]
- };
- $.extend(BWA.Factory.Material, BWA.DataUtil.pickFunctions(BWA.Material));
- });
|