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 EPSetup_RowPersisting(PXCache cache, PXRowPersistingEventArgs e)
        {
            var row = e.Row as EPSetup;

            if (row == null || e.Operation == PXDBOperation.Delete)
            {
                return;
            }
            if (row.PostToOffBalance == true && row.OffBalanceAccountGroupID == null)
            {
                if (cache.RaiseExceptionHandling <EPSetup.offBalanceAccountGroupID>(e.Row, row.OffBalanceAccountGroupID, new PXSetPropertyException(ErrorMessages.FieldIsEmpty, PXUIFieldAttribute.GetDisplayName <EPSetup.offBalanceAccountGroupID>(cache))))
                {
                    throw new PXRowPersistingException(typeof(EPSetup.offBalanceAccountGroupID).Name, row.OffBalanceAccountGroupID, ErrorMessages.FieldIsEmpty, PXUIFieldAttribute.GetDisplayName <EPSetup.offBalanceAccountGroupID>(cache));
                }
            }
            if (row.CustomWeek == true)
            {
                DateTime?firsUsing = GetFirstUsingWeek();
                DateTime?lastUsing = GetLasttUsingWeek();

                if (firsUsing != null && lastUsing != null)
                {
                    EPCustomWeek firstWeek = (EPCustomWeek)PXSelectOrderBy <EPCustomWeek, OrderBy <Asc <EPCustomWeek.weekID> > > .SelectSingleBound(this, null);

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

                    if (firstWeek == null || firsUsing < firstWeek.StartDate || lastWeek == null || lastWeek.EndDate < lastUsing)
                    {
                        throw new PXRowPersistingException(typeof(EPSetup.customWeek).Name, row.CustomWeek, Messages.CustomWeekNotCreated, firsUsing, lastUsing);
                    }
                }
            }
        }
        protected virtual void EPCustomWeek_EndDate_FieldDefaulting(PXCache sender, PXFieldDefaultingEventArgs e)
        {
            EPCustomWeek row = (EPCustomWeek)e.Row;

            if (row == null || row.StartDate == null)
            {
                return;
            }
            e.NewValue = GetEndOfDate(row.StartDate.Value.AddDays(6d));
        }
        protected virtual void EPSetup_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
        {
            EPSetup row = e.Row as EPSetup;

            if (row != null)
            {
                PXUIFieldAttribute.SetEnabled <EPSetup.offBalanceAccountGroupID>(cache, row, row.PostToOffBalance == true);
                if (row.CustomWeek == true)
                {
                    EPCustomWeek lastWeek = (EPCustomWeek)PXSelectOrderBy <EPCustomWeek, OrderBy <Desc <EPCustomWeek.weekID> > > .SelectSingleBound(this, null);

                    PXUIFieldAttribute.SetEnabled <EPSetup.customWeek>(cache, row, lastWeek == null);
                }
            }
        }
        protected virtual void EPCustomWeek_EndDate_FieldVerifying(PXCache sender, PXFieldVerifyingEventArgs e)
        {
            EPCustomWeek row = (EPCustomWeek)e.Row;

            if (row == null || e.NewValue == null || row.StartDate == null)
            {
                return;
            }
            if (((DateTime)e.NewValue).Subtract(row.StartDate.Value).TotalDays > 7d)
            {
                sender.RaiseExceptionHandling <EPCustomWeek.endDate>(e.Row, null, new PXException(Messages.StartDateGreaterThanEndDate, PXUIFieldAttribute.GetDisplayName <EPCustomWeek.endDate>(sender), row.StartDate.Value.AddDays(6d)));
                e.NewValue = null;
                e.Cancel   = true;
            }
        }
        protected virtual void EPCustomWeek_StartDate_FieldVerifying(PXCache sender, PXFieldVerifyingEventArgs e)
        {
            EPCustomWeek row = (EPCustomWeek)e.Row;

            if (row == null)
            {
                return;
            }
            DateTime StartDate = (DateTime)e.NewValue;

            if (!(StartDate.AddDays(-6d).Year <= row.Year.Value && row.Year.Value <= StartDate.AddDays(6d).Year))
            {
                sender.RaiseExceptionHandling <EPCustomWeek.startDate>(e.Row, null, new PXException(Messages.StartDateWrongYear, row.Year));
            }
        }
