public void Should_Success_Instantiate() { PackingQCGudangViewModel vm = new PackingQCGudangViewModel() { Date = DateTimeOffset.Now, Dyeing = 1, Jumlah = 1, Printing = 1, UlanganPrinting = 1, UlanganSolid = 1, White = 1 }; Assert.True(DateTimeOffset.MinValue < vm.Date); Assert.Equal(1, vm.Dyeing); Assert.Equal(1, vm.Jumlah); Assert.Equal(1, vm.Printing); Assert.Equal(1, vm.UlanganPrinting); Assert.Equal(1, vm.UlanganSolid); Assert.Equal(1, vm.White); }
public List <PackingQCGudangViewModel> GetQCGudang(DateTime?dateFrom, DateTime?dateTo, int offSet) { IQueryable <PackingModel> query = dbContext.Packings.Include(x => x.PackingDetails); if (dateFrom == null && dateTo == null) { query = query .Where(x => DateTimeOffset.UtcNow.AddDays(-30).Date <= x.Date.AddHours(offSet).Date && x.Date.AddHours(offSet).Date <= DateTime.UtcNow.Date); } else if (dateFrom == null && dateTo != null) { query = query .Where(x => dateTo.Value.AddDays(-30).Date <= x.Date.AddHours(offSet).Date && x.Date.AddHours(offSet).Date <= dateTo.Value.Date); } else if (dateTo == null && dateFrom != null) { query = query .Where(x => dateFrom.Value.Date <= x.Date.AddHours(offSet).Date && x.Date.AddHours(offSet).Date <= dateFrom.Value.AddDays(30).Date); } else { query = query .Where(x => dateFrom.Value.Date <= x.Date.AddHours(offSet).Date && x.Date.AddHours(offSet).Date <= dateTo.Value.Date); } List <PackingQCGudangViewModel> result = new List <PackingQCGudangViewModel>(); foreach (var item in query.ToList()) { var vm = new PackingQCGudangViewModel() { Date = item.Date.Date }; if (item.DeliveryType.Equals("ULANGAN", StringComparison.OrdinalIgnoreCase) && (item.FinishedProductType.Equals("WHITE", StringComparison.OrdinalIgnoreCase) || item.FinishedProductType.Equals("DYEING", StringComparison.OrdinalIgnoreCase))) { vm.UlanganSolid = item.PackingDetails.Sum(x => x.Length * x.Quantity); } if (item.DeliveryType.Equals("ULANGAN", StringComparison.OrdinalIgnoreCase) && (item.FinishedProductType.Equals("BATIK", StringComparison.OrdinalIgnoreCase) || item.FinishedProductType.Equals("TEKSTIL", StringComparison.OrdinalIgnoreCase))) { vm.UlanganPrinting = item.PackingDetails.Sum(x => x.Length * x.Quantity); } if (item.DeliveryType.Equals("BARU", StringComparison.OrdinalIgnoreCase) && item.FinishedProductType.Equals("WHITE", StringComparison.OrdinalIgnoreCase)) { vm.White = item.PackingDetails.Sum(x => x.Length * x.Quantity); } if (item.DeliveryType.Equals("BARU", StringComparison.OrdinalIgnoreCase) && item.FinishedProductType.Equals("DYEING", StringComparison.OrdinalIgnoreCase)) { vm.Dyeing = item.PackingDetails.Sum(x => x.Length * x.Quantity); } if (item.DeliveryType.Equals("BARU", StringComparison.OrdinalIgnoreCase) && (item.FinishedProductType.Equals("BATIK", StringComparison.OrdinalIgnoreCase) || item.FinishedProductType.Equals("TEKSTIL", StringComparison.OrdinalIgnoreCase))) { vm.Printing = item.PackingDetails.Sum(x => x.Length * x.Quantity); } vm.Jumlah = vm.UlanganSolid + vm.Dyeing + vm.White + vm.UlanganPrinting + vm.Printing; result.Add(vm); } return(result.GroupBy(x => x.Date).Select(x => new PackingQCGudangViewModel() { Date = x.Key, Dyeing = x.Sum(y => y.Dyeing), Jumlah = x.Sum(y => y.Jumlah), Printing = x.Sum(y => y.Printing), UlanganPrinting = x.Sum(y => y.UlanganPrinting), UlanganSolid = x.Sum(y => y.UlanganSolid), White = x.Sum(y => y.White) }).OrderBy(x => x.Date).ToList()); }