| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440 | 
							- BemsWebApplication.AnnounceManagement = function (params, viewInfo) {
 
-     'use strict';
 
-     var imagefileUrl1 = ko.observable(),
 
-         uploadedFileInfo = {},
 
-         dropZone1 = null;
 
-     var isEditModeInPopup = ko.observable(false);
 
-     var eq = BWA.DataUtil.constructEqualFilter,
 
-         and = BWA.DataUtil.andFilter;
 
-     var partnerTypeDataSource = BemsWebApplication.db.createDataSource('CmPartnerType', false, true, true),
 
-          partnerDataSource = BemsWebApplication.db.createDataSource('CmPartner', true, true, true),
 
-         contractClassDataSource = BemsWebApplication.db.createDataSource('FmsContractClass', true, true, true),
 
-         contractMethodDataSource = BemsWebApplication.db.createDataSource('FmsContractMethod', true, true, true),
 
-         contractTypeDataSource = BemsWebApplication.db.createDataSource('FmsContractType', true, true, true),
 
-         paymentTypeDataSource = BemsWebApplication.db.createDataSource('FmsPaymentType', true, true, true),
 
-         businessFieldDataSource = BemsWebApplication.db.createDataSource('CmBusinessField', true, true, true);
 
-     var businessFieldsForSearch = ko.observableArray();
 
-     var endpointSelector = "";
 
-     if (BemsWebApplication.config.mode == "production") {
 
-         endpointSelector = new DevExpress.EndpointSelector(BemsWebApplication.config.endpoints).config.db.production;
 
-     } else {
 
-         endpointSelector = new DevExpress.EndpointSelector(BemsWebApplication.config.endpoints).config.db.local;
 
-     }
 
-     var partnerTypes = ko.observableArray(),
 
-         contractClasses = ko.observableArray(),
 
-         contractMethods = ko.observableArray(),
 
-         contractTypes = ko.observableArray(),
 
-         paymentTypes = ko.observableArray(),
 
-         allPartner = ko.observableArray(),
 
-         filteredPartner = ko.observableArray(),
 
-         businessFields = ko.observableArray();
 
-     var partnerTypesForSearch = ko.observableArray(),
 
-         contractClassesForSearch = ko.observableArray(),
 
-         contractMethodsForSearch = ko.observableArray(),
 
-         contractTypesForSearch = ko.observableArray(),
 
-         paymentTypesForSearch = ko.observableArray();
 
-     var deferredForSearch = new $.Deferred();
 
-     var dataSourceOptions = {
 
-         select: [
 
-             'SiteId',
 
-             'AnnouncementId',
 
-             'BusinessFieldId',
 
-             'CmBusinessField/Name',
 
-             'Title',
 
-             'Contents',
 
-             'RegisterUserId ',
 
-             'CmUser/Name', // 등록자
 
-             'FileId',
 
-             'CmFile/Name',
 
-             'CmFile/FileSize',
 
-             'AddDate',
 
-             'UpdateDate',
 
-             'IsUse',
 
-         ],
 
-         expand: [
 
-             'CmBusinessField',
 
-             'CmFile',
 
-             'CmUser'
 
-         ],
 
-         extendOptions: {
 
-             forceOriginalField: true
 
-         },
 
-         filter: [
 
-             ['SiteId', '=', BWA.UserInfo.SiteId()],
 
-         ]
 
-     };
 
-     var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'CmAnnouncement', {
 
-         dataSourceOptions: dataSourceOptions,
 
-         columns: [
 
-             { dataField: 'AnnouncementId', caption: $G('number'), width: '10%', alignment: 'center', allowFiltering: false, sortOrder: 'desc' },
 
-             { dataField: 'CmBusinessField/Name', caption: '업무분야', width: '10%', alignment: 'center' },
 
-             { dataField: 'Title', caption: '제목', width: '40%', alignment: 'center' },
 
-             { dataField: 'CmUser/Name', caption: '등록자', width: '40%', alignment: 'center' },
 
-             {
 
-                 dataField: 'AddDate', caption: '등록일', width: '20%', alignment: 'center',
 
-                 customizeText: function (cellInfo) {
 
-                     return $G.date(cellInfo.value);
 
-                 }
 
-             },
 
-             {
 
-                 dataField: 'UpdateDate', caption: '만료일', width: '20%', alignment: 'center',
 
-                 customizeText: function (cellInfo) {
 
-                     return $G.date(cellInfo.value);
 
-                 }
 
-             },
 
-             //utils.datagrid.columnIsUse('20%') hcLee 2015 12 23
 
-         ],
 
-         /*
 
-                 toolbarItems: [
 
-         { location: 'before', text: '공지사항 입력' },
 
-         { location: 'after', widget: 'button', options: { text: $G('edit'), icon: 'edit', visible: _.isBoolean(isModifiable) ? isModifiable : visibleEditButton, disabled: hasnotModificationPermission, clickAction: handlePopupButtonEdit } },
 
-         { location: 'after', widget: 'button', options: { text: $G('delete'), type: 'danger', icon: 'remove', visible: _.isBoolean(isModifiable) ? isModifiable : visibleDeleteButton, disabled: hasnotModificationPermission, clickAction: handlePopupButtonDelete } },
 
-         { location: 'after', widget: 'button', options: { text: $G('cancel'), icon: 'cancel', visible: visibleCancelButton, clickAction: handlePopupButtonCancel } },
 
-         { location: 'after', widget: 'button', options: { text: $G('save'), icon: 'save', visible: isEditModeInPopup, disabled: hasnotModificationPermission, clickAction: handlePopupButtonSave } },
 
-         { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: handlePopupButtonClose } }
 
-                 ], */
 
-         //popupWidth: 580,
 
-         searchViewItems: [
 
-             { id: 'BusinessFieldId', ignoreValue: 0, defaultValue: 0, dataSource: businessFieldsForSearch },
 
-             { id: 'Title' },
 
-             { id: 'Contents' },
 
-             { id: 'AddDate', type: 'dateRange', isOnlyDate: true },
 
-         ],
 
-         mandatoryFields: [
 
-             { dataField: 'Title', name: '제목' },
 
-             { dataField: 'Contents', name: '내용' }
 
-         ],
 
-         handleAfterLoadingModelByKey: function (data, dataViewModel, isNewInPopup) {
 
-             if (isNewInPopup() == false) {
 
-                 if (_.isNull(dataViewModel.FileId()) === false) {
 
-                     //alert('{0}/CmFile(SiteId={1},FileId={2})/$value'.formati(BWA.db._url, dataViewModel.SiteId(), dataViewModel.FileId()));
 
-                     imagefileUrl1('{0}/CmFile(SiteId={1},FileId={2})/$value'.formati(BWA.db._url, dataViewModel.SiteId(), dataViewModel.FileId()));
 
-                 }
 
-                 else {
 
-                     imagefileUrl1(undefined);
 
-                 }
 
-                 var keys = BWA.db.extractKeysObject('CmAnnouncement', dataViewModel);
 
-                 dataViewModel.ReadCount(dataViewModel.ReadCount() + 1);
 
-                 BWA.db.CmAnnouncement.update(keys, dataViewModel.toJS());
 
-             }
 
-         },
 
-         handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {
 
-             dataGrid.clearSelection();
 
-             var data = clickRow.data;
 
-             var dataModel = viewModel.dataModel;
 
-             if (dataModel.AnnouncementId() == data.AnnouncementId()) {
 
-                 setTimeout(function(){ 
 
-                     var dataSource = new DevExpress.data.DataSource({
 
-                         store: {
 
-                             type: "odata",
 
-                             url: endpointSelector + "/CmFile",
 
-                         },
 
-                         requireTotalCount: true
 
-                     });
 
-                     dataSource.filter([
 
-                             ["SiteId", "=", BWA.UserInfo.SiteId()],
 
-                             "and",
 
-                             ["FileId", "=", viewModel.dataModel.FileId()]
 
-                     ]);
 
-                     dataSource.load()
 
-                     .done(function (result) {
 
-                         dataModel.AttachmentFileName(result[0].Name);
 
-                     });
 
-                 }, 100)
 
-             }
 
-             else {
 
-                 if (data['FileId']() != null) {
 
-                     dataModel.AttachmentFileName(data['CmFile/Name']());
 
-                 }
 
-                 else {
 
-                     dataModel.AttachmentFileName('');
 
-                 }
 
-             }
 
-             //alert(dataModel.AttachmentFileName());
 
-             popupVisible(true);
 
-         },
 
-         handleViewShowing: function (dataModel) {
 
-             businessFieldDataSource.load().done(function (dbBusinessFields) {
 
-                 businessFields(dbBusinessFields);
 
-                 businessFieldsForSearch($SearchView.createArrayOfSelectBox('BusinessFieldId', businessFields()));
 
-             });
 
-             //$.when(
 
-             //    partnerTypeDataSource.load(),
 
-             //    contractClassDataSource.load(),
 
-             //    contractMethodDataSource.load(),
 
-             //    contractTypeDataSource.load(),
 
-             //    paymentTypeDataSource.load(),
 
-             //    partnerDataSource.load()
 
-             //).done(function (partnerTypeDataResult, contractClassDataResult, contractMethodDataResult, contractTypeDataResult, paymentTypeDataResult, partnerDataResult) {
 
-             //    partnerTypes(partnerTypeDataResult[0]);
 
-             //    contractClasses(contractClassDataResult[0]);
 
-             //    contractMethods(contractMethodDataResult[0]);
 
-             //    contractTypes(contractTypeDataResult[0]);
 
-             //    paymentTypes(paymentTypeDataResult[0]);
 
-             //    allPartner(partnerDataResult[0]);
 
-             //partnerTypesForSearch($SearchView.createArrayOfSelectBox('PartnerTypeId', partnerTypeDataResult[0]));
 
-             //contractClassesForSearch($SearchView.createArrayOfSelectBox('ContractClassId', contractClassDataResult[0]));
 
-             //contractMethodsForSearch($SearchView.createArrayOfSelectBox('ContractMethodId', contractMethodDataResult[0]));
 
-             //contractTypesForSearch($SearchView.createArrayOfSelectBox('ContractTypeId', contractTypeDataResult[0]));
 
-             //paymentTypesForSearch($SearchView.createArrayOfSelectBox('PaymentTypeId', paymentTypeDataResult[0]));
 
-             //deferredForSearch.resolve();
 
-             //});
 
-         },
 
-         handlePopupShowing: function (isNewInPopup, dataViewModel) {
 
-             // 신규등록인 경우 
 
-             //imagefileUrl1(undefined);
 
-             //dropZone1.removeAllFiles();
 
-             //if (_.isNull(dropZone1) === false) dropZone1.resetUploadedFileInfo();
 
-             if (isNewInPopup()) {
 
-                 // hcLee 2016 01 04 추가
 
-                 dropZone1 = null;
 
-                 imagefileUrl1(undefined);
 
-                 dataViewModel.AddDate(new Date());
 
-                 dataViewModel.UpdateDate(new Date());
 
-                 dataViewModel.RegisterUserId(BWA.UserInfo.UserId());
 
-                 dataViewModel.ReadCount(0);
 
-             }
 
-         },
 
-         handlePopupShown: function (isEditMode, isNew, dataViewModel) {
 
-             imagefileUrl1(undefined);
 
-             if (_.isNull(dropZone1) === false) dropZone1.resetUploadedFileInfo();
 
-             isEditModeInPopup(false);
 
-             if (isNew) { // 신규등록인 경우 
 
-                 isEditModeInPopup(true);
 
-                 dropZone1 = null;
 
-             }
 
-         },
 
-         handleCancelInPopup: function () {
 
-             isEditModeInPopup(false);
 
-         },
 
-         handlePopupButtonEdit: function (dataModel) {
 
-             isEditModeInPopup(true);
 
-         },
 
-         handlePopupButtonClose: function () {
 
-             isEditModeInPopup(false);
 
-         },
 
-         handleViewShown: function (dataViewModel, isEditModeInPopup) {
 
-             setupDropZone(isEditModeInPopup, dataViewModel);
 
-             
 
-             $("#gridContainer").dxDataGrid({
 
-                 paging: {
 
-                     pageSize: 20,
 
-                     enabled: true
 
-                 }
 
-             });
 
-         },
 
-         handleSaveSuccess: function () {
 
-             if (_.isNull(dropZone1) === false) {
 
-                 dropZone1.resetUploadedFileInfo();
 
-             }
 
-             isEditModeInPopup(false);
 
-         },
 
-         handleAfterSaveInPopup: function (responseKey, response) {//2019-10-14 변경
 
-             viewModel.dataModel.AnnouncementId(responseKey.AnnouncementId);
 
-             setTimeout(function(){ 
 
-                 var dataSource = new DevExpress.data.DataSource({
 
-                     store: {
 
-                         type: "odata",
 
-                         url: endpointSelector + "/CmAnnouncement",
 
-                     },
 
-                     requireTotalCount: true
 
-                 });
 
-                 dataSource.filter([
 
-                         ["SiteId", "=", BWA.UserInfo.SiteId()],
 
-                         "and",
 
-                         ["AnnouncementId", "=", viewModel.dataModel.AnnouncementId()]
 
-                 ]);
 
-                 dataSource.load()
 
-                 .done(function (result) {
 
-                     viewModel.dataModel.FileId(result[0].FileId);
 
-                 });
 
-             }, 100)
 
-         },
 
-         handleSaveButtonInPopup: function (isInsert) {//2019-10-14 변경
 
-             if (isInsert === false) {//추가, 변경 여부
 
-                 if (_.isNull(dropZone1) === false) {
 
-                     if (viewModel.dataModel.FileId() != null) { //변경 - 그림삭제
 
-                         var temp = {
 
-                             SiteId: BWA.UserInfo.SiteId(),
 
-                             FileId: viewModel.dataModel.FileId()
 
-                         }
 
-                         BWA.db.CmFile.byKey(temp).done(function (data) {
 
-                             dropZone1.removeFile(data);
 
-                             dropZone1.processQueue();
 
-                         });
 
-                     }
 
-                     else {
 
-                         dropZone1.processQueue();//변경 - 그림 삭제 필요없음
 
-                     }
 
-                 }
 
-             }
 
-             else {
 
-                 if (_.isNull(dropZone1) === false) { //추가
 
-                     if (viewModel.dataModel.FileId() == null) {
 
-                         dropZone1.processQueue();
 
-                     }
 
-                 }
 
-             }
 
-         },
 
-         handleBeforeDelete: function () {//2019-10-14 변경
 
-             if (viewModel.dataModel.FileId() != null) {
 
-                 var temp = {
 
-                     SiteId: BWA.UserInfo.SiteId(),
 
-                     FileId: viewModel.dataModel.FileId()
 
-                 }
 
-                 BWA.db.CmFile.byKey(temp).done(function (data) {
 
-                     if ($('#announceDropZone1').length) {
 
-                         if (_.isNull(dropZone1)) {
 
-                             dropZone1 = BWA.DropZone.create({
 
-                                 id: '#announceDropZone1',
 
-                                 categoryId: $Code.FileCategory.ANNOUNCEMENT
 
-                             });
 
-                             dropZone1.removeFile(data);
 
-                             dropZone1 = null;
 
-                         }
 
-                     }
 
-                 });
 
-             }
 
-         },
 
-         handleAfterDelete: function () {
 
-         },
 
-     });
 
