| Quintiq file version 2.0 | 
| #parent: #root | 
| StaticMethod GetInfo ( | 
|   Number recurrenceInterval_i, | 
|   Boolean onMonday_i, | 
|   Boolean onTuesday_i, | 
|   Boolean onWednesday_i, | 
|   Boolean onThursday_i, | 
|   Boolean onFriday_i, | 
|   Boolean onSaturday_i, | 
|   Boolean onSunday_i | 
| ) const declarative remote as String | 
| { | 
|   Description: | 
|   [* | 
|     Get information about the RecurrencePattern in textual format. | 
|     Is implemented as a static method so it can also be called from the UI when there is no instance available yet. | 
|   *] | 
|   TextBody: | 
|   [* | 
|     value := ""; | 
|     days  := Translations::Pattern_Days().Tokenize( ';' ); | 
|      | 
|     if( days.Size() = 7 ) | 
|     { | 
|       value := "every "; | 
|        | 
|       if( recurrenceInterval_i > 1 ) | 
|       { | 
|         value := value + [String]recurrenceInterval_i + " weeks on "; | 
|       } | 
|        | 
|       selectedDays := construct( Strings ); | 
|        | 
|       if( onMonday_i    ) { selectedDays.Add( days.Element( monday    - 1 ) ); } | 
|       if( onTuesday_i   ) { selectedDays.Add( days.Element( tuesday   - 1 ) ); } | 
|       if( onWednesday_i ) { selectedDays.Add( days.Element( wednesday - 1 ) ); } | 
|       if( onThursday_i  ) { selectedDays.Add( days.Element( thursday  - 1 ) ); } | 
|       if( onFriday_i    ) { selectedDays.Add( days.Element( friday    - 1 ) ); } | 
|       if( onSaturday_i  ) { selectedDays.Add( days.Element( saturday  - 1 ) ); } | 
|       if( onSunday_i    ) { selectedDays.Add( days.Element( sunday    - 1 ) ); } | 
|        | 
|       if( selectedDays.Size() = 7 ) | 
|       { | 
|         // If the value only contains 'every ' it must be reset first. | 
|         value := ifexpr( value = "every ", "", value ) + "every day of the week";   | 
|       } | 
|       else | 
|       { | 
|         // If there are multiple days, then replace then use 'and' instead of the last comma. | 
|         lastDay          := ""; | 
|         nrOfSelectedDays := selectedDays.Size(); | 
|                                                     | 
|         if( nrOfSelectedDays > 1 ) | 
|         { | 
|           lastDay := selectedDays.Element( nrOfSelectedDays - 1 ); | 
|           selectedDays.Delete( nrOfSelectedDays - 1 ); | 
|         } | 
|          | 
|         daysValue := selectedDays.ToString( ', ' ); | 
|          | 
|         if( nrOfSelectedDays > 1 ) | 
|         { | 
|           daysValue := daysValue + " and " + lastDay; | 
|         } | 
|                                                     | 
|         value := value + daysValue; | 
|       } | 
|     } | 
|     else | 
|     { | 
|       value := [String]days.Size() + " days defined in Translations::Pattern_Days(), should be 7"; | 
|     } | 
|      | 
|     return value; | 
|   *] | 
| } |