| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658 | 
							- BemsWebApplication.MaterialStockAdjustment = function (params, viewInfo, forApprovalOptions) {
 
-     "use strict";
 
-     var endpointSelector = "";
 
-     if (BemsWebApplication.config.mode == "production") {
 
-         endpointSelector = new DevExpress.EndpointSelector(BemsWebApplication.config.endpoints).config.db.production;
 
-     } else {
 
-         endpointSelector = new DevExpress.EndpointSelector(BemsWebApplication.config.endpoints).config.db.local;
 
-     }
 
-     var materialClassForSearch = ko.observableArray();
 
-     var materialClass = ko.observableArray();
 
-     var MaterialCodeClassDataSource = BemsWebApplication.db.createDataSource('FmsMaterialCodeClass');
 
-     var facilityClasses = [ko.observableArray(), ko.observableArray(), ko.observableArray()];
 
-     var searchFacilityClassValues = [ko.observable(), ko.observable(), ko.observable()];
 
-     var searchFacilityClasses = [ko.observableArray(), ko.observableArray(), ko.observableArray()];
 
-     var first = true, popupVisible1 = ko.observable(false);
 
-     var visibleApprovalButton = ko.observable();
 
-     var businessFieldDataSource = BemsWebApplication.db.createDataSource('CmBusinessField', true, true, true),
 
-         materialClassDataSource = BemsWebApplication.db.createDataSource('FmsMaterialCodeClass', true, true),
 
-         warehouseDataSource = BemsWebApplication.db.createDataSource('FmsMaterialWarehouse', true, true),
 
-         releaseTypeDataSource = BemsWebApplication.db.createDataSource('FmsMaterialCodeReleaseType'),
 
-         adjustmentTypeDataSource = BemsWebApplication.db.createDataSource('FmsMaterialCodeAdjustmentType');
 
-     var materialClasses = [ko.observableArray(), ko.observableArray(), ko.observableArray()],
 
-         businessFields = ko.observableArray(),
 
-         releaseTypes = ko.observableArray(),
 
-         warehouses = ko.observableArray(),
 
-         materials = ko.observableArray(),
 
-         adjustmentTypes = ko.observableArray();
 
-     var forApprovalViewOptions, forApprovalPopupOptions, popup;
 
-     var materialClassesForSearch = [ko.observableArray(), ko.observableArray(), ko.observableArray()],
 
-         materialClassValuesForSearch = [ko.observable(), ko.observable(), ko.observable()],
 
-         businessFieldsForSearch = ko.observableArray(),
 
-         businessFieldIdForSearch = ko.observable(),
 
-         warehousesForSearch = ko.observableArray(),
 
-         warehousesIdForSearch = ko.observable(),
 
-         releaseTypesForSearch = ko.observableArray(),
 
-         adjustmentTypesForSearch = ko.observableArray();
 
-     if (_.isObject(forApprovalOptions)) {
 
-         forApprovalViewOptions = forApprovalOptions.viewOptions;
 
-         forApprovalPopupOptions = forApprovalOptions.popupOptions;
 
-     }
 
-     var deferredForSearch = new $.Deferred();
 
-     var defaultSearchClassArray = $SearchView.createDefaultArray('MaterialClassId');
 
-     var eq = BWA.DataUtil.constructEqualFilter, and = BWA.DataUtil.andFilter;
 
-     function initializeSearchClasses(onlyThird) {
 
-         if (onlyThird === undefined || onlyThird === false) {
 
-             searchFacilityClasses[1](defaultSearchClassArray.slice(0));
 
-             searchFacilityClassValues[1](0);
 
-         }
 
-         searchFacilityClasses[2](defaultSearchClassArray.slice(0));
 
-         searchFacilityClassValues[2](0);
 
-     }
 
-     var handleFirstClassChangedValueInSearchView = function (e) {
 
-         if (first == true && e.value == null) {
 
-             e.value = 0;
 
-             first = false;
 
-             searchFacilityClassValues[0](0);
 
-         }
 
-         if (e.value === 0) {
 
-             initializeSearchClasses();
 
-             return;
 
-         }
 
-         BWA.DataUtil.setArrayDataSourceFilter(MaterialCodeClassDataSource, 'ParentMaterialClassId', e.value, searchFacilityClasses[1], defaultSearchClassArray);
 
-     };
 
-     var handleSecondClassChangedValueInSearchView = function (e) {
 
-         if (searchFacilityClassValues[1]() == null) {
 
-             initializeSearchClasses();
 
-             BWA.DataUtil.setArrayDataSourceFilter(MaterialCodeClassDataSource, 'ParentMaterialClassId', 0, searchFacilityClasses[1], defaultSearchClassArray);
 
-         }
 
-         if (e.value === 0) {
 
-             initializeSearchClasses(true);
 
-             return;
 
-         }
 
-         BWA.DataUtil.setArrayDataSourceFilter(MaterialCodeClassDataSource, 'ParentMaterialClassId', e.value, searchFacilityClasses[2], defaultSearchClassArray);
 
-     };
 
-     var dataSourceOptions = {
 
-         select: [
 
-             'SiteId',
 
-             'BusinessFieldId',
 
-             'MaterialId',
 
-             'FmsMaterial/MaterialCode',
 
-             'FmsMaterial/Name',
 
-             'FmsMaterial/Unit',
 
-             'MaterialReleaseId',
 
-             'ReleaseTypeId',
 
-             'FmsMaterialCodeReleaseType/Name',
 
-             'FmsMaterialCodeAdjustmentType/Name',
 
-             'ReleaseDate',
 
-             'MaterialCount',
 
-             'ReleaseTotalCost',
 
-             'WarehouseId',
 
-             'CmUser1/Name',
 
-             'CmUser/Name',
 
-             'IsConfirmed',
 
-             'ConfirmedUserId',
 
-             'AdjustmentTypeId',
 
-             'StockCountByPoint',
 
-             'FmsMaterial/FirstClassId',
 
-             'FmsMaterial/SecondClassId',
 
-             'FmsMaterial/ThirdClassId',
 
-             'CmBusinessField/Name',
 
-             'FmsMaterial/Standard'
 
-         ],
 
-         filter: [
 
-             ['SiteId', '=', BWA.UserInfo.SiteId()],
 
-             'and',
 
-             ['AdjustmentTypeId', '<>', 0]
 
-         ],
 
-         expand: [
 
-             'CmUser', 'CmUser1',
 
-             'FmsMaterial',
 
-             'FmsMaterialCodeReleaseType',
 
-             'CmBusinessField',
 
-             'FmsMaterialCodeAdjustmentType'
 
-         ],
 
-         extendOptions: {
 
-             forceOriginalField: true
 
-         }
 
-     };
 
-     var viewModel;
 
-     var viewOptions = {
 
-         dataSourceOptions: dataSourceOptions,
 
-         columns: [
 
-             { dataField: 'MaterialReleaseId', caption: $G('number'), width: '8%', alignment: 'center', allowFiltering: false },
 
-             { dataField: 'CmBusinessField/Name', caption: $G('businessFieldName'), width: '10%', alignment: 'center', },
 
-             { dataField: 'FmsMaterialCodeReleaseType/Name', caption: '출고구분', width: '10%', alignment: 'center', visible: false },
 
-             { dataField: 'FmsMaterialCodeAdjustmentType/Name', caption: '정산사유', width: '10%', alignment: 'center' },
 
-             { dataField: 'FmsMaterial/MaterialCode', caption: '자재코드', width: '20%', alignment: 'center', visible: false },
 
-             {
 
-                 dataField: 'FmsMaterial/FirstClassId', width: '13%', caption: '자재(대)', alignment: 'center',
 
-                 customizeText: function (cellInfo) {
 
-                     for (var i = 1; i < materialClassForSearch().length; i++) {
 
-                         if (materialClassForSearch()[i].MaterialClassId() == cellInfo.value) {
 
-                             return materialClassForSearch()[i].Name();
 
-                         }
 
-                     }
 
-                 }
 
-             },
 
-             {
 
-                 dataField: 'FmsMaterial/SecondClassId', width: '13%', caption: '자재(중)', alignment: 'center',
 
-                 customizeText: function (cellInfo) {
 
-                     for (var i = 1; i < materialClassForSearch().length; i++) {
 
-                         if (materialClassForSearch()[i].MaterialClassId() == cellInfo.value) {
 
-                             return materialClassForSearch()[i].Name();
 
-                         }
 
-                     }
 
-                 }
 
-             },
 
-             {
 
-                 dataField: 'FmsMaterial/ThirdClassId', width: '13%', caption: '자재(소)', alignment: 'center',
 
-                 customizeText: function (cellInfo) {
 
-                     for (var i = 1; i < materialClassForSearch().length; i++) {
 
-                         if (materialClassForSearch()[i].MaterialClassId() == cellInfo.value) {
 
-                             return materialClassForSearch()[i].Name();
 
-                         }
 
-                     }
 
-                 }
 
-             },
 
-             { dataField: 'FmsMaterial/Name', caption: '자재명', width: '20%', alignment: 'center' },
 
-             { dataField: 'FmsMaterial/Standard', caption: '규격', width: '20%', alignment: 'center' },
 
-             { dataField: 'FmsMaterial/Unit', caption: '단위', width: '8%', alignment: 'center' },
 
-             { dataField: 'MaterialCount', caption: '수량', width: '8%', alignment: 'center', format: 'fixedPoint' },
 
-             {
 
-                 dataField: 'ReleaseDate', caption: '출고일', width: '20%', alignment: 'center', sortOrder: 'desc', dataType: "shortDate", format: "yyyy-MM-dd hh:mm:ss",
 
-                 customizeText: function (cellInfo) {
 
-                     return cellInfo.valueText;
 
-                 }
 
-             },
 
-             { dataField: 'CmUser1/Name', caption: '등록자', width: '10%', alignment: 'center' },
 
-             { dataField: 'CmUser/Name', caption: '승인자', width: '10%', alignment: 'center' },
 
-         ],
 
-         pager: {
 
-         },
 
-         paging: {
 
-             pageSize: 18,
 
-             enabled: true
 
-         },
 
-         // 2019.04.17 엑셀 출력 기능 추가 ~~~
 
-         "export": {
 
-             enabled: true,
 
-             fileName: '자재 정산 등록 목록'
 
-         },
 
-         onExporting: function (e) {
 
-             e.component.columnOption("MaterialReleaseId", "visible", false);
 
-         },
 
-         onExported: function (e) {
 
-             e.component.columnOption("MaterialReleaseId", "visible", true);
 
-         },
 
-         // ~~~ 2019.04.17 엑셀 출력 기능 추가
 
-         selection: { mode: 'multiple', allowSelectAll: true },
 
-         popupWidth: 1060,
 
-         searchViewItems: [
 
-             { id: 'ReleaseTypeId', ignoreValue: 0, defaultValue: 0, dataSource: releaseTypesForSearch },
 
-             { id: 'FmsMaterialCodeAdjustmentType/Name' },
 
-             { id: 'FmsMaterial/MaterialCode' },
 
-             { id: 'FmsMaterial/Name' },
 
-             { id: 'FmsMaterial/Unit' },
 
-             { id: 'FmsMaterial/Standard' },
 
-             { id: 'ReleaseDate', type: 'dateRange', isOnlyDate: true },
 
-             { id: 'CmUser/Name' },
 
-             { id: 'CmUser1/Name' },
 
-             { id: 'FmsMaterial/FirstClassId', ignoreValue: 0, defaultValue: 0, value: searchFacilityClassValues[0], dataSource: searchFacilityClasses[0], handleChangedValue: handleFirstClassChangedValueInSearchView },
 
-             { id: 'FmsMaterial/SecondClassId', ignoreValue: 0, defaultValue: 0, withCheckId: 'FmsMaterial/FirstClassId', value: searchFacilityClassValues[1], dataSource: searchFacilityClasses[1], handleChangedValue: handleSecondClassChangedValueInSearchView },
 
-             { id: 'FmsMaterial/ThirdClassId', ignoreValue: 0, defaultValue: 0, withCheckId: 'FmsMaterial/FirstClassId', value: searchFacilityClassValues[2], dataSource: searchFacilityClasses[2] },
 
-         ],
 
-         isValidateWithFunction: function (errorMessage) {
 
-             return popup.isValidateWithFunction(errorMessage);
 
-         },
 
-         mandatoryFields: [
 
-                 { dataField: 'ReleaseDate', name: '출고일' },
 
-                 { dataField: 'BusinessFieldId', name: $G('businessField') },
 
-                 { dataField: 'FmsMaterialCodeReleaseType/Name', name: '출고구분' },
 
-                 { dataField: 'FmsMaterialCodeAdjustmentType/Name', name: '정산사유' }
 
-         ],
 
-         handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {
 
-             dataGrid.clearSelection();
 
-             var data = clickRow.data;
 
-             var dataModel = viewModel.dataModel;
 
-             if (popup && popup.handleBeforeShowingPopupForEdit) {
 
-                 popup.handleBeforeShowingPopupForEdit(data, dataModel);
 
-             }
 
-             popupVisible(true);
 
-         },
 
-         handleAfterLoadingModelByKey: function (data, dataViewModel) {
 
-             if (popup && popup.handleAfterLoadingModelByKey) {
 
-                 popup.handleAfterLoadingModelByKey(data, dataViewModel);
 
-             }
 
-         },
 
-         handlePopupShowing: function (isNewInPopup, dataViewModel) {
 
-             //if (isNewInPopup()) {
 
-             //    viewModel.toolbarItems[1].options.visible(true);
 
-             //    viewModel.toolbarItems[2].options.visible(true);
 
-             //}
 
-             //else {
 
-             //    viewModel.toolbarItems[1].options.visible(false);
 
-             //    viewModel.toolbarItems[2].options.visible(false);
 
-             //}
 
-             if (popup && popup.handlePopupShowing) {
 
-                 popup.handlePopupShowing(isNewInPopup, dataViewModel);
 
-             }
 
-         },
 
-         handlePopupShown: function (editMode, isNew, dataViewModel) {
 
-             if (popup && popup.handlePopupShown) {
 
-                 popup.handlePopupShown(editMode, isNew, dataViewModel);
 
-             }
 
-         },
 
-         handleViewShowing: function () {
 
-             MaterialCodeClassDataSource.filter([
 
-                 ['SiteId', '=', BWA.UserInfo.SiteId()]
 
-             ]);
 
-             $.when(
 
-                 MaterialCodeClassDataSource.load()
 
-             ).done(function (Result) {
 
-                 materialClass = ko.observableArray();
 
-                 var cnt = 0;
 
-                 for (var i = 0; i < Result.length; i++) {
 
-                     materialClass.push(Result[i]);
 
-                     if (Result[i].Depth() == 0) {
 
-                         if (cnt == 0) {
 
-                             searchFacilityClasses[0](defaultSearchClassArray.slice(0).concat(Result[i]));
 
-                             cnt++;
 
-                         }
 
-                         else {
 
-                             searchFacilityClasses[0].push(Result[i]);
 
-                         }
 
-                     }
 
-                 }
 
-                 facilityClasses[0](Result[0]);
 
-                 materialClassForSearch($SearchView.createArrayOfSelectBox('MaterialClassId', materialClass()));
 
-             });
 
-             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)]);
 
