Quintiq file version 2.0
|
#parent: #root
|
Method SynchronizeDisaggregatedSalesDemandInPeriod (
|
Boolean isdeleteinvalid
|
)
|
{
|
Description: 'Create or delete disaggregatedSDiP based on fulfillment restriction.'
|
TextBody:
|
[*
|
// Vincent Aug-30-2016 (created)
|
|
salesdemands := construct( SalesDemandBases );
|
|
// get all pispips of leaf product for considered period
|
traverse( this.GetLeafPISPIPs(), Elements, leafpispip )
|
{
|
// Get PISPIP of all the parent product level because that is where the aggregated SDiP are tied to.
|
traverse( leafpispip.GetParentsOfProductDimension(), Elements.astype( ProductInStockingPointInPeriodPlanning ), parentpispip )
|
{
|
// get all the non-leaf sales demands
|
sds := selectset( parentpispip, SalesDemandInPeriodBase.astype(AggregatedSalesDemandInPeriod ).SalesDemand, sd, true, true );
|
salesdemands := salesdemands.Union( sds );
|
}
|
}
|
|
traverse( salesdemands, Elements, sd )
|
{
|
// synchronize disaggregated sdip to create dsdip for all possible product leaf
|
sd.SynchronizeDisaggregatedSalesDemandInPeriod( false );
|
}
|
*]
|
}
|