| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 | 
							- $(function () {
 
-     'use strict';
 
-     BemsWebApplication.Popup.PurchaseOrderStatusByPurchaseRequest = {
 
-         create: function (viewInfo, viewModel, forApprovalOptions) {
 
-             var materials = ko.observableArray();
 
-             var materialFactory = BWA.Factory.Material,
 
-                 purchaseProgressCode = BWA.Code.PurchaseProgress,
 
-                                 materialGridView,
 
-                 materialDataGridOptions = undefined;
 
-             var materialsDataSource = materialFactory.getBasicDataSourceRef({
 
-                 dbModeIId: 'FmsMaterialPurchaseRequestMaterial',
 
-                 primaryKeyDataField: 'PurchaseRequestId'
 
-             }),
 
-                 materialsForPurchaseOrderDataSource = materialFactory.getBasicDataSourceRef({
 
-                     dbModeIId: 'FmsMaterialPurchaseOrderMaterial',
 
-                     primaryKeyDataField: 'PurchaseOrderId',
 
-                     expand: ['FmsMaterialPurchaseOrder'],
 
-                     moreSelectFields: [
 
-                         'FmsMaterialPurchaseOrder/StoredDueDate',
 
-                         'FmsMaterialPurchaseOrder/OrderDate',
 
-                         'FmsMaterial/TradeCompanyId',
 
-                         'FmsMaterial/FinalPrice'
 
-                     ]
 
-                 });
 
-             function handlePopupShowing(isNewInPopup, dataModel) {
 
-                 $("#gridContainer2").dxDataGrid({
 
-                     paging: {
 
-                         pageSize: 12,
 
-                         enabled: true
 
-                     }
 
-                 });
 
-                 var userInfo = BWA.UserInfo;
 
-                 if (isNewInPopup()) {
 
-                     var progressId = $Code.PurchaseProgress.PURCHASE_REQUEST;
 
-                     if (userInfo.isDependBusinessField(viewInfo.viewName)) {
 
-                         BWA.db.CmBusinessField.byKey({
 
-                             SiteId: userInfo.SiteId(),
 
-                             BusinessFieldId: userInfo.BusinessFieldId()
 
-                         }).done(function (businessField) {
 
-                             dataModel.BusinessFieldName(businessField.Name);
 
-                         });
 
-                     }
 
-                     dataModel.ProgressId(progressId);
 
-                     dataModel.ProgressName(purchaseProgressCode.getName(progressId));
 
-                     dataModel.BusinessFieldId(userInfo.BusinessFieldId());
 
-                     dataModel.RequestUserId(userInfo.UserId());
 
-                     dataModel.RequesterName(userInfo.Name());
 
-                     dataModel.RequestDate(new Date());
 
-                     dataModel.PurchaseHopeDate(moment().add(1, 'd').toDate());
 
-                 }
 
-             }
 
-             function handleDeleteSelectedMaterials() {
 
-             }
 
-             function handlePopupShown(editMode, isNew, dataViewModel) {
 
-             }
 
-             // 구매신청 정보가 저장된 후에 호출 된다. 
 
-             // 등록이면 responseKey가 있고, 수정이면 없다.
 
-             function handleAfterSave(responseKey) {
 
-             }
 
-             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())
 
-                 ]);
 
-                 materialsForPurchaseOrderDataSource.filter([
 
-                     eq('SiteId', dataViewModel.SiteId()),
 
-                     and,
 
-                     eq('BusinessFieldId', dataViewModel.BusinessFieldId()),
 
-                     and,
 
-                     eq('FmsMaterialPurchaseOrder/PurchaseRequestId', dataViewModel.PurchaseRequestId())
 
-                 ]);
 
-                 $.when(
 
-                     materialsDataSource.load(),
 
-                     materialsForPurchaseOrderDataSource.load())
 
-                 .done(function (dbRequestMaterials, dbOrderMaterials) {
 
-                     dbRequestMaterials = dbRequestMaterials[0];
 
-                     dbOrderMaterials = dbOrderMaterials[0];
 
-                     var materialArray = [];
 
-                     _.each(dbRequestMaterials, function (requestMaterial) {
 
-                         var materialId = requestMaterial.MaterialId();
 
-                         var material = BWA.DataUtil.convertViewModelToJS(requestMaterial);
 
-                         var orderMaterial = BWA.DataUtil.popFromArray(dbOrderMaterials, function (m) {
 
-                             return (m.MaterialId() === materialId);
 
-                         });
 
-                         if (orderMaterial) {
 
-                             material.PurchaseOrderCount = orderMaterial.MaterialCount();
 
-                             material.StoredDueDate = orderMaterial['FmsMaterialPurchaseOrder/StoredDueDate']();
 
-                             material.OrderDate = orderMaterial['FmsMaterialPurchaseOrder/OrderDate']();
 
-                         }
 
-                         materialArray.push(material);
 
-                     });
 
-                     if (_.isEmpty(dbOrderMaterials) === false) {
 
-                         _.each(dbOrderMaterials, function (m) {
 
-                             // 같은 자재에 대해 발주가 여러개라면 더해준다.
 
-                             var dupOrderMaterial = _.find(materialArray, function (mm) {
 
-                                 return mm.MaterialId === m.MaterialId();
 
-                             });
 
-                             if (dupOrderMaterial) {
 
-                                 dupOrderMaterial.PurchaseOrderCount += m.MaterialCount();
 
-                                 return;
 
-                             }
 
-                             var material = BWA.DataUtil.convertViewModelToJS(m);
 
-                             material.PurchaseOrderCount = m.MaterialCount();
 
-                             delete material.MaterialCount;
 
-                             material.StoredDueDate = m['FmsMaterialPurchaseOrder/StoredDueDate']();
 
-                             material.OrderDate = m['FmsMaterialPurchaseOrder/OrderDate']();
 
-                             materialArray.push(material);
 
-                         });
 
-                     }
 
-                     materials(materialArray);
 
-                 });
 
-             }
 
