public async Task <IActionResult> Delete(Guid?id) { if (id == null) { return(NotFound()); } var stockReceiving = await _context.StockReceiving .Include(s => s.ApplicationUser) .Include(s => s.Supplier) .SingleOrDefaultAsync(m => m.StockReceivingID == id); if (stockReceiving == null) { return(NotFound()); } var timeSpan = DateTime.Now - stockReceiving.Date; if (timeSpan.TotalHours > 2) { ViewData["ErrorText"] = "Không thể xóa xóa đơn nhập hàng sau 2 giờ"; return(View("ErrorPage")); } var hasModelFromSupplier = await _context.ModelFromSupplier.Where(m => m.StockReceivingID == id).AnyAsync(); if (hasModelFromSupplier) { ViewData["ErrorText"] = "Không thể xóa do đã có do đã nhập chi tiết đơn hàng bán ra "; return(View("ErrorPage")); } var isAuthorized = await _authorizationService.AuthorizeAsync(User, stockReceiving, OrderOperations.Delete); if (!isAuthorized.Succeeded) { return(new ChallengeResult()); } var modelFromSuppliers = await _context.ModelFromSupplier.Where(m => m.StockReceivingID == id).Include(m => m.Model).ToListAsync(); var stockReceivingVM = new StockReceivingViewModel(); stockReceivingVM.StockReceiving = stockReceiving; stockReceivingVM.ModelFromSuppliers = modelFromSuppliers; stockReceivingVM.Models = _context.Model; stockReceivingVM.Suppliers = _context.Supplier; return(View(stockReceivingVM)); }
public async Task <IActionResult> CreateModelFromSupplier(StockReceivingViewModel stockReceivingVM) { if (ModelState.IsValid) { var stockReceiving = await _context.StockReceiving.SingleAsync(m => m.StockReceivingID == stockReceivingVM.ModelFromSupplier.StockReceivingID); var timeSpan = DateTime.Now - stockReceiving.Date; if (timeSpan.TotalHours > 2) { ViewData["ErrorText"] = "Bạn không thể sửa sau 2h"; return(View("ErrorPage")); } stockReceivingVM.ModelFromSupplier.Date = DateTime.Now; stockReceivingVM.ModelFromSupplier.Quantity = 0; _context.Add(stockReceivingVM.ModelFromSupplier); await _context.SaveChangesAsync(); } return(RedirectToAction(nameof(Details), new { id = stockReceivingVM.ModelFromSupplier.StockReceivingID })); }
// GET: StockReceivings/Details/5 public async Task <IActionResult> Details(Guid?id, string sortOrder, string currentFilter, string searchString, int?page) { #region Check Exist if (id == null) { return(NotFound()); } var stockReceiving = await _context.StockReceiving .Include(s => s.ApplicationUser) .Include(s => s.Supplier) .SingleOrDefaultAsync(m => m.StockReceivingID == id); if (stockReceiving == null) { return(NotFound()); } #endregion #region Filter and Search ViewData["DateSortParm"] = String.IsNullOrEmpty(sortOrder) ? "date" : ""; ViewData["QuantitySortParm"] = sortOrder == "quantity" ? "quantity_desc" : "quantity"; ViewData["PriceBoughtSortParm"] = sortOrder == "pricebought" ? "pricebought_desc" : "pricebought"; ViewData["PriceSoldSortParm"] = sortOrder == "pricesold" ? "pricesold_desc" : "pricesold"; ViewData["ModelSortParm"] = sortOrder == "model" ? "model_desc" : "model"; ViewData["PeriodSortParm"] = sortOrder == "period" ? "period_desc" : "period"; ViewData["CurrentSort"] = sortOrder; if (searchString != null) { page = 1; } else { searchString = currentFilter; } ViewData["CurrentFilter"] = searchString; var modelsFromSuppliers = _context.ModelFromSupplier.Include(m => m.StockReceiving).Where(m => m.StockReceivingID == id); if (!String.IsNullOrEmpty(searchString)) { modelsFromSuppliers = modelsFromSuppliers.Include(m => m.StockReceiving).Include(m => m.Model).Where(m => m.Model.Name.Contains(searchString)); } switch (sortOrder) { case "date": modelsFromSuppliers = modelsFromSuppliers.Include(m => m.StockReceiving).OrderBy(s => s.Date).Include(m => m.Model); break; case "quantity": modelsFromSuppliers = modelsFromSuppliers.Include(m => m.StockReceiving).OrderBy(s => s.Quantity).Include(m => m.Model); break; case "quantity_desc": modelsFromSuppliers = modelsFromSuppliers.Include(m => m.StockReceiving).OrderByDescending(s => s.Quantity).Include(m => m.Model); break; case "period": modelsFromSuppliers = modelsFromSuppliers.Include(m => m.StockReceiving).OrderBy(s => s.Period).Include(m => m.Model); break; case "period_desc": modelsFromSuppliers = modelsFromSuppliers.Include(m => m.StockReceiving).OrderByDescending(s => s.Period).Include(m => m.Model); break; case "pricebought": modelsFromSuppliers = modelsFromSuppliers.Include(m => m.StockReceiving).OrderBy(s => s.PriceBought).Include(m => m.Model); break; case "pricebought_desc": modelsFromSuppliers = modelsFromSuppliers.Include(m => m.StockReceiving).OrderByDescending(s => s.PriceBought).Include(m => m.Model); break; case "pricesold": modelsFromSuppliers = modelsFromSuppliers.Include(m => m.StockReceiving).OrderBy(s => s.PriceSold).Include(m => m.Model); break; case "pricesold_desc": modelsFromSuppliers = modelsFromSuppliers.Include(m => m.StockReceiving).OrderByDescending(s => s.PriceSold).Include(m => m.Model); break; case "model": modelsFromSuppliers = modelsFromSuppliers.Include(m => m.StockReceiving).OrderBy(s => s.Model.Name).Include(m => m.Model); break; case "model_desc": modelsFromSuppliers = modelsFromSuppliers.Include(m => m.StockReceiving).OrderByDescending(s => s.Model.Name).Include(m => m.Model); break; default: modelsFromSuppliers = modelsFromSuppliers.Include(m => m.StockReceiving).OrderByDescending(s => s.Date).Include(m => m.Model); break; } #endregion #region Logic var stockReceivingVm = new StockReceivingViewModel(); stockReceivingVm.StockReceiving = stockReceiving; stockReceivingVm.Models = _context.Model; stockReceivingVm.Suppliers = _context.Supplier; #endregion #region Paging int pageSize = 6; PaginatedList <ModelFromSupplier> pagesModelsFromSuppliers = await PaginatedList <ModelFromSupplier> .CreateAsync(modelsFromSuppliers.AsNoTracking(), page ?? 1, pageSize); stockReceivingVm.ModelFromSuppliers = pagesModelsFromSuppliers; #endregion return(View(stockReceivingVm)); }