public async Task <IActionResult> Delete(int?id) { if (id == null) { return(NotFound()); } var item = await _context.ModelFromSupplier .Include(m => m.Model).Include(m => m.StockReceiving) .SingleOrDefaultAsync(m => m.ModelFromSupplierID == id); if (item == null) { return(NotFound()); } var timeSpan = DateTime.Now - item.StockReceiving.Date; if (timeSpan.TotalHours > 2) { ViewData["ErrorText"] = "Không thể xóa sản phẩm sau 2 giờ"; return(View("ErrorPage")); } var blockDelete = await _context.Item.AnyAsync(m => m.ModelFromSupplierID == id && m.Status != ItemStatus.InStock); if (blockDelete) { ViewData["ErrorText"] = "Đã có sản phẩm bán ra không thể xóa"; return(View("ErrorPage")); } var isAuthorized = await _authorizationService.AuthorizeAsync(User, item.StockReceiving, OrderOperations.Delete); if (!isAuthorized.Succeeded) { return(new ChallengeResult()); } var listItems = await _context.Item.Where(i => i.ModelFromSupplierID == id).ToListAsync(); ViewData["ModelItemID"] = item.ModelID; ViewData["ModelFromSupplierID"] = item.ModelFromSupplierID; ViewData["ModelID"] = new SelectList(_context.Model, "ModelID", "Name", item.ModelID); ViewData["StockReceivingID"] = new SelectList(_context.StockReceiving, "StockReceivingID", "StockReceivingID", item.StockReceivingID); var stockReceivingDetailVM = new StockReceivingDetailViewModel(); stockReceivingDetailVM.ModelFromSupplier = item; stockReceivingDetailVM.Items = listItems; return(View(stockReceivingDetailVM)); }
public async Task <IActionResult> Create(StockReceivingDetailViewModel stockReceivingVM) { if (ModelState.IsValid) { _context.Add(stockReceivingVM.Item); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["ModelID"] = new SelectList(_context.Model, "ModelID", "ModelID", stockReceivingVM.Item.ModelID); ViewData["ModelFromSupplierID"] = new SelectList(_context.ModelFromSupplier, "ModelFromSupplierID", "ModelFromSupplierID", stockReceivingVM.Item.ModelFromSupplierID); return(RedirectToAction("Create", "ModelFromSuppliers")); }
public async Task <IActionResult> CreateItem(StockReceivingDetailViewModel stockReceivingDetailVM) { var modelFromSupplier = await _context.ModelFromSupplier.Include(m => m.StockReceiving) .SingleOrDefaultAsync(m => m.ModelFromSupplierID == stockReceivingDetailVM.Item.ModelFromSupplierID); if (ModelState.IsValid) { var timeSpan = DateTime.Now - modelFromSupplier.StockReceiving.Date; if (timeSpan.TotalHours > 2) { ViewData["ErrorText"] = "Không thể tạo sản phẩm sau 2 giờ"; return(View("ErrorPage")); } stockReceivingDetailVM.Item.Status = ItemStatus.InStock; modelFromSupplier.Quantity = modelFromSupplier.Quantity + 1; _context.Update(modelFromSupplier); _context.Add(stockReceivingDetailVM.Item); await _context.SaveChangesAsync(); } //ViewData["SupplierID"] = new SelectList(_context.Supplier, "SupplierID", "SupplierID", stockReceivingDetailVM.ModelFromSupplier.SupplierID); return(RedirectToAction("Details", "ModelFromSuppliers", new { id = modelFromSupplier.ModelFromSupplierID })); }
// GET: ModelFromSuppliers/Details/5 public async Task <IActionResult> Details(int?id, string sortOrder, string currentFilter, string searchString, int?page) { #region Check Exists if (id == null) { return(NotFound()); } var item = await _context.ModelFromSupplier.Include(m => m.StockReceiving).Include(m => m.Model).SingleOrDefaultAsync(m => m.ModelFromSupplierID == id); if (item == null) { return(NotFound()); } #endregion #region Filter and Search ViewData["ModelSortParm"] = String.IsNullOrEmpty(sortOrder) ? "model_desc" : ""; ViewData["StatusSortParm"] = sortOrder == "status" ? "status_desc" : "status"; ViewData["SerializerNumberSortParm"] = sortOrder == "serializer_number" ? "serializer_number_desc" : "serializer_number"; ViewData["NameSortParm"] = sortOrder == "name" ? "name_desc" : "name"; ViewData["CurrentSort"] = sortOrder; if (searchString != null) { page = 1; } else { searchString = currentFilter; } ViewData["CurrentFilter"] = searchString; var items = _context.Item.Include(m => m.Model).Where(m => m.ModelFromSupplierID == id); if (!String.IsNullOrEmpty(searchString)) { items = items.Include(m => m.Model).Where(m => m.SerializerNumber.ToString().ToLower().Contains(searchString.ToLower()) || m.IMEI.ToString().ToLower().Contains(searchString.ToLower())); } switch (sortOrder) { case "model_desc": items = items.OrderByDescending(s => s.Model.Name).Include(m => m.Model); break; case "status": items = items.OrderBy(s => s.Status).Include(m => m.Model); break; case "status_desc": items = items.OrderByDescending(s => s.Status).Include(m => m.Model); break; case "serializer_number": items = items.OrderBy(s => s.SerializerNumber).Include(m => m.Model); break; case "serializer_number_desc": items = items.OrderByDescending(s => s.SerializerNumber).Include(m => m.Model); break; case "name": items = items.OrderBy(s => s.Name).Include(m => m.Model); break; case "name_desc": items = items.OrderByDescending(s => s.Name).Include(m => m.Model); break; default: items = items.OrderBy(s => s.Model.Name).Include(m => m.Model); break; } #endregion ViewData["ModelItemID"] = item.ModelID; ViewData["ModelFromSupplierID"] = item.ModelFromSupplierID; ViewData["ModelID"] = new SelectList(_context.Model, "ModelID", "Name", item.ModelID); ViewData["StockReceivingID"] = new SelectList(_context.StockReceiving, "StockReceivingID", "StockReceivingID", item.StockReceivingID); var stockReceivingDetailVM = new StockReceivingDetailViewModel(); stockReceivingDetailVM.ModelFromSupplier = item; #region Paging int pageSize = 6; PaginatedList <Item> pagesItems = await PaginatedList <Item> .CreateAsync(items.AsNoTracking(), page ?? 1, pageSize); stockReceivingDetailVM.Items = pagesItems; #endregion return(View(stockReceivingDetailVM)); }