123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- BemsWebApplication.Company = function( params, viewInfo ) {
- "use strict";
- var CompanyInfo = ko.observableArray();
- var CmCompanyDataSource = BemsWebApplication.db.createDataSource('CmCompany');
- var RowName, RowCompanyId;
- var companyTypeDataSource = BemsWebApplication.db.createDataSource( 'CmCompanyType', true );
- var companyTypes = ko.observableArray();
- var searchCompanyTypes = ko.observableArray();
- var companyTypeDeferred = new $.Deferred();
- var viewModel = BWA.DataGrid.createViewWithDataGrid( params, viewInfo, 'CmCompany', {
- dataSourceOptions: {
- select: [ 'SiteId', 'CompanyTypeId', 'CompanyId', 'Name', 'RepresentativeName', 'PhoneNo', 'IsUse', 'CmCompanyType/Name' ],
- expand: ["CmCompanyType"],
- extendOptions: {
- forceOriginalField: true
- }
- },
- columns: [
- { dataField: 'CompanyId', caption: '번호', width: '10%', alignment: 'center' , sortOrder: 'desc'},
- { dataField: 'CmCompanyType/Name', caption: $G('companyType'), width: '15%', alignment: 'center' },
- { dataField: 'Name', caption: $G( 'companyName' ), width: '35%', alignment: 'center' },
- { dataField: 'RepresentativeName', caption: $G( 'companyRepresentativeName' ), width: '15%', alignment: 'center' },
- { dataField: 'PhoneNo', caption: $G( 'companyPhoneNo' ), width: '15%', alignment: 'center' },
- utils.datagrid.columnIsUse( '10%' )
- ],
- searchViewItems: [{ id: 'CompanyTypeId', ignoreValue: 0, defaultValue: 0, dataSource: searchCompanyTypes }, { id: 'Name' }],
- promiseDataInSearchView: companyTypeDeferred.promise(),
- handleViewShowing: function (that) {
- //2015 11 12 hcLee 필터추가
- companyTypeDataSource.filter([
- ['SiteId', '=', BWA.UserInfo.SiteId()],
- 'and',
- ['IsUse', '=', true]
- ]);
- companyTypeDataSource.load().done( function( result ) {
- companyTypes( result );
- searchCompanyTypes( [ { CompanyTypeId: 0, Name: $G('selectAll') } ].concat( result ) );
- companyTypeDeferred.resolve();
- });
- },
- handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {
- dataGrid.clearSelection();
- viewModel.isNewInPopup(false); // hcLee 2016 02 16 키필드가 콤보로 제공될때 등록시만 보이고 수정시에는 안보기에 하기 위하여 꼭 필요 !!!
- var data = clickRow.data;
- RowName = data.Name;
- RowCompanyId = data.CompanyTypeId;
- popupVisible(true);
- },
- // 이름 중복 방지
- handlePopupShowing: function () {
- CmCompanyDataSource.filter([
- ["SiteId", "=", BWA.UserInfo.SiteId()]
- ]);
- CmCompanyDataSource.load().done(function (result) {
- CompanyInfo(result);
- });
- },
- beforeInsertingDataViewModel: function (dataModel, dbModelId) {
- var dfd = $.Deferred();
- var isDuplicated = false;
- for (var i = 0; i < CompanyInfo().length; i++) {
- if (dataModel.Name() == CompanyInfo()[i].Name() && dataModel.CompanyTypeId() == CompanyInfo()[i].CompanyTypeId()) {
- isDuplicated = true;
- }
- }
- if (!BWA.DataUtil.isValidInputValue(dataModel.Name()))
- return dfd.resolve(false, '저장 혹은 수정 반드시 필수 입력 정보를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)');
-
- else {
- if (isDuplicated)
- return dfd.resolve(false, '이미 동일 이름이 존재합니다.');
- else
- return dfd.resolve(true);
- }
- },
-
- beforeUpdateDataViewModel: function () {
- var isDuplicated = false;
- for (var i = 0; i < CompanyInfo().length; i++) {
- if (viewModel.dataModel.Name() == CompanyInfo()[i].Name() && viewModel.dataModel.CompanyTypeId() == CompanyInfo()[i].CompanyTypeId()
- && (RowName() != CompanyInfo()[i].Name() || RowCompanyId() != CompanyInfo()[i].CompanyTypeId())) {
- isDuplicated = true;
- }
- }
- 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;
- }
- }
- });
- var handleSelectBoxCompanyType = function( e ) {
- viewModel.dataModel.CompanyTypeId(e.value);
- };
- viewModel.companyTypeDataSource = companyTypes;
- viewModel.searchCompanyTypes = searchCompanyTypes;
- viewModel.handleSelectBoxCompanyType = handleSelectBoxCompanyType;
- return viewModel;
- };
|