Example #1
0
        public async Task <ServiceResponseBase> Update(BadReportViewModel vm, List <BadReportDetailViewModel> details, AccountViewModel account)
        {
            try
            {
                var badReport = await _context.BadReport.FirstOrDefaultAsync(o => o.Id == vm.Id);

                badReport.BadType               = vm.BadType;
                badReport.Remark                = vm.Remark;
                badReport.CompanyId             = account.CompanyId;
                badReport.Num                   = details.Sum(o => o.Num);
                _context.Entry(badReport).State = EntityState.Modified;
                var _details = await _context.BadReportDetail.Where(o => o.OrderNum == badReport.OrderNum).ToListAsync();

                foreach (var _detail in _details)
                {
                    var detail = details.FirstOrDefault(o => o.ProductNum == _detail.ProductNum &&
                                                        o.FromLocalNum == _detail.FromLocalNum);
                    if (detail == null)
                    {
                        _context.BadReportDetail.Remove(_detail);
                    }
                }

                foreach (var detail in details)
                {
                    var _detail = _details.FirstOrDefault(o => o.ProductNum == detail.ProductNum &&
                                                          o.FromLocalNum == detail.FromLocalNum);
                    if (_detail != null)
                    {
                        _detail.Num = detail.Num;
                    }
                    else
                    {
                        var entry = Mapper.Map <BadReportDetail>(detail);
                        entry.OrderNum   = badReport.OrderNum;
                        entry.CreateTime = DateTime.Now;
                        entry.BarCode    = entry.BarCode;
                        entry.SnNum      = Guid.NewGuid().ToString("N");
                        entry.Num        = detail.Num;
                        await _context.BadReportDetail.AddAsync(entry);
                    }
                }
                await _context.SaveChangesAsync();

                return(new ServiceResponseBase()
                {
                    Status = Status.ok
                });
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message, ex);
                return(new ServiceResponseBase()
                {
                    Status = Status.error, Message = ex.Message
                });
            }
        }
        public async Task <IActionResult> Create()
        {
            var vm = new BadReportViewModel();

            List <BadReportDetailViewModel> storDetails = new List <BadReportDetailViewModel>();

            HttpContext.Session.Set("StorDetail", SerializeHelper.SerializeToBinary(storDetails));
            return(View(vm));
        }
        public async Task <IActionResult> Edit(int id, BadReportViewModel vm)
        {
            List <BadReportDetailViewModel> storDetails = new List <BadReportDetailViewModel>();

            byte[] storDetailsByte = null;
            if (HttpContext.Session.TryGetValue("StorDetail", out storDetailsByte))
            {
                storDetails = (List <BadReportDetailViewModel>)SerializeHelper.DeserializeWithBinary(storDetailsByte);
            }
            var result = await _badReportServices.Update(vm, storDetails, GetAccount());

            if (result.Status == Status.ok)
            {
                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                ModelState.AddModelError("", "保存失败: " + result.Message);
                return(View(vm));
            }
        }
Example #4
0
        public async Task <ServiceResponseBase> Create(BadReportViewModel vm, List <BadReportDetailViewModel> details, AccountViewModel account)
        {
            try
            {
                var badReport = Mapper.Map <BadReport>(vm);
                badReport.Num        = details.Sum(o => o.Num);
                badReport.CompanyId  = account.CompanyId;
                badReport.CreateTime = DateTime.Now;
                badReport.CreateUser = account.Name;
                badReport.StorageNum = account.BranchId.ToString();
                badReport.Status     = (int)BadStatus.等待审核;
                await _context.BadReport.AddAsync(badReport);

                foreach (var detail in details)
                {
                    var entry = Mapper.Map <BadReportDetail>(detail);
                    entry.OrderNum   = badReport.OrderNum;
                    entry.CreateTime = DateTime.Now;
                    entry.BarCode    = entry.BarCode;
                    entry.SnNum      = Guid.NewGuid().ToString("N");
                    await _context.BadReportDetail.AddAsync(entry);
                }
                await _context.SaveChangesAsync();

                return(new ServiceResponseBase()
                {
                    Status = Status.ok
                });
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message, ex);
                return(new ServiceResponseBase()
                {
                    Status = Status.error, Message = ex.Message
                });
            }
        }