public ActionResult Details(Guid id) { CutOrderViewModel CutOrderViewModel = new CutOrderViewModel(); InputDetail inputDetail = UnitOfWork.InputDetailsRepository.GetById(id); CutOrderViewModel.InputDetail = inputDetail; CutOrderViewModel.Density = inputDetail.Product.ProductGroup.Density; CutOrderViewModel.Weight = GetOrderRemainWeight(inputDetail.OrderId.Value); CutOrder cutOrder = UnitOfWork.CutOrderRepository.Get(current => current.InputDetailId == inputDetail.Id).FirstOrDefault(); if (cutOrder != null) { CutOrderViewModel.CutOrderId = cutOrder.Id; CutOrderViewModel.CutOrderDetails = UnitOfWork.CutOrderDetailRepository.Get(current => current.CutOrderId == cutOrder.Id).ToList(); } ViewBag.CustomActionId = new SelectList(UnitOfWork.ProductGroupCustomActionRepository.Get(x => x.ProductGroupId == inputDetail.Product.ProductGroupId).Select(x => x.CustomAction), "Id", "Title"); ViewBag.CustomerName = inputDetail.Order.Customer.FullName; CutOrderViewModel.RemainWeight = GetOrderRemainWeight(inputDetail.OrderId.Value); CutOrderViewModel.Math = inputDetail.Product.ProductGroup.Density * inputDetail.Product.Width * inputDetail.Product.Thickness; //CutOrder cutOrder = UnitOfWork.CutOrderRepository.GetById(id); //CutOrderViewModel CutOrderViewModel = new CutOrderViewModel(); ////CutOrderViewModel.CutOrder = cutOrder; //CutOrderViewModel.Density = cutOrder.InputDetail.Product.ProductGroup.Density; //CutOrderViewModel.CutOrderId = cutOrder.Id; //CutOrderViewModel.InputDetail = UnitOfWork.InputDetailsRepository.GetById(cutOrder.InputDetailId); //CutOrderViewModel.CutOrderDetails = UnitOfWork.CutOrderDetailRepository.Get(current => current.CutOrderId == id).ToList(); //ViewBag.CustomActionId = new SelectList(UnitOfWork.CutDetailTypeRepository.Get().ToList(), "Id", "Title"); return(View(CutOrderViewModel)); }
public ActionResult Details(CutOrderViewModel cutOrderViewModel) { try { if (ModelState.IsValid) { cutOrderViewModel.InputDetail = UnitOfWork.InputDetailsRepository.GetById(cutOrderViewModel.InputDetail.Id); Order inputDetailOrder = UnitOfWork.OrderRepository.Get(current => current.Id == cutOrderViewModel.InputDetail.OrderId).FirstOrDefault(); cutOrderViewModel.InputDetail.Order = inputDetailOrder; ProductRemainsViewModel remain = GetRemainProduct(cutOrderViewModel.InputDetail.ProductId, cutOrderViewModel.InputDetail.OrderId.Value, cutOrderViewModel.InputDetail.Order.CustomerId); string cutId = string.Empty; if (cutOrderViewModel.CutOrderId != null) { cutId = cutOrderViewModel.CutOrderId.ToString(); Guid cutGuid = new Guid(cutId); cutOrderViewModel.CutOrderDetails = UnitOfWork.CutOrderDetailRepository.Include(current => current.CutOrder.InputDetail.Product.ProductGroup).Where(current => current.CutOrderId == cutGuid).ToList(); } if (remain.RemainWeight < cutOrderViewModel.Weight) { ModelState.AddModelError("Weight", "وزن وارد شده بیش از وزن باقی مانده می باشد"); } else if (remain.RemainQuantity < cutOrderViewModel.Quantity) { ModelState.AddModelError("Weight", "تعداد برگ وارد شده بیش از تعداد باقی مانده می باشد"); } else if (remain.RemainWeight == 0) { ModelState.AddModelError("Weight", "کالا موجود نمی باشد"); } else if (remain.RemainWeight == cutOrderViewModel.Weight) { if (cutOrderViewModel.CutOrderId == null) { CutOrder cut = new CutOrder() { CreationDate = DateTime.Now, InputDetailId = cutOrderViewModel.InputDetail.Id, IsActive = true, IsDeleted = false }; UnitOfWork.CutOrderRepository.Insert(cut); UnitOfWork.Save(); cutId = cut.Id.ToString(); } Guid cutGuid = new Guid(cutId); cutOrderViewModel.CutOrderId = cutGuid; CutOrderDetail cutOrderDetail = new CutOrderDetail() { Weight = cutOrderViewModel.Weight, Length = cutOrderViewModel.Length, Quantity = Convert.ToInt32(cutOrderViewModel.Quantity), CutOrderId = cutGuid, CustomActionId = cutOrderViewModel.CustomActionId, CreationDate = DateTime.Now, IsActive = true, IsDeleted = false }; UnitOfWork.CutOrderDetailRepository.Insert(cutOrderDetail); UnitOfWork.Save(); cutOrderViewModel.CutOrderDetails = UnitOfWork.CutOrderDetailRepository.Include(current => current.CutOrder.InputDetail.Product.ProductGroup).Where(current => current.CutOrderId == cutOrderViewModel.CutOrderId).ToList(); InputDetail inputDetailUpdate = UnitOfWork.InputDetailsRepository.GetById(cutOrderViewModel.InputDetail.Id); inputDetailUpdate.RemainDestinationWeight = 0; inputDetailUpdate.RemainQuantity = 0; UnitOfWork.InputDetailsRepository.Update(inputDetailUpdate); UnitOfWork.Save(); cutOrderViewModel.RemainWeight = inputDetailUpdate.RemainDestinationWeight; } else { if (cutOrderViewModel.CutOrderId != null) { Order order = new Order() { Customer = cutOrderViewModel.InputDetail.Order.Customer, Parent = cutOrderViewModel.InputDetail.Order, Code = GenerateCode.GetChildOrderCode(cutOrderViewModel.InputDetail.OrderId.Value), IsActive = true, IsDeleted = false, IsLatest = true }; UnitOfWork.OrderRepository.Insert(order); UnitOfWork.Save(); CutOrderDetail cutOrderDetail = new CutOrderDetail() { Weight = cutOrderViewModel.Weight, Length = cutOrderViewModel.Length, Quantity = Convert.ToInt32(cutOrderViewModel.Quantity), CutOrderId = cutOrderViewModel.CutOrderId.Value, CustomActionId = cutOrderViewModel.CustomActionId, CreationDate = DateTime.Now, IsActive = true, IsDeleted = false }; UnitOfWork.CutOrderDetailRepository.Insert(cutOrderDetail); UnitOfWork.Save(); } else { Order order = new Order() { Customer = cutOrderViewModel.InputDetail.Order.Customer, Parent = cutOrderViewModel.InputDetail.Order, Code = GenerateCode.GetChildOrderCode(cutOrderViewModel.InputDetail.OrderId.Value), IsActive = true, IsDeleted = false, IsLatest = true }; UnitOfWork.OrderRepository.Insert(order); UnitOfWork.Save(); CutOrder cut = new CutOrder() { CreationDate = DateTime.Now, InputDetailId = cutOrderViewModel.InputDetail.Id, IsActive = true, IsDeleted = false }; UnitOfWork.CutOrderRepository.Insert(cut); UnitOfWork.Save(); cutOrderViewModel.CutOrderId = cut.Id; CutOrderDetail cutOrderDetail = new CutOrderDetail() { Weight = cutOrderViewModel.Weight, Length = cutOrderViewModel.Length, Quantity = Convert.ToInt32(cutOrderViewModel.Quantity), CutOrderId = cut.Id, CustomActionId = cutOrderViewModel.CustomActionId, CreationDate = DateTime.Now, IsActive = true, IsDeleted = false }; UnitOfWork.CutOrderDetailRepository.Insert(cutOrderDetail); UnitOfWork.Save(); } cutOrderViewModel.CutOrderDetails = UnitOfWork.CutOrderDetailRepository.Include(current => current.CutOrder.InputDetail.Product.ProductGroup).Where(current => current.CutOrderId == cutOrderViewModel.CutOrderId).ToList(); decimal unit = remain.RemainWeight / remain.RemainQuantity; InputDetail inputDetailUpdate = UnitOfWork.InputDetailsRepository.GetById(cutOrderViewModel.InputDetail.Id); inputDetailUpdate.RemainDestinationWeight = remain.RemainWeight - cutOrderViewModel.Weight; inputDetailUpdate.RemainQuantity = remain.RemainQuantity - (cutOrderViewModel.Weight / unit); UnitOfWork.InputDetailsRepository.Update(inputDetailUpdate); UnitOfWork.Save(); cutOrderViewModel.RemainWeight = inputDetailUpdate.RemainDestinationWeight; } } ViewBag.CustomActionId = new SelectList(UnitOfWork.ProductGroupCustomActionRepository.Get(x => x.ProductGroupId == cutOrderViewModel.InputDetail.Product.ProductGroupId).Select(x => x.CustomAction), "Id", "Title"); ViewBag.CustomerName = cutOrderViewModel.InputDetail.Order.Customer.FullName; return(View(cutOrderViewModel)); } catch (Exception exp) { return(Json(exp.Message, JsonRequestBehavior.AllowGet)); } }