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;
- };
|