protected virtual void CalendarWeekCodeGeneration_StartDate_FieldDefaulting(PXCache cache, PXFieldDefaultingEventArgs e)
        {
            if (e.Row == null)
            {
                return;
            }

            FSWeekCodeDate fsWeekCodeDateRow = PXSelectOrderBy <FSWeekCodeDate, OrderBy <Desc <FSWeekCodeDate.weekCodeDate> > > .SelectWindowed(this, 0, 1);

            if (fsWeekCodeDateRow != null)
            {
                e.NewValue = fsWeekCodeDateRow.WeekCodeDate.Value.AddDays(1);
            }
            else
            {
                e.NewValue = new DateTime(2008, 12, 29);
            }

            CalendarWeekCodeGeneration calendarWeekCodeGenrationRow = (CalendarWeekCodeGeneration)e.Row;

            if (calendarWeekCodeGenrationRow.StartDate != null)
            {
                DateTime?newValue = SharedFunctions.TryParseHandlingDateTime(cache, e);
                if (newValue.HasValue == true)
                {
                    calendarWeekCodeGenrationRow.EndDate = newValue.Value.AddYears(1);
                }
            }
        }
        /// <summary>
        /// Validates the CalendarWeekCodeGeneration.startDate value.
        /// </summary>
        /// <param name="calendarWeekCodeGenrationRow">CalendarWeekCodeGeneration Row.</param>
        /// <param name="cache">Cache of the View.</param>
        /// <returns>true: valid value | false: invalid value.</returns>
        private bool ValidateStartGenerationDate(CalendarWeekCodeGeneration calendarWeekCodeGenrationRow, PXCache cache)
        {
            bool isValid = true;

            if (calendarWeekCodeGenrationRow.StartDate == null)
            {
                cache.RaiseExceptionHandling <CalendarWeekCodeGeneration.startDate>(
                    calendarWeekCodeGenrationRow,
                    calendarWeekCodeGenrationRow.StartDate,
                    new PXException(PXMessages.LocalizeFormat(
                                        TX.Error.FIELD_MAY_NOT_BE_EMPTY,
                                        PXUIFieldAttribute.GetDisplayName <CalendarWeekCodeGeneration.endDate>(cache))));

                isValid = false;
            }
            else
            {
                if (calendarWeekCodeGenrationRow.StartDate < calendarWeekCodeGenrationRow.DefaultStartDate)
                {
                    cache.RaiseExceptionHandling <CalendarWeekCodeGeneration.startDate>(
                        calendarWeekCodeGenrationRow,
                        calendarWeekCodeGenrationRow.StartDate,
                        new PXException(TX.Error.START_DATE_LESSER_THAN_DEFAULT_DATE));
                    isValid = false;
                }
            }

            return(isValid);
        }
        /// <summary>
        /// Validates the CalendarWeekCodeGeneration.endDate value.
        /// </summary>
        /// <param name="calendarWeekCodeGenrationRow">CalendarWeekCodeGeneration Row.</param>
        /// <param name="cache">Cache of the View.</param>
        /// <returns>true: valid value | false: invalid value.</returns>
        public virtual bool ValidateEndGenerationDate(CalendarWeekCodeGeneration calendarWeekCodeGenrationRow, PXCache cache)
        {
            bool isValid = true;

            if (calendarWeekCodeGenrationRow.EndDate == null)
            {
                cache.RaiseExceptionHandling <CalendarWeekCodeGeneration.endDate>(calendarWeekCodeGenrationRow,
                                                                                  calendarWeekCodeGenrationRow.EndDate,
                                                                                  new PXException(PXMessages.LocalizeFormatNoPrefix(TX.Error.FIELD_MAY_NOT_BE_EMPTY,
                                                                                                                                    PXUIFieldAttribute.GetDisplayName <CalendarWeekCodeGeneration.endDate>(cache))));
                isValid = false;
            }
            else
            {
                if (calendarWeekCodeGenrationRow.EndDate <= calendarWeekCodeGenrationRow.StartDate)
                {
                    cache.RaiseExceptionHandling <CalendarWeekCodeGeneration.endDate>(calendarWeekCodeGenrationRow,
                                                                                      calendarWeekCodeGenrationRow.EndDate,
                                                                                      new PXException(TX.Error.END_DATE_LESSER_THAN_START_DATE));
                    isValid = false;
                }
            }

            return(isValid);
        }
        protected virtual void CalendarWeekCodeGeneration_EndDate_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e)
        {
            if (e.Row == null)
            {
                return;
            }

            CalendarWeekCodeGeneration calendarWeekCodeGenrationRow = (CalendarWeekCodeGeneration)e.Row;

            ValidateEndGenerationDate(calendarWeekCodeGenrationRow, cache);
        }
        protected virtual void _(Events.FieldUpdated <CalendarWeekCodeGeneration, CalendarWeekCodeGeneration.endDate> e)
        {
            if (e.Row == null)
            {
                return;
            }

            CalendarWeekCodeGeneration calendarWeekCodeGenrationRow = (CalendarWeekCodeGeneration)e.Row;

            ValidateEndGenerationDate(calendarWeekCodeGenrationRow, e.Cache);
        }
        protected virtual void CalendarWeekCodeGeneration_EndDate_FieldDefaulting(PXCache cache, PXFieldDefaultingEventArgs e)
        {
            if (e.Row == null)
            {
                return;
            }

            CalendarWeekCodeGeneration calendarWeekCodeGenrationRow = (CalendarWeekCodeGeneration)e.Row;

            if (calendarWeekCodeGenrationRow.StartDate != null)
            {
                e.NewValue = calendarWeekCodeGenrationRow.StartDate.Value.AddYears(1);
            }
        }
        protected virtual void _(Events.FieldDefaulting <CalendarWeekCodeGeneration, CalendarWeekCodeGeneration.endDate> e)
        {
            if (e.Row == null)
            {
                return;
            }

            CalendarWeekCodeGeneration calendarWeekCodeGenrationRow = (CalendarWeekCodeGeneration)e.Row;

            if (calendarWeekCodeGenrationRow.StartDate != null)
            {
                e.NewValue = calendarWeekCodeGenrationRow.StartDate.Value.AddYears(1);
            }
        }
        protected virtual void CalendarWeekCodeGeneration_StartDate_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e)
        {
            if (e.Row == null)
            {
                return;
            }

            CalendarWeekCodeGeneration calendarWeekCodeGenrationRow = (CalendarWeekCodeGeneration)e.Row;

            ValidateStartGenerationDate(calendarWeekCodeGenrationRow, cache);

            if (calendarWeekCodeGenrationRow.StartDate != null)
            {
                calendarWeekCodeGenrationRow.EndDate = calendarWeekCodeGenrationRow.StartDate.Value.AddYears(1);
            }
        }
        protected virtual void _(Events.FieldUpdated <CalendarWeekCodeGeneration, CalendarWeekCodeGeneration.startDate> e)
        {
            if (e.Row == null)
            {
                return;
            }

            CalendarWeekCodeGeneration calendarWeekCodeGenrationRow = (CalendarWeekCodeGeneration)e.Row;

            ValidateStartGenerationDate(calendarWeekCodeGenrationRow, e.Cache);

            if (calendarWeekCodeGenrationRow.StartDate != null)
            {
                calendarWeekCodeGenrationRow.EndDate = calendarWeekCodeGenrationRow.StartDate.Value.AddYears(1);
            }
        }