Beispiel #1
0
        public static bool IsWorkDay(PXGraph graph, string CalendarID, DateTime Date)
        {
            PXResult <CSCalendar, CSCalendarExceptions> result =
                (PXResult <CSCalendar, CSCalendarExceptions>)
                PXSelectJoin <
                    CSCalendar
                    , LeftJoin <CSCalendarExceptions
                                , On <CSCalendarExceptions.calendarID, Equal <CSCalendar.calendarID>, And <CSCalendarExceptions.date, Equal <Required <CSCalendarExceptions.date> > > >
                                >
                    , Where <CSCalendar.calendarID, Equal <Required <CSCalendar.calendarID> > >
                    > .SelectWindowed(graph, 0, 1, Date, CalendarID);

            if (result != null)
            {
                CSCalendar           calendar = result;
                CSCalendarExceptions exc      = result;
                if (exc.Date != null)
                {
                    return(exc.WorkDay == true);
                }
                else
                {
                    return(calendar.IsWorkDay(Date));
                }
            }
            return(true);
        }
        public CalendarHelper(CSCalendar calendar, CSCalendarExceptions calendarException, DateTime date)
        {
            if (calendar == null)
                throw new ArgumentNullException("calendar");


            this.calendar = calendar;
            this.calendarException = calendarException;
            this.date = date;
        }
Beispiel #3
0
        public CalendarHelper(CSCalendar calendar, CSCalendarExceptions calendarException, DateTime date)
        {
            if (calendar == null)
            {
                throw new ArgumentNullException("calendar");
            }


            this.calendar          = calendar;
            this.calendarException = calendarException;
            this.date = date;
        }
Beispiel #4
0
        public static bool IsWorkDay(PXGraph graph, string calendarID, DateTime date)
        {
            var select = SelectCalendar(graph, calendarID, date);

            if (select == null)
            {
                return(true);
            }

            CSCalendar           calendar = select;
            CSCalendarExceptions exc      = select;

            var result = exc.Date.HasValue ? exc.WorkDay == true : calendar.IsWorkDay(date);

            return(result);
        }
Beispiel #5
0
        public static void CalculateStartEndTime(PXGraph graph, string calendarID, DateTime date, out DateTime startDate, out DateTime endDate)
        {
            CSCalendar calendar = PXSelect <CSCalendar> .Search <CSCalendar.calendarID>(graph, calendarID);

            if (calendar == null)
            {
                throw new InvalidOperationException(Messages.FailedToSelectCalenderId);
            }

            CSCalendarExceptions cse = PXSelect <CSCalendarExceptions> .
                                       Search <CSCalendarExceptions.calendarID, CSCalendarExceptions.date>(graph, calendarID, date);

            CalendarHelper helper = new CalendarHelper(calendar, cse, date);

            helper.CalculateStartEndTime(out startDate, out endDate);
        }
        private static bool IsWarehouseDay(CSCalendar calendar, IEnumerable <CSCalendarExceptions> calendarExceptions, DateTime date)
        {
            bool isWarehouseDay      = false;
            CSCalendarExceptions cse = calendarExceptions.Where(ce => ce.Date == date).SingleOrDefault();

            if (cse != null)
            {
                isWarehouseDay = (cse.GoodsMoved == true);
            }
            else
            {
                switch (date.DayOfWeek)
                {
                case DayOfWeek.Sunday:
                    isWarehouseDay = (calendar.SunGoodsMoves == true);
                    break;

                case DayOfWeek.Monday:
                    isWarehouseDay = (calendar.MonGoodsMoves == true);
                    break;

                case DayOfWeek.Tuesday:
                    isWarehouseDay = (calendar.TueGoodsMoves == true);
                    break;

                case DayOfWeek.Wednesday:
                    isWarehouseDay = (calendar.WedGoodsMoves == true);
                    break;

                case DayOfWeek.Thursday:
                    isWarehouseDay = (calendar.ThuGoodsMoves == true);
                    break;

                case DayOfWeek.Friday:
                    isWarehouseDay = (calendar.FriGoodsMoves == true);
                    break;

                case DayOfWeek.Saturday:
                    isWarehouseDay = (calendar.SatGoodsMoves == true);
                    break;
                }
            }

            return(isWarehouseDay);
        }