| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264 | 
							- BemsWebApplication.ConstructionHistory = function (params, viewInfo) {
 
-     "use strict";
 
-     var imagefileUrl1 = ko.observable(), imagefileUrl2 = ko.observable(), uploadedFileInfo = {};
 
-     var eq = BWA.DataUtil.constructEqualFilter, and = BWA.DataUtil.andFilter, noteq = BWA.DataUtil.constructNotEqualFilter;
 
-     var SiteId = BWA.UserInfo.SiteId();
 
-     // 공사업체 데이터 소스...
 
-     var partnerDataSource = BemsWebApplication.db.createDataSource('CmPartner', true, false, true),
 
-         constructionTypeDataSource = BemsWebApplication.db.createDataSource('FmsConstructionCodeType', true, false, true);
 
-     var partners = ko.observableArray(), constructionTypes = ko.observableArray();
 
-     var constructionTypesForSearch = ko.observableArray(), partnerTypesForSearch = ko.observableArray();
 
-     var visibleDeleteButton = ko.observable(true);
 
-     //권한설정
 
-     var hasnotModificationPermission = ko.observable(true);
 
-     var deferredForSearch = new $.Deferred();
 
-     var dataSourceOptions = {
 
-         select: [
 
-             'SiteId',
 
-             'ConstructionId',
 
-             'ConstructionTypeId',
 
-             'Name',
 
-             'StartDate',
 
-             'EndDate',
 
-             'PartnerId',
 
-             'ConstructLocation',
 
-             'OwnerShipName',
 
-             'CommitmentMan',
 
-             'OwnerShipPhoneNo',
 
-             'WeldWorkStartTime',
 
-             'WeldWorkEndTime',
 
-             'GasWorkStartTime',
 
-             'GasWorkEndTime',
 
-             'PaintWorkStartTime',
 
-             'PaintWorkEndTime',
 
-             'Comment',
 
-             'ProgressId',
 
-             'AddDate',
 
-             'UpdateDate',
 
-             'FmsConstructionCodeProgress/Name',
 
-             'CmPartner/Name',
 
-             'CmPartner/PhoneNo',
 
-             'FmsConstructionCodeType/Name',
 
-             'ConstructionDetail',
 
-             'InOutStockName',
 
-             'FileId1',
 
-             'FileId2',
 
-             'FileId3',
 
-             'CmFile/Name',
 
-             'CmFile1/Name',
 
-             'CmFile2/Name',
 
-             'FmsConstructionEstimation/Comment',
 
-             'FmsConstructionEstimation/SafetyScore',
 
-             'FmsConstructionEstimation/AbilityScore',
 
-             'FmsConstructionEstimation/ServiceScore',
 
-             'FmsConstructionEstimation/TotalEstimateScore',
 
-         ],
 
-         expand: [
 
-             'FmsConstructionCodeProgress',
 
-             'CmPartner',
 
-             'FmsConstructionEstimation',
 
-             'FmsConstructionCodeType',
 
-             'CmFile',
 
-             'CmFile1',
 
-             'CmFile2'
 
-         ],
 
-         extendOptions: {
 
-             forceOriginalField: true
 
-         },
 
-         filter: [
 
-             eq('SiteId', SiteId),
 
-             'and',
 
-             eq('ProgressId', 4)// 공사완료단계 항목 까지만 가져옴 
 
-         ]
 
-     };
 
-     var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsConstruction', {
 
-         dataSourceOptions: dataSourceOptions,
 
-         columns: [
 
-             { dataField: 'Number', caption: $G('number'), width: '10%', alignment: 'center' },
 
-             { dataField: 'FmsConstructionCodeType/Name', caption: '공사구분', width: '20%', alignment: 'center' },
 
-             { dataField: 'Name', caption: '공사명', width: '80%', alignment: 'center' },
 
-             { dataField: 'ConstructLocation', caption: '공사위치', width: '30%', alignment: 'center' },
 
-             { dataField: 'CmPartner/Name', caption: '공사업체', width: '20%', alignment: 'center' },
 
-             { dataField: 'OwnerShipName', caption: '공사책임자', width: '20%', alignment: 'center' },
 
-             {
 
-                 dataField: 'StartDate', caption: '시작일', width: '20%', alignment: 'center', sortOrder: 'desc', dataType: "shortDate", format: "yyyy-MM-dd",
 
-                 customizeText: function (cellInfo) {
 
-                     return cellInfo.valueText;
 
-                 }
 
-             },
 
-             {
 
-                 dataField: 'EndDate', caption: '종료일', width: '20%', alignment: 'center', dataType: "shortDate", format: "yyyy-MM-dd",
 
-                 customizeText: function (cellInfo) {
 
-                     return cellInfo.valueText;
 
-                 }
 
-             },
 
-             { dataField: 'FmsConstructionEstimation/SafetyScore', caption: '안전수칙준수점수', width: '25%', alignment: 'center', visible: false },
 
-             { dataField: 'FmsConstructionEstimation/AbilityScore', caption: '공사수행능력점수', width: '25%', alignment: 'center', visible: false },
 
-             { dataField: 'FmsConstructionEstimation/ServiceScore', caption: '용역수행능력점수', width: '25%', alignment: 'center', visible: false },
 
-             { dataField: 'FmsConstructionEstimation/TotalEstimateScore', caption: '종합점수', width: '25%', alignment: 'center', visible: false },
 
-         ],
 
-         "export": {
 
-             enabled: true,
 
-             fileName: '공사 이력',
 
-         },
 
-         paging: {
 
-             enabled: true,
 
-             pageSize: 18
 
-         },
 
-         pager: {
 
-         },
 
-         onExporting: function (e) {
 
-             e.component.columnOption("Number", "visible", false);
 
-             e.component.columnOption("FmsConstructionEstimation/SafetyScore", "visible", true);
 
-             e.component.columnOption("FmsConstructionEstimation/AbilityScore", "visible", true);
 
-             e.component.columnOption("FmsConstructionEstimation/ServiceScore", "visible", true);
 
-             e.component.columnOption("FmsConstructionEstimation/TotalEstimateScore", "visible", true);
 
-         },
 
-         onExported: function (e) {
 
-             e.component.columnOption("Number", "visible", true);
 
-             e.component.columnOption("FmsConstructionEstimation/SafetyScore", "visible", false);
 
-             e.component.columnOption("FmsConstructionEstimation/AbilityScore", "visible", false);
 
-             e.component.columnOption("FmsConstructionEstimation/ServiceScore", "visible", false);
 
-             e.component.columnOption("FmsConstructionEstimation/TotalEstimateScore", "visible", false);
 
-         },
 
-         popupWidth: '740px',
 
-         promiseDataInSearchView: deferredForSearch.promise(),
 
-         searchViewItems: [
 
-             { id: 'Name' },
 
-             { id: 'ConstructionTypeId', ignoreValue: 0, defaultValue: 0, dataSource: constructionTypesForSearch },
 
-             { id: 'PartnerId', ignoreValue: 0, defaultValue: 0, dataSource: partnerTypesForSearch },
 
-             { id: 'StartDate', type: 'dateRange', isOnlyDate: true },
 
-             { id: 'EndDate', type: 'dateRange', isOnlyDate: true }
 
-         ],
 
-         handleAfterLoadingModelByKey: function (data, dataViewModel, isNewInPopup) {
 
-             visibleDeleteButton(true);
 
-             if (isNewInPopup() == false) {
 
-                 if (_.isNull(dataViewModel.FileId1()) === false) {
 
-                     imagefileUrl1('{0}/CmFile(SiteId={1},FileId={2})/$value'.formati(BWA.db._url, dataViewModel.SiteId(), dataViewModel.FileId1()));
 
-                 }
 
-                 else {
 
-                     imagefileUrl1(undefined);
 
-                 }
 
-                 if (_.isNull(dataViewModel.FileId2()) === false) {
 
-                     imagefileUrl2('{0}/CmFile(SiteId={1},FileId={2})/$value'.formati(BWA.db._url, dataViewModel.SiteId(), dataViewModel.FileId2()));
 
-                 }
 
-                 else {
 
-                     imagefileUrl2(undefined);
 
-                 }
 
-             }
 
-         },
 
-         handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {
 
-             dataGrid.clearSelection();
 
-             var data = clickRow.data;
 
-             var dataModel = viewModel.dataModel;
 
-             dataModel.PartnerName = $KoSet(dataModel.PartnerName, data['CmPartner/Name']());
 
-             dataModel.PartnerPhoneNo = $KoSet(dataModel.PartnerPhoneNo, data['CmPartner/PhoneNo']());
 
-             dataModel.ConstructionTypeName = $KoSet(dataModel.ConstructionTypeName, data['FmsConstructionCodeType/Name']());
 
-             dataModel.EstimateComment = $KoSet(dataModel.EstimateComment, data['FmsConstructionEstimation/Comment']());
 
-             dataModel.EstimateSafetyScore = $KoSet(dataModel.EstimateSafetyScore, data['FmsConstructionEstimation/SafetyScore']());
 
-             dataModel.EstimateAbilityScore = $KoSet(dataModel.EstimateAbilityScore, data['FmsConstructionEstimation/AbilityScore']());
 
-             dataModel.EstimateServiceScore = $KoSet(dataModel.EstimateServiceScore, data['FmsConstructionEstimation/ServiceScore']());
 
-             dataModel.EstimateTotalEstimateScore = $KoSet(dataModel.EstimateTotalEstimateScore, data['FmsConstructionEstimation/TotalEstimateScore']());
 
-             if (data['FileId1']() != null)
 
-                 dataModel.AttachmentFileName1(data['CmFile/Name']());
 
-             else dataModel.AttachmentFileName1('');
 
-             if (data['FileId2']() != null)
 
-                 dataModel.AttachmentFileName2(data['CmFile1/Name']());
 
-             else dataModel.AttachmentFileName2('');
 
-             popupVisible(true);
 
-         },
 
-         handleViewShowing: function (dataModel) {
 
-             //권한설정
 
-             hasnotModificationPermission(!BWA.UserInfo.hasPermissionOfModification(viewInfo.viewName));
 
-             partnerDataSource.filter([
 
-                 eq('PartnerTypeId', 1), // 공사업체 유형 필터링
 
-                 and,
 
-                 eq('SiteId', BWA.UserInfo.SiteId())
 
-             ])
 
-             $.when(
 
-                 partnerDataSource.load(),
 
-                 constructionTypeDataSource.load()
 
-             ).done(function (dbPartners, dbConstructionTypes) {
 
-                 partners(dbPartners[0]);
 
-                 constructionTypes(dbConstructionTypes[0]);
 
-                 constructionTypesForSearch($SearchView.createArrayOfSelectBox('ConstructionTypeId', constructionTypes()));
 
-                 partnerTypesForSearch($SearchView.createArrayOfSelectBox('PartnerId', partners()));
 
-                 deferredForSearch.resolve();
 
-             });
 
-         },
 
-         handlePopupShown: function (isEditMode, isNew, dataViewModel) {
 
-             var partners = viewModel.partners();
 
-             var constructionTypes = viewModel.constructionTypes();
 
-             if (isNew) { // 신규등록인 경우 
 
-                 dataViewModel.ProgressId(2); // 공사계획 상태를 '진행' 단계로 초기화
 
-                 dataViewModel.AddDate($G.date(new Date()));
 
-                 dataViewModel.UpdateDate($G.date(new Date()));
 
-                 if (!_.isEmpty(partners)) {
 
-                     dataViewModel.PartnerId(partners[0].PartnerId());
 
-                 }
 
-                 if (!_.isEmpty(constructionTypes)) {
 
-                     dataViewModel.ConstructionTypeId(constructionTypes[0].ConstructionTypeId());
 
-                 }
 
-             }
 
-         }
 
-     });
 
