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);
        }
Exemple #2
0
        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"));
        }