Exemplo n.º 7
0
        protected virtual void EPCustomWeek_StartDate_FieldVerifying(PXCache sender, PXFieldVerifyingEventArgs e)
        {
            EPCustomWeek row = (EPCustomWeek)e.Row;

            if (row == null)
            {
                return;
            }
            DateTime StartDate = (DateTime)e.NewValue;

            if (!(StartDate.AddDays(-6d).Year <= row.Year.Value && row.Year.Value <= StartDate.AddDays(6d).Year))
            {
                sender.RaiseExceptionHandling("StartDate", e.Row, null, new PXException(string.Format("Start Date must have a Year at {0}", row.Year)));
            }
        }
Exemplo n.º 8
0
        //#region System
        //#region CreatedByID
        //public abstract class createdByID : PX.Data.BQL.BqlGuid.Field<createdByID>
        //{
        //}
        //protected Guid? _CreatedByID;
        //[PXDBCreatedByID(DontOverrideValue = true)]
        //[PXUIField(DisplayName = "Created By", Enabled = false)]
        //public virtual Guid? CreatedByID
        //{
        //	get
        //	{
        //		return this._CreatedByID;
        //	}
        //	set
        //	{
        //		this._CreatedByID = value;
        //	}
        //}
        //#endregion

        //#region CreatedByScreenID
        //public abstract class createdByScreenID : PX.Data.BQL.BqlString.Field<createdByScreenID>
        //{
        //}
        //protected String _CreatedByScreenID;
        //[PXDBCreatedByScreenID]
        //public virtual String CreatedByScreenID
        //{
        //	get
        //	{
        //		return this._CreatedByScreenID;
        //	}
        //	set
        //	{
        //		this._CreatedByScreenID = value;
        //	}
        //}
        //#endregion

        //#region CreatedDateTime
        //public abstract class createdDateTime : PX.Data.BQL.BqlDateTime.Field<createdDateTime>
        //{
        //}
        //protected DateTime? _CreatedDateTime;
        //[PXUIField(DisplayName = "Created At")]
        //[PXDBCreatedDateTimeUtc]
        //public virtual DateTime? CreatedDateTime
        //{
        //	get
        //	{
        //		return this._CreatedDateTime;
        //	}
        //	set
        //	{
        //		this._CreatedDateTime = value;
        //	}
        //}
        //#endregion

        //#region LastModifiedByID
        //public abstract class lastModifiedByID : PX.Data.BQL.BqlGuid.Field<lastModifiedByID>
        //{
        //}
        //protected Guid? _LastModifiedByID;
        //[PXDBLastModifiedByID]
        //public virtual Guid? LastModifiedByID
        //{
        //	get
        //	{
        //		return this._LastModifiedByID;
        //	}
        //	set
        //	{
        //		this._LastModifiedByID = value;
        //	}
        //}
        //#endregion

        //#region LastModifiedByScreenID
        //public abstract class lastModifiedByScreenID : PX.Data.BQL.BqlString.Field<lastModifiedByScreenID>
        //{
        //}
        //protected String _LastModifiedByScreenID;
        //[PXDBLastModifiedByScreenID]
        //public virtual String LastModifiedByScreenID
        //{
        //	get
        //	{
        //		return this._LastModifiedByScreenID;
        //	}
        //	set
        //	{
        //		this._LastModifiedByScreenID = value;
        //	}
        //}
        //#endregion

        //#region LastModifiedDateTime
        //public abstract class lastModifiedDateTime : PX.Data.BQL.BqlDateTime.Field<lastModifiedDateTime>
        //{
        //}
        //protected DateTime? _LastModifiedDateTime;
        //[PXDBLastModifiedDateTimeUtc]
        //public virtual DateTime? LastModifiedDateTime
        //{
        //	get
        //	{
        //		return this._LastModifiedDateTime;
        //	}
        //	set
        //	{
        //		this._LastModifiedDateTime = value;
        //	}
        //}
        //#endregion

        //#region EntityDescription
        //public abstract class entityDescription : PX.Data.BQL.BqlString.Field<entityDescription>
        //{
        //}
        //protected string _EntityDescription;
        //[PXString(InputMask = "")]
        //[PXUIField(DisplayName = "Entity", Visibility = PXUIVisibility.SelectorVisible, Enabled = false, IsReadOnly = true)]
        //public virtual string EntityDescription
        //{
        //	get
        //	{
        //		return this._EntityDescription;
        //	}
        //	set
        //	{
        //		this._EntityDescription = value;
        //	}
        //}
        //#endregion

        //#region tstamp
        //public abstract class Tstamp : PX.Data.BQL.BqlByteArray.Field<Tstamp>
        //{
        //}
        //protected Byte[] _tstamp;
        //[PXDBTimestamp()]
        //public virtual Byte[] tstamp
        //{
        //	get
        //	{
        //		return this._tstamp;
        //	}
        //	set
        //	{
        //		this._tstamp = value;
        //	}
        //}
        //#endregion
        //#endregion

        public static EPWeekRaw ToEPWeekRaw(EPCustomWeek week)
        {
            EPWeekRaw res = new EPWeekRaw();

            res.EndDate    = week.EndDate;
            res.StartDate  = week.StartDate;
            res.WeekID     = week.WeekID;
            res.Year       = week.Year;
            res.Number     = week.Number;
            res.FullNumber = week.FullNumber;
            res.IsFullWeek = week.IsFullWeek;
            res.IsActive   = week.IsActive;

            return(res);
        }
        protected virtual void EPCustomWeek_StartDate_FieldDefaulting(PXCache sender, PXFieldDefaultingEventArgs e)
        {
            EPCustomWeek row = (EPCustomWeek)e.Row;

            if (row == null)
            {
                return;
            }
            // EPCustomWeek lastWeek = PXSelectOrderBy<EPCustomWeek, OrderBy<Desc<EPCustomWeek.weekID>>>.Select(this); //TODO: why dont worked?
            EPCustomWeek lastWeek = PXSelectOrderBy <EPCustomWeek, OrderBy <Desc <EPCustomWeek.year, Desc <EPCustomWeek.number> > > > .SelectSingleBound(this, new object[] { });

            if (lastWeek != null && lastWeek.EndDate != null)
            {
                e.NewValue = GetBeginOfDate(lastWeek.EndDate.Value.AddDays(1d));
            }
        }
        protected virtual void EPSetup_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
        {
            EPSetup row = e.Row as EPSetup;

            if (row != null)
            {
                PXUIFieldAttribute.SetEnabled <EPSetup.useReceiptAccountForTips>(cache, row, row.NonTaxableTipItem.HasValue);
                PXUIFieldAttribute.SetEnabled <EPSetup.offBalanceAccountGroupID>(cache, row, row.PostingOption == EPPostOptions.PostToOffBalance);
                if (row.CustomWeek == true)
                {
                    EPCustomWeek lastWeek = (EPCustomWeek)PXSelectOrderBy <EPCustomWeek, OrderBy <Desc <EPCustomWeek.weekID> > > .SelectSingleBound(this, null);

                    PXUIFieldAttribute.SetEnabled <EPSetup.customWeek>(cache, row, lastWeek == null);
                }
            }
        }
        protected virtual void EPCustomWeek_IsFullWeek_FieldDefaulting(PXCache sender, PXFieldDefaultingEventArgs e)
        {
            EPCustomWeek row = (EPCustomWeek)e.Row;

            if (row == null)
            {
                return;
            }
            if (row.EndDate != null && row.StartDate != null)
            {
                e.NewValue = row.EndDate.Value.Subtract(row.StartDate.Value).TotalDays > 6d;
            }
            else
            {
                e.NewValue = false;
            }
        }
