hongji.li
2023-09-13 5be1a4f56ab08d96dfae922ef4eb2ce74a7fabeb
_Main/BL/Type_MacroPlan/Method_MappingOperationBOMDataSupplyPurchase.qbl
@@ -18,28 +18,35 @@
    routingStep := RoutingStep::Create( routing, routingStepName, "", true );
    product := Product_MP::FindById( this, productId );
    if( isnull( product ) ) {
        error( "product : " + productId + " not found" );
        info(  "product : " + productId + " not found" );
    }
    stockingPointId := orgCode + "_" + productType + "_Stock";
    stockingPoint := StockingPoint_MP::FindById( this, stockingPointId );
    if( isnull( stockingPoint ) ) {
        error( "stockingPoint : " + stockingPointId + " not found" );
        info( "stockingPoint : " + stockingPointId + " not found" );
    }
    unit := Unit::FindById( this, unitId );
    if( isnull( unit ) ) {
    if( not isnull( product) and not isnull( stockingPoint)){
      unit := Unit::FindById( this, unitId );
      if( isnull( unit ) ) {
        unit := this.Unit( relnew, 
                          ID := unitId, Name := unitId, CapacityType := "Infinite",
                          DefaultGridX := 0, DefaultGridY := 0,
                          IsManuallyConfigured := false,
                          Currency_MP := this.BaseCurrency(), UnitOfMeasure_MP := this.DefaultUnitOfMeasure() );
    }
      }
    // Operation
    operation := Operation::Create( operationId, unit, operationId, routingStep,
      operation := Operation::FindOperationTypeIndex( operationId);
      if( isnull( operation)){
        operation := Operation::Create( operationId, unit, operationId, routingStep,
                                    Duration::Zero(), Duration::Zero(), 1.0, false, 
                                    Real::MinReal(), false, Real::MaxReal(), 
                                    0.0, 0.0, false, true );
    // OperaionBom
    operation.CreateOperationBOM( product, stockingPoint, false, true );
    operation.GetOperationBOM( product.ID(), stockingPoint.ID(), false ).Quantity( 1 );
        operation.CreateOperationBOM( product, stockingPoint, false, true );
        operation.GetOperationBOM( product.ID(), stockingPoint.ID(), false ).Quantity( 1 );
      }
    }
  *]
}