public static Schedule mapMonthlyFrequency(FSServiceContract fsServiceContractRow, DateTime?lastGeneratedElementDate, int frequency, Period period = null) { Period schedulingRange = period ?? new Period((DateTime)fsServiceContractRow.StartDate, fsServiceContractRow.EndDate); var monthlyScheduleSpecificDay = new MonthlyScheduleSpecificDay { Name = TX.FrecuencySchedule.MONTHSPECIFICDATE, LastGeneratedTimeSlotDate = lastGeneratedElementDate, SubScheduleID = 1, TimeOfDayBegin = new TimeSpan(5, 0, 0), //TODO SD-5493 TimeOfDayEnd = new TimeSpan(11, 0, 0), Frequency = frequency, SchedulingRange = schedulingRange }; monthlyScheduleSpecificDay.DayOfMonth = fsServiceContractRow.StartDate.Value.Day; return(monthlyScheduleSpecificDay); }
/// <summary> /// This function maps a FSSchedule Monthly frequency to a MonthlyScheduleSpecificDay or MonthlyScheduleWeekDay in the Scheduler module depending of the /// <c>fsScheduleRow.MonthlyDaySel</c>. The [SubScheduleID] correspond to which of the four types of Monthly is specified in the [fsScheduleRow]. /// </summary> public static Schedule mapMonthlyFrequency(PXCache cache, FSSchedule fsScheduleRow, int subScheduleID, DateTime?toDate, string recordType, string monthlyRecurrenceType, Period period = null) { bool applySeasonInSchedule = recordType != ID.RecordType_ServiceContract.EMPLOYEE_SCHEDULE_CONTRACT ? SharedFunctions.GetEnableSeasonSetting(cache.Graph, fsScheduleRow) : false; Period schedulingRange = period ?? new Period((DateTime)fsScheduleRow.StartDate, fsScheduleRow.EndDate); if (monthlyRecurrenceType == ID.ScheduleMonthlySelection.DAILY) { var monthlyScheduleSpecificDay = new MonthlyScheduleSpecificDay { Name = TX.FrecuencySchedule.MONTHSPECIFICDATE, EntityID = fsScheduleRow.EntityID, EntityType = fsScheduleRow.EntityType, LastGeneratedTimeSlotDate = fsScheduleRow.LastGeneratedElementDate, ScheduleID = (int)fsScheduleRow.ScheduleID, SubScheduleID = subScheduleID, TimeOfDayBegin = new TimeSpan(5, 0, 0), //TODO SD-5493 TimeOfDayEnd = new TimeSpan(11, 0, 0), Frequency = (int)fsScheduleRow.MonthlyFrequency, SchedulingRange = schedulingRange, Descr = fsScheduleRow.ContractDescr, ApplySeason = applySeasonInSchedule, SeasonOnJan = fsScheduleRow.SeasonOnJan, SeasonOnFeb = fsScheduleRow.SeasonOnFeb, SeasonOnMar = fsScheduleRow.SeasonOnMar, SeasonOnApr = fsScheduleRow.SeasonOnApr, SeasonOnMay = fsScheduleRow.SeasonOnMay, SeasonOnJun = fsScheduleRow.SeasonOnJun, SeasonOnJul = fsScheduleRow.SeasonOnJul, SeasonOnAug = fsScheduleRow.SeasonOnAug, SeasonOnSep = fsScheduleRow.SeasonOnSep, SeasonOnOct = fsScheduleRow.SeasonOnOct, SeasonOnNov = fsScheduleRow.SeasonOnNov, SeasonOnDec = fsScheduleRow.SeasonOnDec }; switch (subScheduleID) { case SubScheduleType.FIRST: monthlyScheduleSpecificDay.DayOfMonth = (int)fsScheduleRow.MonthlyOnDay1; break; case SubScheduleType.SECOND: monthlyScheduleSpecificDay.DayOfMonth = (int)fsScheduleRow.MonthlyOnDay2; break; case SubScheduleType.THIRD: monthlyScheduleSpecificDay.DayOfMonth = (int)fsScheduleRow.MonthlyOnDay3; break; case SubScheduleType.FOURTH: monthlyScheduleSpecificDay.DayOfMonth = (int)fsScheduleRow.MonthlyOnDay4; break; } return(monthlyScheduleSpecificDay); } else { var monthlyScheduleWeekDay = new MonthlyScheduleWeekDay { Name = TX.FrecuencySchedule.MONTHWEEKDAY, EntityID = fsScheduleRow.EntityID, EntityType = fsScheduleRow.EntityType, LastGeneratedTimeSlotDate = fsScheduleRow.LastGeneratedElementDate, ScheduleID = (int)fsScheduleRow.ScheduleID, SubScheduleID = subScheduleID, TimeOfDayBegin = new TimeSpan(5, 0, 0), //TODO SD-5493 TimeOfDayEnd = new TimeSpan(11, 0, 0), Frequency = (int)fsScheduleRow.MonthlyFrequency, SchedulingRange = schedulingRange, Descr = fsScheduleRow.ContractDescr, ApplySeason = applySeasonInSchedule, SeasonOnJan = fsScheduleRow.SeasonOnJan, SeasonOnFeb = fsScheduleRow.SeasonOnFeb, SeasonOnMar = fsScheduleRow.SeasonOnMar, SeasonOnApr = fsScheduleRow.SeasonOnApr, SeasonOnMay = fsScheduleRow.SeasonOnMay, SeasonOnJun = fsScheduleRow.SeasonOnJun, SeasonOnJul = fsScheduleRow.SeasonOnJul, SeasonOnAug = fsScheduleRow.SeasonOnAug, SeasonOnSep = fsScheduleRow.SeasonOnSep, SeasonOnOct = fsScheduleRow.SeasonOnOct, SeasonOnNov = fsScheduleRow.SeasonOnNov, SeasonOnDec = fsScheduleRow.SeasonOnDec }; switch (subScheduleID) { case SubScheduleType.FIRST: monthlyScheduleWeekDay.MonthlyOnWeek = (short)fsScheduleRow.MonthlyOnWeek1; monthlyScheduleWeekDay.MonthlyOnDayOfWeek = SharedFunctions.getDayOfWeekByID((int)fsScheduleRow.MonthlyOnDayOfWeek1); break; case SubScheduleType.SECOND: monthlyScheduleWeekDay.MonthlyOnWeek = (short)fsScheduleRow.MonthlyOnWeek2; monthlyScheduleWeekDay.MonthlyOnDayOfWeek = SharedFunctions.getDayOfWeekByID((int)fsScheduleRow.MonthlyOnDayOfWeek2); break; case SubScheduleType.THIRD: monthlyScheduleWeekDay.MonthlyOnWeek = (short)fsScheduleRow.MonthlyOnWeek3; monthlyScheduleWeekDay.MonthlyOnDayOfWeek = SharedFunctions.getDayOfWeekByID((int)fsScheduleRow.MonthlyOnDayOfWeek3); break; case SubScheduleType.FOURTH: monthlyScheduleWeekDay.MonthlyOnWeek = (short)fsScheduleRow.MonthlyOnWeek4; monthlyScheduleWeekDay.MonthlyOnDayOfWeek = SharedFunctions.getDayOfWeekByID((int)fsScheduleRow.MonthlyOnDayOfWeek4); break; } return(monthlyScheduleWeekDay); } }