Quintiq file version 2.0
|
#parent: #root
|
Method Update (
|
String id,
|
String timeunit,
|
Number nroftimeunit,
|
DateTime startofcurrentperiod,
|
Number nrofhistoricalperiod,
|
Number nroffutureperiod,
|
Boolean synchronize,
|
Boolean isfromdb,
|
Boolean isusedforplanning,
|
Boolean iscleanupactuals
|
)
|
{
|
Description: 'Update this period definition'
|
TextBody:
|
[*
|
// DWE2 Apr-25-2016 (modified)
|
this.UpdateTypeIndex( id );
|
|
this.TimeUnit( timeunit );
|
this.NrOfTimeUnit( nroftimeunit );
|
this.PeriodAlignment( startofcurrentperiod );
|
this.NrOfHistoricalPeriod( nrofhistoricalperiod );
|
this.NrOfFuturePeriod( nroffutureperiod );
|
this.IsManuallyConfigured( not isfromdb );
|
this.IsUsedForPlanning( isusedforplanning );
|
isupdateforshelflifeoptimizer := this.MacroPlan().GetIsPeriodUpdateForShelfLifeOptimizer();
|
|
if( synchronize )
|
{
|
this.SynchronizePeriodsAndBasePeriods();
|
|
// 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( this, MacroPlan.Period_MP, period, true );
|
pisps := selectset( this,
|
MacroPlan.Product_MP.ProductInStockingPoint_MP,
|
pisp,
|
not isupdateforshelflifeoptimizer or ( pisp.Product_MP().HasShelfLifeOrMaturation() ) );
|
|
this.MacroPlan().CreateProductInStockingPointInPeriod( pisps, periods, false /*isondelete*/ );
|
|
// Update sales demand
|
if ( not isupdateforshelflifeoptimizer )
|
{
|
Forecast::SynchronizeSalesDemand( this.MacroPlan(), false );
|
}
|
}
|
|
if( iscleanupactuals )
|
{
|
this.MacroPlan().CleanUpActuals();
|
}
|
|
//Update unit calendar window when the period horizon changes
|
if ( not isupdateforshelflifeoptimizer )
|
{
|
this.MacroPlan().UpdateUnitCalendar();
|
}
|
*]
|
}
|