Quintiq file version 2.0
|
#parent: #root
|
StaticMethod Delete (
|
PeriodSpecification_MPs perioddefinitions
|
)
|
{
|
Description: 'Delete multiple period definitions'
|
TextBody:
|
[*
|
// Cannot use MacroPlan::DeleteObjects because the logic is different.
|
|
macroplan := guard( perioddefinitions.Element( 0 ).MacroPlan(), null( MacroPlan ) );
|
|
traverse( perioddefinitions, Elements, pdef )
|
{
|
pdef.Delete();
|
}
|
|
//Synchronize periods
|
traverse( macroplan, PeriodSpecification_MP, periodspec )
|
{
|
periodspec.SynchronizePeriods();
|
}
|
|
if( not isnull( macroplan ) )
|
{
|
macroplan.SynchronizeBasePeriods();
|
macroplan.SynchronizeGapPlanningPeriods();
|
|
// We need to create pispips for new base periods
|
// Now that pispip has different subclasses, we need to
|
// recreate them whenever the following attributes change
|
// Product.IsLeaf, Period.IsBase and Period.IsPlanning
|
periods := selectset( macroplan, Period_MP, period, true )
|
pisps := selectset( macroplan, Product_MP.ProductInStockingPoint_MP, pisp, true )
|
macroplan.CreateProductInStockingPointInPeriod( pisps, periods, false /*isondelete*/ );
|
|
// when period spec is deleted, planning is not changed so just pass in false
|
Forecast::SynchronizeSalesDemand( macroplan, false );
|
}
|
*]
|
}
|