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); }
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)); }