| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 | BemsWebApplication.PartnerEstimateList = 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 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 deferredForSearch = new $.Deferred();    var dataSourceOptions = {        select: [            'SiteId',            'ConstructionId',            'Name',            'StartDate',            'EndDate',            'PartnerId',            'ConstructionTypeId',            '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',            'FmsConstructionEstimation/SafetyScore',            'FmsConstructionEstimation/AbilityScore',            'FmsConstructionEstimation/ServiceScore',            'FmsConstructionEstimation/TotalEstimateScore',        ],        expand: [            'FmsConstructionCodeProgress',            'CmPartner',            'FmsConstructionEstimation',            'FmsConstructionCodeType',            'CmFile',            'CmFile1',            'CmFile2'        ],        extendOptions: {            forceOriginalField: true        },        filter: [            eq('SiteId', BWA.UserInfo.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: '60%', alignment: 'center' },            { dataField: 'CmPartner/Name', caption: '공사업체', width: '20%', alignment: 'center' },            { dataField: 'FmsConstructionEstimation/SafetyScore', caption: '안전수칙준수점수', width: '20%', alignment: 'center' },            { dataField: 'FmsConstructionEstimation/AbilityScore', caption: '공사수행능력점수', width: '20%', alignment: 'center' },            { dataField: 'FmsConstructionEstimation/ServiceScore', caption: '용역수행능력점수', width: '20%', alignment: 'center' },            { dataField: 'FmsConstructionEstimation/TotalEstimateScore', caption: '종합평가점수', width: '20%', alignment: 'center' },            { dataField: 'StartDate', caption: '시작일', width: '20%', alignment: 'center', sortOrder: 'desc' },            { dataField: 'EndDate', caption: '종료일', width: '20%', alignment: 'center' },        ],        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) {            viewModel.visibleEditButton(false);            viewModel.visibleDeleteButton(false);            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 = data['CmPartner/Name']();            //dataModel.PartnerPhoneNo = data['CmPartner/PhoneNo']();            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) {            partnerDataSource.filter([                eq('PartnerTypeId', 1), // 공사업체 유형 필터링                and,                eq('SiteId', BWA.UserInfo.SiteId())            ])            $.when(                partnerDataSource.load(),                constructionTypeDataSource.load()            )            .done(function (dbPartners, dbConstructions) {                partners(dbPartners[0]);                constructionTypes(dbConstructions[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());                }            }        }    });    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();    return viewModel;};
 |