| Quintiq file version 2.0 | 
| #parent: #root | 
| Method CanBeExtended () declarative remote as Boolean | 
| { | 
|   Description: 'This method checks if a combi can still be extended.' | 
|   TextBody: | 
|   [* | 
|     //Combis can be extended in the following cases: | 
|     // - The last element in the combit ends before the end of the starting subperiod | 
|     // - The end of the last element is later than the period its attached to and there is only 1 combi element which is a campaign | 
|      | 
|     //The combi can no longer be extended if: | 
|     // - The combi is set to isCompleted --> this is needed so we can also create combis that are not consided done accordingf to the rules above | 
|     // - when it is a dead end no existing transition/campaign can follow the last element | 
|     // - when there are more combi elements in the combi than allowed according to the global parameter | 
|     maxextensionelements := this.OptCampaignUnitSubPeriod().OptCampaignUnit().OptCampaign().Macroplan().StrategyMacroPlan().MaxNrOfElemementsCampaignOptimizerCombi(); | 
|     value := not this.IsDeadEnd() | 
|              and not this.IsCompleteCombi() | 
|              and counter( this,  | 
|                           OptCampaignCombiElement,  | 
|                           ele,  | 
|                           ele.OptCampaignUnitSubPeriod() = this.LastCombiElement().OptCampaignUnitSubPeriod() ) < maxextensionelements; | 
|      | 
|     return value; | 
|   *] | 
| } |