$(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 }; } } });