123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- $(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);
- }
- };
- };
- });
|