Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method GenerateDemands () id:Method_FormDemandSupply_GenerateDemands 
 | 
{ 
 | 
  #keys: '[132448.0.712669067]' 
 | 
  Body: 
 | 
  [* 
 | 
    // Generate all demand for visualization                          
 | 
    // Clear dataholder 
 | 
    DataHolderGP.Data( null( shadow[GlobalParameters_MP], owning ) ); 
 | 
     
 | 
    // Ownership on GP so it is possible to display the DemandForVisualization 
 | 
    owner := shadow( MacroPlan.GlobalParameters_MP() ); 
 | 
     
 | 
    DataHolderGP.Data( &owner ); 
 | 
     
 | 
    traverse( DataHolderDemandPISPIP.Data(), Elements, pispip ) 
 | 
    { 
 | 
      pispName := pispip.ProductInStockingPoint_MP().Name(); 
 | 
      planningPISPIP := pispip; 
 | 
      type := DemandForVisualization::GetPlanningDemandString(); 
 | 
      factor := 1.0; 
 | 
       
 | 
      if( pispip.istype( ProductInStockingPointInPeriodNonPlanningBase ) ) 
 | 
      { 
 | 
        planningPISPIP := pispip.astype( ProductInStockingPointInPeriodNonPlanningBase ).PlanningPISPIP(); 
 | 
        type := DemandForVisualization::GetDisaggregatedDemandString();  
 | 
        factor := pispip.GetPlanningSystemRatio(); 
 | 
      }  
 | 
       
 | 
      if( not isnull( planningPISPIP ) 
 | 
          and planningPISPIP.istype( ProductInStockingPointInPeriodPlanningLeaf ) )  // If its original demand or disaggregated demand 
 | 
      {                          
 | 
        traverse( planningPISPIP.astype( ProductInStockingPointInPeriodPlanningLeaf ).GetDemand_MPs(), Elements, demand ) 
 | 
        { 
 | 
          quantity := demand.Quantity() * factor; // If its disaagregated  
 | 
                               
 | 
          Form.CreateDemandForVisualization( pispName,  
 | 
                                             type, 
 | 
                                             quantity,  
 | 
                                             pispip.Start(), 
 | 
                                             demand );    
 | 
        } 
 | 
      } 
 | 
      else 
 | 
      {  
 | 
        if( pispip.istype( ProductInStockingPointInPeriodNonPlanningBase ) 
 | 
            and not isnull( pispip.astype( ProductInStockingPointInPeriodNonPlanningBase ).PlanningPISPIP() ) ) 
 | 
        { 
 | 
          type := DemandForVisualization::GetDisaggregatedDemandString(); 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
          type := DemandForVisualization::GetAggregatedDemandString(); 
 | 
        } 
 | 
         
 | 
        Form.CreateDemandForVisualization( pispName, 
 | 
                                           type, 
 | 
                                           pispip.DependentDemandAndSalesDemandQuantity(), // Pispip already have the demand information 
 | 
                                           pispip.Start(), 
 | 
                                           null( Demand_MP ) ); 
 | 
      } 
 | 
    } 
 | 
  *] 
 | 
} 
 |