示例#1
0
        /// <summary>
        /// Get order average report
        /// </summary>
        /// <param name="storeId">Store identifier</param>
        /// <param name="os">Order status</param>
        /// <returns>Result</returns>
        public virtual async Task <OrderAverageReportLineSummary> OrderAverageReport(string storeId, OrderStatus os)
        {
            var item = new OrderAverageReportLineSummary();

            item.OrderStatus = os;

            DateTime     nowDt    = _dateTimeHelper.ConvertToUserTime(DateTime.Now);
            TimeZoneInfo timeZone = _dateTimeHelper.CurrentTimeZone;

            //today
            var t1 = new DateTime(nowDt.Year, nowDt.Month, nowDt.Day);

            if (!timeZone.IsInvalidTime(t1))
            {
                DateTime?startTime1  = _dateTimeHelper.ConvertToUtcTime(t1, timeZone);
                var      todayResult = await GetOrderAverageReportLine(storeId : storeId,
                                                                       os : os,
                                                                       startTimeUtc : startTime1);

                item.SumTodayOrders   = todayResult.SumOrders;
                item.CountTodayOrders = todayResult.CountOrders;
            }
            //week
            DayOfWeek fdow  = CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek;
            var       today = new DateTime(nowDt.Year, nowDt.Month, nowDt.Day);
            DateTime  t2    = today.AddDays(-(today.DayOfWeek - fdow));

            if (!timeZone.IsInvalidTime(t2))
            {
                DateTime?startTime2 = _dateTimeHelper.ConvertToUtcTime(t2, timeZone);
                var      weekResult = await GetOrderAverageReportLine(storeId : storeId,
                                                                      os : os,
                                                                      startTimeUtc : startTime2);

                item.SumThisWeekOrders   = weekResult.SumOrders;
                item.CountThisWeekOrders = weekResult.CountOrders;
            }
            //month
            var t3 = new DateTime(nowDt.Year, nowDt.Month, 1);

            if (!timeZone.IsInvalidTime(t3))
            {
                DateTime?startTime3  = _dateTimeHelper.ConvertToUtcTime(t3, timeZone);
                var      monthResult = await GetOrderAverageReportLine(storeId : storeId,
                                                                       os : os,
                                                                       startTimeUtc : startTime3);

                item.SumThisMonthOrders   = monthResult.SumOrders;
                item.CountThisMonthOrders = monthResult.CountOrders;
            }
            //year
            var t4 = new DateTime(nowDt.Year, 1, 1);

            if (!timeZone.IsInvalidTime(t4))
            {
                DateTime?startTime4 = _dateTimeHelper.ConvertToUtcTime(t4, timeZone);
                var      yearResult = await GetOrderAverageReportLine(storeId : storeId,
                                                                      os : os,
                                                                      startTimeUtc : startTime4);

                item.SumThisYearOrders   = yearResult.SumOrders;
                item.CountThisYearOrders = yearResult.CountOrders;
            }
            //all time
            var allTimeResult = await GetOrderAverageReportLine(storeId : storeId, os : os);

            item.SumAllTimeOrders   = allTimeResult.SumOrders;
            item.CountAllTimeOrders = allTimeResult.CountOrders;

            return(item);
        }
