| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297 | 
							- $(function () {
 
-     'use strict';
 
-     // TODO : 아래 코드 정리 필요 함 
 
-     //BemsWebApplication.Popup.WorkExecutionRegister = {
 
-     BWA.Popup = BWA.Popup || {};
 
-     BWA.Popup.WorkExecutionRegister = {
 
-         create: function (viewInfo, viewModel) {
 
-             var dataModelResult = new BWA.FmsWorkResultViewModel();
 
-             var popupVisible = ko.observable();
 
-             var isNew = ko.observable(true),
 
-                 isEditMode = ko.observable(true);
 
-             var facilities = ko.observableArray(),
 
-                facilitiesInView = ko.observableArray(),
 
-                businessFields = ko.observableArray();
 
-             var facilitySearchPopup = null,
 
-               facilityFactory = BWA.Factory.Facility,
 
-               facilityGridView = ko.observable(undefined),
 
-               facilityDataGridOptions,
 
-               modifiableFacilityDataGridOptions = undefined;
 
-             var facilityDataSource = facilityFactory.getBasicDataSourceRef({
 
-                 dbModeIId: 'FmsWorkOrderToFacility',
 
-                 primaryKeyDataField: 'WorkRequestId'
 
-             });
 
-             var popupOptions = {
 
-                 position: { offset: '0 -50' },
 
-                 width: '560px',
 
-                 height: 'auto',
 
-                 //shading: false,
 
-                 shadingColor: 'rgba(0,0,0,0.0)',
 
-                 visible: popupVisible,
 
-                 closeOnOutsideClick: false,
 
-                 animation: utils.popup.createAnimation(),
 
-                 shownAction: function () {
 
-                 }
 
-             };
 
-             var toolbarItems = [
 
-                 { location: 'before', text: '작업수행 - 상세정보' },
 
-                 { location: 'after', widget: 'button', options: { text: $G('save'), icon: 'save', clickAction: handlePopupButtonSave } },
 
-                 { location: 'after', widget: 'button', options: { text: $G('cancel'), icon: 'cancel', clickAction: handlePopupButtonClose } },
 
-             ];
 
-             function handlePopupButtonSave() {
 
-                 if (isNew()) {
 
-                     if ($G.date(dataModelResult.StartDate()) > $G.date(dataModelResult.EndDate())) {
 
-                         utils.toast.show('작업종료일을 작업시작일 이후로 설정하시기 바랍니다.', 'error');
 
-                         return;
 
-                     }
 
-                     //BWA.db.FmsWorkOrder.update(viewModel.dataModel.toJS()).done(function () {
 
-                     BWA.db.FmsWorkResult.insert(dataModelResult.toJS()).done(
 
-                         function () {
 
-                             var array = viewModel.popup.facilities();
 
-                             var postData;
 
-                             var parameters = {
 
-                                 SiteId: dataModelResult.SiteId(),
 
-                                 WorkRequestId: dataModelResult.WorkRequestId()
 
-                             };
 
-                             postData = _.map(array, function (f) {
 
-                                 return {
 
-                                     SiteId: dataModelResult.SiteId(),
 
-                                     WorkRequestId: dataModelResult.WorkRequestId(),
 
-                                     FacilityCode: f.FacilityCode()
 
-                                 };
 
-                             });
 
-                             var promise = BWA.api.post('FmsWorkResultToFacility', postData, parameters);
 
-                             promise.done(function () {
 
-                                 viewModel.dataModel.StartWorkDate(dataModelResult.StartDate());
 
-                                 var keys = BWA.db.extractKeysObject('FmsWorkOrder', viewModel.dataModel);
 
-                                 BWA.db.FmsWorkOrder.update(keys, viewModel.dataModel.toJS()).done(function (res) {
 
-                                     utils.toast.show($G('successDatabaseProcessMsg'));
 
-                                     popupVisible(false);
 
-                                     viewModel.popupVisible(false);
 
-                                     viewModel.gridView().refresh();
 
-                                 });
 
-                             });
 
-                         }
 
-                      );
 
-                     //});
 
-                 }
 
-             }
 
-             function handlePopupButtonClose() {
 
-                 popupVisible(false);
 
-             }
 
-             function isValidateWithFunction(errorMessage) {
 
-                 if (_.isEmpty(facilities())) {
 
-                     errorMessage.message = '점검을 위한 시설이 없습니다.';
 
-                     return false;
 
-                 }
 
-                 return true;
 
-             }
 
-             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) {
 
-             }
 
-             function handlePopupShown(isEditMode, isNew, dataViewModel) {
 
-             }
 
-             // 점검계획 정보가 저장된 후에 호출 된다. 
 
-             // 등록이면 responseKey가 있고, 수정이면 없다.
 
-             function handleAfterSave(responseKey) {
 
-                 var array = facilities();
 
-                 if (_.isEmpty(array)) {
 
-                     return;
 
-                 }
 
-                 var siteId,
 
-                     workRequestId;//, businessFieldId;
 
-                 if (_.isUndefined(responseKey)) {
 
-                     var dataModel = viewModel.dataModel;
 
-                     siteId = dataModel.SiteId();
 
-                     //businessFieldId = dataModel.BusinessFieldId();
 
-                     workRequestId = dataModel.WorkRequestId();
 
-                 }
 
-                 else {
 
-                     siteId = responseKey.SiteId;
 
-                     //businessFieldId = responseKey.BusinessFieldId;
 
-                     workRequestId = responseKey.WorkRequestId;
 
-                 }
 
-                 var postData;
 
-                 var parameters = {
 
-                     SiteId: siteId,
 
-                     //BusinessFieldId: businessFieldId,
 
-                     WorkRequestId: workRequestId
 
-                 };
 
-                 postData = _.map(array, function (f) {
 
-                     return {
 
-                         SiteId: siteId,
 
-                         //BusinessFieldId: businessFieldId,
 
-                         WorkRequestId: workRequestId,
 
-                         FacilityCode: f.FacilityCode()
 
-                     };
 
-                 });
 
-                 BWA.api.post('FmsWorkOrderToFacility', postData, parameters);
 
-             }
 
-             function handleAfterLoadingModelByKey(data, dataViewModel, isNewInPopup) {
 
-                 // 작업지시 세부 내용은 수정/삭제 할 수 없음 
 
-                 viewModel.visibleEditButton(false);
 
-                 viewModel.visibleDeleteButton(false);
 
-                 var eq = BWA.DataUtil.constructEqualFilter;
 
-                 var and = BWA.DataUtil.andFilter;
 
-                 facilityDataSource.filter([
 
-                     eq('SiteId', dataViewModel.SiteId()),
 
-                     and,
 
-                     eq('WorkRequestId', dataViewModel.WorkRequestId())
 
-                 ]);
 
-                 facilityDataSource.load().done(function (dbFacilities) {
 
-                     facilitiesInView(dbFacilities);
 
-                 });
 
-             }
 
-             function handleBeforeShowingPopupForEdit(rowData, dataViewModel) {
 
-                 dataViewModel.BusinessFieldName(rowData['FmsWorkRequest/CmBusinessField/Name']());
 
-                 dataViewModel.WorkTypeName(rowData['FmsWorkRequest/FmsWorkCodeType/Name']());
 
-                 dataViewModel.RequestUserName(rowData['CmUser/Name']());
 
-                 dataViewModel.WorkProgressName(rowData['FmsWorkRequest/FmsWorkCodeProgress/Name']());
 
-                 dataViewModel.RejectUserName($KoValue(rowData['CmUser1/Name']));
 
-             }
 
-             popupVisible.subscribe(function (visible) {
 
-                 if (!visible) {
 
-                     facilitiesInView([]);
 
-                 } else {
 
-                     var userInfo = BWA.UserInfo;
 
-                     dataModelResult.SiteId(viewModel.dataModel.SiteId());
 
-                     dataModelResult.WorkRequestId(viewModel.dataModel.WorkRequestId());
 
-                     //dataModelResult.Content(viewModel.dataModel.Content());
 
-                     dataModelResult.Content(''); // hcLee 2016 03 14
 
-                     //var now = moment();
 
-                     var time = viewModel.dataModel.StartWorkDate();
 
-                     dataModelResult.StartDate(time); //BWA.DataUtil.getDateFromDateTime(time)
 
-                     dataModelResult.EndDate(time);
 
-                     dataModelResult.WorkerUserId(userInfo.UserId());
 
-                     dataModelResult.IsConfirmed(false);
 
-                     viewModel.dataModelResult = dataModelResult;
 
-                 }
 
-             });
 
-             //isEditModeInPopup.subscribe(function (isEditMode) {
 
-             //    if (isEditMode) {
 
-             //        facilities(facilitiesInView.slice(0));
 
-             //    }
 
-             //});
 
-             viewModel.dataModel.WorkTypeName = ko.observable();
 
-             viewModel.dataModel.BusinessFieldName = ko.observable();
 
-             viewModel.dataModel.RequestUserName = ko.observable();
 
-             viewModel.dataModel.RejectUserName = ko.observable();
 
-             viewModel.dataModel.WorkProgressName = ko.observable();
 
-             facilityDataGridOptions = BWA.Popup.Facility.getReadOnlyDataGridOptions(
 
-                 facilitiesInView, viewModel.viewModeInPopup);
 
-             modifiableFacilityDataGridOptions = BWA.Popup.Facility.getModifiableDataGridOptions(
 
-                 facilities, viewModel.isEditModeInPopup, facilityGridView);
 
-             viewModel.facilitySearchPopup = facilitySearchPopup = BWA.Popup.Facility.create(viewModel, undefined, {
 
-                 isMultipleSelect: true,
 
-                 onSelectedFacilities: function (selectedFacilities) {
 
-                     var workRequestId = viewModel.dataModel.WorkRequestId();
 
-                     _.each(selectedFacilities, function (sf) {
 
-                         // 어차피 SiteId와 BusinessField는 동일 할 수 밖에 없으므로 비교하지 않는다.
 
-                         var found = _.some(facilities(), function (f) {
 
-                             return f.FacilityCode() === sf.FacilityCode();
 
-                         });
 
-                         if (found) return;
 
-                         facilities.push({
 
-                             SiteId: sf.SiteId,
 
-                             WorkRequestId: ko.observable(workRequestId),
 
-                             FacilityCode: sf.FacilityCode,
 
-                             Name: sf.Name,
 
-                         });
 
-                     });
 
-                     facilityGridView().refresh();
 
-                 }
 
-             });
 
-             return {
 
-                 isNew: isNew,
 
-                 isEditMode: isEditMode,
 
-                 toolbarItems: toolbarItems,
 
-                 options: popupOptions,
 
-                 facilitySearchPopup: facilitySearchPopup,
 
-                 popupVisible: popupVisible,
 
-                 facilities: facilitiesInView,
 
-                 businessFields: businessFields,
 
-                 isValidateWithFunction: isValidateWithFunction,
 
-                 facilityDataGridOptions: facilityDataGridOptions,
 
-                 modifiableFacilityDataGridOptions: modifiableFacilityDataGridOptions,
 
-                 handleAfterLoadingModelByKey: handleAfterLoadingModelByKey,
 
-                 handleAfterSave: handleAfterSave,
 
-                 handlePopupShowing: handlePopupShowing,
 
-                 handlePopupShown: handlePopupShown,
 
-                 handleBeforeShowingPopupForEdit: handleBeforeShowingPopupForEdit,
 
-                 handleDeleteSelectedFacilities: BWA.Popup.Facility.getDeleteSelectedFacilitiesFunc(facilityGridView, facilities),
 
-                 handleBeforePopupShowingPromise: handleBeforePopupShowingPromise,
 
-             };
 
-         }
 
-     }
 
- });
 
 
  |