public ActionResult Edit(int?id, int?page) { if (id.HasValue) { try { SalesOrder salesOrder = db.SalesOrders.Find(id); Products productData = db.Products.Where(x => x.PN == salesOrder.PartNumber).FirstOrDefault(); if (salesOrder != null) { if (productData != null) { List <Unit> listOfUnits = db.Units.Where(x => x.ProductID == productData.ID && !db.Units.Where(y => y.SalesOrderID != null).Any(y => y.ID == x.ID)).OrderBy(x => x.SerialNumber).ToList(); List <Unit> mappedUnitList = db.Units.Where(x => x.SalesOrderID == id).ToList(); //CurrentMappingSalesOrder currentMappingSalesOrdersTemp = (CurrentMappingSalesOrder)Session["TempUnits"]; List <Unit> deletedUnit = new List <Unit>(); List <Unit> additionalUnit = new List <Unit>(); if (Session["TempUnits"] == null) { CurrentMappingSalesOrder currentMappingSalesOrderTemp = new CurrentMappingSalesOrder { ActualTempUnits = mappedUnitList }; Session["TempUnits"] = currentMappingSalesOrderTemp; } //CurrentMappingSalesOrder sessionMappingSalesOrder = (CurrentMappingSalesOrder)Session["TempUnits"]; MappingSalesOrderViewModel haveUnits = new MappingSalesOrderViewModel { SalesOrder = salesOrder, Units = listOfUnits, Products = productData }; ViewBag.Page = page.ToString(); return(View(haveUnits)); } } else { ViewBag.ErrorMessage = "Sorry we couldn't find your sales order"; return(View("Error")); } } catch (Exception ex) { ViewBag.ErrorMessage = "An error occured, please check your data"; ViewBag.Exception = ex; } return(View("Error")); } else { return(RedirectToAction("Index")); } }
public ActionResult AddSerialNumber(int salesOrderID, MappingSalesOrderViewModel mappingSalesOrderViewModel, FormCollection collection) { CurrentMappingSalesOrder temporaryUnits = (CurrentMappingSalesOrder)Session["TempUnits"]; try { var userIdentity = User.Identity.Name; var page = collection.GetValues("currentPage"); if (string.IsNullOrWhiteSpace(page[0])) { page[0] = "1"; } int currentPage = Convert.ToInt32(page[0]); List <Unit> additionalTempUnit = new List <Unit>(); //List<Unit> deletedTempUnit = temporaryUnits.DeletedTempUnits; List <Unit> actualTempUnit = temporaryUnits.ActualTempUnits != null ? temporaryUnits.ActualTempUnits : new List <Unit>();//db.Units.Where(x => x.SalesOrderID == salesOrderID).ToList(); if (temporaryUnits.DeletedTempUnits != null) { foreach (Unit selectedDeletedUnit in temporaryUnits.DeletedTempUnits) { Unit deletedUnit = temporaryUnits.ActualTempUnits.Where(x => x.ID == selectedDeletedUnit.ID).FirstOrDefault(); temporaryUnits.ActualTempUnits.Remove(deletedUnit); } } foreach (int unitID in mappingSalesOrderViewModel.selectedUnitID) { Unit newUnit = db.Units.Find(unitID); newUnit.SalesOrderID = salesOrderID; actualTempUnit.Add(newUnit); if (!db.Units.Any(x => x.ID == unitID && x.SalesOrderID == salesOrderID)) { additionalTempUnit.Add(newUnit); } } temporaryUnits.ActualTempUnits = actualTempUnit; temporaryUnits.AdditionalTempUnits = additionalTempUnit; Session["TempUnits"] = temporaryUnits; ViewBag.Page = page.ToString(); return(RedirectToAction("Edit", "MappingSalesOrder", new { id = salesOrderID, page = currentPage })); } catch (Exception ex) { ViewBag.ErrorMessage = "An error occured while adding serial number to this sales order"; ViewBag.Exception = ex; } return(View("Error")); }
public ActionResult Details(int?id, int?page) { if (id.HasValue) { try { Session.Remove("TempUnits"); SalesOrder salesOrder = db.SalesOrders.Find(id); Products productData = db.Products.Where(x => x.PN == salesOrder.PartNumber).FirstOrDefault(); if (salesOrder != null) { List <Unit> mappedUnitList = db.Units.Where(x => x.SalesOrderID == id).ToList(); MappingSalesOrderViewModel haveUnits = new MappingSalesOrderViewModel { SalesOrder = salesOrder, Products = productData, MappedUnits = mappedUnitList }; ViewBag.Page = page.ToString(); return(View(haveUnits)); } else { ViewBag.ErrorMessage = "Sorry we couldn't find your sales order"; return(View("Error")); } } catch (Exception ex) { ViewBag.ErrorMessage = "An error occured, please check your data"; ViewBag.Exception = ex; } return(View("Error")); } else { return(RedirectToAction("Index")); } }