Beispiel #1
0
        private string GetLotNumber(Order order)
        {
            if (order.LotNumber != null)
            {
                return(order.LotNumber);
            }
            var year  = DateTime.Now.Year;
            var today = year + DateTime.Now.DayOfYear.ToString(CultureInfo.InvariantCulture).PadLeft(3, '0');
            var max   =
                _labelRepository.GetAll()
                .Where(x => x.LotNumber.StartsWith(today))
                .Select(x => x.LotNumber)
                .DefaultIfEmpty(today + "00")
                .Max();
            var lotNumber = (int.Parse(max) + 1).ToString(CultureInfo.InvariantCulture);

            order.LotNumber = lotNumber;
            _orderRepository.Update(order);
            return(lotNumber);
        }
Beispiel #2
0
        public ICollection <LabelGetFullModel> GetAllFull(string user, long group, int month, int year)
        {
            var currMonthStart = new DateTime(year, month, 1);
            var currMonthEnd   = currMonthStart.AddMonths(1).AddDays(-1);

            var lastMonthStart = currMonthStart.AddMonths(-1);
            var lastMonthEnd   = currMonthStart.AddDays(-1);

            var averageStart = currMonthStart.AddYears(-100);
            var averageEnd   = currMonthStart.AddDays(-1);

            var models = _repository.GetAll()
                         .Include(l => l.Group)
                         .ThenInclude(l => l.GroupUser)
                         .Include(l => l.Expenses)
                         .Where(l => l.GroupId.Equals(group) && l.Group.GroupUser.Any(gu => gu.UserId.Equals(user)))
                         .Select(l => new LabelGetFullModel
            {
                Id        = l.Id,
                Name      = l.Name,
                CurrValue = l.Expenses
                            .Where(e =>
                                   DateTime.Compare(e.Date, currMonthStart) > 0 &&
                                   DateTime.Compare(e.Date, currMonthEnd) < 0)
                            .Sum(e => e.Value),
                LastValue = l.Expenses
                            .Where(e =>
                                   DateTime.Compare(e.Date, lastMonthStart) > 0 &&
                                   DateTime.Compare(e.Date, lastMonthEnd) < 0)
                            .Sum(e => e.Value),
                AvgValue = l.Expenses
                           .Where(e =>
                                  DateTime.Compare(e.Date, averageStart) > 0 &&
                                  DateTime.Compare(e.Date, averageEnd) < 0).Any() ?
                           l.Expenses
                           .Where(e =>
                                  DateTime.Compare(e.Date, averageStart) > 0 &&
                                  DateTime.Compare(e.Date, averageEnd) < 0)
                           .GroupBy(
                    key => new { key.Date.Month, key.Date.Year },
                    value => value.Value,
                    (key, values) => values.Sum())
                           .Average() :
                           0
            });

            return(models.ToList());
        }
        public ActionResult SearchBySn(string q)
        {
            var label = _labelRepository.GetAll().FirstOrDefault(x => x.SerialNumber == q);

            if (label == null)
            {
                return(new EmptyResult());
            }

            var model = new SearchBySnViewModel
            {
                OrderId      = label.With(x => x.OrderDetail).With(x => (int?)x.OrderId) ?? 0,
                ItemCode     = label.ItemCode,
                SerialNumber = label.SerialNumber,
                Status       = label.With(x => x.CurrentLocation).With(x => x.Name)
            };

            return(PartialView("SearchBySNResult", model));
        }