BemsWebApplication.EquipStatusInfo = function (params, viewInfo) { "use strict"; var codeTypeDataSource = BemsWebApplication.db.createDataSource('FmsEquipmentCodeType', true, false, true), codeStateTypeDataSource = BemsWebApplication.db.createDataSource('FmsEquipmentCodeStateType', false, false, true), warehouseDataSource = BemsWebApplication.db.createDataSource('FmsMaterialWarehouse', true, false, true); var eq = BWA.DataUtil.constructEqualFilter, and = BWA.DataUtil.andFilter; var codeTypes = ko.observableArray(), codeStateTypes = ko.observableArray(), warehouses = ko.observableArray(); var codeTypesForSearch = ko.observableArray(), codeStateTypesForSearch = ko.observableArray(), warehousesForSearch = ko.observableArray(); var deferredForSearch = new $.Deferred(); var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsEquipmentEx', { dataSourceOptions: { store: BemsWebApplication.odata.FmsEquipmentEx, select: [ 'SiteId', 'EquipmentId', 'Name', 'EquipmentTypeId', 'WarehouseId', 'Unit', 'Standard', 'AddDate', 'UpdateDate', 'RegisterUserId', 'SupplierName', 'SupplierPhoneNo', 'EquipmentCodeTypeName', 'TotalStockCount', 'CurrentStockCount', 'CurrentRentCount', 'RegisterUserName', 'WarehouseName', 'CurrentStoredCount', 'CurrentReturnCount', 'CurrentLossCount' ], }, filter: ([ eq('SiteId', BWA.UserInfo.SiteId()) ]), // TODO : "입고수량","손실수량","반납수량" columns: [ { dataField: 'EquipmentId', caption: $G('number'), width: '10%', alignment: 'center', sortOrder: 'desc' }, { dataField: 'EquipmentCodeTypeName', caption: '분류', width: '10%', alignment: 'center' }, { dataField: 'Name', caption: '공기구명', width: '30%', alignment: 'center' }, { dataField: 'Standard', caption: '규격', width: '30%', alignment: 'center' }, { dataField: 'Unit', caption: '단위', width: '15%', alignment: 'center' }, { dataField: 'TotalStockCount', caption: '전체수량', width: '10%', alignment: 'center', format: 'fixedPoint' }, { dataField: 'CurrentStoredCount', caption: '입고수량', width: '10%', alignment: 'center', format: 'fixedPoint' }, { dataField: 'CurrentRentCount', caption: '대여수량', width: '10%', alignment: 'center', format: 'fixedPoint' }, { dataField: 'CurrentLossCount', caption: '손실수량', width: '10%', alignment: 'center', format: 'fixedPoint' }, { dataField: 'CurrentStockCount', caption: '보유수량', width: '10%', alignment: 'center', format: 'fixedPoint' }, { dataField: 'WarehouseName', caption: '창고위치', width: '10%', alignment: 'center' }, ], paging: { pageSize: 18, enabled: true }, pager: {}, "export": { enabled: true, fileName: '공기구 사용 목록', }, onExporting: function (e) { e.component.columnOption("EquipmentId", "visible", false); }, onExported: function (e) { e.component.columnOption("EquipmentId", "visible", true); }, searchViewItems: [ { id: 'Name' }, { id: 'Standard' }, { id: 'EquipmentTypeId', ignoreValue: 0, defaultValue: 0, dataSource: codeTypesForSearch }, // 분류 ], popupWidth: 400, handleViewShowing: function (dataModel) { $.when( codeStateTypeDataSource.load(), codeTypeDataSource.load(), warehouseDataSource.load() ).done(function (codeStateTypeResult, codeTypeResult, warehouseResult) { codeStateTypes(codeStateTypeResult[0]); codeTypes(codeTypeResult[0]); warehouses(warehouseResult[0]); codeTypesForSearch($SearchView.createArrayOfSelectBox('EquipmentTypeId', codeTypes())); warehousesForSearch($SearchView.createArrayOfSelectBox('WarehouseId', warehouses())); deferredForSearch.resolve(); }); }, handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) { dataGrid.clearSelection(); popupVisible(false); // Detail 모드를 수행하지 않음 }, handlePopupShowing: function (isNewInPopup, dataViewModel) { // 저장 버튼 viewModel.toolbarItems[4].options.clickAction = this.handlePopupButtonSave; }, handlePopupShown: function (isEditMode, isNew, dataViewModel) { $.when( equipmentExDataSource.load() ).done(function (equipmentExResult) { equipmentExs(equipmentExResult); }); if (isNew) { // 신규등록인 경우 dataViewModel.AddDate($G.date(new Date())); dataViewModel.UpdateDate($G.date(new Date())); dataViewModel.RegisterUserId(BWA.UserInfo.UserId()); dataViewModel.StoredCount(1); } }, handlePopupButtonSave: function () { var dataViewModel = viewModel.dataModel; if (IsAdditionalEquipment()) { if (dataViewModel.EquipmentId() == null) { utils.toast.show('추가입고할 공기구를 선택하세요.', 'error'); return; } } else { if (dataViewModel.EquipmentTypeId() == null) { utils.toast.show('입고할 공기구 분류를 선택하세요.', 'error'); return; } else if (dataViewModel.Name() == null) { utils.toast.show('입고할 공기구 이름을 입력하세요.', 'error'); return; } } if (dataViewModel.WarehouseId() == null) { utils.toast.show('입고될 창고위치를 선택하세요.', 'error'); return; } var parameters = { SiteId: dataViewModel.SiteId(), IsAdditionalEquipment: IsAdditionalEquipment() }; var postData = dataViewModel.toJS(); BWA.api.post('FmsEquipment', postData, parameters).done( function () { utils.toast.show($G('successDatabaseInsertionMsg')); viewModel.popupVisible(false); viewModel.gridView().refresh(); }); } }); return viewModel; };