public async Task <long> GetNewImportNumber(GetImportNumberRequest request) { var newImportNumber = new ImportNumber { Comment = request.Comment, Priority = request.Priority, Type = (LabelingType)request.Type }; await importRepository.AddAsync(newImportNumber); if (request.AssignedLabels == null) { return(newImportNumber.Id); } var assignedImports = request.AssignedLabels.Select(item => new AssignedLabelGroups { ImportNumber = newImportNumber.Id, LabelGroupId = item }).ToArray(); await assignedLabelGroupsRepository.AddRangeAsync(assignedImports); return(newImportNumber.Id); }
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")); }