-                 businessFieldDataSource.filter([
 
-                   eq('SiteId', BWA.UserInfo.SiteId()),
 
-                   and,
 
-                   [eq('BusinessFieldId', BWA.UserInfo.BusinessFieldId()), 'or', eq('BusinessFieldId', 1)]
 
-                 ]);
 
-             }
 
-             materialClassDataSource.filter([
 
-                     ['SiteId', '=', BWA.UserInfo.SiteId()],
 
-                     'and',
 
-                     ['ParentMaterialClassId', '=', null]
 
-             ]);
 
-             adjustmentTypeDataSource.filter([
 
-                 ['AdjustmentTypeId', '<>', 0]
 
-             ]);
 
-             $.when(
 
-                 businessFieldDataSource.load(),
 
-                 materialClassDataSource.load(),
 
-                 warehouseDataSource.load(),
 
-                 releaseTypeDataSource.load(),
 
-                 adjustmentTypeDataSource.load()
 
-             ).done(function (dbBusinessFields, dbMaterialClasses, dbWarehouses, dbreleaseTypes, dbadjustmentTypes) {
 
-                 dbBusinessFields = dbBusinessFields[0];
 
-                 dbMaterialClasses = dbMaterialClasses[0];
 
-                 dbWarehouses = dbWarehouses[0];
 
-                 // TODO : 아래 두코드의 차이점이 무엇인지 확인 필요.
 
-                 //releaseTypes(dbreleaseTypes);
 
-                 // 의도한 대로 동작하려면 아래 코드로 써야 함
 
-                 releaseTypes(dbreleaseTypes[0]);
 
-                 adjustmentTypes(dbadjustmentTypes[0]);
 
-                 materialClasses[0](dbMaterialClasses);
 
-                 materialClassesForSearch[0]($SearchView.createArrayOfSelectBox('MaterialClassId', dbMaterialClasses));
 
-                 initializeSearchClasses();
 
-                 businessFields(dbBusinessFields);
 
-                 warehouses(dbWarehouses);
 
-                 releaseTypesForSearch($SearchView.createArrayOfSelectBox('ReleaseTypeId', releaseTypes()));
 
-                 //adjustmentTypesForSearch($SearchView.createArrayOfSelectBox('AdjustmentTypeId', adjustmentTypes));
 
-                 //adjustmentTypesForSearch(adjustmentTypes);
 
-                 businessFieldsForSearch($SearchView.createArrayOfSelectBox('BusinessFieldId', dbBusinessFields));
 
-                 warehousesForSearch($SearchView.createArrayOfSelectBox('WarehouseId', dbWarehouses));
 
-                 deferredForSearch.resolve();
 
-             });
 
