From b262ab5a8021b0a3b9bb4bab78c52981ac39e35e Mon Sep 17 00:00:00 2001 From: yanyuan <yuan.yan@capgemini.com> Date: 星期二, 05 九月 2023 16:00:50 +0800 Subject: [PATCH] Merge branch 'dev_yy' into dev --- _Main/BL/Type_MacroPlan/Method_MappingOperationBOMDataRouting#576.qbl | 75 +++++++++++++++++++------------------ 1 files changed, 38 insertions(+), 37 deletions(-) diff --git "a/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMDataRouting\043576.qbl" "b/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMDataRouting\043576.qbl" index 237e007..6d1861c 100644 --- "a/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMDataRouting\043576.qbl" +++ "b/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMDataRouting\043576.qbl" @@ -49,43 +49,44 @@ firstAlterRow := alterRows.Element( 0 ); // 妫�鏌ヤ富鏂� component := Product_MP::FindById( this, firstAlterRow.ComponentCode() ); - if( isnull( component ) ) { - error( "component : " + firstAlterRow.ComponentCode() + " not found" ); - } - traverse( routingStep, Operation, toLink ) { - // 杩炴帴浜у搧涓巓peration - pisp := ProductInStockingPoint_MP::CreateIfNotFound( component, stockingPoint ); - trash := construct( OperationBOMs ); - mainBOM := toLink.LinkProduct( component, true, BaseOperationLink::GetGroupID( toLink, true, false ), pisp, - true, trash ); - mainBOM.Quantity( firstAlterRow.UnitUsageOfComponents() / firstAlterRow.ComponentOutputRate() ); - mainBOM.MaxQuantityInGroup( firstAlterRow.UnitUsageOfComponents() / firstAlterRow.ComponentOutputRate() ); - mainQty := mainBOM.Quantity(); - Transaction::Transaction().Propagate(); - // 娣诲姞杈呮枡 - traverse( alterRows, Elements, alterRow ) { - alterProd := Product_MP::FindById( this, alterRow.AlternativeMaterialCode() ); - if( not isnull( alterProd ) ) { - // error( "alterProd : " + alterRow.AlternativeMaterialCode() + " not found" ); - stockingPointIdAlter := alterRow.OrganCode() + "_" + alterRow.ProductType() + "_STOCK"; - stockingPointAlter := StockingPoint_MP::FindById( this, stockingPointIdAlter ); - if( isnull( stockingPointAlter ) ) { - error( "stockingPoint : " + stockingPointIdAlter + " not found" ); - } - pispAlter := ProductInStockingPoint_MP::CreateIfNotFound( alterProd, stockingPointAlter ); - mainInput := toLink.LastOperationInput(); - trash := construct( OperationBOMs ); - if( not isnull( mainInput ) ) { - alterBom := mainInput.Operation().LinkPISP( pispAlter, true, mainInput.OperationLinkGroupID(), trash ); - alterBom.Quantity( mainBOM.MaxQuantityInGroup() * alterRow.AlternativeRate() ); - alterBom.MaxQuantityInGroup( mainBOM.MaxQuantityInGroup() ); - info( "Quantity" + [String]alterBom.Quantity() ) - info( "MaxQuantityInGroup" + [String]alterBom.MaxQuantityInGroup() ) - mainQty := mainQty - alterBom.Quantity(); - } - } - mainBOM.Quantity( mainQty ); - } + if( not isnull( component ) ) { + // error( "component : " + firstAlterRow.ComponentCode() + " not found" ); + // } + traverse( routingStep, Operation, toLink ) { + // 杩炴帴浜у搧涓巓peration + pisp := ProductInStockingPoint_MP::CreateIfNotFound( component, stockingPoint ); + trash := construct( OperationBOMs ); + mainBOM := toLink.LinkProduct( component, true, BaseOperationLink::GetGroupID( toLink, true, false ), pisp, + true, trash ); + mainBOM.Quantity( firstAlterRow.UnitUsageOfComponents() / firstAlterRow.ComponentOutputRate() ); + mainBOM.MaxQuantityInGroup( firstAlterRow.UnitUsageOfComponents() / firstAlterRow.ComponentOutputRate() ); + mainQty := mainBOM.Quantity(); + Transaction::Transaction().Propagate(); + // 娣诲姞杈呮枡 + traverse( alterRows, Elements, alterRow ) { + alterProd := Product_MP::FindById( this, alterRow.AlternativeMaterialCode() ); + if( not isnull( alterProd ) ) { + // error( "alterProd : " + alterRow.AlternativeMaterialCode() + " not found" ); + stockingPointIdAlter := alterRow.OrganCode() + "_" + alterRow.ProductType() + "_STOCK"; + stockingPointAlter := StockingPoint_MP::FindById( this, stockingPointIdAlter ); + if( isnull( stockingPointAlter ) ) { + error( "stockingPoint : " + stockingPointIdAlter + " not found" ); + } + pispAlter := ProductInStockingPoint_MP::CreateIfNotFound( alterProd, stockingPointAlter ); + mainInput := toLink.LastOperationInput(); + trash := construct( OperationBOMs ); + if( not isnull( mainInput ) ) { + alterBom := mainInput.Operation().LinkPISP( pispAlter, true, mainInput.OperationLinkGroupID(), trash ); + alterBom.Quantity( mainBOM.MaxQuantityInGroup() * alterRow.AlternativeRate() ); + alterBom.MaxQuantityInGroup( mainBOM.MaxQuantityInGroup() ); + info( "Quantity" + [String]alterBom.Quantity() ) + info( "MaxQuantityInGroup" + [String]alterBom.MaxQuantityInGroup() ) + mainQty := mainQty - alterBom.Quantity(); + } + } + mainBOM.Quantity( mainQty ); + } + } } } } -- Gitblit v1.9.3