-     function processValueChange(e) {
 
-         filteredPartner([]);
 
-         _.each(allPartner(), function (partner) {
 
-             if (e.value === partner.PartnerTypeId()) {
 
-                 filteredPartner.push(partner);
 
-             }
 
-         });
 
-         if (!_.isEmpty(filteredPartner())) {
 
-             viewModel.dataModel.PartnerId(filteredPartner()[0].PartnerId());
 
-         }
 
-     }
 
-     function setupDropZone(isEditModeInPopup, dataViewModel) {
 
-         var timer = null;
 
-         isEditModeInPopup.subscribe(function (value) {
 
-             if (value) {
 
-                 if (timer) { clearInterval(timer); }
 
-                 timer = setInterval(function () {
 
-                     if ($('#announcementDropZone1').length) {
 
-                         if (_.isNull(dropZone1)) {
 
-                             dropZone1 = BWA.DropZone.create({
 
-                                 id: '#announcementDropZone1',
 
-                                 previewTemplate: "...",
 
-                                 categoryId: $Code.FileCategory.ANNOUNCEMENT,
 
-                                 uploadedFileInfo: uploadedFileInfo,                                
 
-                                 handleRemoveBeforePromise: function () {
 
-                                     var keys = BWA.db.extractKeysObject('CmAnnouncement', dataViewModel);
 
-                                     return BWA.db.CmAnnouncement.update(keys, { FileId: null });
 
-                                 },
 
-                                 handleSuccess: function (fileInfo) {
 
-                                     dataViewModel.FileId(fileInfo.FileId);
 
-                                     dropZone1.options.startLoadFileCount = 1;
 
-                                     if (uploadedFileInfo.FileId) {
 
-                                         dataViewModel.FileId(uploadedFileInfo.FileId);
 
-                                         var keys = BWA.db.extractKeysObject('CmAnnouncement', dataViewModel);
 
-                                         if (keys.AnnouncementId != null) {
 
-                                             return BWA.db.CmAnnouncement.update(keys, { FileId: uploadedFileInfo.FileId });
 
-                                         }
 
-                                     }
 
-                                 },
 
-                                 handleRemovedFile: function () {
 
-                                     dataViewModel.FileId(null);
 
-                                     if (dropZone1 != null)
 
-                                         dropZone1.options.startLoadFileCount = 0;
 
-                                 },
 
-                             });
 
-                         }
 
-                     }
 
-                 }, 100);
 
-             }
 
-             else {
 
-                 if (timer) { clearInterval(timer); timer = null; }
 
-                 dropZone1 = null;
 
-             }
 
-         });
 
-     }
 