Exemplo n.º 12
0
        protected virtual void EPCustomWeek_RowInserting(PXCache cache, PXRowInsertingEventArgs e)
        {
            EPCustomWeek row = (EPCustomWeek)e.Row;

            if (row != null)
            {
                if (row.StartDate != null && row.EndDate != null && row.StartDate.Value.Year != row.Year.Value && row.EndDate.Value.Year != row.Year.Value)
                {
                    throw new PXException(Messages.EndOfYear);
                }
            }
            EPCustomWeek lastWeek = PXSelectOrderBy <EPCustomWeek, OrderBy <Desc <EPCustomWeek.year, Desc <EPCustomWeek.number> > > > .SelectSingleBound(this, new object[] { });

            if (lastWeek != null && lastWeek.EndDate == null)
            {
                throw new PXException(Messages.IncrorrectPrevWeek);
            }
        }
        protected virtual void EPCustomWeek_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
        {
            EPCustomWeek row = (EPCustomWeek)e.Row;

            if (row != null)
            {
                EPCustomWeek lastWeek = (EPCustomWeek)PXSelectOrderBy <EPCustomWeek, OrderBy <Desc <EPCustomWeek.weekID> > > .Select(this);

                if (lastWeek != null)
                {
                    bool readOnly = lastWeek.WeekID > row.WeekID;
                    PXUIFieldAttribute.SetReadOnly(cache, row, true);
                    PXUIFieldAttribute.SetReadOnly <EPCustomWeek.endDate>(cache, row, readOnly);
                    PXUIFieldAttribute.SetReadOnly <EPCustomWeek.isFullWeek>(cache, row, readOnly);
                    PXUIFieldAttribute.SetReadOnly <EPCustomWeek.startDate>(cache, row, row.Year != null && row.StartDate != null && (row.StartDate.Value.AddDays(-6d).Year <= row.Year.Value && row.Year.Value <= row.StartDate.Value.AddDays(6d).Year));
                }
            }
        }
        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 EPCustomWeek_Number_FieldDefaulting(PXCache sender, PXFieldDefaultingEventArgs e)
        {
            EPCustomWeek row = (EPCustomWeek)e.Row;

            if (row == null)
            {
                return;
            }
            EPCustomWeek lastWeek = (EPCustomWeek)PXSelect <EPCustomWeek, Where <EPCustomWeek.year, Equal <Required <EPCustomWeek.year> > >, OrderBy <Desc <EPCustomWeek.number> > > .SelectSingleBound(this, null, row.Year);

            if (lastWeek != null)
            {
                e.NewValue = lastWeek.Number.Value + 1;
            }
            else
            {
                e.NewValue = 1;
            }
        }
        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);
            }
        }
