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 ); 
 | 
  *] 
 | 
} 
 |