From 96c87053c9646462cb85af73fe01a3cae4ed1848 Mon Sep 17 00:00:00 2001
From: chaiyunying <chaiyunying>
Date: 星期一, 30 十月 2023 14:25:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'refs/remotes/origin/dev'

---
 _Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationBOMDataRouting.qbl |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/_Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationBOMDataRouting.qbl b/_Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationBOMDataRouting.qbl
index 43f35a0..b575592 100644
--- a/_Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationBOMDataRouting.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationBOMDataRouting.qbl
@@ -65,8 +65,11 @@
                                                         true, trash );
                     mainBOM.Quantity( firstAlterRow.UnitUsageOfComponents() / firstAlterRow.ComponentOutputRate() );
                     mainBOM.MaxQuantityInGroup( firstAlterRow.UnitUsageOfComponents() / firstAlterRow.ComponentOutputRate() );
+                    mainBOM.MinQuantityInGroup(0);
                     mainQty := mainBOM.Quantity();
                     Transaction::Transaction().Propagate();
+                    
+                    altersize := alterRows.Size();
                     // 娣诲姞杈呮枡
                     traverse( alterRows, Elements, alterRow ) {
                         alterProd := Product_MP::FindById( this, alterRow.AlternativeMaterialCode() );
@@ -84,14 +87,23 @@
                           trash := construct( OperationBOMs );
                           if( not isnull( mainInput ) ) {
                               alterBom := mainInput.Operation().LinkPISP( pispAlter, true, mainInput.OperationLinkGroupID(), trash );
-                              alterBom.Quantity( mainBOM.MaxQuantityInGroup() * alterRow.AlternativeRate() );
+                              //alterBom.Quantity( mainBOM.MaxQuantityInGroup() * alterRow.AlternativeRate() );
+                              //alterBom.MaxQuantityInGroup( mainBOM.MaxQuantityInGroup() );
+                              alterBom.Quantity( mainBOM.MaxQuantityInGroup() / altersize );
                               alterBom.MaxQuantityInGroup( mainBOM.MaxQuantityInGroup() );
+                              alterBom.MinQuantityInGroup(0);
     //                          info( "Quantity" + [String]alterBom.Quantity() )
     //                          info( "MaxQuantityInGroup" + [String]alterBom.MaxQuantityInGroup() )
                               mainQty := mainQty - alterBom.Quantity();
                           }
                       }
-                      mainBOM.Quantity( mainQty );
+                      
+                      Transaction::Transaction().Propagate( relation( OperationBOM, OperationInputGroup));
+                      if( not isnull( mainBOM.OperationInputGroup())){
+                        mainBOM.OperationInputGroup().InputGroupQuantity(mainBOM.MaxQuantityInGroup());
+                        mainBOM.Quantity( mainBOM.MaxQuantityInGroup() / altersize );
+                      }
+                      
                    }
                 }
               }

--
Gitblit v1.9.3