-     /*
 
-     var toolbarItems = [
 
- { location: 'before', text: '공지사항 입력' },
 
- { location: 'after', widget: 'button', options: { text: $G('edit'), icon: 'edit', visible: _.isBoolean(isModifiable) ? isModifiable : visibleEditButton, disabled: hasnotModificationPermission, clickAction: handlePopupButtonEdit } },
 
- { location: 'after', widget: 'button', options: { text: $G('delete'), type: 'danger', icon: 'remove', visible: _.isBoolean(isModifiable) ? isModifiable : visibleDeleteButton, disabled: hasnotModificationPermission, clickAction: handlePopupButtonDelete } },
 
- { location: 'after', widget: 'button', options: { text: $G('cancel'), icon: 'cancel', visible: visibleCancelButton, clickAction: handlePopupButtonCancel } },
 
- { location: 'after', widget: 'button', options: { text: $G('save'), icon: 'save', visible: isEditModeInPopup, disabled: hasnotModificationPermission, clickAction: handlePopupButtonSave } },
 
- { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: handlePopupButtonClose } }
 
-     ]; */
 
-     viewModel.popupVisible.subscribe(function (value) {
 
-         if (!value) {
 
-             viewModel.gridView().refresh();
 
-         }
 
-     });
 
-     viewModel.dataModel.AttachmentFileName = ko.observable();
 
-     viewModel.imagefileUrl1 = imagefileUrl1;
 
-     viewModel.businessFields = businessFields;
 
-     viewModel.processValueChange = processValueChange;
 
-     viewModel.partnerTypes = partnerTypes;
 
-     viewModel.contractClasses = contractClasses;
 
-     viewModel.contractMethods = contractMethods;
 
-     viewModel.contractTypes = contractTypes;
 
-     viewModel.paymentTypes = paymentTypes;
 
-     viewModel.allPartner = allPartner;
 
-     viewModel.filteredPartner = filteredPartner;
 
-     viewModel.isEditModeInPopup = isEditModeInPopup;
 
-     //viewModel.toolbarItems = toolbarItems;
 
-     return viewModel;
 
- };
 
 
  |