| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424 | 
							- $(function () {
 
-     'use strict';
 
-     var materialClassForSearch = ko.observableArray();
 
-     var materialClass = ko.observableArray();
 
-     var MaterialCodeClassDataSource = BemsWebApplication.db.createDataSource('FmsMaterialCodeClass');
 
-     BemsWebApplication.Popup.MaterialStockAdjustment = {
 
-         create: function (viewInfo, viewModel, forApprovalOptions) {
 
-             var materials = ko.observableArray(),
 
-                 materialsInView = ko.observableArray(),
 
-                 businessFields = ko.observableArray();
 
-             var materialFactory = BWA.Factory.Material,
 
-                 //purchaseProgressCode = BWA.Code.PurchaseProgress,
 
-                 materialGridView,
 
-                 materialDataGridOptions,
 
-                 modifiableMaterialDataGridOptions = undefined;
 
-             var materialsDataSource = materialFactory.getBasicDataSourceRef({
 
-                 dbModeIId: 'FmsMaterialRelease',
 
-                 primaryKeyDataField: 'MaterialReleaseId'
 
-             });
 
-             function isValidateWithFunction(errorMessage) {
 
-                 if (_.isEmpty(materials())) {
 
-                     errorMessage.message = '구매요청한 자재가 없습니다.';
 
-                     return false;
 
-                 }
 
-                 return true;
 
-             }
 
-             function handlePopupShowing(isNewInPopup, dataModel) {
 
-                 $("#gridContainer2").dxDataGrid({
 
-                     paging: {
 
-                         pageSize: 9,
 
-                         enabled: true
 
-                     }
 
-                 });
 
-                 $("#gridContainer3").dxDataGrid({
 
-                     paging: {
 
-                         pageSize: 9,
 
-                         enabled: true
 
-                     }
 
-                 });
 
-                 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]);
 
-                     }
 
-                     materialClassForSearch($SearchView.createArrayOfSelectBox('MaterialClassId', materialClass()));
 
-                 });
 
-                 viewModel.visibleApprovalButton(false);
 
-                 viewModel.visibleEditButton(false);
 
-                 viewModel.visibleDeleteButton(false);
 
-                 //viewModel.isEditModeInPopup.subscribe(function (value) {
 
-                 //    if (value) {
 
-                 //        visibleApprovalButton(false);
 
-                 //    }
 
-                 //    else {
 
-                 //        if (viewModel.dataModel.IsConfirmed()) {
 
-                 //            visibleApprovalButton(false);
 
-                 //        } else {
 
-                 //            visibleApprovalButton(true);
 
-                 //        }
 
-                 //    }
 
-                 //    //utils.toast.show('isEditModeInPopup : ' + value);
 
-                 //});
 
-                 //viewModel.isNewInPopup.subscribe(function (value) {
 
-                 //    visibleApprovalButton(false);
 
-                 //});
 
-                 var userInfo = BWA.UserInfo;
 
-                 if (isNewInPopup()) {
 
-                     if (userInfo.isDependBusinessField(viewInfo.viewName)) {
 
-                         BWA.db.CmBusinessField.byKey({
 
-                             SiteId: userInfo.SiteId(), BusinessFieldId: userInfo.BusinessFieldId()
 
-                         }).done(function (businessField) {
 
-                             dataModel.BusinessFieldName(businessField.Name);
 
-                         });
 
-                     }
 
-                     dataModel.BusinessFieldId(userInfo.BusinessFieldId());
 
-                     dataModel.AdjustmentUserId(userInfo.UserId());
 
-                     dataModel.AdjustmentUserName(userInfo.Name());
 
-                     dataModel.IsConfirmed(false);
 
-                     dataModel.AdjustmentTypeId(1);
 
-                     dataModel.ReleaseTypeId(2);
 
-                     dataModel.ReleaseTypeName(viewModel.releaseTypes()[1].Name());
 
-                     dataModel.ReleaseDate(new Date());
 
-                     dataModel.ReleaseTotalCost(0);
 
-                 }
 