示例#2
0
        /// <summary>
        /// Get order average report
        /// </summary>
        /// <param name="storeId">Store identifier</param>
        /// <param name="os">Order status</param>
        /// <returns>Result</returns>
        public virtual OrderAverageReportLineSummary OrderAverageReport(int storeId, OrderStatus os)
        {
            var item = new OrderAverageReportLineSummary
            {
                OrderStatus = os
            };
            var orderStatuses = new List <int> {
                (int)os
            };

            var nowDt    = _dateTimeHelper.ConvertToUserTime(DateTime.Now);
            var timeZone = _dateTimeHelper.CurrentTimeZone;

            //today
            var      t1          = new DateTime(nowDt.Year, nowDt.Month, nowDt.Day);
            DateTime?startTime1  = _dateTimeHelper.ConvertToUtcTime(t1, timeZone);
            var      todayResult = GetOrderAverageReportLine(storeId,
                                                             osIds: orderStatuses,
                                                             startTimeUtc: startTime1);

            item.SumTodayOrders   = todayResult.SumOrders;
            item.CountTodayOrders = todayResult.CountOrders;

            //week
            var      fdow       = CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek;
            var      today      = new DateTime(nowDt.Year, nowDt.Month, nowDt.Day);
            var      t2         = today.AddDays(-(today.DayOfWeek - fdow));
            DateTime?startTime2 = _dateTimeHelper.ConvertToUtcTime(t2, timeZone);
            var      weekResult = GetOrderAverageReportLine(storeId,
                                                            osIds: orderStatuses,
                                                            startTimeUtc: startTime2);

            item.SumThisWeekOrders   = weekResult.SumOrders;
            item.CountThisWeekOrders = weekResult.CountOrders;

            //month
            var      t3          = new DateTime(nowDt.Year, nowDt.Month, 1);
            DateTime?startTime3  = _dateTimeHelper.ConvertToUtcTime(t3, timeZone);
            var      monthResult = GetOrderAverageReportLine(storeId,
                                                             osIds: orderStatuses,
                                                             startTimeUtc: startTime3);

            item.SumThisMonthOrders   = monthResult.SumOrders;
            item.CountThisMonthOrders = monthResult.CountOrders;

            //year
            var      t4         = new DateTime(nowDt.Year, 1, 1);
            DateTime?startTime4 = _dateTimeHelper.ConvertToUtcTime(t4, timeZone);
            var      yearResult = GetOrderAverageReportLine(storeId,
                                                            osIds: orderStatuses,
                                                            startTimeUtc: startTime4);

            item.SumThisYearOrders   = yearResult.SumOrders;
            item.CountThisYearOrders = yearResult.CountOrders;

            //all time
            var allTimeResult = GetOrderAverageReportLine(storeId, osIds: orderStatuses);

            item.SumAllTimeOrders   = allTimeResult.SumOrders;
            item.CountAllTimeOrders = allTimeResult.CountOrders;

            return(item);
        }
        /// <summary>
        /// Get order average report
        /// </summary>
        /// <param name="storeId">Store identifier</param>
        /// <param name="os">Order status</param>
        /// <returns>Result</returns>
        public virtual OrderAverageReportLineSummary OrderAverageReport(int storeId, OrderStatus os)
        {
            var item = new OrderAverageReportLineSummary();

            item.OrderStatus = os;

            DateTime     nowDt         = _dateTimeHelper.ConvertToUserTime(DateTime.Now);
            TimeZoneInfo timeZone      = _dateTimeHelper.CurrentTimeZone;
            var          orderStatusId = new int[] { (int)os };

            //today
            DateTime t1 = new DateTime(nowDt.Year, nowDt.Month, nowDt.Day);

            if (!timeZone.IsInvalidTime(t1))
            {
                DateTime?startTime1  = _dateTimeHelper.ConvertToUtcTime(t1, timeZone);
                DateTime?endTime1    = null;
                var      todayResult = GetOrderAverageReportLine(storeId, orderStatusId, null, null, startTime1, endTime1, null);
                item.SumTodayOrders   = todayResult.SumOrders;
                item.CountTodayOrders = todayResult.CountOrders;
            }
            //week
            DayOfWeek fdow  = CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek;
            DateTime  today = new DateTime(nowDt.Year, nowDt.Month, nowDt.Day);
            DateTime  t2    = today.AddDays(-(today.DayOfWeek - fdow));

            if (!timeZone.IsInvalidTime(t2))
            {
                DateTime?startTime2 = _dateTimeHelper.ConvertToUtcTime(t2, timeZone);
                DateTime?endTime2   = null;
                var      weekResult = GetOrderAverageReportLine(storeId, orderStatusId, null, null, startTime2, endTime2, null);
                item.SumThisWeekOrders   = weekResult.SumOrders;
                item.CountThisWeekOrders = weekResult.CountOrders;
            }
            //month
            DateTime t3 = new DateTime(nowDt.Year, nowDt.Month, 1);

            if (!timeZone.IsInvalidTime(t3))
            {
                DateTime?startTime3  = _dateTimeHelper.ConvertToUtcTime(t3, timeZone);
                DateTime?endTime3    = null;
                var      monthResult = GetOrderAverageReportLine(storeId, orderStatusId, null, null, startTime3, endTime3, null);
                item.SumThisMonthOrders   = monthResult.SumOrders;
                item.CountThisMonthOrders = monthResult.CountOrders;
            }
            //year
            DateTime t4 = new DateTime(nowDt.Year, 1, 1);

            if (!timeZone.IsInvalidTime(t4))
            {
                DateTime?startTime4 = _dateTimeHelper.ConvertToUtcTime(t4, timeZone);
                DateTime?endTime4   = null;
                var      yearResult = GetOrderAverageReportLine(storeId, orderStatusId, null, null, startTime4, endTime4, null);
                item.SumThisYearOrders   = yearResult.SumOrders;
                item.CountThisYearOrders = yearResult.CountOrders;
            }
            //all time
            DateTime?startTime5    = null;
            DateTime?endTime5      = null;
            var      allTimeResult = GetOrderAverageReportLine(storeId, orderStatusId, null, null, startTime5, endTime5, null);

            item.SumAllTimeOrders   = allTimeResult.SumOrders;
            item.CountAllTimeOrders = allTimeResult.CountOrders;

            return(item);
        }
