| Quintiq file version 2.0 | 
| #parent: #root | 
| StaticMethod Synchronize ( | 
|   FeedbackPeriodTaskOperations feedbackptos | 
| ) as owning PeriodTaskOperations | 
| { | 
|   Description: 'Create missing period tasks for feedback.' | 
|   TextBody: | 
|   [* | 
|     ptos := construct( PeriodTaskOperations ); | 
|      | 
|     if( feedbackptos.Size() > 0 ) | 
|     { | 
|         // Propagate relations that are needed for feedbacks. | 
|       Transaction::Transaction().Propagate( relation( Feedback, UnitPeriod ) ); | 
|       // Propagate relations that are needed for feedbacks. | 
|       Transaction::Transaction().Propagate( relation( FeedbackPeriodTaskOperation, Operation ) ); | 
|       // Propagate relations that are needed for feedbacks. | 
|       Transaction::Transaction().Propagate( relation( FeedbackPeriodTaskOperation, PeriodTaskOperation ) ); | 
|        | 
|       traverse( feedbackptos, Elements, feedback, | 
|                 feedback.GetIsValidFeedback() ) | 
|       { | 
|         pt := feedback.PeriodTaskOperation(); | 
|        | 
|         if( isnull( pt ) ) | 
|         { | 
|           pt := PeriodTaskOperation::CreateValidPeriodTask( feedback.Operation(), | 
|                                                             feedback.UnitPeriod(), | 
|                                                             0.0, | 
|                                                             false ); | 
|         } | 
|         if( not isnull( pt ) ) | 
|         { | 
|           ptos.Add( pt ); | 
|         } | 
|       } | 
|     } | 
|      | 
|     return &ptos; | 
|   *] | 
| } |