-             }
 
-             function handleDeleteSelectedMaterials() {
 
-                 var rows = materialGridView.getSelectedRowsData();
 
-                 if (_.isEmpty(rows)) {
 
-                     utils.toast.show('선택된 자재가 없습니다.', 'error');
 
-                     return;
 
-                 }
 
-                 _.each(rows, function (row) {
 
-                     var array = materials();
 
-                     var length = array.length;
 
-                     var id = (typeof (row.MaterialId) == "function" ? row.MaterialId() : row.MaterialId);
 
-                     for (var i = 0 ; i < length ; i++) {
 
-                         if (id === (typeof (array[i].MaterialId) == "function" ? array[i].MaterialId() : array[i].MaterialId)) {
 
-                             materials().splice(i, 1);
 
-                             break;
 
-                         }
 
-                     }
 
-                 });
 
-                 materialGridView.refresh();
 
-             }
 
-             function handlePopupShown(editMode, isNew, dataViewModel) {
 
-                 if (isNew) {
 
-                     viewModel.visibleApprovalButton(false);
 
-                 }
 
-                 else {
 
-                     if (viewModel.dataModel.IsConfirmed()) {
 
-                         viewModel.visibleApprovalButton(false);
 
-                         viewModel.visibleEditButton(false);
 
-                         viewModel.visibleDeleteButton(false);
 
-                     }
 
-                     else {
 
-                         viewModel.visibleApprovalButton(true);
 
-                         viewModel.visibleEditButton(true);
 
-                         viewModel.visibleDeleteButton(true);
 
-                     }
 
-                 }
 
-             }
 
-             function handleAfterLoadingModelByKey(data, dataViewModel) {
 
-                 var eq = BWA.DataUtil.constructEqualFilter;
 
-                 var and = BWA.DataUtil.andFilter;
 
-                 materialsDataSource.filter([
 
-                     eq('SiteId', dataViewModel.SiteId()),
 
-                     and,
 
-                     eq('BusinessFieldId', dataViewModel.BusinessFieldId()),
 
-                     and,
 
-                     eq('MaterialReleaseId', dataViewModel.MaterialReleaseId())
 
-                 ]);
 
-                 materialsDataSource.load().done(function (dbMaterials) {
 
-                     materialsInView(dbMaterials);
 
-                 });
 
-             }
 
-             function handleBeforeShowingPopupForEdit(rowData, dataViewModel) {
 
-                 dataViewModel.BusinessFieldName(rowData['CmBusinessField/Name']());
 
-                 dataViewModel.AdjustmentUserName(rowData['CmUser1/Name']());
 
-                 dataViewModel.ReleaseTypeName(rowData['FmsMaterialCodeReleaseType/Name']());
 
-                 dataViewModel.AdjustmentTypeName(rowData['FmsMaterialCodeAdjustmentType/Name']());
 
-                 dataViewModel.ReleaseTotalCost(rowData['ReleaseTotalCost']());
 
-             }
 
-             viewModel.popupVisible.subscribe(function (visible) {
 
-                 if (!visible) {
 
-                     materialsInView([]);
 
-                     materials([]);
 
-                 }
 
-             });
 
-             viewModel.isEditModeInPopup.subscribe(function (isEditMode) {
 
-                 if (isEditMode) {
 
-                     viewModel.visibleApprovalButton(false);
 
-                     materials(materialsInView.slice(0));
 
-                 } else {
 
-                     viewModel.visibleApprovalButton(true);
 
-                 }
 
-             });
 
-             viewModel.dataModel.BusinessFieldName = ko.observable();
 
-             viewModel.dataModel.AdjustmentUserName = ko.observable();
 
-             viewModel.dataModel.ApprovalUserName = ko.observable();
 
-             viewModel.dataModel.ReleaseTypeName = ko.observable();
 
-             viewModel.dataModel.AdjustmentTypeName = ko.observable();
 