Exemplo n.º 17
0
        protected virtual void EPSetup_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
        {
            EPSetup row = e.Row as EPSetup;

            if (row != null)
            {
                PXUIFieldAttribute.SetEnabled <EPSetup.useReceiptAccountForTips>(cache, row, row.NonTaxableTipItem.HasValue);
                PXUIFieldAttribute.SetEnabled <EPSetup.offBalanceAccountGroupID>(cache, row, row.PostingOption == EPPostOptions.PostToOffBalance);
                if (row.CustomWeek == true)
                {
                    EPCustomWeek lastWeek = (EPCustomWeek)PXSelectOrderBy <EPCustomWeek, OrderBy <Desc <EPCustomWeek.weekID> > > .SelectSingleBound(this, null);

                    PXUIFieldAttribute.SetEnabled <EPSetup.customWeek>(cache, row, lastWeek == null);
                }

                bool claimApprovalVisible = PXAccess.FeatureInstalled <FeaturesSet.approvalWorkflow>() &&
                                            PXAccess.FeatureInstalled <FeaturesSet.expenseManagement>();

                PXUIFieldAttribute.SetVisible <EPSetup.claimDetailsAssignmentMapID>(cache, null, claimApprovalVisible);
                PXUIFieldAttribute.SetVisible <EPSetup.claimAssignmentMapID>(cache, null, claimApprovalVisible);
                PXUIFieldAttribute.SetVisible <EPSetup.claimDetailsAssignmentNotificationID>(cache, null, claimApprovalVisible);
            }
        }
        protected virtual void EPCustomWeek_RowDeleting(PXCache cache, PXRowDeletingEventArgs e)
        {
            EPCustomWeek row = (EPCustomWeek)e.Row;

            if (row == null)
            {
                return;
            }
            if (cache.GetStatus(row) != PXEntryStatus.Inserted && cache.GetStatus(row) != PXEntryStatus.InsertedDeleted)
            {
                if ((EPTimeCard)PXSelect <EPTimeCard> .Search <EPTimeCard.weekId>(this, row.WeekID) != null || (PMTimeActivity)PXSelect <PMTimeActivity> .Search <PMTimeActivity.weekID>(this, row.WeekID) != null)
                {
                    throw new PXException(Messages.WeekInUse);
                }
            }

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

            if (lastWeek != null && lastWeek.WeekID > row.WeekID)
            {
                throw new PXSetPropertyException(Messages.WeekNotLast, PXErrorLevel.RowWarning);
            }
        }
        private void GetNextUsingWeek(out DateTime startDate, out int number, out int year)
        {
            EPCustomWeek lastWeek = (EPCustomWeek)PXSelectOrderBy <EPCustomWeek, OrderBy <Desc <EPCustomWeek.weekID> > > .SelectSingleBound(this, null);

            if (lastWeek != null)
            {
                startDate = lastWeek.EndDate.Value.AddDays(1d);
                if (lastWeek.Number > 1 && lastWeek.StartDate.Value.Year < startDate.Year)
                {
                    number = 1;
                }
                else
                {
                    number = lastWeek.Number.Value + 1;
                }
                year = startDate.Year;
            }
            else
            {
                DateTime?First = GetFirstUsingWeek();
                if (First != null)
                {
                    startDate = (DateTime)First;
                }
                else if (WeekFilter.Current != null)
                {
                    startDate = new DateTime(WeekFilter.Current.Year.Value, 1, 1);
                }
                else
                {
                    startDate = new DateTime(Accessinfo.BusinessDate.Value.Year, 1, 1);
                }

                number = PXWeekSelectorAttribute.GetWeekID(startDate) % 100;
                year   = PXWeekSelectorAttribute.GetWeekID(startDate) / 100;
            }
        }
        public IEnumerable GenerateWeeksOK(PXAdapter adapter)
        {
            DateTime current;
            int      Year;
            int      weekNumber;

            isGenerate = true;

            GetNextUsingWeek(out current, out weekNumber, out Year);
            DateTime?LastUsingWeek = GetLasttUsingWeek();

            object fromDate = GenerateWeeksDialog.Current.FromDate;
            object tillDate = GenerateWeeksDialog.Current.TillDate;


            bool isFeryfing = GenerateWeeksDialog.Cache.RaiseFieldVerifying <EPGenerateWeeksDialog.fromDate>(GenerateWeeksDialog.Current, ref fromDate);

            isFeryfing = isFeryfing && GenerateWeeksDialog.Cache.RaiseFieldVerifying <EPGenerateWeeksDialog.tillDate>(GenerateWeeksDialog.Current, ref tillDate);

            if (GenerateWeeksDialog.VerifyRequired() && isFeryfing)
            {
                DateTime?oldCurrent = null;                  //Use to check Infinite Loop
                DateTime CalendarEndOfWeek;
                while (current <= GenerateWeeksDialog.Current.TillDate.Value)
                {
                    int CalendarWeekNumber = PX.Data.EP.PXDateTimeInfo.GetWeekNumber(current);
                    int EndOfWeekYear      = current.Year;
                    if (CalendarWeekNumber == 1 && current.Month == 12)                     //End Of Week in next Year
                    {
                        EndOfWeekYear++;
                    }
                    if (CalendarWeekNumber > 31 && current.Month == 1)                     //Begin Of Week in previos Year
                    {
                        EndOfWeekYear--;
                    }
                    CalendarEndOfWeek = PX.Data.EP.PXDateTimeInfo.GetWeekStart(EndOfWeekYear, CalendarWeekNumber).AddDays(6d);

                    if (LastUsingWeek == null || LastUsingWeek < current)
                    {
                        if (GenerateWeeksDialog.Current.CutOffDayOne == EPGenerateWeeksDialog.CutOffDayListAttribute.FixedDayOfMonth)
                        {
                            if (current.Day <= GenerateWeeksDialog.Current.DayOne && GenerateWeeksDialog.Current.DayOne < CalendarEndOfWeek.Day)
                            {
                                CalendarEndOfWeek = new DateTime(current.Year, current.Month, GenerateWeeksDialog.Current.DayOne.Value);
                            }
                        }
                        else if (GenerateWeeksDialog.Current.CutOffDayOne == EPGenerateWeeksDialog.CutOffDayListAttribute.EndOfMonth)
                        {
                            if (current.Year == CalendarEndOfWeek.Year)
                            {
                                if (current.Month < CalendarEndOfWeek.Month)
                                {
                                    CalendarEndOfWeek = new DateTime(current.Year, current.Month, DateTime.DaysInMonth(current.Year, current.Month));
                                }
                            }
                            else if (current.Year < CalendarEndOfWeek.Year)
                            {
                                CalendarEndOfWeek = new DateTime(current.Year, current.Month, DateTime.DaysInMonth(current.Year, current.Month));
                            }
                        }

                        if (GenerateWeeksDialog.Current.CutOffDayTwo == EPGenerateWeeksDialog.CutOffDayListAttribute.FixedDayOfMonth)
                        {
                            if (current.Day <= GenerateWeeksDialog.Current.DayTwo && GenerateWeeksDialog.Current.DayTwo < CalendarEndOfWeek.Day)
                            {
                                CalendarEndOfWeek = new DateTime(current.Year, current.Month, GenerateWeeksDialog.Current.DayTwo.Value);
                            }
                        }
                        else if (GenerateWeeksDialog.Current.CutOffDayTwo == EPGenerateWeeksDialog.CutOffDayListAttribute.EndOfMonth)
                        {
                            if (current.Month != CalendarEndOfWeek.Month)
                            {
                                CalendarEndOfWeek = new DateTime(current.Year, current.Month, DateTime.DaysInMonth(current.Year, current.Month));
                            }
                        }
                    }

                    if (CalendarWeekNumber == 1 && current.Year < CalendarEndOfWeek.Year)
                    {
                        weekNumber = 1;
                        Year++;
                    }

                    EPCustomWeek week = new EPCustomWeek {
                        StartDate = GetBeginOfDate(current), EndDate = GetEndOfDate(CalendarEndOfWeek), IsActive = true, Year = Year, Number = weekNumber
                    };
                    CustomWeek.Cache.Insert(week);

                    if (weekNumber != 1 && (current.Year < CalendarEndOfWeek.AddDays(1d).Year || Year < current.Year))
                    {
                        weekNumber = 1;
                        Year++;
                    }
                    else
                    {
                        weekNumber++;
                    }

                    current = GetBeginOfDate(CalendarEndOfWeek.AddDays(1d));
                    if (oldCurrent == current)
                    {
                        throw new PXException(Messages.InfiniteLoop);
                    }
                    oldCurrent = current;
                }
            }
            return(adapter.Get());
        }
