$(function () { 'use strict'; BemsWebApplication.Popup.FacilityWorkHistory2 = { create: function (viewInfo, viewModel) { var eq = BWA.DataUtil.constructEqualFilter; var and = BWA.DataUtil.andFilter; var popupVisible = ko.observable(); //var workResultCheckItemDataSource = BemsWebApplication.db.createDataSource('FmsWorkResultCheckItem', true, true, false, true); var workResultCheckItemDataSource = BWA.DataUtil.createDataSource({ dataSourceOptions: { select: [ 'SiteId', 'WorkRequestId', 'FacilityCode', 'CheckItemId', 'BoolResult', 'TextResult', 'CheckDate', 'FileId1', 'FileId2', 'CmFile/Name', 'FmsWorkResult/CmUser/Name', ], expand: ["FmsWorkResult", "FmsWorkResult/CmUser", 'CmFile', 'CmFile1'], extendOptions: { forceOriginalField: true, alterNames: { 'FmsWorkResult/CmUser/Name': 'WorkerUserName' } }, } }, 'FmsWorkResultCheckItem'); var workResultCheckItems = ko.observableArray(); function isValidateWithFunction(errorMessage) { if (_.isEmpty(facilities())) { errorMessage.message = '점검을 위한 시설이 없습니다.'; return false; } return true; } 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()); (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.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkDone(viewModel.isWorkDone());// hcLee 2016 04 04 viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkHold(viewModel.isWorkHold());// hcLee 2016 04 04 viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.isAddHistoryButton = ko.observable(false); viewModel.addWorkResultCheckItemPopup.show(); } } function handlePopupShowing(isNewInPopup, dataModel, selectedData) { viewModel.dataModel.selectedItemCheckDate(""); viewModel.dataModel.selectedItemTextResult(""); viewModel.dataModel.selectedItemCheckItemId(0); viewModel.dataModel.FacilityList(""); } function handlePopupShown(isEditMode, isNew, dataViewModel) { workResultCheckItemDataSource.filter([ eq('SiteId', dataViewModel.SiteId()), and, eq('WorkRequestId', dataViewModel.WorkRequestId()) ]); workResultCheckItemDataSource.load().done(function (dbWorkCheckItems) { workResultCheckItems(dbWorkCheckItems); }); } function refreshListData() { workResultCheckItemDataSource.filter([ eq('SiteId', viewModel.dataModel.SiteId()), and, eq('WorkRequestId', viewModel.dataModel.WorkRequestId()) ]); workResultCheckItemDataSource.load().done(function (dbWorkCheckItems) { workResultCheckItems(dbWorkCheckItems); }); viewModel.dataModel.selectedItemCheckDate(""); viewModel.dataModel.selectedItemTextResult(""); viewModel.dataModel.selectedItemCheckItemId(0); } 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 += dbFacilities[i].Name(); if (i + 1 == dbFacilities.length) { break; } facilityList += " , "; } viewModel.dataModel.FacilityList(facilityList); }); refreshListData(); viewModel.workResultCheckItemMaterialPopup.refreshMaterialGrid(); } function handleBeforeShowingPopupForEdit(rowData, dataViewModel) { dataViewModel.workDueDate($KoValue(rowData['FmsWorkOrder/FmsWorkRequest/StartWorkDate'])); dataViewModel.WorkerUserName(rowData['FmsWorkOrder/FmsWorkResult/CmUser/Name']()); dataViewModel.FacilityName(rowData['CmFacility/Name']()); dataViewModel.BusinessFieldName(rowData['FmsWorkOrder/FmsWorkRequest/CmBusinessField/Name']()); dataViewModel.WorkTypeName(rowData['FmsWorkOrder/FmsWorkRequest/FmsWorkCodeType/Name']()); dataViewModel.WorkProgressName(rowData['FmsWorkOrder/FmsWorkRequest/FmsWorkCodeProgress/Name']()); dataViewModel.OrderUserName(rowData['FmsWorkOrder/CmUser/Name']()); dataViewModel.RejectUserName($KoValue(rowData['FmsWorkOrder/CmUser1/Name'])); dataViewModel.OrderDate = $KoSet(dataViewModel.OrderDate, rowData['FmsWorkOrder/OrderDate']); dataViewModel.StartWorkDate = $KoSet(dataViewModel.StartWorkDate, rowData['FmsWorkOrder/StartWorkDate']); dataViewModel.EndDate = $KoSet(dataViewModel.EndDate, rowData['FmsWorkOrder/FmsWorkResult/EndDate']); dataViewModel.Title = $KoSet(dataViewModel.Title, rowData['FmsWorkOrder/Title']); dataViewModel.Content = $KoSet(dataViewModel.Content, rowData['FmsWorkOrder/Content']); } //viewModel.popupVisible.subscribe(function (visible) { // //if (!visible) { facilitiesInView([]); } //}); viewModel.dataModel.workDueDate = ko.observable(); viewModel.dataModel.WorkerUserName = ko.observable(); viewModel.dataModel.FacilityName = ko.observable(); viewModel.dataModel.selectedItemCheckDate = ko.observable(); viewModel.dataModel.selectedItemTextResult = ko.observable(); viewModel.dataModel.selectedItemCheckItemId = ko.observable(); viewModel.dataModel.WorkTypeName = ko.observable(); viewModel.dataModel.BusinessFieldName = ko.observable(); viewModel.dataModel.OrderUserName = ko.observable(); viewModel.dataModel.RejectUserName = ko.observable(); viewModel.dataModel.WorkProgressName = ko.observable(); viewModel.refreshListData = refreshListData; viewModel.workResultCheckItems = workResultCheckItems; viewModel.onItemClick = onItemClick; viewModel.dataModel.FacilityList = ko.observable(); viewModel.addWorkResultCheckItemPopup.popupVisible.subscribe(function (visible) { if (!visible) { refreshListData(); } }); return { workResultCheckItems: workResultCheckItems, isValidateWithFunction: isValidateWithFunction, handlePopupShowing: handlePopupShowing, handlePopupShown: handlePopupShown, popupVisible: popupVisible, handleBeforeShowingPopupForEdit: handleBeforeShowingPopupForEdit, refreshListData: refreshListData, handleAfterLoadingModelByKey: handleAfterLoadingModelByKey, }; } } });