-             function handleBeforeShowingPopupForEdit(rowData, dataViewModel) {
 
-                 dataViewModel.BusinessFieldName = $KoSet(dataViewModel.BusinessFieldName, rowData['CmBusinessField/Name']);
 
-                 dataViewModel.RequesterName = $KoSet(dataViewModel.RequesterName, rowData['CmUser/Name']);
 
-                 dataViewModel.ApprovalUserName = $KoSet(dataViewModel.ApprovalUserName, rowData['CmUser1/Name']);
 
-                 dataViewModel.PurchaseTypeName = $KoSet(dataViewModel.PurchaseTypeName, rowData['FmsMaterialCodePurchaseType/Name']);
 
-             }
 
-             viewModel.popupVisible.subscribe(function (visible) {
 
-                 if (!visible) {
 
-                     materials([]);
 
-                 }
 
-             });
 
-             viewModel.dataModel.BusinessFieldName = ko.observable();
 
-             viewModel.dataModel.ProgressName = ko.observable();
 
-             viewModel.dataModel.RequesterName = ko.observable();
 
-             viewModel.dataModel.PurchaseTypeName = ko.observable();
 
-             var materialColumns = materialFactory.getColumns([
 
-                 { dataField: 'MaterialCode', width: '20%' },
 
-                 { dataField: 'Name', width: '30%' },
 
-                 { dataField: 'Standard', width: '30%', alignment: 'center', caption: '규격' },
 
-                 { dataField: 'Unit', width: '15%', alignment: 'center', caption: '단위' }
 
-             ]);
 
-             materialDataGridOptions = utils.datagrid.defaultOptions({
 
-                 width: 840,
 
-                 visible: viewModel.viewModeInPopup,
 
-                 pager: {
 
-                     showPageSizeSelector: false,
 
-                     allowedPageSizes: []
 
-                 },
 
-                 dataSource: materials,
 
-                 columns: materialColumns.concat([
 
-                     { dataField: 'MaterialCount', width: '15%', alignment: 'center', caption: '구매신청수량', format: 'currency' },
 
-                     { dataField: 'PurchaseOrderCount', width: '15%', alignment: 'center', caption: $G('purchaseOrderCount'), format: 'currency' },
 
-                     { dataField: 'StoredDueDate', width: '15%', alignment: 'center', caption: $G('storedDueDate') },
 
-                 ]),
 
-                 rowPrepared: function (rowElement, rowInfo) {
 
-                     if (rowInfo.rowType == 'data') {
 
-                         var data = rowInfo.data;
 
-                         if (data.MaterialCount !== data.PurchaseOrderCount) {
 
-                             rowElement.css('background-color', 'rgba(255,0,0,0.1)');
 
-                         }
 
-                     }
 
-                 }
 
-             });
 
-             return {
 
-                 materialDataGridOptions: materialDataGridOptions,
 
-                 handleAfterLoadingModelByKey: handleAfterLoadingModelByKey,
 
-                 handlePopupShowing: handlePopupShowing,
 
-                 handlePopupShown: handlePopupShown,
 
-                 handleBeforeShowingPopupForEdit: handleBeforeShowingPopupForEdit,
 
-             };
 
-         }
 
-     }
 
- });
 
 
  |