// GET: InputDetails public ActionResult Index(Guid id, string error) { InputDetailViewModel viewModel = new InputDetailViewModel(); viewModel.Input = UnitOfWork.InputRepository.GetById(id); viewModel.InputDetails = UnitOfWork.InputDetailsRepository.Get().Where(current => current.InputId == id).OrderByDescending(current => current.CreationDate).ToList(); //viewModel.Detail = new InputDetail() { InputId = id }; viewModel.EditMode = false; ViewBag.ProductId = new SelectList(UnitOfWork.ProductRepository.Get(), "Id", "Title"); TempData["Error"] = ""; if (!string.IsNullOrEmpty(error)) { if (error == "error") { TempData["Error"] = @"<p class='alert alert-danger'>خطایی رخ داد! مجددا تلاش نمایید</p> "; } else { TempData["Error"] = @"<p class='alert alert-danger'>" + error + "</p> "; } } ViewBag.OrderId = new SelectList(UnitOfWork.OrderRepository.Get(c => c.CustomerId == viewModel.Input.CustomerId && c.IsActive), "Id", "Code"); return(View(viewModel)); }
public ActionResult Create(InputDetailViewModel ViewModel) { try { if (!ViewModel.EditMode) { decimal weight = 0; Input input = UnitOfWork.InputRepository.GetById(ViewModel.Input.Id); List <InputDetail> inputDetails = UnitOfWork.InputDetailsRepository.Get(current => current.InputId == input.Id).ToList(); foreach (InputDetail inputDetail in inputDetails) { weight += inputDetail.DestinationWeight; } weight += ViewModel.Detail.DestinationWeight; if (input.DestinationWeight < weight) { //TempData["Error"] = "<p class='alert alert-danger'>مجموع وزن وارد شده از وزن مقصد بیشتر است</p>"; return(RedirectToAction("Index", new { id = ViewModel.Input.Id, error = "مجموع وزن وارد شده از وزن مقصد بیشتر است" })); } else { ViewModel.Detail.IsDeleted = false; ViewModel.Detail.CreationDate = DateTime.Now; ViewModel.Detail.Id = Guid.NewGuid(); ViewModel.Detail.ProductId = ViewModel.ProductId; ViewModel.Detail.OrderId = SetOrder(ViewModel.OrderId, ViewModel.Input.CustomerId, ViewModel.ProductId); ViewModel.Detail.InputId = ViewModel.Input.Id; ViewModel.Detail.RemainDestinationWeight = ViewModel.Detail.DestinationWeight; ViewModel.Detail.RemainQuantity = ViewModel.Detail.Quantity; ViewModel.Detail.InputDetailStatusId = UnitOfWork.InputDetailStatusRepository.Get(c => c.Code == 1) .FirstOrDefault()?.Id; UnitOfWork.InputDetailsRepository.Insert(ViewModel.Detail); } } else { InputDetail inputDetail = UnitOfWork.InputDetailsRepository.GetById(ViewModel.Detail.Id); inputDetail.IsDeleted = false; inputDetail.ProductId = ViewModel.ProductId; ViewModel.Detail.OrderId = SetOrder(ViewModel.OrderId, ViewModel.Input.CustomerId, ViewModel.ProductId); inputDetail.Quantity = ViewModel.Detail.Quantity; inputDetail.SourceWeight = ViewModel.Detail.SourceWeight; inputDetail.DestinationWeight = ViewModel.Detail.DestinationWeight; inputDetail.RemainDestinationWeight = ViewModel.Detail.DestinationWeight; inputDetail.RemainQuantity = ViewModel.Detail.Quantity; UnitOfWork.InputDetailsRepository.Update(inputDetail); } UnitOfWork.Save(); ViewBag.OrderId = new SelectList(UnitOfWork.OrderRepository.Get(c => c.CustomerId == ViewModel.Input.CustomerId && c.IsActive), "Id", "Code"); return(RedirectToAction("Index", new { id = ViewModel.Input.Id })); } catch (Exception) { return(RedirectToAction("Index", new { id = ViewModel.Input.Id, error = "error" })); } }