$(function () { 'use strict'; BemsWebApplication.Popup.WorkHistory = { create: function (viewInfo, viewModel) { var facilitiesInView = ko.observableArray(); var facilityFactory = BWA.Factory.Facility; var popupVisible = ko.observable(); var viewModel = viewModel; var isReject = 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.isAddHistoryButton(false); viewModel.isEditHistoryButton(false); 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.show(); } } function handleBeforePopupShowingPromise(isNewInPopup, dataViewModel, clickRowData) { var workProgressId; if (isNewInPopup()) { workProgressId = $Code.WorkProgress.WORK_PLAN; } else { workProgressId = clickRowData['WorkProgressId'](); // clickRowData.WorkProgressId(); dataViewModel.WorkProgressId = ko.observable(); dataViewModel.WorkProgressId(workProgressId); isReject(workProgressId === $Code.WorkProgress.WORK_POSTPONE); } } function handlePopupShowing(isNewInPopup, dataModel, selectedData) { viewModel.dataModel.selectedItemCheckDate(""); viewModel.dataModel.selectedItemTextResult(""); viewModel.dataModel.selectedItemCheckItemId(0); viewModel.dataModel.FacilityList(""); viewModel.dataModel.FacilityListValueOnOff(false); } function handlePopupShown(isEditMode, isNew, dataViewModel) { $("#search").dxButton({ }); } 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(); viewModel.workResultCheckItemMaterialPopup.refreshMaterialGrid(); } 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 handleBeforeShowingPopupForEdit(rowData, dataViewModel) { //추가 if (viewModel.dataModel.ResultContent == null) { viewModel.dataModel.ResultContent = ko.observable(); } else { viewModel.dataModel.ResultContent(''); } if (viewModel.dataModel.ResultConfirmDesc == null) { viewModel.dataModel.ResultConfirmDesc = ko.observable(); } else { viewModel.dataModel.ResultConfirmDesc(''); } if (rowData.WorkProgressId() > 3) { if (rowData['FmsWorkResult/Content']() !== undefined) { viewModel.dataModel.ResultContent(rowData['FmsWorkResult/Content']()); } if (rowData['FmsWorkResult/ConfirmDesc']() !== undefined) { viewModel.dataModel.ResultConfirmDesc(rowData['FmsWorkResult/ConfirmDesc']()); } dataViewModel.StartDate(new Date(rowData['FmsWorkResult/StartDate']())); dataViewModel.EndDate(new Date(rowData['FmsWorkResult/EndDate']())); dataViewModel.DateVisible(true); } else { dataViewModel.DateVisible(false); } //추가 dataViewModel.Title(rowData['Title']()); dataViewModel.workDueDate(rowData['StartWorkDate']()); dataViewModel.BusinessFieldName(rowData['CmBusinessField/Name']()); dataViewModel.WorkTypeName(rowData['FmsWorkCodeType/Name']()); dataViewModel.RequestUserName(rowData['CmUser/Name']()); dataViewModel.RejectUserName($KoValue(rowData['CmUser1/Name'])); if (rowData['FmsWorkResult/CmUser/Name'] !== undefined) { dataViewModel.WorkerUserName(rowData['FmsWorkResult/CmUser/Name']()); } else { dataViewModel.WorkerUserName(''); } if (rowData['FmsWorkResult/CmUser1/Name'] !== undefined) { dataViewModel.ConfirmedUserName(rowData['FmsWorkResult/CmUser1/Name']()); } else { dataViewModel.ConfirmedUserName(''); } dataViewModel.WorkProgressName(rowData['FmsWorkCodeProgress/Name']()); if (rowData['FmsWorkOrder/OrderDate'] !== undefined) { dataViewModel.OrderDate(rowData['FmsWorkOrder/OrderDate']()); } else { dataViewModel.OrderDate(''); } if (rowData['FmsWorkOrder/Content'] !== undefined) { dataViewModel.OrderContent(rowData['FmsWorkOrder/Content']()); } ////viewModel.workResultCheckItemMaterialPopup.materials2DataSource.filter([ //viewModel.workApprovalMaterialPopup.materials2DataSource.filter([ // eq('SiteId', rowData.SiteId()), // and, // eq('WorkRequestId', rowData.WorkRequestId()) // //, and, // //eq('CheckItemId', e.itemData.CheckItemId()) //]); ////viewModel.workResultCheckItemMaterialPopup.materials2DataSource.load().done(function (dbMaterials) { //viewModel.workApprovalMaterialPopup.materials2DataSource.load().done(function (dbMaterials) { // _.each(dbMaterials, function (sm) { // //viewModel.workResultCheckItemMaterialPopup.materials2.push({ // viewModel.workApprovalMaterialPopup.materials2.push({ // SiteId: sm.SiteId, // //PurchaseRequestId: ko.observable(purchaseRequestId), // MaterialId: sm.MaterialId, // Name: sm.Name, // MaterialCode: sm.MaterialCode, // MaterialCount: sm.MaterialCount // //FinalPrice: sm.FinalPrice, // }); // }); //}); } function modifyWorkItem() { var workCheckItem = new BemsWebApplication.FmsWorkResultCheckItemViewModel(); workCheckItem.SiteId(viewModel.dataModel.SiteId()); workCheckItem.WorkRequestId(viewModel.dataModel.WorkRequestId()); workCheckItem.CheckItemId(viewModel.dataModel.selectedItemCheckItemId()); workCheckItem.TextResult(viewModel.dataModel.selectedItemTextResult()) var keys = BWA.db.extractKeysObject('FmsWorkResultCheckItem', workCheckItem); BWA.db.FmsWorkResultCheckItem.update(keys, workCheckItem.toJS()).done(function (res) { utils.toast.show($G('successDatabaseInsertionMsg')); refreshListData(); }); } viewModel.dataModel.DateVisible = ko.observable(); viewModel.dataModel.StartDate = ko.observable(); viewModel.dataModel.EndDate = ko.observable(); viewModel.dataModel.Title = ko.observable(); viewModel.dataModel.workDueDate = ko.observable(); viewModel.dataModel.BusinessFieldName = ko.observable(); viewModel.dataModel.WorkTypeName = ko.observable(); viewModel.dataModel.WorkerUserName = ko.observable(); viewModel.dataModel.ConfirmedUserName = ko.observable(); viewModel.dataModel.WorkProgressName = ko.observable(); viewModel.dataModel.OrderDate = ko.observable(); viewModel.dataModel.RejectUserName = ko.observable(); viewModel.dataModel.RequestUserName = ko.observable(); viewModel.dataModel.OrderContent = ko.observable(); viewModel.dataModel.FacilityList = ko.observable(); viewModel.dataModel.FacilityListValueOnOff = ko.observable(); viewModel.dataModel.selectedItemCheckDate = ko.observable(); viewModel.dataModel.selectedItemTextResult = ko.observable(); viewModel.dataModel.selectedItemCheckItemId = ko.observable(); viewModel.workResultCheckItems = workResultCheckItems; viewModel.refreshListData = refreshListData; viewModel.onItemClick = onItemClick; viewModel.searchpopup = searchpopup; viewModel.addWorkResultCheckItemPopup.popupVisible.subscribe(function (visible) { if (!visible) { refreshListData(); } }); function sleep(ms) { var ts1, ts2 = null; ts1 = new Date().getTime() + ms; do ts2 = new Date().getTime(); while (ts2 < ts1); } return { isReject: isReject, popupVisible: popupVisible, modifyWorkItem: modifyWorkItem, workResultCheckItems: workResultCheckItems, handleAfterLoadingModelByKey: handleAfterLoadingModelByKey, handlePopupShowing: handlePopupShowing, handlePopupShown: handlePopupShown, handleBeforeShowingPopupForEdit: handleBeforeShowingPopupForEdit, handleBeforePopupShowingPromise: handleBeforePopupShowingPromise, refreshListData: refreshListData }; } } });