public async Task <IActionResult> NhapHang(ImportBill model, IEnumerable <ImportBillDetail> lstModel) { HttpRequest cookie = _services.GetRequiredService <IHttpContextAccessor>()?.HttpContext.Request; string customerId = SecurityManager.getUserId(cookie.Cookies[SecurityManager._securityToken]); model.Amount = 0; model.TotalValue = 0; ViewBag.MaNCC = _iSupplierRepository.All; ViewBag.ListSanPham = _iProductRepository.All; // Kiểm tra dữ liệu đầu vào bằng javascript hay bên metadata đều được // Phải ktra để khớp với kiểu dữ liệu của database await _importRepository.AddAsync(model); await _importRepository.SaveAsync(RequestContext); //Gán đã xóa = false // SaveChanges lần đầu để sinh ra mã phiếu nhập gán cho lstChiTietPhieuNhap var importBillDetails = lstModel.ToList(); foreach (var item in importBillDetails) { // Cập nhật số lượng tồn // vì sản phẩm trong lstModel chắc chắn có nên k tạo new SanPham var sp = _iProductRepository.All.ToList().Single(n => n.Id == item.IdProduct); sp.BasketCount += item.Amount.GetValueOrDefault(); // Gán mã phiếu nhập cho từng chi tiết phiếu nhập item.IdImport = model.IdImport; } foreach (var item in importBillDetails) { await _importDetailRepository.AddAsync(item); } await _importDetailRepository.SaveAsync(RequestContext); model.RefreshTotalValue(); model.StaffId = customerId; _importRepository.UpdateAsync(model); await _importRepository.SaveAsync(RequestContext); TempData["messages"] = "Nhập hàng thành công"; return(RedirectToAction("Index")); }
public async Task <JsonResult> DeleteImport(int id) { try { var listdetailId = _importDetailRepository.All.Where(x => x.IdImport == id).ToList(); foreach (var i in listdetailId) { _importDetailRepository.Delete(i); var sp = _productRepository.All.ToList().Single(n => n.Id == i.IdProduct); sp.BasketCount -= i.Amount.GetValueOrDefault(); _productRepository.UpdateAsync(sp); } await _productRepository.SaveAsync(requestContext : RequestContext); await _importDetailRepository.SaveAsync(RequestContext); _importRepository.Delete(id); await _importRepository.SaveAsync(RequestContext); return(Json(new { isDeleted = true, html = Helper .RenderRazorViewToString(this, "_ViewListImports", await _importRepository.All.ToListAsync()) })); } catch (Exception ex) { Console.WriteLine(ex); return(Json(new { isDeleted = false, html = Helper .RenderRazorViewToString(this, "_ViewListImports", await _importRepository.All.ToListAsync()) })); } }