| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266 | 
							- BemsWebApplication.ContractManagement = function (params, viewInfo) {
 
-     'use strict';
 
-     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);
 
-     var partnerTypes = ko.observableArray(),
 
-         contractClasses = ko.observableArray(),
 
-         contractMethods = ko.observableArray(),
 
-         contractTypes = ko.observableArray(),
 
-         paymentTypes = ko.observableArray(),
 
-         allPartner = ko.observableArray(),
 
-         filteredPartner = ko.observableArray();
 
-     var partnerTypesForSearch = ko.observableArray(),
 
-         contractClassesForSearch = ko.observableArray(),
 
-         contractMethodsForSearch = ko.observableArray(),
 
-         contractTypesForSearch = ko.observableArray(),
 
-         paymentTypesForSearch = ko.observableArray();
 
-     var ConstractInfo = ko.observableArray();
 
-     var FmsConstractDataSource = BemsWebApplication.db.createDataSource('FmsContract');
 
-     var RowName;
 
-     var deferredForSearch = new $.Deferred();
 
-     var dataSourceOptions = {
 
-         select: [
 
-             'SiteId',
 
-             'ContractId',
 
-             'Name',
 
-             'PartnerTypeId',
 
-             'PartnerId',
 
-             'ContractDate',
 
-             'StartDate',
 
-             'EndDate',
 
-             'OwnerShipName',
 
-             'OwnerShipPhoneNo',
 
-             'CommitmentMan',
 
-             'Comment',
 
-             'ContractClassId',
 
-             'ContractTypeId',
 
-             'ContractMethodId',
 
-             'PaymentTypeId',
 
-             'CmPartner/Name',
 
-             'CmPartnerType/Name',
 
-             'FmsContractClass/Name',
 
-             'FmsContractType/Name',
 
-             'FmsContractMethod/Name',
 
-             'FmsPaymentType/Name'
 
-         ],
 
-         expand: [
 
-             'CmPartner', 'CmPartnerType', 'FmsContractClass', 'FmsContractType', 'FmsContractMethod', 'FmsPaymentType'
 
-         ],
 
-         extendOptions: {
 
-             forceOriginalField: true
 
-         },
 
-         filter: [
 
-             ['SiteId', '=', BWA.UserInfo.SiteId()],
 
-         ]
 
-     };
 
-     var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsContract', {
 
-         dataSourceOptions: dataSourceOptions,
 
-         columns: [
 
-             { dataField: 'ContractId', caption: $G('number'), width: '10%', alignment: 'center', allowFiltering: false, sortOrder: 'desc' },
 
-             { dataField: 'Name', caption: '계약명', width: '45%', alignment: 'center' },
 
-             { dataField: 'CmPartnerType/Name', caption: '업체유형', width: '35%', alignment: 'center' },
 
-             {
 
-                 dataField: 'StartDate', caption: '시작일', width: '15%', alignment: 'center', dataType: 'string',
 
-                 customizeText: function (cellInfo) {
 
-                     if (cellInfo.value != null) {
 
-                         if (cellInfo.value.getMonth() >= 9) {
 
-                             if (cellInfo.value.getDate() >= 10) {
 
-                                 return cellInfo.value.getFullYear() + "-" + (cellInfo.value.getMonth() + 1) + "-" + cellInfo.value.getDate();
 
-                             }
 
-                             else {
 
-                                 return cellInfo.value.getFullYear() + "-" + (cellInfo.value.getMonth() + 1) + "-0" + cellInfo.value.getDate();
 
-                             }
 
-                         }
 
-                         else {
 
-                             if (cellInfo.value.getDate() >= 10) {
 
-                                 return cellInfo.value.getFullYear() + "-0" + (cellInfo.value.getMonth() + 1) + "-" + cellInfo.value.getDate();
 
-                             }
 
-                             else {
 
-                                 return cellInfo.value.getFullYear() + "-0" + (cellInfo.value.getMonth() + 1) + "-0" + cellInfo.value.getDate();
 
-                             }
 
-                         }
 
-                     }
 
-                 }
 
-             },
 
-             {
 
-                 dataField: 'EndDate', caption: '종료일', width: '15%', alignment: 'center', dataType: 'string',
 
-                 customizeText: function (cellInfo) {
 
-                     if (cellInfo.value != null) {
 
-                         if (cellInfo.value.getMonth() >= 9) {
 
-                             if (cellInfo.value.getDate() >= 10) {
 
-                                 return cellInfo.value.getFullYear() + "-" + (cellInfo.value.getMonth() + 1) + "-" + cellInfo.value.getDate();
 
-                             }
 
-                             else {
 
-                                 return cellInfo.value.getFullYear() + "-" + (cellInfo.value.getMonth() + 1) + "-0" + cellInfo.value.getDate();
 
-                             }
 
-                         }
 
-                         else {
 
-                             if (cellInfo.value.getDate() >= 10) {
 
-                                 return cellInfo.value.getFullYear() + "-0" + (cellInfo.value.getMonth() + 1) + "-" + cellInfo.value.getDate();
 
-                             }
 
-                             else {
 
-                                 return cellInfo.value.getFullYear() + "-0" + (cellInfo.value.getMonth() + 1) + "-0" + cellInfo.value.getDate();
 
-                             }
 
-                         }
 
-                     }
 
-                 }
 
-             },
 
-             { dataField: 'CmPartner/Name', caption: '업체명', width: '25%', alignment: 'center' },
 
-             { dataField: 'OwnerShipName', caption: '담당자', width: '20%', alignment: 'center' },
 
-             { dataField: 'OwnerShipPhoneNo', caption: '전화번호', width: '25%', alignment: 'center' },
 
-         ],
 