-             viewModel.dataModel.ReleaseTotalCost = ko.observable();
 
-             var materialColumns = materialFactory.getColumns([
 
-                 {
 
-                     dataField: 'FirstClassId', width: '20%', 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: 'SecondClassId', width: '20%', 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: 'ThirdClassId', width: '20%', 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: 'MaterialCode', width: '30%' },
 
-                 { dataField: 'Name', width: '30%' },
 
-                 { dataField: 'StockCountByPoint', caption: '재고수량', alignment: 'center', width: '20%', format: 'currency' },
 
-             ]);
 
-             materialDataGridOptions = utils.datagrid.defaultOptions({
 
-                 width: 630,
 
-                 visible: viewModel.viewModeInPopup,
 
-                 pager: {
 
-                     //showPageSizeSelector: false,
 
-                     //allowedPageSizes: []
 
-                 },
 
-                 paging: {
 
-                     pageSize: 10,
 
-                     enabled: true
 
-                 },
 
-                 dataSource: materialsInView,
 
-                 columns: materialColumns.concat([
 
-                     { dataField: 'MaterialCount', width: '20%', alignment: 'center', caption: $G('materialCount'), format: 'currency' }
 
-                 ])
 
-             });
 
-             if (_.isObject(forApprovalOptions) === false) {
 
-                 modifiableMaterialDataGridOptions = utils.datagrid.defaultOptions({
 
-                     width: 630,
 
-                     pager: {
 
-                         showPageSizeSelector: false,
 
-                         allowedPageSizes: []
 
-                     },
 
-                     visible: viewModel.isEditModeInPopup,
 
-                     dataSource: materials,
 
-                     selection: { mode: 'multiple', allowSelectAll: true },
 
-                     columns: materialColumns.concat([
 
-                     {
 
-                         dataField: 'MaterialCount', width: '20%', type: 'number',
 
-                         caption: $G('materialCount'), alignment: 'center',
 
-                         cellTemplate: utils.datagrid.getNumberBoxDataGridTemplateFunc({
 
-                             min: 1,
 
-                             max: 1000000,
 
-                             dataField: 'MaterialCount',
 
-                             convertValueWhenValueChanged: function (value) {
 
-                                 return Math.max(1, value);
 
-                             }
 
-                         })
 
-                     }]),
 
-                     cellClick: function (e) {
 
-                         utils.datagrid.cellClickEventForDataGridTemplate(e, 'MaterialCount');
 
-                     },
 
-                     contentReadyAction: function (e) {
 
-                         materialGridView = e.component;
 
-                     },
 
-                 });
 
-                 viewModel.materialSearchPopup = BWA.Popup.Material.create(viewModel, {
 
-                     isMultipleSelect: true,
 
-                     onSelectedMaterials: function (selectedMaterials) {
 
-                         var materialReleaseId = viewModel.dataModel.MaterialReleaseId();
 
-                         _.each(selectedMaterials, function (sm) {
 
-                             // 어차피 SiteId와 BusinessField는 동일 할 수 밖에 없으므로 비교하지 않는다.
 
-                             var found = _.some(materials(), function (m) {
 
-                                 try {
 
-                                     return m.MaterialId() === sm.MaterialId();
 
-                                 } catch (e) {
 
-                                     return m.MaterialId === sm.MaterialId;
 
-                                 }
 
-                             });
 
-                             if (found) return;
 
-                             materials.push({
 
-                                 SiteId: sm.SiteId,
 
-                                 //PurchaseRequestId: ko.observable(purchaseRequestId),
 
-                                 MaterialId: sm.MaterialId,
 
-                                 Name: sm.Name,
 
-                                 MaterialCode: sm.MaterialCode,
 
-                                 FirstClassId: sm.FirstClassId,
 
-                                 SecondClassId: sm.SecondClassId,
 
-                                 ThirdClassId: sm.ThirdClassId,
 
-                                 //MaterialCount: sm.MaterialCount,
 
-                                 MaterialCount: ko.observable(1),
 
-                                 FinalPrice: sm.FinalPrice,
 
-                                 // 자재정산은 반납도 하는 관계로 수량 한도를 설정하지 않음
 
-                                 StockCountByPoint: sm.StockCount
 
-                             });
 
-                         });
 
-                         materialGridView.refresh();
 
-                     }
 
-                 });
 
-             }
 