-         },
 
-         handleViewShown: function () {
 
-         },
 
-     };
 
-     if (_.isObject(forApprovalViewOptions)) {
 
-         _.extend(viewOptions, forApprovalViewOptions);
 
-     }
 
-     else {
 
-         // 승인 화면이 아니면 수정에 관련 기능이 필요없다.
 
-         _.extend(viewOptions, {
 
-             isValidateWithFunction: function (errorMessage) {
 
-                 if (popup && popup.isValidateWithFunction) {
 
-                     return popup.isValidateWithFunction(errorMessage);
 
-                 }
 
-                 return true;
 
-             },
 
-             mandatoryFields: [
 
-                 { dataField: 'BusinessFieldId', name: $G('businessField') }
 
-             ],
 
-             handleSaveButtonInPopup: function (isInsert) {
 
-                 if (isInsert === false) {
 
-                     if (popup && popup.handleAfterSave) {
 
-                         popup.handleAfterSave(undefined);
 
-                     }
 
-                 }
 
-             },
 
-             handleAfterSaveInPopup: function (responseKey, response) {
 
-                 if (popup && popup.handleAfterSave) {
 
-                     popup.handleAfterSave(responseKey, response);
 
-                 }
 
-             },
 
-             getAddedToolbarItemsInPopup: function (e) {
 
-                 var hasnotModificationPermission = e.hasnotModificationPermission,
 
-                     dataViewModel = e.dataViewModel,
 
-                     popupVisible = e.popupVisible,
 
-                     isEditModeInPopup = e.isEditModeInPopu,
 
-                     isNewInPopup = e.isNewInPopup
 
-                 return [
 
-                 {
 
-                     location: 'after', widget: 'button', options: {
 
-                         text: $G('materialInsertion'), icon: 'search', visible: isNewInPopup,
 
-                         clickAction: function () {
 
-                             viewModel.materialSearchPopup.show();
 
-                         }
 
-                     }
 
-                 },
 
-                 {
 
-                     location: 'after', widget: 'button', options: {
 
-                         text: $G('materialDeletion'), icon: 'remove', type: 'danger', visible: isNewInPopup,
 
-                         clickAction: function () {
 
-                             if (popup && popup.handleDeleteSelectedMaterials) { popup.handleDeleteSelectedMaterials(); }
 
-                         }
 
-                     }
 
-                 },
 
-                 {
 
-                     location: 'after',
 
-                     widget: 'button',
 
-                     options: {
 
-                         text: $G('approval'), icon: 'save', type: 'success',
 
-                         //visible: visibleApprovalButton,
 
-                         visible: false, // 2016 01 13 hcLee
 
-                         disabled: hasnotModificationPermission,
 
-                         clickAction: function () {
 
-                             dataViewModel.ConfirmedDate(new Date());
 
-                             dataViewModel.IsConfirmed(true);
 
-                             dataViewModel.ConfirmedUserId(BWA.UserInfo.UserId());
 
-                             var keys = BWA.db.extractKeysObject('FmsMaterialRelease', dataViewModel);
 
-                             BWA.db.FmsMaterialRelease.update(keys, dataViewModel.toJS()).done(function (res) {
 
-                                 // TODO : 트랜잭션이 필요할 것으로 예상됨
 
-                                 var postData = dataViewModel.toJS();
 
-                                 var parameters = {
 
-                                     SiteId: dataViewModel.SiteId(),
 
-                                     BusinessFieldId: dataViewModel.BusinessFieldId(),
 
-                                     MaterialId: dataViewModel.MaterialId()
 
-                                 };
 
-                                 // 자재 테이블 업데이트 필요, 자재정산 승인 
 
-                                 BWA.api.post('FmsMaterialRelease/Approval', postData, parameters).done(function () {
 
-                                     utils.toast.show($G('successDatabaseInsertionMsg'));
 
-                                     popupVisible(false);
 
-                                     viewModel.gridView().refresh();
 
-                                 });
 
-                             });
 
-                         }
 
-                     }
 
-                 }
 
-                 ];
 
-             },
 
-         });
 
-     }
 