-         paging: {
 
-             pageSize: 18,
 
-             enabled: true
 
-         },
 
-         pager: {},
 
-         "export": {
 
-             enabled: true,
 
-             fileName: '계약 목록',
 
-         },
 
-         onExporting: function (e) {
 
-             e.component.columnOption("ContractId", "visible", false);
 
-         },
 
-         onExported: function (e) {
 
-             e.component.columnOption("ContractId", "visible", true);
 
-         },
 
-         searchViewItems: [
 
-             { id: 'Name' },
 
-             { id: 'StartDate', type: 'dateRange', isOnlyDate: true },
 
-             { id: 'EndDate', type: 'dateRange', isOnlyDate: true },
 
-             { id: 'CmPartner/Name' },
 
-             { id: 'OwnerShipName' },
 
-             { id: 'PartnerTypeId', ignoreValue: 0, defaultValue: 0, dataSource: partnerTypesForSearch },
 
-             { id: 'ContractClassId', ignoreValue: 0, defaultValue: 0, dataSource: contractClassesForSearch },
 
-             { id: 'ContractMethodId', ignoreValue: 0, defaultValue: 0, dataSource: contractMethodsForSearch },
 
-             { id: 'ContractTypeId', ignoreValue: 0, defaultValue: 0, dataSource: contractTypesForSearch },
 
-             { id: 'PaymentTypeId', ignoreValue: 0, defaultValue: 0, dataSource: paymentTypesForSearch },
 
-         ],
 
-         handleViewShowing: function (dataModel) {
 
-             $.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();
 
-             });
 
-         },
 
-         handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {
 
-             
 
-             var data = clickRow.data;
 
-             RowName = data.Name;
 
-             popupVisible(true);
 
-         },
 
-         // 이름 중복 방지
 
-         handlePopupShowing: function () {
 
-             FmsConstractDataSource.filter([
 
-                 ["SiteId", "=", BWA.UserInfo.SiteId()]
 
-             ]);
 
-             FmsConstractDataSource.load().done(function (result) {
 
-                 ConstractInfo(result);
 
-             });
 
-         },
 
-         beforeInsertingDataViewModel: function (dataModel, dbModelId) {
 
-             var dfd = $.Deferred();
 
-             var isDuplicated = false;
 
-             if (dataModel.StartDate() > dataModel.EndDate())
 
-                 dfd.resolve(false, '시작일은 종료일 이전으로 선택해야 합니다.', 'error');
 
-             for (var i = 0; i < ConstractInfo().length; i++) {
 
-                 if (dataModel.Name() == ConstractInfo()[i].Name()) {
 
-                     isDuplicated = true;
 
-                     break;
 
-                 }
 
-             }
 
-             if (!BWA.DataUtil.isValidInputValue(dataModel.Name()))
 
-                 return dfd.resolve(false, '저장 혹은 수정 반드시 필수 입력 정보를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)');
 
-             else {
 
-                 if (isDuplicated)
 
-                     return dfd.resolve(false, '이미 동일 정보가 존재합니다.');
 
-                 else
 
-                     return dfd.resolve(true);
 
-             }
 
-         },
 
-         beforeUpdateDataViewModel: function () {
 
-             if (viewModel.dataModel.StartDate() > viewModel.dataModel.EndDate()) {
 
-                 utils.toast.show('시작일은 종료일 이전으로 선택해야 합니다.', 'error');
 
-                 return 0;
 
-             }
 
-             
 
-             var isDuplicated = false;
 
-             for (var i = 0; i < ConstractInfo().length; i++) {
 
-                 if (viewModel.dataModel.Name() == ConstractInfo()[i].Name() && RowName() != ConstractInfo()[i].Name()) {
 
-                     isDuplicated = true;
 
-                     break;
 
-                 }
 
-             }
 
-             if (!BWA.DataUtil.isValidInputValue(viewModel.dataModel.Name())) {
 
-                 utils.toast.show('저장 혹은 수정 반드시 필수 입력 정보를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)', 'error');
 
-                 return 0;
 
-             }
 
-             else {
 
-                 if (isDuplicated) {
 
-                     utils.toast.show('이미 동일 정보가 존재합니다.', 'error');
 
-                     return 0;
 
-                 }
 
-                 else
 
-                     return 2;
 
-             }
 
-         },
 
-     });
 
-     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());
 
-         }
 
-     }
 
-     viewModel.processValueChange = processValueChange;
 
-     viewModel.partnerTypes = partnerTypes;
 
-     viewModel.contractClasses = contractClasses;
 
-     viewModel.contractMethods = contractMethods;
 
-     viewModel.contractTypes = contractTypes;
 
-     viewModel.paymentTypes = paymentTypes;
 
-     viewModel.allPartner = allPartner;
 
-     viewModel.filteredPartner = filteredPartner;
 
-     return viewModel;
 
- };
 
 
  |