-             return {
 
-                 materialGridView: materialGridView,
 
-                 materials: materials,
 
-                 businessFields: businessFields,
 
-                 isValidateWithFunction: isValidateWithFunction,
 
-                 materialDataGridOptions: materialDataGridOptions,
 
-                 modifiableMaterialDataGridOptions: modifiableMaterialDataGridOptions,
 
-                 handleAfterLoadingModelByKey: handleAfterLoadingModelByKey,
 
-                 //handleAfterSave: handleAfterSave,
 
-                 handlePopupShowing: handlePopupShowing,
 
-                 handlePopupShown: handlePopupShown,
 
-                 handleBeforeShowingPopupForEdit: handleBeforeShowingPopupForEdit,
 
-                 handleDeleteSelectedMaterials: handleDeleteSelectedMaterials
 
-             };
 
-         }
 
-     }
 
- });
 
- // 구매신청 정보가 저장된 후에 호출 된다. 
 
- // 등록이면 responseKey가 있고, 수정이면 없다.
 
- //function handleAfterSave(responseKey) {
 
- //var array = materials();
 
- //if (_.isEmpty(array)) {
 
- //    return;
 
- //}
 
- //var siteId, purchaseRequestId, businessFieldId;
 
- //if (_.isUndefined(responseKey)) {
 
- //    var dataModel = viewModel.dataModel;
 
- //    siteId = dataModel.SiteId();
 
- //    businessFieldId = dataModel.BusinessFieldId();
 
- //    purchaseRequestId = dataModel.PurchaseRequestId();
 
- //}
 
- //else {
 
- //    siteId = responseKey.SiteId;
 
- //    businessFieldId = responseKey.BusinessFieldId;
 
- //    purchaseRequestId = responseKey.PurchaseRequestId;
 
- //}
 
- //var postData;
 
- //var parameters = {
 
- //    SiteId: siteId,
 
- //    BusinessFieldId: businessFieldId,
 
- //    PurchaseRequestId: purchaseRequestId 
 
- //};
 
- //postData = _.map(array, function(m) {
 
- //    return {
 
- //        SiteId: siteId,
 
- //        BusinessFieldId: businessFieldId,
 
- //        PurchaseRequestId: purchaseRequestId,
 
- //        MaterialId: m.MaterialId(),
 
- //        MaterialCount: m.MaterialCount()
 
- //    };
 
- //});
 
- //BWA.api.post('FmsMaterialPurchaseRequestMaterial', postData, parameters);
 
- //}
 
- //function handleAfterLoadingModelByKey(data, dataViewModel) {
 
- //if (dataViewModel.ProgressId() !== $Code.PurchaseProgress.PURCHASE_REQUEST) {
 
- //    viewModel.visibleEditButton(false);
 
- //    viewModel.visibleDeleteButton(false);
 
- //}
 
- //dataViewModel.ProgressName(purchaseProgressCode.getName(dataViewModel.ProgressId()));
 
- //var eq = BWA.DataUtil.constructEqualFilter;
 
- //var and = BWA.DataUtil.andFilter;
 
- //materialsDataSource.filter([
 
- //    eq('SiteId', dataViewModel.SiteId()),
 
- //    and,
 
- //    eq('BusinessFieldId', dataViewModel.BusinessFieldId()),
 
- //    and,
 
- //    eq('PurchaseRequestId', dataViewModel.PurchaseRequestId())
 
- //]);
 
- //materialsDataSource.load().done(function(dbMaterials) {
 
- //    materialsInView(dbMaterials);
 
- //});
 
- //}
 
 
  |