| Quintiq file version 2.0 | 
| #parent: #root | 
| Method CreateUnitPeriod ( | 
|   Period_MP period | 
| ) as UnitPeriod | 
| { | 
|   Description: 'Create a unit period based on capacity type' | 
|   TextBody: | 
|   [* | 
|     // soh yee Sep-3-2015 (moved) | 
|      | 
|     // Null period | 
|     unitperiod := UnitPeriod::FindUnitPeriodTypeIndex( this.ID(), period.Start(), period.End() ); | 
|      | 
|     if( isnull( unitperiod ) ) | 
|     { | 
|       // Capacity time | 
|       if( this.CapacityType() = GlobalParameters_MP::GetCapacityTypeTime() ) | 
|       { | 
|         unitperiod := UnitPeriodTime::Create( this, period ); | 
|       } | 
|       // Capacity quantity | 
|       else if( this.CapacityType() = GlobalParameters_MP::GetCapacityTypeQuantity() ) | 
|       { | 
|         unitperiod := UnitPeriodQuantity::Create( this, period ); | 
|       } | 
|       // Capacity infinite | 
|       else if( this.CapacityType() = GlobalParameters_MP::GetCapacityTypeInfinite() ) | 
|       { | 
|         unitperiod := UnitPeriodInfinite::Create( this, period ); | 
|       } | 
|       // Capacity time aggregation | 
|       else if( this.CapacityType() = GlobalParameters_MP::GetCapacityTypeTimeAggregation() ) | 
|       { | 
|         unitperiod := UnitPeriodTimeAggregation::Create( this, period ); | 
|       } | 
|       // Capacity quantity aggregation | 
|       else if( this.CapacityType() = GlobalParameters_MP::GetCapacityTypeQuantityAggregation() ) | 
|       { | 
|         unitperiod := UnitPeriodQuantityAggregation::Create( this, period ); | 
|       } | 
|       // Capacity Transport time | 
|       else if( this.CapacityType() = GlobalParameters_MP::GetCapacityTypeTransportTime() ) | 
|       { | 
|         unitperiod := UnitPeriodTransportTime::Create( this, period ); | 
|       } | 
|       // Capacity Transport quantity | 
|       else if( this.CapacityType() = GlobalParameters_MP::GetCapacityTypeTransportQuantity() ) | 
|       { | 
|         unitperiod := UnitPeriodTransportQuantity::Create( this, period ); | 
|       } | 
|     } | 
|      | 
|     return unitperiod; | 
|   *] | 
| } |