| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310 | $(function () {    'use strict';    BemsWebApplication.Popup.WorkResultCheckItemMaterial = {        create: function (viewInfo, viewModel) {            var ex = 0;            var eq = BWA.DataUtil.constructEqualFilter;            var and = BWA.DataUtil.andFilter;            var deletestate = false;            var overlayVisible = ko.observable(false),                position = ko.observable(),                timer = null;            var materialGridView2 = ko.observable();            var materials2 = ko.observableArray();            var materialFactory2 = BWA.Factory.Material;            var materialColumns2 = materialFactory2.getColumns([               { dataField: 'MaterialCode', width: '30%' },               { dataField: 'Name', width: '40%' },               { dataField: 'Standard', width: '40%' }            ]);            var materials2DataSource = BemsWebApplication.db.createDataSource('FmsWorkResultCheckItemMaterial', true, true, true);            var fmsmaterialsDataSource = BemsWebApplication.db.createDataSource('FmsMaterial', true, true, true);            //var modifiableMaterialDataGridOptions2 = null;            overlayVisible.subscribe(function (value) {                if (value) {                    if (timer !== null) {                        clearInterval(timer);                    }                    var top, left;                    //var element = $('#popupWorkContentsDetail').offsetParent();                    var element = $('#currentWorkpopupDetail').offsetParent();                    position({ my: 'left top', at: 'right top', of: element });                    timer = setInterval(function () {                        var offset = element.offset();                        if (top !== offset.top || left !== offset.left) {                            top = offset.top;                            left = offset.left;                            position({ my: 'left top', at: 'right top', of: element });                        }                    }, 100);                }                else {                    if (timer !== null) {                        clearInterval(timer);                        timer = null;                    }                }            });            position.subscribe(function (value) {            });            viewModel.popupVisible.subscribe(function (value) {                if (value === false) {                    overlayVisible(false);                    materials2([]);                }                //workProgressDataSource.load().done(function (result) {                //    progresses(result);                //});            });            viewModel.workResultContentsViewOptions = {                width: '530px',                height: '682px',                dragEnabled: false,                position: position,                visible: overlayVisible,                showingAction: function () {                    $("#gridContainer2").dxDataGrid({                        paging: {                            pageSize: 14,                            enabled: true                        }                    });                },                closeOnOutsideClick: false,                shading: false,                animation: {                    show: { type: "slide", duration: 150, from: { left: '-=10', opacity: 0 }, to: { opacity: 1 } },                    hide: { type: "slide", duration: 150, from: { left: '-=10', opacity: 1 }, to: { opacity: 0 } }                }            };            //var popup = e.component;            viewModel.toolbarItemsInWorkResult = [                { location: 'before', text: '자재사용내역' },                //{                //    location: 'after', widget: 'button', options: {                //        text: $G('materialInsertion'), icon: 'search', visible: viewModel.isApprovalMode(), // !viewModel.isWorkHistory(),                //        clickAction: function () {                //            viewModel.isAddPopup(false);                //            viewModel.materialSearchPopup.show();                   //        }                //    }                //},                //{                //    location: 'after', widget: 'button', options: {                //        text: $G('materialDeletion'), icon: 'remove', type: 'danger', visible: viewModel.isApprovalMode(),//!viewModel.isWorkHistory(),                //        clickAction: function () { handleDeleteSelectedMaterials(); }                //    }                //},                //{                //    location: 'after', widget: 'button', options: {                //        text: $G('save'), icon: 'save', visible: viewModel.isApprovalMode(),                //        clickAction: function () {                //            saveApprovalMaterials();                //        }                //    }                //}            ];            viewModel.modifiableMaterialDataGridOptions2 = utils.datagrid.defaultOptions({                width: 500,                pager: {                    showPageSizeSelector: false,                    allowedPageSizes: []                },                // visible: viewModel.isEditModeInPopup,                dataSource: materials2,                selection: { mode: 'none', allowSelectAll: true },                columns: materialColumns2.concat([{                    dataField: 'MaterialCount', width: '20%', type: 'number',                    caption: $G('materialCount'), alignment: 'center',                    //19.08.21 자재사용내역 수량 변경 금지                    //cellTemplate: utils.datagrid.getNumberBoxDataGridTemplateFunc({                    //    min: 1,                    //    max: 1000000,                    //    dataField: 'MaterialCount',                    //    convertValueWhenValueChanged: function (value) {                    //        return Math.max(1, value);                    //    }                    //})                }]),                cellClick: function (e) {                    utils.datagrid.cellClickEventForDataGridTemplate(e, 'MaterialCount');                },                contentReadyAction: function (e) {                    materialGridView2(e.component);                },            });            function handleDeleteSelectedMaterials() {                var rows = materialGridView2().getSelectedRowsData();                if (_.isEmpty(rows)) {                    utils.toast.show('선택된 자재가 없습니다.', 'error');                    return;                }                _.each(rows, function (row) {                    var array = materials2();                    var length = array.length;                    var id = row.MaterialId();                    for (var i = 0 ; i < length ; i++) {                        if (id === array[i].MaterialId()) {                            materials2().splice(i, 1);                            break;                        }                    }                });                materialGridView2().refresh();            }            function saveApprovalMaterials() {                var workCheckItem = new BemsWebApplication.FmsWorkResultCheckItemViewModel();                workCheckItem.SiteId(viewModel.dataModel.SiteId());                workCheckItem.WorkRequestId(viewModel.dataModel.WorkRequestId());                // Warning: 다른 로직이 필요할 수 있음                 if (viewModel.dataModel.selectedItemCheckItemId() == 0) {                    var itemId = viewModel.workResultCheckItems()[viewModel.workResultCheckItems().length - 1].CheckItemId();                    workCheckItem.CheckItemId(itemId);                }                else {                    workCheckItem.CheckItemId(viewModel.dataModel.selectedItemCheckItemId());                }                workCheckItem.TextResult(viewModel.dataModel.selectedItemTextResult())                var array = materials2();                if (array.length != 0) {                    var postData;                    var parameters2 = {                        SiteId: workCheckItem.SiteId(),                        BusinessFieldId: viewModel.dataModel.BusinessFieldId(),                        WorkRequestId: workCheckItem.WorkRequestId(),                        CheckItemId: workCheckItem.CheckItemId()                    };                    postData = _.map(array, function (m) {                        return {                            SiteId: workCheckItem.SiteId(),                            WorkRequestId: workCheckItem.WorkRequestId(),                            MaterialId: m.MaterialId(),                            MaterialCount: m.MaterialCount(),                            CheckItemId: workCheckItem.CheckItemId(),                            MaterialCode: m.MaterialCode(),                            Name: m.Name()                        };                    });                    BWA.api.post('FmsWorkResultCheckItemMaterial/Approval', postData, parameters2).done(function () {                        refreshMaterialGrid();                        utils.toast.show($G('successDatabaseInsertionMsg'));                    });                }                else {                    var postData;                    var parameters2 = {                        SiteId: workCheckItem.SiteId(),                        BusinessFieldId: viewModel.dataModel.BusinessFieldId(),                        WorkRequestId: workCheckItem.WorkRequestId(),                        CheckItemId: workCheckItem.CheckItemId()                    };                    postData = _.map(array, function (m) {                        return null;                    });                    BWA.api.post('FmsWorkResultCheckItemMaterial/Approval', postData, parameters2).done(function () {                        refreshMaterialGrid();                        utils.toast.show($G('successDatabaseInsertionMsg'));                    });                }            }            var fmsMaterialsdata;            function refreshMaterialGrid() {                //viewModel.workResultCheckItemMaterialPopup.materials2([]);                materials2([]);                //viewModel.workResultCheckItemMaterialPopup.materials2DataSource.filter([                materials2DataSource.filter([                    eq('SiteId', viewModel.dataModel.SiteId()),                    and,                    eq('WorkRequestId', viewModel.dataModel.WorkRequestId())                ]);                fmsmaterialsDataSource.filter([                   eq('SiteId', viewModel.dataModel.SiteId())                ]);                fmsmaterialsDataSource.load().done(function (fmsMaterials) {                    fmsMaterialsdata = fmsMaterials;                    materials2DataSource.load().done(function (dbMaterials) {                        _.each(dbMaterials, function (sm) {                            var standard = "";                            for (var i = 0; i < fmsMaterialsdata.length ; i++) {                                if (sm.MaterialId() == fmsMaterialsdata[i].MaterialId()) {                                    standard = fmsMaterialsdata[i].Standard();                                    if (standard == null)                                        standard = ""                                    break;                                }                            }                            materials2.push({                                SiteId: sm.SiteId,                                MaterialId: sm.MaterialId,                                Name: sm.Name,                                Standard: standard,                                MaterialCode: sm.MaterialCode,                                MaterialCount: sm.MaterialCount                                //FinalPrice: sm.FinalPrice,                            });                        });                        //viewModel.workResultCheckItemMaterialPopup.materialGridView2().refresh();                        if (materialGridView2() != null)                            materialGridView2().refresh();                    });                });            }                        return {                refreshMaterialGrid: refreshMaterialGrid,                visible: overlayVisible,                materials2: materials2,                materialGridView2: materialGridView2,                //materials2DataSource : materials2DataSource,                //modifiableMaterialDataGridOptions2: modifiableMaterialDataGridOptions2            };        }    }});
 |