| Quintiq file version 2.0 | 
| #parent: #root | 
| StaticMethod ResetAndDeletePeriodTasks ( | 
|   Campaign_MPs campaigns | 
| ) | 
| { | 
|   Description: 'Reset and delete related PeriodTaskInCampaign, PeriodTaskInTransition when a campaign is replanned/resequenced.' | 
|   TextBody: | 
|   [* | 
|     // Reset period tasks upon replan | 
|     traverse( campaigns, Elements.Unit.Campaign_MP, cpg ) | 
|     { | 
|       cpg.ResetPeriodTasks();   | 
|     } | 
|      | 
|     //Delete campaigns's PeriodTaskInTransition | 
|     fptts := selectset( campaigns, Elements.FromTransition.OperationInTransition.PeriodTaskInTransition, ptt, true ); | 
|     tptts := selectset( campaigns, Elements.ToTransition.OperationInTransition.PeriodTaskInTransition, ptt, true ); | 
|      | 
|     PeriodTaskInTransition::Delete( fptts ); | 
|     PeriodTaskInTransition::Delete( tptts ); | 
|      | 
|     //reset the remaining periodtaskintransition's quantity | 
|     traverse( campaigns, Elements.Unit.Transition_MP, t ) | 
|     { | 
|       t.ResetPeriodTasks(); | 
|     } | 
|      | 
|     //reset the period task operations quantity of the same unit | 
|     periodtaskoperations := selectset( campaigns, Elements.Unit.UnitPeriod.PeriodTaskOperation, pto, true ); | 
|     PeriodTaskOperation::ResetQuantity( periodtaskoperations ); | 
|   *] | 
| } |