From dfa7a011f47399b1a083d020d9460f6801c9c98c Mon Sep 17 00:00:00 2001
From: hongji.li <hongji.a.li@capgemini.com>
Date: 星期三, 01 十一月 2023 15:25:05 +0800
Subject: [PATCH] pegging结果分析优化

---
 _Main/BL/Type_PeggingResult/StaticMethod_GenerateNewSupply.qbl |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/_Main/BL/Type_PeggingResult/StaticMethod_GenerateNewSupply.qbl b/_Main/BL/Type_PeggingResult/StaticMethod_GenerateNewSupply.qbl
index 9ead81a..cc10732 100644
--- a/_Main/BL/Type_PeggingResult/StaticMethod_GenerateNewSupply.qbl
+++ b/_Main/BL/Type_PeggingResult/StaticMethod_GenerateNewSupply.qbl
@@ -4,6 +4,7 @@
   PeggingProductInSalesDemandBase peggingProductInSalesDemandBase,
   Number numberOfPlies,
   const NewSupply ns,
+  Real actualFulfillmentQuantity,
   Real fulfillmentQuantity,
   PeggingResult parentPeggingResult
 )
@@ -14,7 +15,16 @@
     
     pisp := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP();
     
-    childPeggingResult := PeggingResult::Create( peggingProductInSalesDemandBase, pisp.ProductID(), pisp.StockingPointID(), ns.Start().Date(), ns.Quantity(), fulfillmentQuantity, "", numberOfPlies, pisp.UnitOfMeasureName() );
+    childPeggingResult := PeggingResult::Create( peggingProductInSalesDemandBase, 
+                                                 pisp.ProductID(), 
+                                                 pisp.StockingPointID(), 
+                                                 ns.Start().Date(), 
+                                                 ns.Quantity(),
+                                                 actualFulfillmentQuantity, 
+                                                 fulfillmentQuantity, 
+                                                 "", 
+                                                 numberOfPlies, 
+                                                 pisp.UnitOfMeasureName() );
     PeggingResult::SetParentChildRelationship( parentPeggingResult, childPeggingResult );
     
     ontype ( ns.PeriodTask_MP() ) {
@@ -24,11 +34,12 @@
     //          ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name() );
         traverse ( pto, DependentDemand, dd, dd.Quantity() > 0 ) {
           traverse ( dd, Fulfillment, f ) {
+            actualFulfillmentQuantity := f.Quantity();
             smp1 := f.Supply_MP();
             numberOfPlies++;
             fulfillmentQuantity := ( dd.Quantity() / ns.Quantity() ) * fulfillmentQuantity;
     //        info( "--------------------------------------------------------------" );
-            PeggingResult::GeneratePeggingResult( peggingProductInSalesDemandBase, numberOfPlies, smp1, fulfillmentQuantity, childPeggingResult );
+            PeggingResult::GeneratePeggingResult( peggingProductInSalesDemandBase, numberOfPlies, smp1, actualFulfillmentQuantity, fulfillmentQuantity, childPeggingResult );
             numberOfPlies--;
           }
         }
@@ -42,10 +53,11 @@
     //    info( "杞﹂亾鍛ㄦ湡浠诲姟    ", "渚涘簲鏃堕棿锛�", ns.Start().Format( "Y-M2-D2" ), "    鍛ㄦ湡浠诲姟KEY锛�", ptll.Key(), "    ", 
     //          ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name() );
         traverse ( targetDependentDemand, Fulfillment, f ) {
+          actualFulfillmentQuantity := f.Quantity();
           smp1 := f.Supply_MP();
           numberOfPlies++;
     //      info( "--------------------------------------------------------------" );
-          PeggingResult::GeneratePeggingResult( peggingProductInSalesDemandBase, numberOfPlies, smp1, fulfillmentQuantity, childPeggingResult );
+          PeggingResult::GeneratePeggingResult( peggingProductInSalesDemandBase, numberOfPlies, smp1, actualFulfillmentQuantity, fulfillmentQuantity, childPeggingResult );
           numberOfPlies--;
         }
       }

--
Gitblit v1.9.3