示例#4
0
        /// <summary>
        /// Get order average report
        /// </summary>
        /// <param name="storeId">Store identifier</param>
        /// <param name="os">Order status</param>
        /// <returns>Result</returns>
        public virtual OrderAverageReportLineSummary OrderAverageReport(int storeId, OrderStatus os)
        {
            var item = new OrderAverageReportLineSummary();

            item.OrderStatus = os;
            var orderStatuses = new List <int>()
            {
                (int)os
            };

            DateTime     nowDt    = _dateTimeHelper.ConvertToUserTime(DateTime.Now);
            TimeZoneInfo timeZone = _dateTimeHelper.CurrentTimeZone;

            #region Extensions by QuanNH
            var _storeMappingService = Nop.Core.Infrastructure.EngineContext.Current.Resolve <Nop.Services.Stores.IStoreMappingService>();
            storeId = _storeMappingService.CurrentStore();

            #endregion
            //today
            var t1 = new DateTime(nowDt.Year, nowDt.Month, nowDt.Day);
            if (!timeZone.IsInvalidTime(t1))
            {
                DateTime?startTime1  = _dateTimeHelper.ConvertToUtcTime(t1, timeZone);
                var      todayResult = GetOrderAverageReportLine(storeId: storeId,
                                                                 osIds: orderStatuses,
                                                                 startTimeUtc: startTime1);
                item.SumTodayOrders   = todayResult.SumOrders;
                item.CountTodayOrders = todayResult.CountOrders;
            }
            //week
            DayOfWeek fdow  = CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek;
            var       today = new DateTime(nowDt.Year, nowDt.Month, nowDt.Day);
            DateTime  t2    = today.AddDays(-(today.DayOfWeek - fdow));
            if (!timeZone.IsInvalidTime(t2))
            {
                DateTime?startTime2 = _dateTimeHelper.ConvertToUtcTime(t2, timeZone);
                var      weekResult = GetOrderAverageReportLine(storeId: storeId,
                                                                osIds: orderStatuses,
                                                                startTimeUtc: startTime2);
                item.SumThisWeekOrders   = weekResult.SumOrders;
                item.CountThisWeekOrders = weekResult.CountOrders;
            }
            //month
            var t3 = new DateTime(nowDt.Year, nowDt.Month, 1);
            if (!timeZone.IsInvalidTime(t3))
            {
                DateTime?startTime3  = _dateTimeHelper.ConvertToUtcTime(t3, timeZone);
                var      monthResult = GetOrderAverageReportLine(storeId: storeId,
                                                                 osIds: orderStatuses,
                                                                 startTimeUtc: startTime3);
                item.SumThisMonthOrders   = monthResult.SumOrders;
                item.CountThisMonthOrders = monthResult.CountOrders;
            }
            //year
            var t4 = new DateTime(nowDt.Year, 1, 1);
            if (!timeZone.IsInvalidTime(t4))
            {
                DateTime?startTime4 = _dateTimeHelper.ConvertToUtcTime(t4, timeZone);
                var      yearResult = GetOrderAverageReportLine(storeId: storeId,
                                                                osIds: orderStatuses,
                                                                startTimeUtc: startTime4);
                item.SumThisYearOrders   = yearResult.SumOrders;
                item.CountThisYearOrders = yearResult.CountOrders;
            }
            //all time
            var allTimeResult = GetOrderAverageReportLine(storeId: storeId, osIds: orderStatuses);
            item.SumAllTimeOrders   = allTimeResult.SumOrders;
            item.CountAllTimeOrders = allTimeResult.CountOrders;

            return(item);
        }