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

            if (row == null)
            {
                return;
            }

            DateTime?lastUsing = GetLasttUsingWeek();

            if (lastUsing != null && lastUsing.Value.Year > row.Year)
            {
                CustomWeek.Cache.AllowInsert = false;
                return;
            }

            EPCustomWeek lastWeek = (EPCustomWeek)PXSelectOrderBy <EPCustomWeek, OrderBy <Desc <EPCustomWeek.weekID> > > .SelectSingleBound(this, null);

            if (lastWeek != null && lastWeek.EndDate != null && (lastWeek.EndDate.Value.AddDays(1)).Year != row.Year)
            {
                CustomWeek.Cache.AllowInsert = false;
            }
            else
            {
                CustomWeek.Cache.AllowInsert = true;
            }
        }
        protected virtual void EPWeekFilter_Year_FieldDefaulting(PXCache sender, PXFieldDefaultingEventArgs e)
        {
            EPWeekFilter row = (EPWeekFilter)e.Row;

            if (row == null)
            {
                return;
            }
            DateTime startDate;
            int      number;
            int      year;

            GetNextUsingWeek(out startDate, out number, out year);
            e.NewValue = year;
        }