Quintiq file version 2.0
|
#parent: #root
|
Method GetDateOfNextOccurrence (
|
output Date dateOfRecurrence_o,
|
Date date_i
|
) as Date id:Method_LibCal_dlgEvent_GetDateOfNextOccurrence
|
{
|
#keys: '[131094.0.1729519603]'
|
Body:
|
[*
|
date := date_i;
|
timezone := this.GetCalendarTimeZone();
|
|
if( btnDaily.Pressed() )
|
{
|
date := LibCal_RecurrencePatternDaily::GetDateOfNextOccurrence( dateOfRecurrence_o, date_i,
|
[Number]edtEveryNrOfDays.Text(),
|
ckbEveryWeekday.Checked() );
|
}
|
|
else if( btnWeekly.Pressed() )
|
{
|
earliestStart := date_i;
|
|
date := LibCal_RecurrencePatternWeekly::GetDateOfNextOccurrence( timezone, dateOfRecurrence_o, date_i,
|
durStartTimeOfDay.Duration(), durEndTimeOfDay.Duration(), vhDuration.Data(), earliestStart,
|
[Number]edtEveryNrOfWeeks.Text(),
|
btnMonday .Pressed(),
|
btnTuesday .Pressed(),
|
btnWednesday.Pressed(),
|
btnThursday .Pressed(),
|
btnFriday .Pressed(),
|
btnSaturday .Pressed(),
|
btnSunday .Pressed() );
|
}
|
|
else if( btnMonthly.Pressed() )
|
{
|
// 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() );
|
|
date := LibCal_RecurrencePatternMonthly::GetDateOfNextOccurrence( dateOfRecurrence_o, date_i, [Number]everyNrOfMonths,
|
ckbMonthlyDay.Checked(), day,
|
ssMonthlyPatternWeekOfMonth.BoundValue(), ssMonthlyPatternDayOfWeek.BoundValue() );
|
}
|
}
|
|
else if( btnYearly.Pressed() )
|
{
|
date := LibCal_RecurrencePatternYearly::GetDateOfNextOccurrence( dateOfRecurrence_o, date_i, [Number]edtEveryNrOfYears.Text(),
|
ckbYearlyDay.Checked(), [Number]ssYearlyDayOfMonth.BoundValue(),
|
ssYearlyPatternWeekOfMonth.BoundValue(), ssYearlyPatternDayOfWeek.BoundValue() );
|
}
|
|
return date;
|
*]
|
}
|