Exemplo n.º 21
0
		//#region System
		//#region CreatedByID
		//public abstract class createdByID : PX.Data.IBqlField
		//{
		//}
		//protected Guid? _CreatedByID;
		//[PXDBCreatedByID(DontOverrideValue = true)]
		//[PXUIField(DisplayName = "Created By", Enabled = false)]
		//public virtual Guid? CreatedByID
		//{
		//	get
		//	{
		//		return this._CreatedByID;
		//	}
		//	set
		//	{
		//		this._CreatedByID = value;
		//	}
		//}
		//#endregion

		//#region CreatedByScreenID
		//public abstract class createdByScreenID : PX.Data.IBqlField
		//{
		//}
		//protected String _CreatedByScreenID;
		//[PXDBCreatedByScreenID]
		//public virtual String CreatedByScreenID
		//{
		//	get
		//	{
		//		return this._CreatedByScreenID;
		//	}
		//	set
		//	{
		//		this._CreatedByScreenID = value;
		//	}
		//}
		//#endregion

		//#region CreatedDateTime
		//public abstract class createdDateTime : PX.Data.IBqlField
		//{
		//}
		//protected DateTime? _CreatedDateTime;
		//[PXUIField(DisplayName = "Created At")]
		//[PXDBCreatedDateTimeUtc]
		//public virtual DateTime? CreatedDateTime
		//{
		//	get
		//	{
		//		return this._CreatedDateTime;
		//	}
		//	set
		//	{
		//		this._CreatedDateTime = value;
		//	}
		//}
		//#endregion

		//#region LastModifiedByID
		//public abstract class lastModifiedByID : PX.Data.IBqlField
		//{
		//}
		//protected Guid? _LastModifiedByID;
		//[PXDBLastModifiedByID]
		//public virtual Guid? LastModifiedByID
		//{
		//	get
		//	{
		//		return this._LastModifiedByID;
		//	}
		//	set
		//	{
		//		this._LastModifiedByID = value;
		//	}
		//}
		//#endregion

		//#region LastModifiedByScreenID
		//public abstract class lastModifiedByScreenID : PX.Data.IBqlField
		//{
		//}
		//protected String _LastModifiedByScreenID;
		//[PXDBLastModifiedByScreenID]
		//public virtual String LastModifiedByScreenID
		//{
		//	get
		//	{
		//		return this._LastModifiedByScreenID;
		//	}
		//	set
		//	{
		//		this._LastModifiedByScreenID = value;
		//	}
		//}
		//#endregion

		//#region LastModifiedDateTime
		//public abstract class lastModifiedDateTime : PX.Data.IBqlField
		//{
		//}
		//protected DateTime? _LastModifiedDateTime;
		//[PXDBLastModifiedDateTimeUtc]
		//public virtual DateTime? LastModifiedDateTime
		//{
		//	get
		//	{
		//		return this._LastModifiedDateTime;
		//	}
		//	set
		//	{
		//		this._LastModifiedDateTime = value;
		//	}
		//}
		//#endregion

		//#region EntityDescription
		//public abstract class entityDescription : IBqlField
		//{
		//}
		//protected string _EntityDescription;
		//[PXString(InputMask = "")]
		//[PXUIField(DisplayName = "Entity", Visibility = PXUIVisibility.SelectorVisible, Enabled = false, IsReadOnly = true)]
		//public virtual string EntityDescription
		//{
		//	get
		//	{
		//		return this._EntityDescription;
		//	}
		//	set
		//	{
		//		this._EntityDescription = value;
		//	}
		//}
		//#endregion

		//#region tstamp
		//public abstract class Tstamp : PX.Data.IBqlField
		//{
		//}
		//protected Byte[] _tstamp;
		//[PXDBTimestamp()]
		//public virtual Byte[] tstamp
		//{
		//	get
		//	{
		//		return this._tstamp;
		//	}
		//	set
		//	{
		//		this._tstamp = value;
		//	}
		//}
		//#endregion
		//#endregion

		public static EPWeekRaw ToEPWeekRaw(EPCustomWeek week)
		{
			EPWeekRaw res = new EPWeekRaw();
			res.EndDate = week.EndDate;
			res.StartDate = week.StartDate;
			res.WeekID = week.WeekID;
			res.Year = week.Year;
			res.Number = week.Number;
			res.ShortDescription = week.ShortDescription;
			res.Description = week.Description;
			res.FullNumber = week.FullNumber;
			res.IsFullWeek = week.IsFullWeek;
			res.IsActive = week.IsActive;

			return res;
		}