| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 | $(function () {    'use strict';    BemsWebApplication.Popup.CurrentWork = {        create: function (viewInfo, viewModel) {            var facilitiesInView = ko.observableArray();            var facilityFactory = BWA.Factory.Facility;            var popupVisible = ko.observable();            var IsConfirmJob = ko.observable(false);            var eq = BWA.DataUtil.constructEqualFilter;            var and = BWA.DataUtil.andFilter;            var facilityDataSource = facilityFactory.getBasicDataSourceRef({                dbModeIId: 'FmsWorkResultToFacility',                primaryKeyDataField: 'WorkRequestId'            });            //var workResultCheckItemDataSource = BemsWebApplication.db.createDataSource('FmsWorkResultCheckItem', true, true, false, true); // 2018 01 29 hcLee            var workResultCheckItemDataSource = BWA.DataUtil.createDataSource({  // 2018 01 29 hcLee -->                dataSourceOptions: {                    paginate: false,                    select: [                        'SiteId', 'WorkRequestId',                        'FacilityCode',                        'CheckItemId',                        'BoolResult',                        'TextResult',                        'CheckDate',                        'FileId1',                        'FileId2',                        'CmFile/Name',                        'CmFile1/Name',                    ],                    expand: [                        'CmFile',                        'CmFile1'],                    extendOptions: {                        forceOriginalField: true                    },                }            }, 'FmsWorkResultCheckItem'); // <-- 2018 01 29 hcLee            var workResultCheckItems = ko.observableArray();            //var selectedItemCheckDate = ko.observable();            //var selectedItemTextResult = ko.observable();            function onItemClick(e) {                if (viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel !== undefined) {                    viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.CheckItemId(e.itemData.CheckItemId());                    viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.CheckDate(e.itemData.CheckDate());                    viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.TextResult(e.itemData.TextResult());                    viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.SiteId(e.itemData.SiteId());                    viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.WorkRequestId(e.itemData.WorkRequestId());                    // hcLee 2018 01 29 -->                    viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.FileId1(e.itemData.FileId1());                    viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.FileId2(e.itemData.FileId2());                    //viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.AttachmentFileName1(e.itemData['CmFile/Name']());                    (e.itemData.FileId1() != null) ? viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.AttachmentFileName1(e.itemData['CmFile/Name']()) : viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.AttachmentFileName1(null);                    (e.itemData.FileId2() != null) ? viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.AttachmentFileName2(e.itemData['CmFile1/Name']()) : viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.AttachmentFileName2(null);                    // <-- hcLee 2018 01 29                                        viewModel.addWorkResultCheckItemPopup.isNew(false);                    viewModel.isAddHistoryButton(false);                    viewModel.isEditHistoryButton(true);                    viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkDone(viewModel.isWorkDone());                    if (viewModel.isWorkHold != undefined)                        viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkHold(viewModel.isWorkHold());                    /*                    if (viewModel.isWorkDone()) {                        viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkDone(true);                        viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkHold(false);                    }                                    if (viewModel.isAddHistoryButton()) {                        viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkDone(false);                        viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkHold(false);                    }                    else {                        if (viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkHold())                            viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkDone(false);                        else                            viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkDone(true);                    }*/                    viewModel.addWorkResultCheckItemPopup.show();                }            }            function handleBeforePopupShowingPromise(isNewInPopup, dataViewModel, clickRowData) {                var workProgressId;                if (isNewInPopup()) {                    workProgressId = $Code.WorkProgress.WORK_PLAN;                }                else {                    workProgressId = clickRowData['FmsWorkRequest/WorkProgressId'](); // clickRowData.WorkProgressId();                    dataViewModel.WorkProgressId = ko.observable();                    dataViewModel.WorkProgressId(workProgressId);                }            }            function handlePopupShowing(isNewInPopup, dataModel, selectedData) {                viewModel.dataModel.selectedItemCheckDate("");                viewModel.dataModel.selectedItemTextResult("");                viewModel.dataModel.selectedItemCheckItemId(0);                viewModel.dataModel.FacilityList("");                viewModel.dataModel.FacilityListValueOnOff(false);                viewModel.imagefileUrl1(null);                viewModel.imagefileUrl2(null);                //if (viewModel.workResultCheckItemMaterialPopup === undefined) { return; }                //viewModel.workResultCheckItemMaterialPopup.materials2([]);            }            function handlePopupShown(isEditMode, isNew, dataViewModel) {                viewModel.imagefileUrl1(null);                viewModel.imagefileUrl2(null);            }            function searchpopup() {                viewModel.WorkResultCheckItemFacilityPopup.selectedFacility(viewModel.dataModel);                viewModel.WorkResultCheckItemFacilityPopup.visible(true);            }            function handleAfterLoadingModelByKey(data, dataViewModel, isNewInPopup) {                // 작업지시 세부 내용은 수정/삭제 할 수 없음                 viewModel.visibleEditButton(false);                viewModel.visibleDeleteButton(false);                facilityDataSource.filter([                    eq('SiteId', dataViewModel.SiteId()),                    and,                    eq('WorkRequestId', dataViewModel.WorkRequestId())                ]);                facilityDataSource.load().done(function (dbFacilities) {                    facilitiesInView(dbFacilities);                    var facilityList = "";                    for (var i = 0; i < dbFacilities.length; i++) {                        facilityList += (i + 1) + ". " + dbFacilities[i].Name();                        if (i + 1 == dbFacilities.length) { break; }                        facilityList += '\n';                    }                    if (facilityList == "") {                        viewModel.dataModel.FacilityListValueOnOff(false);                    }                    else {                        viewModel.dataModel.FacilityListValueOnOff(true);                    }                    viewModel.dataModel.FacilityList(facilityList);                });                refreshListData();                refreshMaterialGrid();            }            function refreshMaterialGrid() {                viewModel.workResultCheckItemMaterialPopup.refreshMaterialGrid();            }            function refreshListData() {                // hcLee 2018 01 29                workResultCheckItemDataSource.filter([                   eq('SiteId', viewModel.dataModel.SiteId()),                   and,                   eq('WorkRequestId', viewModel.dataModel.WorkRequestId())                ]);                $.when(workResultCheckItemDataSource.load())                .done(function (dbWorkCheckItems) {                    workResultCheckItems(dbWorkCheckItems);                });                /*                workResultCheckItemDataSource.load().done(function (dbWorkCheckItems) {                    workResultCheckItems(dbWorkCheckItems);                });*/                // <-- hcLee 2018 01 29                // 해결방안 : 이전에 수정하고 있던 이력항목을 "작업이력수정" 버튼을 누른 이후에도 계속 화면에 표시하였으면 함.                // 위 건으로 인하여 데이터 초기화 하지 않음                //viewModel.dataModel.selectedItemCheckDate("");                //viewModel.dataModel.selectedItemTextResult("");                //viewModel.dataModel.selectedItemCheckItemId(0);            }            function handleBeforeShowingPopupForEdit(rowData, dataViewModel) {                dataViewModel.Title(rowData['FmsWorkOrder/Title']());                dataViewModel.BusinessFieldName(rowData['FmsWorkRequest/CmBusinessField/Name']());                dataViewModel.WorkTypeName(rowData['FmsWorkRequest/FmsWorkCodeType/Name']());                dataViewModel.WorkerUserName(rowData['CmUser/Name']());                dataViewModel.workDueDate(rowData['FmsWorkRequest/StartWorkDate']());                if (rowData['CmUser1/Name'] !== undefined) {                    dataViewModel.ConfirmedUserName(rowData['CmUser1/Name']());                }                dataViewModel.WorkProgressName(rowData['FmsWorkRequest/FmsWorkCodeProgress/Name']());                dataViewModel.OrderDate(rowData['FmsWorkOrder/OrderDate']());                if (rowData['FmsWorkOrder/Content'] !== undefined) {                    dataViewModel.OrderContent(rowData['FmsWorkOrder/Content']());                }                if (rowData['FmsWorkRequest/Content'] !== undefined) {                    dataViewModel.RequestContent(rowData['FmsWorkRequest/Content']());                }            }            viewModel.dataModel.Title = ko.observable();            viewModel.dataModel.BusinessFieldName = ko.observable();            viewModel.dataModel.WorkTypeName = ko.observable();            viewModel.dataModel.WorkerUserName = ko.observable();            viewModel.dataModel.OrderContent = ko.observable();            viewModel.dataModel.RequestContent = ko.observable();            viewModel.dataModel.workDueDate = ko.observable();            viewModel.dataModel.ConfirmedUserName = ko.observable();            viewModel.dataModel.WorkProgressName = ko.observable();            viewModel.dataModel.OrderDate = ko.observable();            viewModel.dataModel.FacilityListValueOnOff = ko.observable();            viewModel.dataModel.FacilityList = ko.observable();            viewModel.dataModel.selectedItemCheckDate = ko.observable();            viewModel.dataModel.selectedItemTextResult = ko.observable();            viewModel.dataModel.selectedItemCheckItemId = ko.observable();            viewModel.workResultCheckItems = workResultCheckItems;            viewModel.onItemClick = onItemClick;            viewModel.IsConfirmJob = IsConfirmJob;            //viewModel.refreshListData = refreshListData;            viewModel.searchpopup = searchpopup;            function sleep(ms) {                var ts1, ts2 = null;                ts1 = new Date().getTime() + ms;                do ts2 = new Date().getTime(); while (ts2 < ts1);            }            return {                workResultCheckItems: workResultCheckItems,                refreshListData: refreshListData,                popupVisible: popupVisible,                handleAfterLoadingModelByKey: handleAfterLoadingModelByKey,                handlePopupShowing: handlePopupShowing,                handlePopupShown: handlePopupShown,                handleBeforeShowingPopupForEdit: handleBeforeShowingPopupForEdit,                handleBeforePopupShowingPromise: handleBeforePopupShowingPromise,                IsConfirmJob: IsConfirmJob            };        }    }});
 |