| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259 | 
							- $(function () {
 
-     'use strict';
 
-     BemsWebApplication.Popup.WorkOrder = {
 
-         create: function (viewModel) {
 
-             var workRequestFacilities = viewModel.popup.facilities,
 
-                 workRequestDataModel = viewModel.dataModel,
 
-                 workOrderDataModel = new BWA.FmsWorkOrderViewModel();
 
-             var facilities = ko.observableArray(), businessFields = ko.observableArray();
 
-             var facilitySearchPopup = viewModel.popup.facilitySearchPopup,
 
-                 facilityFactory = BWA.Factory.Facility,
 
-                 facilityGridView = ko.observable(undefined),
 
-                 facilityDataGridOptions = undefined;
 
-             var facilityDataSource = facilityFactory.getBasicDataSourceRef({
 
-                 dbModeIId: 'FmsWorkOrderToFacility',
 
-                 primaryKeyDataField: 'WorkRequestId'
 
-             });
 
-             function onSelectedFacilities(selectedFacilities) {
 
-                 var workRequestId = workRequestDataModel.WorkRequestId();
 
-                 _.each(selectedFacilities, function (sf) {
 
-                     // 어차피 SiteId와 BusinessField는 동일 할 수 밖에 없으므로 비교하지 않는다.
 
-                     var found = _.some(facilities(), function (f) {
 
-                         //return f.FacilityCode() === sf.FacilityCode();
 
-                         try {
 
-                             return f.FacilityCode() === sf.FacilityCode();
 
-                         } catch (e) {
 
-                             return f.FacilityCode() === sf.FacilityCode;
 
-                         }
 
-                     });
 
-                     if (found) return;
 
-                     //facilities.push({
 
-                     //    SiteId: sf.SiteId,
 
-                     //    WorkRequestId: ko.observable(workRequestId),
 
-                     //    FacilityCode: sf.FacilityCode,
 
-                     //    Name: sf.Name,
 
-                     //});
 
-                     //2019.08.08 수정
 
-                     try {
 
-                         facilities.push({
 
-                             SiteId: ko.observable(sf.SiteId()),
 
-                             WorkRequestId: ko.observable(workRequestId),
 
-                             FacilityCode: ko.observable(sf.FacilityCode()),
 
-                             Name: ko.observable(sf.Name()),
 
-                             FirstClassId: ko.observable(sf.FirstClassId()),
 
-                             SecondClassId: ko.observable(sf.SecondClassId()),
 
-                             ThirdClassId: ko.observable(sf.ThirdClassId()),
 
-                         });
 
-                     } catch (e) {
 
-                         facilities.push({
 
-                             SiteId: ko.observable(sf.SiteId),
 
-                             WorkRequestId: ko.observable(workRequestId),
 
-                             FacilityCode: ko.observable(sf.FacilityCode),
 
-                             Name: ko.observable(sf.Name),
 
-                             FirstClassId: ko.observable(sf.FirstClassId),
 
-                             SecondClassId: ko.observable(sf.SecondClassId),
 
-                             ThirdClassId: ko.observable(sf.ThirdClassId),
 
-                         });
 
-                     }
 
-                 });
 
-                 facilityGridView().refresh();
 
-             }
 
-             var isNew = true,
 
-                 popupVisible = ko.observable(false),
 
-                 toolbarItems = [
 
-                     { location: 'before', text: $G('workOrder') },
 
-                     //{
 
-                     //    location: 'after', widget: 'button', options: {
 
-                     //        text: $G('facilityInsertion'), icon: 'search',
 
-                     //        clickAction: function () {
 
-                     //            facilitySearchPopup.show(onSelectedFacilities);
 
-                     //        }
 
-                     //    }
 
-                     //},
 
-                     //{
 
-                     //    location: 'after', widget: 'button', options: {
 
-                     //        text: $G('facilityDeletion'),
 
-                     //        icon: 'remove',
 
-                     //        type: 'danger',
 
-                     //        clickAction: BWA.Popup.Facility.getDeleteSelectedFacilitiesFunc(facilityGridView, facilities)
 
-                     //    }
 
-                     //},
 
-                     { location: 'after', widget: 'button', options: { text: $G('workOrder'), icon: 'save', clickAction: handleSave } },
 
-                     { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: handleClose } }
 
-                 ],
 
-                 popupOptions = {
 
-                     width: 1200,
 
-                     height: 650,
 
-                     //shading: false,
 
-                     shadingColor: 'rgba(0,0,0,0.0)',
 
-                     showingAction: handlePopupShowing,
 
-                     visible: popupVisible,
 
-                     closeOnOutsideClick: false,
 
-                     animation: utils.popup.createAnimation()
 
-                 };
 
-             function handleSave() {
 
-                 if (isNew) {
 
-                     insert();
 
-                     return;
 
-                 }
 
-                 update();
 
-             }
 
-             function insert() {
 
-                 BWA.db.FmsWorkOrder.insert(workOrderDataModel.toJS()).done(function (response, responseKey) {
 
-                     var keys = BWA.db.extractKeysObject('FmsWorkRequest', workRequestDataModel);
 
-                     workRequestDataModel.WorkProgressId($Code.WorkProgress.WORK_STANDBY);
 
-                     BWA.db.FmsWorkRequest.update(keys, {
 
-                         WorkProgressId: workRequestDataModel.WorkProgressId()
 
-                     }).done(function () {
 
-                         handleAfterSave(responseKey);
 
-                     });
 
-                 });
 
-             }
 
-             function update() {
 
-                 var keys = BWA.db.extractKeysObject('FmsWorkOrder', workOrderDataModel);
 
-                 BWA.db.FmsWorkOrder.update(keys, workOrderDataModel.toJS()).done(function () {
 
-                     popupVisible(false);
 
-                     utils.toast.show($G('successSaveWorkOrderMsg'));
 
-                 });
 
-             }
 
-             function handleClose() {
 
-                 popupVisible(false);
 
-             }
 
-             function handleBeforePopupShowingPromise(isNewInPopup, dataViewModel, clickRowData) {
 
-             }
 
-             function handlePopupShowing() {
 
-                 $("#gridContainer_WorkOrder").dxDataGrid({
 
-                     paging: {
 
-                         pageSize: 13,
 
-                         enabled: true
 
-                     }
 
-                 });
 
-                 isNew = (workRequestDataModel.WorkProgressId() === $Code.WorkProgress.WORK_PLAN);
 
-                 if (isNew) {
 
-                     //var userInfo = BWA.UserInfo
 
-                     workOrderDataModel.SiteId(workRequestDataModel.SiteId());
 
-                     workOrderDataModel.WorkRequestId(workRequestDataModel.WorkRequestId());
 
-                     workOrderDataModel.BusinessFieldName(workRequestDataModel.BusinessFieldName());
 
-                     workOrderDataModel.BusinessFieldId(workRequestDataModel.BusinessFieldId());
 
-                     workOrderDataModel.OrderUserName(workRequestDataModel.RequestUserName());
 
-                     workOrderDataModel.OrderUserId(workRequestDataModel.RequestUserId());
 
-                     workOrderDataModel.OrderDate(new Date());
 
-                     workOrderDataModel.StartWorkDate(workRequestDataModel.StartWorkDate());
 
-                     workOrderDataModel.Title(workRequestDataModel.Title());
 
-                     //workOrderDataModel.Content(workRequestDataModel.Content());
 
-                     workOrderDataModel.Content("");
 
-                     facilities(workRequestFacilities());
 
-                 }
 
-                 else {
 
-                     // 키값이 WorkRequest와 동일하다.
 
-                     var keys = BWA.db.extractKeysObject('FmsWorkOrder', workRequestDataModel);
 
-                     BWA.db.FmsWorkOrder.byKey(keys).done(function (data) {
 
-                         workOrderDataModel.fromJS(data);
 
-                         var eq = BWA.DataUtil.constructEqualFilter;
 
-                         var and = BWA.DataUtil.andFilter;
 
-                         facilityDataSource.filter([
 
-                             eq('SiteId', workOrderDataModel.SiteId()),
 
-                             and,
 
-                             //eq('BusinessFieldId', dataViewModel.BusinessFieldId()),
 
-                             //and,
 
-                             eq('WorkRequestId', workOrderDataModel.WorkRequestId())
 
-                         ]);
 
-                         facilityDataSource.load().done(function (dbFacilities) {
 
-                             facilities(dbFacilities);
 
-                         });
 
-                     });
 
-                 }
 
-             }
 
-             function handlePopupShown(isEditMode, isNew, dataViewModel) {
 
-             }
 
-             function closeAfterSave() {
 
-                 popupVisible(false);
 
-                 viewModel.popupVisible(false);
 
-                 viewModel.refreshList();
 
-                 utils.toast.show($G('successSaveWorkOrderMsg'));
 
-             }
 
-             // 점검계획 정보가 저장된 후에 호출 된다. 
 
-             // 등록이면 responseKey가 있고, 수정이면 없다.
 
-             function handleAfterSave(responseKey) {
 
-                 var array = facilities();
 
-                 if (_.isEmpty(array)) {
 
-                     closeAfterSave();
 
-                     return;
 
-                 }
 
-                 var postData;
 
-                 var parameters = {
 
-                     SiteId: responseKey.SiteId,
 
-                     WorkRequestId: responseKey.WorkRequestId
 
-                 };
 
-                 postData = _.map(array, function (f) {
 
-                     return {
 
-                         SiteId: parameters.SiteId,
 
-                         WorkRequestId: parameters.WorkRequestId,
 
-                         FacilityCode: f.FacilityCode()
 
-                     };
 
-                 });
 
-                 BWA.api.post('FmsWorkOrderToFacility', postData, parameters).done(function () {
 
-                     closeAfterSave();
 
-                 });
 
-             }
 
-             workOrderDataModel.BusinessFieldName = ko.observable();
 
-             workOrderDataModel.OrderUserName = ko.observable();
 
-             //facilityDataGridOptions = BWA.Popup.Facility.getModifiableDataGridOptions( facilities, ko.observable(true), facilityGridView);
 
-             facilityDataGridOptions = BWA.Popup.Facility.getReadOnlyDataGridOptions(facilities, ko.observable(true));
 
-             return {
 
-                 popupOptions: popupOptions,
 
-                 toolbarItems: toolbarItems,
 
-                 dataModel: workOrderDataModel,
 
-                 facilityDataGridOptions: facilityDataGridOptions,
 
-                 show: function () {
 
-                     popupVisible(true);
 
-                 }
 
-             };
 
-         }
 
-     }
 
- });
 
 
  |