-     var ConstructionHistoryToolbarItems = [
 
-         { location: 'after', widget: 'button', options: { text: $G('delete'), type: 'danger', icon: 'remove', visible: visibleDeleteButton, clickAction: handlePopupButtonDelete, disabled: hasnotModificationPermission } },
 
-         { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: handleInsertPopupButtonClose } }
 
-     ];
 
-     function handleConfirmDelete() {
 
-         var selectedId = {};
 
-         selectedId.SiteId = viewModel.dataModel.SiteId();
 
-         selectedId.ConstructionId = viewModel.dataModel.ConstructionId();
 
-         BemsWebApplication.db['FmsConstructionEstimation'].remove(selectedId).done(function () {
 
-             BemsWebApplication.db['FmsConstruction'].remove(selectedId).done(function () {
 
-                 viewModel.popupVisible(false);
 
-                 viewModel.refreshList();
 
-                 utils.toast.show('데이터베이스 항목 삭제 작업이 성공하였습니다.');
 
-             }).fail(function () {
 
-                 utils.toast.show('데이터베이스 항목 삭제 작업이 실패하였습니다.', 'error');
 
-             });
 
-         }).fail(function () {
 
-             utils.toast.show('데이터베이스 항목 삭제 작업이 실패하였습니다.', 'error');
 
-         });
 
-     }
 
-     function handlePopupButtonDelete() {
 
-         DevExpress.ui.dialog.confirm($G('deleteConfirmMsg'), "삭제").then(function (result) {
 
-             if (result) {
 
-                 handleConfirmDelete();
 
-             }
 
-         });
 
-     }
 
-     function handleInsertPopupButtonClose() {
 
-         viewModel.popupVisible(false);
 
-     }
 
-     viewModel.imagefileUrl1 = imagefileUrl1;
 
-     viewModel.imagefileUrl2 = imagefileUrl2;
 
-     viewModel.constructionTypes = constructionTypes;
 
-     viewModel.partners = partners;
 
-     viewModel.dataModel.ConstructionTypeName = ko.observable();
 
-     viewModel.dataModel.PartnerName = ko.observable();
 
-     viewModel.dataModel.PartnerPhoneNo = ko.observable();
 
-     viewModel.dataModel.AttachmentFileName1 = ko.observable();
 
-     viewModel.dataModel.AttachmentFileName2 = ko.observable();
 
-     viewModel.dataModel.AttachmentFileName3 = ko.observable();
 
-     viewModel.ConstructionHistoryToolbarItems = ConstructionHistoryToolbarItems;
 
-     return viewModel;
 
- };
 
 
  |