| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 | 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;};
 |