Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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"));
        }
Ejemplo n.º 3
0
        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 }));
        }
Ejemplo n.º 4
0
        // 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));
        }