123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- BemsWebApplication.MaterialWarehouse = function(params, viewInfo) {
- 'use strict';
- var businessFieldDataSource = BemsWebApplication.db.createDataSource('CmBusinessField', true, true, true);
- var businessFieldsForSearch = ko.observableArray(),
- BusinessFieldName = ko.observableArray(),
- businessFields = ko.observableArray();
- var eq = BWA.DataUtil.constructEqualFilter,
- and = BWA.DataUtil.andFilter;
- var deferredForSearch = new $.Deferred();
- var MaterialWarehouseInfo = ko.observableArray();
- var FmsMaterialWarehouseDataSource = BemsWebApplication.db.createDataSource('FmsMaterialWarehouse');
- var RowBusinessFieldId, RowName;
- var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsMaterialWarehouse', {
- dataSourceOptions: {
- select: ['SiteId', 'WarehouseId', 'BusinessFieldId', 'Name', 'IsUse', 'CmBusinessField/Name'],
- expand: ["CmBusinessField"],
- extendOptions: {
- forceOriginalField: true
- },
- filter: [
- eq('SiteId', BWA.UserInfo.SiteId()),
- // 2016 05 02 hcLee
- and,
- ['BusinessFieldId', '<>', 1],
- ]
- },
- columns: [
- { dataField: 'WarehouseId', caption: $G('number'), width: '20%', alignment: 'center' ,sortOrder:'desc' },
- { dataField: 'CmBusinessField/Name', caption: $G('businessField'), width: '20%', alignment: 'center' },
- { dataField: 'Name', caption: $G('warehouseName'), width: '40%', alignment: 'center' },
- utils.datagrid.columnIsUse('20%')
- ],
- searchViewItems: [
- { id: 'BusinessFieldId', ignoreValue: 0, defaultValue: 0, dataSource: businessFieldsForSearch },
- { id: 'Name' }
- ],
- promiseDataInSearchView: deferredForSearch.promise(),
- handleViewShowing: function (dataModel) {
- var useBusinessFiltering = BWA.UserInfo.isDependBusinessField(viewInfo.viewName)
- if (useBusinessFiltering) {
- this.dataSourceOptions.filter.push('and');
- //this.dataSourceOptions.filter.push([eq('BusinessFieldId', BWA.UserInfo.BusinessFieldId()), 'or', eq('BusinessFieldId', 1)]);
- this.dataSourceOptions.filter.push([eq('BusinessFieldId', BWA.UserInfo.BusinessFieldId())]);
- businessFieldDataSource.filter([
- eq('SiteId', BWA.UserInfo.SiteId()),
- and,
- //[eq('BusinessFieldId', BWA.UserInfo.BusinessFieldId()), 'or', eq('BusinessFieldId', 1)]
- [eq('BusinessFieldId', BWA.UserInfo.BusinessFieldId()), 'and', ['BusinessFieldId', '<>', 1]]
- ]);
- }
- else {
- businessFieldDataSource.filter([
- eq('SiteId', BWA.UserInfo.SiteId()),
- and,
- ['BusinessFieldId', '<>', 1]]);
- }
- businessFieldDataSource.load().done(function (dbBusinessFields) {
- businessFields(dbBusinessFields);
- businessFieldsForSearch($SearchView.createArrayOfSelectBox('BusinessFieldId', dbBusinessFields));
- });
- },
- handleViewShown: function() {
-
- },
- handleDataGridRowClick: function(id, dataGrid, clickRow, popupVisible) {
- dataGrid.clearSelection();
- var data = clickRow.data;
- var dataModel = viewModel.dataModel;
- BusinessFieldName($KoSet(dataModel.BusinessFieldName, data['CmBusinessField/Name']));
- RowName = data.Name;
- RowBusinessFieldId = data.BusinessFieldId;
- popupVisible(true);
- },
- popupWidth: 480,
- // 이름 중복 방지
- handlePopupShowing: function () {
- FmsMaterialWarehouseDataSource.filter([
- ["SiteId", "=", BWA.UserInfo.SiteId()]
- ]);
- FmsMaterialWarehouseDataSource.load().done(function (result) {
- MaterialWarehouseInfo(result);
- });
- },
- beforeInsertingDataViewModel: function (dataModel, dbModelId) {
- var dfd = $.Deferred();
- var isDuplicated = false;
- for (var i = 0; i < MaterialWarehouseInfo().length; i++) {
- if (dataModel.Name() == MaterialWarehouseInfo()[i].Name() && dataModel.BusinessFieldId() == MaterialWarehouseInfo()[i].BusinessFieldId()) {
- 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 < MaterialWarehouseInfo().length; i++) {
- if (viewModel.dataModel.Name() == MaterialWarehouseInfo()[i].Name() && viewModel.dataModel.BusinessFieldId() == MaterialWarehouseInfo()[i].BusinessFieldId()
- && (RowName() != MaterialWarehouseInfo()[i].Name() || RowBusinessFieldId() != MaterialWarehouseInfo()[i].BusinessFieldId())) {
- 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;
- }
- }
- });
- viewModel.businessFields = businessFields;
- viewModel.BusinessFieldName = BusinessFieldName;
- return viewModel;
- };
|