-     viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsMaterialRelease', viewOptions);
 
-     // 툴바 버튼 관련 수정 
 
-     viewModel.toolbarItems[7].options.clickAction = handlePopupButtonSave;
 
-     //viewModel.toolbarItems[6].options.clickAction = handlePopupButtonSave;
 
-     function handlePopupButtonSave() {
 
-         if (viewModel.isNewInPopup()) {
 
-             if (viewModel.popup.modifiableMaterialDataGridOptions.dataSource().length != 0) {
 
-                 var parameters = {
 
-                     SiteId: BWA.UserInfo.SiteId(),
 
-                     BusinessFieldId: viewModel.dataModel.BusinessFieldId(),
 
-                     //WorkRequestId: viewModel.dataModel.WorkRequestId()
 
-                 };
 
-                 var postData = [];
 
-                 var Totalcnt = viewModel.popup.modifiableMaterialDataGridOptions.dataSource().length, cnt = 0;
 
-                 for (var i = 0; i < Totalcnt; i++) {
 
-                     // AdjustmentTypeName
 
-                     // AdjustmentTypeId == 1 인 경우 재고수량보다 클 수 없음 
 
-                     if (viewModel.dataModel.AdjustmentTypeId() == 1) {
 
-                         if (viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[i].MaterialCount() > (typeof (viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[i].StockCountByPoint) == "function" ? viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[i].StockCountByPoint() : viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[i].StockCountByPoint)) {
 
-                             //viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[i].MaterialCount(viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[i].StockCount());
 
-                             //viewModel.popup.materialGridView.refresh();
 
-                             utils.toast.show('자재손실은 재고수량 보다 클 수 없습니다.', 'error');
 
-                             return;
 
-                         }
 
-                     }
 
-                     var okcnt = 0;
 
-                     if (viewModel.dataModel.AdjustmentTypeId() == 2) {
 
-                         var dataSource = new DevExpress.data.DataSource({
 
-                             store: new DevExpress.data.ODataStore({
 
-                                 url: endpointSelector + "/FmsMaterialStored"
 
-                             }),
 
-                             requireTotalCount: true,
 
-                             pageSize: 3000
 
-                         });
 
-                         dataSource.filter([
 
-                                 ["SiteId", "=", BWA.UserInfo.SiteId()],
 
-                                 "and",
 
-                                 ["MaterialId", "=", (typeof (viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[i].MaterialId) == "function" ? viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[i].MaterialId() : viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[i].MaterialId)]
 
-                         ]);
 
-                         dataSource.load()
 
-                         .done(function (result) {
 
-                             if (result != 0) {
 
-                                 var varMaterialId = result[0].MaterialId;
 
-                                 var MaterialId, StockCountByPoint, MaterialCount;
 
-                                 for (var i = 0; i < result.length; i++) {
 
-                                     okcnt += (result[i].StoredCount - result[i].RemainStoredCount);
 
-                                 }
 
-                                 for (var j = 0; j < Totalcnt; j++) {
 
-                                     if (varMaterialId == (typeof (viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[j].MaterialId) == "function" ? viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[j].MaterialId() : viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[j].MaterialId)) {
 
-                                         StockCountByPoint = (typeof (viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[j].StockCountByPoint) == "function" ? viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[j].StockCountByPoint() : viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[j].StockCountByPoint);
 
-                                         MaterialId = (typeof (viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[j].MaterialId) == "function" ? viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[j].MaterialId() : viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[j].MaterialId);
 
-                                         MaterialCount = (typeof (viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[j].MaterialCount) == "function" ? viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[j].MaterialCount() : viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[j].MaterialCount);
 
-                                     }
 
-                                 }
 
-                                 if (MaterialCount <= okcnt) {
 
-                                     viewModel.dataModel.StockCountByPoint(StockCountByPoint);
 
-                                     viewModel.dataModel.MaterialId(MaterialId);
 
-                                     viewModel.dataModel.MaterialCount(MaterialCount);
 
-                                     viewModel.dataModel.ReleaseTotalCost(0);
 
-                                     postData.push(viewModel.dataModel.toJS());
 
-                                 }
 
-                                 else {
 
-                                     utils.toast.show('반납할 재고가 없습니다.', 'error');
 
-                                     cnt++;
 
-                                     return;
 
-                                 }
 
-                                 cnt++;
 
-                                 if (Totalcnt == cnt) {
 
-                                     BWA.api.post('FmsMaterialRelease/Add', postData, parameters).done(function () {
 
-                                         utils.toast.show($G('successDatabaseInsertionMsg'));
 
-                                         viewModel.popupVisible(false);
 
-                                         viewModel.gridView().refresh();
 
-                                     });
 
-                                 }
 
-                             }
 
-                             else {
 
-                                 cnt++;
 
-                                 utils.toast.show('반납할 재고가 없습니다.', 'error');
 
-                             }
 
-                         });
 
-                     }
 
-                     else {
 
-                         viewModel.dataModel.StockCountByPoint((typeof (viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[i].StockCountByPoint) == "function" ? viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[i].StockCountByPoint() : viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[i].StockCountByPoint));
 
-                         viewModel.dataModel.MaterialId((typeof (viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[i].MaterialId) == "function" ? viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[i].MaterialId() : viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[i].MaterialId));
 
-                         viewModel.dataModel.MaterialCount((typeof (viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[i].MaterialCount) == "function" ? viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[i].MaterialCount() : viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[i].MaterialCount));
 
-                         viewModel.dataModel.ReleaseTotalCost(0);
 
-                         postData.push(viewModel.dataModel.toJS());
 
-                         cnt++;
 
-                         if (Totalcnt == cnt) {
 
-                             BWA.api.post('FmsMaterialRelease/Add', postData, parameters).done(function () {
 
-                                 utils.toast.show($G('successDatabaseInsertionMsg'));
 
-                                 viewModel.popupVisible(false);
 
-                                 viewModel.gridView().refresh();
 
-                             });
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-             else {
 
-                 utils.toast.show('선택된 자재가 없습니다.', 'error');
 
-             }
 
-         }
 
-         else if (viewModel.isEditModeInPopup()) {
 
-             viewModel.dataModel.MaterialCount(viewModel.popup.modifiableMaterialDataGridOptions.dataSource()[0].MaterialCount());
 
-             var keys = BWA.db.extractKeysObject('FmsMaterialRelease', viewModel.dataModel);
 
-             BWA.db.FmsMaterialRelease.update(keys, viewModel.dataModel.toJS()).done(function (res) {
 
-                 utils.toast.show($G('successDatabaseUpdateMsg'));
 
-                 viewModel.popupVisible(false);
 
-                 viewModel.gridView().refresh();
 
-             });
 
-         }
 
-     };
 
-     var commandInsertButtonOptions = [
 
-     {
 
-         id: 'create1',
 
-         title: '등록',
 
-         disabled: viewModel.hasnotModificationPermission,
 
-         action: function () {
 
-             viewModel.isNewInPopup(true);
 
-             viewModel.viewModeInPopup(false);
 
-             viewModel.isEditModeInPopup(true);
 
-             viewModel.visibleDeleteButton(false);
 
-             viewModel.visibleEditButton(false);
 
-             viewModel.popupVisible(true);
 
-         }
 
-     }, // 2016 01 13 승인화면 따로 추가 hcLee
 
-     {
 
-         id: 'create2',
 
-         title: '승인',
 
-         disabled: viewModel.hasnotModificationPermission,
 
-         action: handleApproveSelectedItem
 
-     }];
 
-     viewModel.businessFields = businessFields;
 
-     viewModel.releaseTypes = releaseTypes;
 
-     viewModel.adjustmentTypes = adjustmentTypes;
 
-     viewModel.visibleApprovalButton = visibleApprovalButton;
 
-     viewModel.commandInsertButtonOptions = commandInsertButtonOptions;
 
-     var isUsePopup = forApprovalPopupOptions && forApprovalPopupOptions.isUsePopup !== false;
 
-     if ((forApprovalPopupOptions && _.isFunction(forApprovalPopupOptions.popupCreatorFunc))) {
 
-         popup = viewModel.popup = forApprovalPopupOptions.popupCreatorFunc(viewInfo, viewModel, forApprovalPopupOptions);
 
-     }
 
-     else {
 
-         popup = viewModel.popup = BWA.Popup.MaterialStockAdjustment.create(viewInfo, viewModel, forApprovalPopupOptions);
 
-     }
 
-     function handleApproveSelectedItem() {
 
-         var materialStoredList = viewModel.gridView().getSelectedRowsData();
 
-         var list = _.reject(materialStoredList, function (x) {
 
-             try {
 
-                 return x.IsConfirmed();
 
-             } catch (e) {
 
-                 return x.IsConfirmed;
 
-             }
 
-         });
 
-         if (_.isEmpty(list)) {
 
-             utils.toast.show('승인 할 정산 항목이 없습니다. 이미 승인되었거나 선택된 항목이 없습니다.', 'error');
 
-             return;
 
-         }
 
-         var postData = list; // undefined;
 
-         list.forEach(function (item) {
 
-             item.IsConfirmed = true;
 
-             item.ConfirmedUserId = BWA.UserInfo.UserId();
 
-             try {
 
-                 item.MaterialReleaseId = item.MaterialReleaseId();
 
-             } catch (e) {
 
-                 item.MaterialReleaseId = item.MaterialReleaseId;
 
-             }
 
-         });
 
-         return BWA.api.post('FmsMaterialRelease/ApprovalMany', postData).then(function () {
 
-             viewModel.refreshList();
 
-             utils.toast.show('성공적으로 승인 처리되었습니다.');
 
-         });
 
-     }
 
-     viewModel.handleSecondClassChangedValueInSearchView1 = handleSecondClassChangedValueInSearchView;
 
-     viewModel.handleFirstClassChangedValueInSearchView1 = handleFirstClassChangedValueInSearchView;
 
-     return viewModel;
 
- };
 
 
  |