PurchaseOrderSplitViewModel createModel(int id, bool bLock = false) { var model = new PurchaseOrderSplitViewModel(); PrepareViewModel(model, EvolutionResources.bnrSplitPurchase, id); model.ParentId = id; model.OrderDetails.PurchaseOrderHeaderId = id; var poh = PurchasingService.FindPurchaseOrderHeaderModel(id, CurrentCompany); if (poh != null) { model.OrderDetails.SupplierName = poh.SupplierName; model.OrderDetails.OrderNumber = poh.OrderNumber.Value; if (poh.RequiredDate != null) { model.OrderDetails.AdvertisedETA = poh.RequiredDate.Value.ToString(model.DisplayDateFormat); } if (bLock) { model.LGS = PurchasingService.LockPurchaseOrderHeader(poh); } } model.OrderDetails.NewOrderAdvertisedETA = DateTimeOffset.Now; model.LocationList = LookupService.FindLocationListItemModel(CurrentCompany, true); model.PurchaseOrderList = PurchasingService.FindPurchaseOrderHeadersString(CurrentCompany, true); return(model); }
public ActionResult Save(PurchaseOrderSplitViewModel model, string command) { var modelError = new Error(); if (command.ToLower() == "split") { // Count the number of items to check var numRows = 0; for (int i = 0; i < Request.Form.AllKeys.Count(); i++) { if (Request.Form.AllKeys[i].IndexOf("txtSplitToNewOrderQty") != -1) { numRows++; } } for (int i = 0; i < numRows; i++) { var newSplit = new SplitPurchaseItemModel(); newSplit.NewOrderQty = Request.Form[$"txtSplitToNewOrderQty{i}_4_0"].ParseInt(); newSplit.TargetOrderQty = Request.Form[$"txtTargetOrderQty{i}_5_0"].ParseInt(); newSplit.TargetOrderId = Request.Form[$"ddlTargetOrder{i}_6_0"].ParseInt(); newSplit.PurchaseOrderDetailId = Request.Form[$"hdnPodId{i}_6_1"].ParseInt(); newSplit.RowNumber = i; if (newSplit.NewOrderQty > 0 || newSplit.TargetOrderQty > 0) { model.OrderDetails.SplitItems.Add(newSplit); } } if (model.OrderDetails.SplitItems.Count() > 0) { // Apply the splits int updatedPOId = 0, newPOId = 0; modelError = PurchasingService.SplitOrder(CurrentCompany, model.OrderDetails, CurrentUser, model.LGS, ref updatedPOId, ref newPOId); if (modelError.IsError) { model = createModel(model.OrderDetails.PurchaseOrderHeaderId); model.SetErrorOnField(ErrorIcon.Error, modelError.Message, "OrderDetails_" + modelError.FieldName, null, null, null, null, true); return(View("SplitPurchase", model)); } } else { model = createModel(model.OrderDetails.PurchaseOrderHeaderId); model.SetErrorOnField(ErrorIcon.Error, EvolutionResources.errNoItemsSelectedToSplit, "OrderDetails_NewOrderAdvertisedETA", null, null, null, null, true); return(View("SplitPurchase", model)); } } return(RedirectToAction("Purchases", "Purchasing")); }