Kevin Kok Khah Whey
2023-11-07 5ae534ab606e6f2ba5ea60914224d665b0447d5a
_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 );
                      }
                   }
                }
              }