| Quintiq file version 2.0 | 
| #parent: #root | 
| Method DeleteObsoletePeriodAndCleanObsoletePeriodTasks | 
| { | 
|   Description: 'Delete obsolete periods.' | 
|   TextBody: | 
|   [* | 
|     // Delete all useless periods | 
|     trash := selectset( this, Period_MP, period, period.IsDeleted() | 
|                         or( period.IsSystemCreated() | 
|                             and not period.IsBase() | 
|                             and not period.IsGapPlanning() ) ); | 
|     Period_MP::Delete( trash ); | 
|      | 
|     isupdateforshelflifeoptimizer := this.GetIsPeriodUpdateForShelfLifeOptimizer();  | 
|     if( not isupdateforshelflifeoptimizer ) | 
|     { | 
|       // Delete period tasks that are no longer in the planning periods | 
|       traverse( this, Unit.UnitPeriod, unitperiod ) | 
|       { | 
|         if( not unitperiod.IsPlanning() ) | 
|         { | 
|           unitperiod.DeletePeriodTaskOperations(); | 
|         }   | 
|       } | 
|        | 
|       // Delete obsolete trips | 
|       this.DeleteObsoleteTrips(); | 
|        | 
|       // Synchronize with existing feedback to re-create valid period task / trip | 
|       this.InitializeFeedbackAfterImport(); | 
|     } | 
|   *] | 
| } |