Quintiq file version 2.0
|
#parent: #root
|
Method SetRecurrencePatternYearly (
|
Number month_i,
|
String weekOfMonth_i,
|
String dayOfWeek_i
|
) as LibCal_Event
|
{
|
Description: 'Set a recurrence pattern that recurs every year on a specific day of a month of the year.'
|
TextBody:
|
[*
|
// Use a FeedbackObject the collect the validation feedback.
|
feedback := LibCal_Validate::Event_Pattern_Yearly( month_i, weekOfMonth_i, dayOfWeek_i, this.GetEventInfo() );
|
|
// Process the feedback that has been registered by the validation (if any).
|
LibCal_Util::ProcessFeedbackObject( feedback );
|
|
// The below is only executed when no validation errors were encountered.
|
// Check if a new RecurrencePattern must be created.
|
pattern := guard( this.RecurrencePattern().astype( LibCal_RecurrencePatternYearly ), null( LibCal_RecurrencePatternYearly ) );
|
changeOfType := isnull( pattern );
|
|
isChanged := changeOfType // There was no pattern yet, or it was not a Yearly pattern.
|
or pattern.IsDay() <> false // The existing Yearly pattern was a specific date.
|
or pattern.Month() <> month_i
|
or pattern.PatternWeekOfMonth() <> weekOfMonth_i
|
or pattern.PatternDayOfWeek() <> dayOfWeek_i;
|
|
if( isChanged )
|
{
|
// Create the RecurrencePattern.
|
LibCal_RecurrencePatternYearly::Create( this, month_i, weekOfMonth_i, dayOfWeek_i );
|
this.IsChanged( true );
|
|
// Initialize the RecurrencePeriod of the LeadingParticipation if necessary.
|
this.InitializeRecurrencePeriod();
|
}
|
|
// Make the API fluent.
|
return this;
|
*]
|
}
|