protected virtual void EPGenerateWeeksDialog_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
        {
            EPGenerateWeeksDialog row = (EPGenerateWeeksDialog)e.Row;

            if (row == null)
            {
                return;
            }

            if (row.CutOffDayOne == EPGenerateWeeksDialog.CutOffDayListAttribute.FixedDayOfMonth)
            {
                PXUIFieldAttribute.SetEnabled <EPGenerateWeeksDialog.dayOne>(cache, row, true);
                PXUIFieldAttribute.SetRequired <EPGenerateWeeksDialog.dayOne>(cache, true);
                PXUIFieldAttribute.SetEnabled <EPGenerateWeeksDialog.cutOffDayTwo>(cache, row, true);
                PXDefaultAttribute.SetPersistingCheck <EPGenerateWeeksDialog.dayOne>(cache, row, PXPersistingCheck.NullOrBlank);
            }
            else
            {
                PXUIFieldAttribute.SetEnabled <EPGenerateWeeksDialog.cutOffDayTwo>(cache, row, false);
                PXUIFieldAttribute.SetEnabled <EPGenerateWeeksDialog.dayOne>(cache, row, false);
                row.DayOne       = null;
                row.DayTwo       = null;
                row.CutOffDayTwo = EPGenerateWeeksDialog.CutOffDayListAttribute.None;
            }
            if (row.CutOffDayTwo == EPGenerateWeeksDialog.CutOffDayListAttribute.FixedDayOfMonth)
            {
                PXUIFieldAttribute.SetEnabled <EPGenerateWeeksDialog.dayTwo>(cache, row, true);
                PXUIFieldAttribute.SetRequired <EPGenerateWeeksDialog.dayTwo>(cache, true);
                PXDefaultAttribute.SetPersistingCheck <EPGenerateWeeksDialog.dayTwo>(cache, row, PXPersistingCheck.NullOrBlank);
            }
            else
            {
                PXUIFieldAttribute.SetEnabled <EPGenerateWeeksDialog.dayTwo>(cache, row, false);
                row.DayTwo = null;
            }

            EPCustomWeek lastWeek = (EPCustomWeek)PXSelectOrderBy <EPCustomWeek, OrderBy <Desc <EPCustomWeek.number> > > .Select(this);

            if (lastWeek != null)
            {
                PXUIFieldAttribute.SetEnabled <EPGenerateWeeksDialog.fromDate>(cache, row, false);
            }
        }
        protected virtual void EPGenerateWeeksDialog_TillDate_FieldVerifying(PXCache cache, PXFieldVerifyingEventArgs e)
        {
            EPGenerateWeeksDialog row = (EPGenerateWeeksDialog)e.Row;

            if (e.NewValue == null || row == null)
            {
                return;
            }
            if ((DateTime)e.NewValue < row.FromDate)
            {
                e.Cancel = true;
                throw new PXSetPropertyException(ErrorMessages.EndDateLessThanStartDate, PXUIFieldAttribute.GetDisplayName <EPGenerateWeeksDialog.tillDate>(cache), PXUIFieldAttribute.GetDisplayName <EPGenerateWeeksDialog.fromDate>(cache), row.FromDate);
            }
            DateTime?lastUsingDate = GetLasttUsingWeek();

            if (lastUsingDate != null && (DateTime)e.NewValue < lastUsingDate)
            {
                e.Cancel = true;
                throw new PXSetPropertyException(Messages.ExistsActivitiesLessThanDate, PXUIFieldAttribute.GetDisplayName <EPGenerateWeeksDialog.tillDate>(cache), lastUsingDate);
            }
        }
        protected virtual void EPGenerateWeeksDialog_FromDate_FieldVerifying(PXCache cache, PXFieldVerifyingEventArgs e)
        {
            EPGenerateWeeksDialog row = (EPGenerateWeeksDialog)e.Row;

            if (e.NewValue == null || row == null)
            {
                return;
            }
            if ((DateTime)e.NewValue > row.TillDate)
            {
                e.Cancel = true;
                throw new PXSetPropertyException(ErrorMessages.StartDateGreaterThanEndDate, PXUIFieldAttribute.GetDisplayName <EPGenerateWeeksDialog.fromDate>(cache), PXUIFieldAttribute.GetDisplayName <EPGenerateWeeksDialog.tillDate>(cache), row.FromDate);
            }
            DateTime?    firstUsingDate = GetFirstUsingWeek();
            EPCustomWeek lastWeek       = (EPCustomWeek)PXSelectOrderBy <EPCustomWeek, OrderBy <Desc <EPCustomWeek.weekID> > > .SelectSingleBound(this, null);

            if (firstUsingDate != null && (DateTime)e.NewValue > firstUsingDate && lastWeek == null)
            {
                e.Cancel = true;
                throw new PXSetPropertyException(Messages.ExistsActivitiesGreateThanDate, PXUIFieldAttribute.GetDisplayName <EPGenerateWeeksDialog.fromDate>(cache), firstUsingDate);
            }
        }