Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod ConvertToFulfillmentGoal ( 
 | 
  MacroPlan macroplan, 
 | 
  Boolean isimportservicelevel 
 | 
) 
 | 
{ 
 | 
  Description: 'This method mainly to convert data from 2016 Q4 to 2017 Q1 service level that with isusedForPlanningFulfillment, once the data converted the method can be removed' 
 | 
  TextBody: 
 | 
  [* 
 | 
    // This method mainly to convert data from 2016 Q4 to 2017 Q1 service level that with isusedForPlanningFulfillment, once the data converted the method can be removed 
 | 
    if( isimportservicelevel) 
 | 
    { 
 | 
      // Traverse all ServiceLevels of the passed in MacroPlan that has IsUsedForPlanningFulfillment = TRUE 
 | 
      traverse( macroplan, ServiceLevel, servicelevel, servicelevel.IsUsedForPlanningFulfillment() ) 
 | 
      { 
 | 
        // Find Product_MP, StockingPoint_MP, & SalesSegment_MP with the IDs from the current ServiceLevel 
 | 
        product := Product_MP::FindProductTypeIndex( servicelevel.ProductID() ); 
 | 
        stockingpoint := StockingPoint_MP::FindStockingPointTypeIndex( servicelevel.StockingPointID() ); 
 | 
        salessegment := SalesSegment_MP::FindSalesSegmentTypeIndex( servicelevel.SalesSegmentName() ); 
 | 
     
 | 
        // Try to find a FulfillmentTarget that matches the data from the current ServiceLevel 
 | 
        fulfillmenttarget := select ( macroplan,  
 | 
                                      FulfillmentTarget, 
 | 
                                      f, 
 | 
                                      f.StockingPointID() = servicelevel.StockingPointID() 
 | 
                                      and f.ProductID()= servicelevel.ProductID() 
 | 
                                      and f.SalesSegmentName()= servicelevel.SalesSegmentName() 
 | 
                                      and f.Start() = servicelevel.Start() 
 | 
                                      and f.End() = servicelevel.End() 
 | 
                                      and f.TargetPercentage() = servicelevel.TargetPercentage() ); 
 | 
                                       
 | 
        // Create the FulfillmentTarget with data from the current ServiceLevel if no existing FulfillmentTarget is found 
 | 
        if( isnull( fulfillmenttarget ) ) 
 | 
        { 
 | 
          FulfillmentTarget::Create( macroplan,  
 | 
                                     servicelevel.ID(), 
 | 
                                     servicelevel.IsEnabled(), 
 | 
                                     servicelevel.Name(), 
 | 
                                     product, 
 | 
                                     stockingpoint, 
 | 
                                     salessegment, 
 | 
                                     servicelevel.TargetPercentage(), 
 | 
                                     servicelevel.Start(), 
 | 
                                     servicelevel.End(), 
 | 
                                     false, 
 | 
                                     true, 
 | 
                                     servicelevel.IsManuallyConfigured()); 
 | 
                                      
 | 
        } 
 | 
         
 | 
        // Delete the current ServiceLevel 
 | 
        servicelevel.Delete(); 
 | 
      } 
 | 
    } 
 | 
  *] 
 | 
} 
 |