public ActionResult CreatePurchaseOrder(string supplier, string choice, string items, PurchaseOrderFormDTO purOrder) { List <SupplierDetailsEF> supplierItems = new List <SupplierDetailsEF>(); List <SupplierEF> supplierList = purchaseService.FindAllSuppliers(); ViewData["supplierList"] = supplierList; StaffEF createdBy = staffService.GetStaff(); if (supplier == null) { supplierItems = null; } else { supplierItems = purchaseService.FindSupplierItems(supplier); } ViewData["supplier"] = supplier; ViewData["supplierItems"] = supplierItems; if (choice == "setSupplier") { if (supplier == supplierList[0].SupplierCode) { //do nothing when supplier is the same } else { //clear form. purOrder = new PurchaseOrderFormDTO(); } } if (choice == "Add Item") { SupplierDetailsEF newSD = null; bool isValid = false; foreach (var s in supplierItems) { if (items == s.SupplierDetailsId.ToString()) { newSD = s; isValid = true; } } if (purOrder.SupplierDetailIds.Count() > 0 && isValid == true) { foreach (var thing in purOrder.SupplierDetailIds) { if (thing == items) { isValid = false; } } } if (isValid == true) { purOrder.Icodes.Add(newSD.Stock.ItemCode); purOrder.Descs.Add(newSD.Stock.Description); purOrder.Uoms.Add(newSD.Stock.Uom); purOrder.Prices.Add(newSD.UnitPrice); purOrder.SupplierDetailIds.Add(newSD.SupplierDetailsId.ToString()); purOrder.Quantities.Add(1); purOrder.Remove.Add(false); } } if (choice == "CreatePO") { purOrder.SupplierId = supplierItems[0].SupplierCode; int newPOId = purchaseService.CreatePO(createdBy, purOrder); return(RedirectToAction("ViewPurchaseOrder", "ManagePurchase", new { purchaseOrderId = newPOId.ToString() })); } if (choice == "Remove") { for (int i = 0; i < purOrder.Remove.Count; i++) { if (purOrder.Remove[i] == true) { purOrder.Icodes.RemoveAt(i); purOrder.Descs.RemoveAt(i); purOrder.Uoms.RemoveAt(i); purOrder.Prices.RemoveAt(i); purOrder.SupplierDetailIds.RemoveAt(i); purOrder.Quantities.RemoveAt(i); purOrder.Remove.RemoveAt(i); i--; } } } return(View(purOrder)); }