| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298 | BemsWebApplication.MaterialReleaseHistory = function (params, viewInfo) {    "use strict";    var materialClassForSearch = ko.observableArray();    var materialClass = ko.observableArray();    var MaterialCodeClassDataSource = BemsWebApplication.db.createDataSource('FmsMaterialCodeClass');    var facilityClasses = [ko.observableArray(), ko.observableArray(), ko.observableArray()];    var searchFacilityClassValues = [ko.observable(), ko.observable(), ko.observable()];    var searchFacilityClasses = [ko.observableArray(), ko.observableArray(), ko.observableArray()];    var first = true;    var workResultCheckItemMaterialPopup, popup, addWorkResultCheckItemPopup = null;    var eq = BWA.DataUtil.constructEqualFilter,        and = BWA.DataUtil.andFilter;    var businessFieldDataSource = BemsWebApplication.db.createDataSource('CmBusinessField', true, true, true),        materialClassDataSource = BemsWebApplication.db.createDataSource('FmsMaterialCodeClass', true, true),        warehouseDataSource = BemsWebApplication.db.createDataSource('FmsMaterialWarehouse', true, true),        releaseTypeDataSource = BemsWebApplication.db.createDataSource('FmsMaterialCodeReleaseType');    var materialClasses = [ko.observableArray(), ko.observableArray(), ko.observableArray()],        businessFields = ko.observableArray(),        releaseTypes = ko.observableArray(),        warehouses = ko.observableArray();    var materialClassesForSearch = [ko.observableArray(), ko.observableArray(), ko.observableArray()],        materialClassValuesForSearch = [ko.observable(), ko.observable(), ko.observable()],        businessFieldsForSearch = ko.observableArray(),        businessFieldIdForSearch = ko.observable(),        warehousesForSearch = ko.observableArray(),        releaseTypesForSearch = ko.observableArray(),        warehousesIdForSearch = ko.observable();    var deferredForSearch = new $.Deferred();    var defaultSearchClassArray = $SearchView.createDefaultArray('MaterialClassId');    function initializeSearchClasses(onlyThird) {        if (onlyThird === undefined || onlyThird === false) {            searchFacilityClasses[1](defaultSearchClassArray.slice(0));            searchFacilityClassValues[1](0);        }        searchFacilityClasses[2](defaultSearchClassArray.slice(0));        searchFacilityClassValues[2](0);    }    var handleFirstClassChangedValueInSearchView = function (e) {        if (first == true && e.value == null) {            e.value = 0;            first = false;            searchFacilityClassValues[0](0);        }        if (e.value === 0) {            initializeSearchClasses();            return;        }        BWA.DataUtil.setArrayDataSourceFilter(MaterialCodeClassDataSource, 'ParentMaterialClassId', e.value, searchFacilityClasses[1], defaultSearchClassArray);    };    var handleSecondClassChangedValueInSearchView = function (e) {        if (e.value === 0) {            initializeSearchClasses(true);            return;        }        BWA.DataUtil.setArrayDataSourceFilter(MaterialCodeClassDataSource, 'ParentMaterialClassId', e.value, searchFacilityClasses[2], defaultSearchClassArray);    };    var dataSourceOptions = {        select: [            'SiteId',            'BusinessFieldId',            'MaterialId',            'FmsMaterial/MaterialCode',            'FmsMaterial/Name',            'FmsMaterial/Standard',            'FmsMaterial/Unit',            'MaterialReleaseId',            'ReleaseTypeId',            'FmsMaterialCodeReleaseType/Name',            'ReleaseDate',            'MaterialCount',            'WarehouseId',            'FmsWorkResult/WorkerUserId',            'FmsWorkResult/CmUser/Name',            'FmsWorkResult/ConfirmedUserId',            'FmsWorkResult/CmUser1/Name',            'FmsWorkResult/FmsWorkOrder/Title',            'FmsWorkResult/FmsWorkRequest/RequestUserId',            'FmsWorkResult/ConfirmedUserId',            'FmsMaterial/FirstClassId',            'FmsMaterial/SecondClassId',            'FmsMaterial/ThirdClassId',            'CmBusinessField/Name'        ],        filter: [            ['SiteId', '=', BWA.UserInfo.SiteId()],             'and',            ['AdjustmentTypeId', '=', 0]        ],        expand: [            'FmsMaterial', 'FmsMaterialCodeReleaseType',            'FmsWorkResult',            'FmsWorkResult/CmUser',            'FmsWorkResult/CmUser1',            'FmsWorkResult/FmsWorkOrder',            'FmsWorkResult/FmsWorkRequest',            'CmBusinessField'        ],        extendOptions: {            forceOriginalField: true        }    };    var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsMaterialRelease', {        dataSourceOptions: dataSourceOptions,        columns: [            { dataField: 'MaterialReleaseId', caption: $G('number'), width: '10%', alignment: 'center', allowFiltering: false },            { dataField: 'CmBusinessField/Name', caption: $G('businessFieldName'), width: '15%', alignment: 'center', },            { dataField: 'FmsMaterialCodeReleaseType/Name', caption: '출고구분', width: '15%', alignment: 'center', visible: false },            { dataField: 'FmsWorkResult/FmsWorkOrder/Title', caption: '작업명', width: '40%', alignment: 'center' },            {                dataField: 'FmsMaterial/FirstClassId', width: '15%', caption: '자재(대)', alignment: 'center',                customizeText: function (cellInfo) {                    for (var i = 1; i < materialClassForSearch().length; i++) {                        if (materialClassForSearch()[i].MaterialClassId() == cellInfo.value) {                            return materialClassForSearch()[i].Name();                        }                    }                }            },            {                dataField: 'FmsMaterial/SecondClassId', width: '15%', caption: '자재(중)', alignment: 'center',                customizeText: function (cellInfo) {                    for (var i = 1; i < materialClassForSearch().length; i++) {                        if (materialClassForSearch()[i].MaterialClassId() == cellInfo.value) {                            return materialClassForSearch()[i].Name();                        }                    }                }            },            {                dataField: 'FmsMaterial/ThirdClassId', width: '15%', caption: '자재(소)', alignment: 'center',                customizeText: function (cellInfo) {                    for (var i = 1; i < materialClassForSearch().length; i++) {                        if (materialClassForSearch()[i].MaterialClassId() == cellInfo.value) {                            return materialClassForSearch()[i].Name();                        }                    }                }            },            { dataField: 'FmsMaterial/Name', caption: '자재명', width: '20%', alignment: 'center' },            { dataField: 'FmsMaterial/Standard', caption: '규격', width: '20%', alignment: 'center' },            { dataField: 'FmsMaterial/Unit', caption: '단위', width: '10%', alignment: 'center' },            { dataField: 'MaterialCount', caption: '사용수량', width: '15%', alignment: 'center', format: 'fixedPoint' },            {                dataField: 'ReleaseDate', caption: '출고일', width: '15%', alignment: 'center', sortOrder: 'desc', dataType: 'string',                customizeText: function (cellInfo) {                    if (cellInfo.value.getMonth() >= 9) {                        if (cellInfo.value.getDate() >= 10) {                            return cellInfo.value.getFullYear() + "-" + (cellInfo.value.getMonth() + 1) + "-" + cellInfo.value.getDate();                        }                        else {                            return cellInfo.value.getFullYear() + "-" + (cellInfo.value.getMonth() + 1) + "-0" + cellInfo.value.getDate();                        }                    }                    else {                        if (cellInfo.value.getDate() >= 10) {                            return cellInfo.value.getFullYear() + "-0" + (cellInfo.value.getMonth() + 1) + "-" + cellInfo.value.getDate();                        }                        else {                            return cellInfo.value.getFullYear() + "-0" + (cellInfo.value.getMonth() + 1) + "-0" + cellInfo.value.getDate();                        }                    }                }            },            { dataField: 'FmsWorkResult/CmUser/Name', caption: '작업자', width: '15%', alignment: 'center' },            { dataField: 'FmsWorkResult/CmUser1/Name', caption: '승인자', width: '15%', alignment: 'center' },        ],        pager: {        },        paging: {            pageSize: 18,            enabled: true        },        searchViewItems: [            { id: 'ReleaseTypeId', ignoreValue: 0, defaultValue: 0, dataSource: releaseTypesForSearch },            { id: 'FmsMaterial/MaterialCode' },            { id: 'FmsMaterial/Name' },            { id: 'FmsMaterial/Standard' },            { id: 'FmsMaterial/Unit' },            { id: 'ReleaseDate', type: 'dateRange', isOnlyDate: true },            { id: 'CmUser/Name' },            { id: 'CmUser1/Name' },            { id: 'FmsMaterial/FirstClassId', ignoreValue: 0, defaultValue: 0, value: searchFacilityClassValues[0], dataSource: searchFacilityClasses[0], handleChangedValue: handleFirstClassChangedValueInSearchView },            { id: 'FmsMaterial/SecondClassId', ignoreValue: 0, defaultValue: 0, withCheckId: 'FmsMaterial/FirstClassId', value: searchFacilityClassValues[1], dataSource: searchFacilityClasses[1], handleChangedValue: handleSecondClassChangedValueInSearchView },            { id: 'FmsMaterial/ThirdClassId', ignoreValue: 0, defaultValue: 0, withCheckId: 'FmsMaterial/FirstClassId', value: searchFacilityClassValues[2], dataSource: searchFacilityClasses[2] },        ],        "export": {            enabled: true,            fileName: '자재 사용 내역',        },        onExporting: function (e) {            e.component.columnOption("MaterialReleaseId", "visible", false);        },        onExported: function (e) {            e.component.columnOption("MaterialReleaseId", "visible", true);        },        handleViewShowing: function () {            MaterialCodeClassDataSource.filter([                ['SiteId', '=', BWA.UserInfo.SiteId()]            ]);            $.when(                MaterialCodeClassDataSource.load()            ).done(function (Result) {                materialClass = ko.observableArray();                var cnt = 0;                for (var i = 0; i < Result.length; i++) {                    materialClass.push(Result[i]);                    if (Result[i].Depth() == 0) {                        if (cnt == 0) {                            searchFacilityClasses[0](defaultSearchClassArray.slice(0).concat(Result[i]));                            cnt++;                        }                        else {                            searchFacilityClasses[0].push(Result[i]);                        }                    }                }                facilityClasses[0](Result[0]);                materialClassForSearch($SearchView.createArrayOfSelectBox('MaterialClassId', materialClass()));            });            materialClassDataSource.filter([                    ['SiteId', '=', BWA.UserInfo.SiteId()],                    'and',                    ['ParentMaterialClassId', '=', null]            ]);            var useBusinessFiltering = BWA.UserInfo.isDependBusinessField(viewInfo.viewName)            if (useBusinessFiltering) {                this.dataSourceOptions.filter.push('and');                this.dataSourceOptions.filter.push([eq('BusinessFieldId', BWA.UserInfo.BusinessFieldId()), 'or', eq('BusinessFieldId', 1)]);                businessFieldDataSource.filter([                  eq('SiteId', BWA.UserInfo.SiteId()),                  and,                  [eq('BusinessFieldId', BWA.UserInfo.BusinessFieldId()), 'or', eq('BusinessFieldId', 1)]                ]);            }            $.when(                businessFieldDataSource.load(),                materialClassDataSource.load(),                warehouseDataSource.load(),                releaseTypeDataSource.load()            ).done(function (dbBusinessFields, dbMaterialClasses, dbWarehouses, dbreleaseTypes) {                dbBusinessFields = dbBusinessFields[0];                dbMaterialClasses = dbMaterialClasses[0];                dbWarehouses = dbWarehouses[0];                materialClasses[0](dbMaterialClasses);                materialClassesForSearch[0]($SearchView.createArrayOfSelectBox('MaterialClassId', dbMaterialClasses));                initializeSearchClasses();                releaseTypes(dbreleaseTypes[0]);                businessFields(dbBusinessFields);                warehouses(dbWarehouses);                releaseTypesForSearch($SearchView.createArrayOfSelectBox('ReleaseTypeId', releaseTypes()));                businessFieldsForSearch($SearchView.createArrayOfSelectBox('BusinessFieldId', dbBusinessFields));                warehousesForSearch($SearchView.createArrayOfSelectBox('WarehouseId', dbWarehouses));                deferredForSearch.resolve();            });        },        //handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) { //추가        //    //dataGrid.clearSelection();        //    //var data = clickRow.data;        //    //var dataModel = viewModel.dataModel;        //    popupVisible(true);        //    //workResultCheckItemMaterialPopup.visible(true);        //},        handleViewShown: function () {        }    });    addWorkResultCheckItemPopup = viewModel.addWorkResultCheckItemPopup = BWA.Popup.AddWorkResultCheckItem.create(viewInfo, viewModel);    popup = viewModel.popup = BWA.Popup.WorkHistory.create(viewInfo, viewModel);    workResultCheckItemMaterialPopup = viewModel.workResultCheckItemMaterialPopup = BWA.Popup.WorkResultCheckItemMaterial.create(viewInfo, viewModel);    viewModel.popupOptions.position = { offset: '-200 0' };    viewModel.popupOptions.height = '930px';    viewModel.handleSecondClassChangedValueInSearchView = handleSecondClassChangedValueInSearchView;    viewModel.handleFirstClassChangedValueInSearchView = handleFirstClassChangedValueInSearchView;    return viewModel;};
 |