Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method GeneratePlanningMatrixData () id:Method_FormSupplyPlanWebClient_GeneratePlanningMatrixData 
 | 
{ 
 | 
  #keys: '[127710.1.1993166152]' 
 | 
  Body: 
 | 
  [* 
 | 
    // Generate shadow planning cells 
 | 
     
 | 
    if( not isnull( DataHolderProductInSPIP.Data() ) and DataHolderProductInSPIP.Data().Size() > 0 ) 
 | 
    {    
 | 
      DataHolderShadowGlobalParameters.Data( null( shadow[GlobalParameters_MP], owning ) ); 
 | 
      owner := shadow( MacroPlan.GlobalParameters_MP() ); 
 | 
      DataHolderShadowGlobalParameters.Data( &owner ); 
 | 
       
 | 
      traverse ( DataHolderMatrixEditorColumns.Data(), Elements, period ) 
 | 
      {         
 | 
        traverse( DataHolderMatrixEditorRows.Data(), Elements, process ) // For each ROW 
 | 
        { 
 | 
          pisp := DataHolderProductInStockingPoints.Data().Element( 0 ); 
 | 
          pispip := select( pisp, ProductInStockingPointInPeriodPlanning, p, p.Period_MP() = period ) 
 | 
             
 | 
          qty := sum(  process, SupplyBase.astype(  NewSupply ), ns, ns.ProductInStockingPointInPeriodPlanning() = pispip, ns.Quantity() ); 
 | 
          //total qty this routing has produced on the selected pispip 
 | 
          if( process.istype(  Operation ) ) 
 | 
          { 
 | 
            routing := process.astype(  Operation ).RoutingStep().Routing();                                     
 | 
            qty := sum(  routing, OperationOutput.NewSupply, ns, ns.ProductInStockingPointInPeriodPlanning() = pispip, ns.Quantity() ); 
 | 
          }   
 | 
     
 | 
          // Create a new shadow AccountCostInPeriod 
 | 
          DataHolderShadowGlobalParameters.Data().PlanningCell( relnew, 
 | 
                                                                Process_MP := process, 
 | 
                                                                ProductInStockingPointInPeriodPlanning := pispip, 
 | 
                                                                Quantity := qty, 
 | 
                                                                InventoryQuantity := pispip.InventorySupplyQuantity() + pispip.InventoryLevelStart() ); 
 | 
        } 
 | 
      } 
 | 
    } 
 | 
  *] 
 | 
} 
 |