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 ) );
|
}
|
}
|
*]
|
}
|