Quintiq file version 2.0
|
#parent: #root
|
Method GetDateOfFirstRecurrence (
|
Date startOfPeriod_i
|
) as Date id:Method_LibCal_dlgEvent_GetDateOfFirstRecurrence
|
{
|
#keys: '[131092.1.1290429]'
|
Accessibility: 'Public'
|
Body:
|
[*
|
date := Date::MinDate();
|
earliestStart := startOfPeriod_i;
|
patternType := this.GetPatternType();
|
timezone := this.GetCalendarTimeZone();
|
|
if( patternType = LibCal_RecurrencePattern::TYPE_DAILY() )
|
{
|
date := LibCal_RecurrencePatternDaily::GetDateOfFirstRecurrence( startOfPeriod_i, earliestStart,
|
[Number]edtEveryNrOfDays.Text(),
|
ckbEveryWeekday.Checked() );
|
}
|
|
else if( patternType = LibCal_RecurrencePattern::TYPE_WEEKLY() )
|
{
|
date := LibCal_RecurrencePatternWeekly::GetDateOfFirstRecurrence( startOfPeriod_i, earliestStart,
|
[Number]edtEveryNrOfWeeks.Text() );
|
}
|
|
else if( patternType = LibCal_RecurrencePattern::TYPE_MONTHLY() )
|
{
|
// Make sure that the entered day of the month is valid.
|
day := guard( [Number]edtMonthlyDay.Text(), 0 );
|
|
if( day > 0 )
|
{
|
everyNrOfMonths := ifexpr( ckbMonthlyDay.Checked(), edtMonthlyDayEveryNrOfMonths.Text(),
|
edtMonthlyPatternEveryNrOfMonths.Text() );
|
|
/* BUG: referencing the DropDownStringLists results in an error in the TCE !!!
|
// As a WORKAROUND, the values are also set in a hidden label, which càn be used here.
|
weekOfMonth := ssMonthlyPatternWeekOfMonth.Text();
|
dayOfWeek := ssMonthlyPatternDayOfWeek.Text();
|
*/
|
|
weekOfMonth := lblMonthlyPatternWeekOfMonth.Text();
|
dayOfWeek := lblMonthlyPatternDayOfWeek.Text();
|
|
date := LibCal_RecurrencePatternMonthly::GetDateOfFirstRecurrence( timezone, startOfPeriod_i, durStartTimeOfDay.Duration(), durEndTimeOfDay.Duration(), dhDuration.Data(),
|
earliestStart, [Number]everyNrOfMonths,
|
ckbMonthlyDay.Checked(), day, weekOfMonth, dayOfWeek );
|
}
|
}
|
|
else if( patternType = LibCal_RecurrencePattern::TYPE_YEARLY() )
|
{
|
/* BUG: referencing the DropDownStringLists results in an error in the TCE !!!
|
// As a WORKAROUND, the values are also set in a hidden label, which càn be used here.
|
month := ifexpr( ckbYearlyDate.Checked(), ssYearlyMonth.Text(), ssYearlyPatternMonth.Text() );
|
nrOfMonth := this.GetNrOfMonth( month );
|
dayOfMonth := [Number]ssYearlyDayOfMonth.Text();
|
weekOfMonth := ssYearlyPatternWeekOfMonth.Text();
|
dayOfWeek := ssYearlyPatternDayOfWeek.Text();
|
*/
|
|
month := ifexpr( ckbYearlyDay.Checked(), lblYearlyMonth.Text(), lblYearlyPatternMonth.Text() );
|
nrOfMonth := this.GetNrOfMonth( month );
|
dayOfMonth := [Number]lblYearlyDayOfMonth.Text();
|
weekOfMonth := lblYearlyPatternWeekOfMonth.Text();
|
dayOfWeek := lblYearlyPatternDayOfWeek.Text();
|
|
date := LibCal_RecurrencePatternYearly::GetDateOfFirstRecurrence( timezone, startOfPeriod_i, durStartTimeOfDay.Duration(), durEndTimeOfDay.Duration(), dhDuration.Data(),
|
earliestStart, [Number]edtEveryNrOfYears.Text(),
|
nrOfMonth, ckbYearlyDay.Checked(), dayOfMonth, weekOfMonth, dayOfWeek );
|
}
|
|
return date;
|
*]
|
UseInheritedAccessibility: false
|
}
|