| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 | BemsWebApplication.EquipReturnInfo = 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 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, 'FmsEquipmentHistory', {        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/CmUser1/Name', // 대여자                'FmsEquipmentRentInfo/RentDate',                'FmsEquipmentRentInfo/ReturnDueDate'            ],            expand: [                'FmsEquipment',                'FmsEquipmentRentInfo',                'FmsEquipmentRentInfo/CmUser1',                'FmsEquipmentCodeStateType'            ],            extendOptions: {                forceOriginalField: true,            },            filter: [                ['SiteId', '=', BWA.UserInfo.SiteId()] ,                //'and',                //['EquipmentStateTypeId', '=', 2],                'and',                ['IsReturned', '=', false]            ]        },        columns: [            { dataField: 'Number', caption: $G('number'), width: '10%', alignment: 'center' },            { dataField: 'EquipmentRentId', caption: '대여고유번호', width: '15%', alignment: 'center', sortOrder: 'desc' },            { dataField: 'FmsEquipment/Name', caption: $G('name'), width: '30%', alignment: 'center' },            // { dataField: 'FmsEquipmentCodeStateType/Name', caption: '상태', width: '20%', alignment: 'center' },            { dataField: 'FmsEquipment/Standard', caption: '규격', width: '15%', alignment: 'center' },            { dataField: 'FmsEquipment/Unit', caption: '단위', width: '15%', alignment: 'center' },            { dataField: 'CurrentRentCount', caption: '대여수량', width: '10%', alignment: 'center', format: 'currency' },            //{ dataField: 'CurrentStockCount', caption: '보유수량', width: '10%', alignment: 'center' },            //{ dataField: 'TotalStockCount', caption: '전체수량', width: '10%', alignment: 'center' },            { dataField: 'FmsEquipmentRentInfo/CmUser1/Name', caption: '대여자', width: '20%', alignment: 'center' },              {                  dataField: 'FmsEquipmentRentInfo/RentDate', caption: '대여일', width: '20%', alignment: 'center',                  customizeText: function (cellInfo) {                      return $G.date(cellInfo.value);                  }              },            {                dataField: 'FmsEquipmentRentInfo/ReturnDueDate', caption: '반납예정일', width: '20%', alignment: 'center',                customizeText: function (cellInfo) {                    return $G.date(cellInfo.value);                }            },        ],        sort: { field: "EquipmentRentId", desc: true },        searchViewItems: [{ id: 'Name' }, { id: 'Name' }],        popupWidth: 740,        handleViewShowing: function (dataModel) {            codeStateTypeDataSource.filter([                ['EquipmentStateTypeId', '>', 2], // 입고,출고 유형제외            ]);            $.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) {            dataGrid.clearSelection();            var data = clickRow.data;            var dataModel = viewModel.dataModel;                        dataModel.EquipmentName = $KoSet(dataModel.EquipmentName, data['FmsEquipment/Name']());            dataModel.Standard = $KoSet(dataModel.Standard, data['FmsEquipment/Standard']());            dataModel.Title = $KoSet(dataModel.Title, data['FmsEquipmentRentInfo/Title']());            if (data['FmsEquipmentRentInfo/CmUser1/Name'] !== undefined) {                dataModel.RentUserName = $KoSet(dataModel.RentUserName, data['FmsEquipmentRentInfo/CmUser1/Name']());            }            dataModel.RentDate = $KoSet(dataModel.RentDate, data['FmsEquipmentRentInfo/RentDate']());            dataModel.ReturnDueDate = $KoSet(dataModel.ReturnDueDate, data['FmsEquipmentRentInfo/ReturnDueDate']());            //dataModel.NewReturnCount(0);            //dataModel.NewLossCount(0);            popupVisible(true);        },        handlePopupShowing: function (isNewInPopup, dataViewModel) {            // 저장 버튼             viewModel.toolbarItems[4].options.clickAction = this.handlePopupButtonSave;            // Admin 계정만 활성화 되는 이상 현상으로 인한 코드             viewModel.toolbarItems[4].options.disabled(false);        },        handlePopupButtonSave: function () {            var dataViewModel = viewModel.dataModel;            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);                });        },        handlePopupShown: function (isEditMode, isNew, dataViewModel) {            setEditMode();            dataViewModel.ReturnCount(0);            dataViewModel.LossCount(0);        }    });    function setEditMode() {        viewModel.visibleEditButton(false);        viewModel.visibleDeleteButton(false);        viewModel.viewModeInPopup(false);        viewModel.isEditModeInPopup(true);    }    viewModel.dataModel.NewReturnCount = ko.observable(0);    viewModel.dataModel.NewLossCount = ko.observable(0);    viewModel.codeTypes = codeTypes;    viewModel.codeStateTypes = codeStateTypes;    viewModel.warehouses = warehouses;    return viewModel;};
 |