| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360 | BemsWebApplication.EquipReturnInfo2 = 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 equipmentExDataSource = BWA.DataUtil.createDataSource({        dataSourceOptions: {            store: BemsWebApplication.odata.FmsEquipmentEx,            map: function (item) {                return new BemsWebApplication.FmsEquipmentExViewModel(item);            },            filter: ([              eq('SiteId', BWA.UserInfo.SiteId())            ])        }    });    var equipments = ko.observableArray(),        equipmentGridView,        equipmentDataGridOptions = undefined;    var equipmentRentDataSource = BWA.DataUtil.createDataSource({        dataSourceOptions: {            select: [               'SiteId',                'EquipmentHistoryId',                'EquipmentId',                'TotalStockCount',                'CurrentStockCount',                'RentCount',                'CurrentRentCount',                'ReturnCount',                'LossCount',                'StoredCount',                'EquipmentRentId',                'EquipmentStateTypeId',                'AddDate',                'UpdateDate',                'FmsEquipment/WarehouseId',                'FmsEquipment/Unit',                'FmsEquipment/Standard',                'FmsEquipment/Name',                'FmsEquipmentCodeStateType/Name',                'FmsEquipment/Standard',                'FmsEquipmentRentInfo/Title',                'FmsEquipmentRentInfo/RentUser', // 대여자                'FmsEquipmentRentInfo/RentDate',                'FmsEquipmentRentInfo/ReturnDueDate'            ],            expand: ['FmsEquipment',                'FmsEquipmentRentInfo',                'FmsEquipmentRentInfo/CmUser1',                'FmsEquipmentCodeStateType'],            extendOptions: {                forceOriginalField: true            },            filter: [                ['SiteId', '=', BWA.UserInfo.SiteId()],                'and',                ['IsReturned', '=', false]            ],            paginate: false, // 페이징을 하지 않음        }    }, 'FmsEquipmentHistory');     var codeTypes = ko.observableArray(),        codeStateTypes = ko.observableArray(),        warehouses = ko.observableArray(),        equipmentExs = ko.observableArray();    var codeTypesForSearch = ko.observableArray(),        codeStateTypesForSearch = ko.observableArray(),        warehousesForSearch = ko.observableArray();    var deferredForSearch = new $.Deferred();    var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsEquipmentHistory', {        dataSourceOptions: {            select: [                'SiteId',                'EquipmentHistoryId',                'EquipmentId',                'TotalStockCount',                'CurrentStockCount',                'RentCount',                'CurrentRentCount',                'ReturnCount',                'LossCount',                'StoredCount',                'EquipmentRentId',                'EquipmentStateTypeId',                'AddDate',                'UpdateDate',                'IsReturned',                'FmsEquipment/FmsEquipmentCodeType/Name',                'FmsEquipment/FmsEquipmentCodeType/EquipmentTypeId',                'FmsEquipment/Name',                'FmsEquipment/CmUser/Name',                'FmsEquipmentCodeStateType/Name',                'FmsEquipment/Standard',                'FmsEquipment/Unit',                'FmsEquipmentRentInfo/RentUser',                'FmsEquipmentRentInfo/RentDate',                'FmsEquipmentRentInfo/ReturnDueDate',                'FmsEquipmentRentInfo/ReturnFixDate',                'FmsEquipment/FmsMaterialWarehouse/Name'            ],            expand: [                'FmsEquipment/FmsEquipmentCodeType',                'FmsEquipmentCodeStateType',                'FmsEquipment/CmUser',                'FmsEquipmentRentInfo',                'FmsEquipmentRentInfo/CmUser1',                'FmsEquipment/FmsMaterialWarehouse',            ],            extendOptions: {                forceOriginalField: true            },            filter: [                eq('SiteId', BWA.UserInfo.SiteId()),                'and',                [['EquipmentStateTypeId', '>=', 3],                'and',                ['EquipmentStateTypeId', '<=', 5]]            ]        },        columns: [            { dataField: 'EquipmentHistoryId', caption: $G('number'), width: '10%', alignment: 'center' },            { dataField: 'FmsEquipmentCodeStateType/Name', caption: '구분', width: '10%', alignment: 'center' },            { dataField: 'FmsEquipment/FmsEquipmentCodeType/Name', caption: '분류', width: '10%', alignment: 'center' },            { dataField: 'FmsEquipment/Name', caption: '공기구명', width: '22%', alignment: 'center' },            { dataField: 'FmsEquipment/Standard', caption: '규격', width: '22%', alignment: 'center' },            { dataField: 'FmsEquipment/Unit', caption: '단위', width: '11%', alignment: 'center' },            { dataField: 'ReturnCount', caption: '반납수량', width: '10%', alignment: 'center', format: 'fixedPoint' },            { dataField: 'LossCount', caption: '손실수량', width: '10%', alignment: 'center', format: 'fixedPoint' },            {                dataField: 'UpdateDate', caption: '등록일', width: '20%', alignment: 'center', sortOrder: 'desc', dataType: "shortDate", format: "yyyy-MM-dd hh:mm:ss",                customizeText: function (cellInfo) {                    return cellInfo.valueText;                }            },            { dataField: 'FmsEquipmentRentInfo/RentUser', caption: '대여자', width: '15%', alignment: 'center' },            { dataField: 'FmsEquipment/CmUser/Name', caption: '관리자', width: '10%', alignment: 'center', visible: false }        ],        paging: {            pageSize: 18,            enabled: true        },        pager: {},        "export": {            enabled: true,            fileName: '공기구 반납/손실 목록',        },        onExporting: function (e) {            e.component.columnOption("EquipmentHistoryId", "visible", false);        },        onExported: function (e) {            e.component.columnOption("EquipmentHistoryId", "visible", true);        },        sort: { field: "EquipmentHistoryId", desc: true },        searchViewItems: [            { id: 'FmsEquipment/Name' },            { id: 'FmsEquipment/Standard' },            { id: 'FmsEquipmentRentInfo/RentUser' },            { id: 'EquipmentStateTypeId', ignoreValue: 0, defaultValue: 0, dataSource: codeStateTypesForSearch }, // 구분            { id: 'FmsEquipment/FmsEquipmentCodeType/EquipmentTypeId', ignoreValue: 0, defaultValue: 0, dataSource: codeTypesForSearch }, // 분류             { id: 'UpdateDate', type: 'dateRange', isOnlyDate: true },        ],        popupWidth: 950,        handleViewShowing: function (dataModel) {            $.when(                codeStateTypeDataSource.load(),                codeTypeDataSource.load(),                warehouseDataSource.load()            ).done(function (codeStateTypeResult, codeTypeResult, warehouseResult) {                codeStateTypes(codeStateTypeResult[0]);                codeTypes(codeTypeResult[0]);                warehouses(warehouseResult[0]);                codeStateTypesForSearch($SearchView.createArrayOfSelectBox('EquipmentStateTypeId', codeStateTypes()));                codeTypesForSearch($SearchView.createArrayOfSelectBox('EquipmentTypeId', codeTypes()));                warehousesForSearch($SearchView.createArrayOfSelectBox('WarehouseId', warehouses()));                deferredForSearch.resolve();            });        },        handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {        },        handlePopupShowing: function (isNewInPopup, dataViewModel) {            // 저장 버튼             dataViewModel.ReturnCount(0);            dataViewModel.LossCount(0);            dataViewModel.Title('');            dataViewModel.RentUser('');            dataViewModel.RentDate('');            dataViewModel.ReturnDueDate('');            dataViewModel.CurrentRentCount('');            dataViewModel.EquipmentId(0);            dataViewModel.EquipmentRentId(0);            dataViewModel.SiteId(0);        },        handlePopupShown: function (isEditMode, isNew, dataViewModel) {            $.when(                equipmentRentDataSource.load()             ).done(function (equipmentRentInfoResult) {                 equipments(equipmentRentInfoResult);             });        }    });    var equipPopupToolbarItems = [      { location: 'before', text: '공기구 반납/손실' },      {          location: 'after', widget: 'button', options: {              text: $G('save'), icon: 'save', visible: viewModel.isEditModeInPopup,              clickAction: handlePopupButtonSave          }      },      {          location: 'after', widget: 'button', options: {              text: $G('close'), icon: 'close',              clickAction: equipPopupButtonClose          }      }    ];    function handlePopupButtonSave() {        var dataViewModel = viewModel.dataModel;        if (dataViewModel.LossCount() == null || dataViewModel.ReturnCount() == null) {            utils.toast.show('반납/손실 수량을 확인하시기 바랍니다.2', 'warning');            return;        }        if (dataViewModel.LossCount() == 0 && dataViewModel.ReturnCount() == 0) {            utils.toast.show('반납/손실 수량을 확인하시기 바랍니다.', 'warning');            return;        }        if (dataViewModel.CurrentRentCount() < (dataViewModel.LossCount() + dataViewModel.ReturnCount())) {            utils.toast.show('현재 대여 수량보다 반납/손실 수량이 더 많습니다. 반납/손실 수량을 확인하시기 바랍니다.', 'warning');            return;        }        var postData = dataViewModel.toJS();        BWA.api.post('FmsEquipmentHistory/AddHistory', postData).done(            function () {                viewModel.gridView().refresh();                utils.toast.show($G('successDatabaseProcessMsg'));                viewModel.popupVisible(false);            });    }    function equipPopupButtonClose() {        viewModel.popupVisible(false);    }    function processValueChange(e) {    }    equipmentDataGridOptions = utils.datagrid.defaultOptions({        width: 900,        visible: true,        pager: {            showPageSizeSelector: false,            allowedPageSizes: []        },        dataSource: equipments,        columns: [            { dataField: 'FmsEquipment/Name', caption: '공기구명', width: '27%', alignment: 'center' },            { dataField: 'FmsEquipment/Standard', caption: '규격', width: '27%', alignment: 'center' },            { dataField: 'FmsEquipment/Unit', caption: '단위', width: '13%', alignment: 'center' },            { dataField: 'CurrentRentCount', caption: '대여수량', width: '13%', alignment: 'center' },            { dataField: 'FmsEquipmentRentInfo/RentUser', caption: '대여자', width: '14%', alignment: 'center' },            {                dataField: 'FmsEquipmentRentInfo/RentDate', caption: '대여일', width: '18%', alignment: 'center', sortOrder: 'desc',                customizeText: function (cellInfo) {                    return $G.date(cellInfo.value);                }            },            {                dataField: 'FmsEquipmentRentInfo/ReturnDueDate', caption: '반납예정일', width: '18%', alignment: 'center',                customizeText: function (cellInfo) {                    return $G.date(cellInfo.value);                }            },        ],        paging: {            pageSize: 8        },        contentReadyAction: function (e) {            equipmentGridView = e.component;        },        rowClick: function (clickRow) {            var data = clickRow.data;            var dataModel = viewModel.dataModel;            viewModel.dataModel.Title = $KoSet(viewModel.dataModel.Title, data['FmsEquipmentRentInfo/Title']());            if (data['FmsEquipmentRentInfo/RentUser'] === undefined) {                viewModel.dataModel.RentUser('');            } else {                viewModel.dataModel.RentUser(data['FmsEquipmentRentInfo/RentUser']());            }            if (data['FmsEquipmentRentInfo/RentDate'] === undefined) {                viewModel.dataModel.RentDate('');            } else {                viewModel.dataModel.RentDate($G.date(moment(data['FmsEquipmentRentInfo/RentDate']())));            }            if (data['FmsEquipmentRentInfo/ReturnDueDate'] === undefined) {                viewModel.dataModel.ReturnDueDate('');            } else {                viewModel.dataModel.ReturnDueDate($G.date(moment(data['FmsEquipmentRentInfo/ReturnDueDate']())));            }            viewModel.dataModel.ReturnCount(0);            viewModel.dataModel.EqName(data['FmsEquipment/Name']());            viewModel.dataModel.LossCount(0);            viewModel.dataModel.CurrentRentCount(data['CurrentRentCount']());            viewModel.dataModel.EquipmentId(data['EquipmentId']());            viewModel.dataModel.EquipmentRentId(data['EquipmentRentId']());            viewModel.dataModel.SiteId(data['SiteId']());        }    });    viewModel.equipPopupToolbarItems = equipPopupToolbarItems;    viewModel.dataModel.Title = ko.observable();    viewModel.dataModel.RentUser = ko.observable();    viewModel.dataModel.RentDate = ko.observable();    viewModel.dataModel.ReturnDueDate = ko.observable();    // hcLee 2016 01 14    viewModel.dataModel.EqName = ko.observable();    viewModel.equipmentDataGridOptions = equipmentDataGridOptions;    viewModel.processValueChange = processValueChange;    viewModel.equipmentExs = equipmentExs;    viewModel.codeTypes = codeTypes;    viewModel.codeStateTypes = codeStateTypes;    viewModel.warehouses = warehouses;    return viewModel;};
 |