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