| Quintiq file version 2.0 | 
| #parent: #root | 
| Method AutoAdjustPeriodTaskInTransitionQuantities | 
| { | 
|   Description: 'Adjust period task in transition quantity base on ratio in unit period time' | 
|   TextBody: | 
|   [* | 
|     traverse( this, TransitionPeriod_MP, transitionperiod, | 
|               transitionperiod.UnitPeriod().IsPlanning()  | 
|               and not transitionperiod.UnitPeriod().IsPeriodFrozen() ) | 
|     { | 
|       if( transitionperiod.UnitPeriod().istype( UnitPeriodTime ) ) | 
|       { | 
|         unitperiodcapacity := transitionperiod.UnitPeriod().astype( UnitPeriodTime ).TotalAvailableCapacity(); | 
|         transitionperiodcapacity := transitionperiod.AvailableCapacityRatio() * unitperiodcapacity; | 
|      | 
|         periodtasks := selectset( transitionperiod, PeriodTaskInTransition, ptit, true ); | 
|      | 
|         if( periodtasks.Size() > 0 ) | 
|         { | 
|           // TMP (todo oceaned) - For now capacity will be equally split among operations on the period | 
|           pttransitioncapacity := transitionperiodcapacity / periodtasks.Size(); | 
|           traverse( periodtasks, Elements, periodtask ) | 
|           { | 
|             operation := periodtask.PeriodTaskOperation().Operation(); | 
|             requiredcapacity := operation.Throughput(); | 
|             quantity := pttransitioncapacity.HoursAsReal() * requiredcapacity; | 
|      | 
|             periodtask.Update( quantity, false, true ); | 
|           } | 
|         } | 
|       } | 
|     } | 
|   *] | 
| } |