$(function () { 'use strict'; BWA.Popup.Equipment = BWA.Popup.Equipment || {}; BWA.Popup.Equipment.create = function (viewModel, options) { options = options || {}; options.datagridId = options.datagridId || 'equipmentDataGridForSearch'; var onSelectedEquipments = options.onSelectedEquipments, isMultipleSelect = options.isMultipleSelect; var dataViewModel = new BemsWebApplication.FmsEquipmentExViewModel(), initialized = false, gridView, popupVisible = ko.observable(false), equipmentFactory = BemsWebApplication.Factory.Equipment; //dataSource = BWA.DataUtil.createDataSource({ dataSourceOptions: equipmentFactory.getDataSourceForDataGrid() }, 'FmsEquipmentEx'); var eq = BWA.DataUtil.constructEqualFilter, and = BWA.DataUtil.andFilter; // 자재 검색시 나타나는 팝업은 공통 및 자신이 포함된 비즈니스 영역만 해당됨 var userInfo = BWA.UserInfo; //targetFacilityDataSource.filter([ // eq('SiteId', userInfo.SiteId()) //]); var targetFacilityDataSource = BWA.DataUtil.createDataSource({ dataSourceOptions: { store: BemsWebApplication.odata.FmsEquipmentEx, select: [ 'SiteId', 'EquipmentId', 'Name', 'EquipmentTypeId', 'WarehouseId', 'Unit', 'Standard', 'AddDate', 'UpdateDate', 'RegisterUserId', 'SupplierName', 'SupplierPhoneNo', 'EquipmentCodeTypeName', 'TotalStockCount', 'CurrentStockCount', 'RegisterUserName', 'WarehouseName', ], filter: ([ eq('SiteId', userInfo.SiteId()) ]), }, sort: { field: "EquipmentId", desc: true } }); var dataGridOptions = utils.datagrid.defaultOptions({ dxDataSource: targetFacilityDataSource, selectedSourceItem: dataViewModel, handleDataGridRowClick: function () { }, columns: [ { dataField: 'Name', caption: '공기구명', width: '25%', alignment: 'center' }, { dataField: 'Standard', caption: '규격', width: '25%', alignment: 'center' }, { dataField: 'WarehouseName', caption: '창고', width: '17%', alignment: 'center' }, { dataField: 'TotalStockCount', caption: '전체수량', width: '17%', alignment: 'center', format: 'currency' }, { dataField: 'CurrentStockCount', caption: '보유수량', width: '16%', alignment: 'center', format: 'currency' }, { dataField: 'Unit', caption: '단위', width: '15%', alignment: 'center', visible: false }, ], wordWrapEnabled: true, cellPrepared: BemsWebApplication.Factory.Equipment.cellPrepared }); if (isMultipleSelect) { dataGridOptions.selection = { mode: 'multiple', allowSelectAll: true }; dataGridOptions.handleDataGridRowClick = function () { }; } else { dataGridOptions.handleDataGridRowClick = function (id, dataGrid, clickRow) { var data = clickRow.data; if (!_.isUndefined(onSelectedEquipments)) { onSelectedEquipments([BWA.DataUtil.convertViewModelToJS(data)]); //{ // SiteId: data.SiteId(), // BusinessFieldId: data.BusinessFieldId(), // MaterialId: data.MaterialId(), // MaterialCode: data.MaterialCode(), // FinalPrice: data.FinalPrice(), // TradeCompanyId: _.isUndefined(data.TradeCompanyId) ? undefined : data.TradeCompanyId(), // 'FmsMaterialTradeCompany/Name': data['FmsMaterialTradeCompany/Name'], // Name: data.Name() //}]); } // TODO : 어기서 데이터가 전체선택시와 단일선택시 어찌 바뀌는가... popupVisible(false); } } function handlePopupShown() { if (initialized === false) { gridView = $('#equipmentDataGridForSearch').dxDataGrid('instance'); initialized = true; } gridView.clearSelection(); gridView.refresh(); searchView.show(); } function handlePopupButtonSelect() { var array = utils.datagrid.getSelectedRowsData(options.datagridId); if (!_.isUndefined(onSelectedEquipments)) { onSelectedEquipments(array); } popupVisible(false); } function handlePopupButtonClose() { popupVisible(false); } var toolbarItems = [ { location: 'before', text: '자재 선택' }, { location: 'after', widget: 'button', options: { text: $G('select'), icon: 'save', visible: isMultipleSelect, clickAction: handlePopupButtonSelect } }, { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: handlePopupButtonClose } } ]; var popupOptions = { width: '720px', height: '600px', visible: popupVisible, closeOnOutsideClick: true, //showingAction: handlePopupShowing, shownAction: handlePopupShown, animation: window.utils.popup.createAnimation() }; var searchView = BWA.Popup.SearchView.create({ parentPopupId: 'popupSearchEquipment', parentPopupVisible: popupVisible, searchItems: [ { id: 'Name' }, { id: 'Standard' } ], handleInitializeUpdate: function () { }, handleSearch: function (filter, searchItems) { // filter = [ // eq('SiteId', BWA.UserInfo.SiteId()), // and, // [ // eq('BusinessFieldId', BWA.UserInfo.BusinessFieldId()), // 'or', // eq('BusinessFieldId', 1) // ], // ].concat(filter) // gridView.filter(filter); //// console.log(filter); } }); return { dataModel: dataViewModel, //dataSource: dataSource, popupOptions: popupOptions, toolbarItems: toolbarItems, dataGridOptions: dataGridOptions, searchView: searchView, show: function () { popupVisible(true); } }; }; });