public RedirectToRouteResult CompleteConsignment(int?id) { Consignment consi = wde.Consignments.Find(id); WorkerLogs wl = new WorkerLogs(); Worker worker = wde.Workers.Find(Convert.ToInt32(Session["WorkerID"])); JavaScriptSerializer jss = new JavaScriptSerializer(); if (worker.workerLogs != null) { List <WorkerLogs> workerlogs = Newtonsoft.Json.JsonConvert.DeserializeObject <List <WorkerLogs> >(worker.workerLogs); wl.date = DateTime.Now.ToShortDateString(); wl.time = DateTime.Now.ToShortTimeString(); wl.description = "Completed Consignment of " + consi.supplier; workerlogs.Add(wl); string jsObj = jss.Serialize(workerlogs); worker.workerLogs = jsObj; wde.SaveChanges(); } consi.consignmentStatus = "Completed"; wde.Entry(consi).State = EntityState.Modified; wde.SaveChanges(); return(RedirectToAction("ConsignmentsSlotted")); }
public ActionResult Edit([Bind(Include = "id,itemName,Manufacturer,Country,itemCode,Category")] Item item) { if (ModelState.IsValid) { db.Entry(item).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(item)); }
public void UpdateOrderCancel(string status) { int orderId = Convert.ToInt32(status); WarehouseDBEntities wdm = new WarehouseDBEntities(); Order Oldorder = wdm.Orders.FirstOrDefault(a => a.orderId == orderId); Order orderCopy = Oldorder; orderCopy.orderStatus = "Canceled"; wdm.Entry(Oldorder).CurrentValues.SetValues(orderCopy); wdm.SaveChanges(); wdm.Dispose(); }
public RedirectToRouteResult SaveEditWorker(string userid, string fullname, string email, string number, string username, string password, string[] shelfs) { WarehouseDBEntities wde = new WarehouseDBEntities(); UserAccount useracc = wde.UserAccounts.Find(Convert.ToInt32(userid)); useracc.Name = fullname; useracc.Email = email; useracc.UserName = username; useracc.Contact = number; useracc.Password = password; useracc.ConfirmPassword = password; useracc.Worker.assignedShelfs = JsonConvert.SerializeObject(shelfs); wde.Entry(useracc).State = EntityState.Modified; try { wde.SaveChanges(); } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx) { Exception raise = dbEx; foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { string message = string.Format("{0}:{1}", validationErrors.Entry.Entity.ToString(), validationError.ErrorMessage); // raise a new exception nesting // the current instance as InnerException raise = new InvalidOperationException(message, raise); } } throw raise; } return(RedirectToAction("ViewWorkers")); }
/// <summary> /// 新增一个实体 /// </summary> /// <param name="entity"></param> /// <returns></returns> public int Add(T entity) { context.Entry <T>(entity).State = EntityState.Added; return(context.SaveChanges()); }
public ActionResult CompleteOrder() { if (Session["customerRecord"] != null && Session["orderRecord"] != null) { WarehouseDBEntities wdb = new WarehouseDBEntities(); Customer customer = (Customer)Session["customerRecord"]; List <Item> items = (List <Item>)Session["orderRecord"]; int customerId; try { customerId = wdb.Customers.Max(i => i.id) + 1; } catch (Exception ex) { customerId = 1; } customer.id = customerId; int warehouseId = Convert.ToInt32(customer.selectedWarehouse); int orderId; try { orderId = wdb.Orders.Max(i => i.orderId) + 1; } catch (Exception ex) { orderId = 1; } wdb.Customers.Add(customer); wdb.SaveChanges(); wdb.Dispose(); wdb = new WarehouseDBEntities(); Order order = new Order(); order.orderId = orderId; order.customerId = customerId; order.orderDate = System.DateTime.Now.Date; order.orderStatus = "Unseen"; order.warehouseId = warehouseId; order.totalOrderQuanitity = 0; foreach (Item item in items) { order.totalOrderQuanitity = order.totalOrderQuanitity + Convert.ToInt32(item.Manufacturer); } wdb.Orders.Add(order); wdb.SaveChanges(); wdb.Dispose(); wdb = new WarehouseDBEntities(); List <item_Order> item_OrderList = new List <item_Order>(); foreach (Item item in items) { item_Order itemOrder = new item_Order(); itemOrder.itemId = item.id; itemOrder.orderId = orderId; itemOrder.quantity = Convert.ToInt32(item.Manufacturer); item_OrderList.Add(itemOrder); Item_Warehouse original = wdb.Item_Warehouse.FirstOrDefault(a => a.itemId == item.id && a.warehouseId == warehouseId); Item_Warehouse copy = original; copy.orders += 1; copy.quantity = copy.quantity - itemOrder.quantity; if (original != null) { wdb.Entry(original).CurrentValues.SetValues(copy); wdb.SaveChanges(); wdb.Dispose(); wdb = new WarehouseDBEntities(); } } wdb.item_Order.AddRange(item_OrderList); wdb.SaveChanges(); wdb.Dispose(); Session.Clear(); Session.Abandon(); } else { RedirectToAction("Register", "Account"); } return(View()); }
public void generateOrderIntruction(Order order) { List <String> instruction = new List <string>(); JavaScriptSerializer jsonSerialiser = new JavaScriptSerializer(); WarehouseDBEntities wdb = new WarehouseDBEntities(); OrderBusinessLayer wbl = new OrderBusinessLayer(); string instructionString = ""; /** * * Go to Shelf "shelf id" and pick "item name" from slots "start slot" to "end slot" and send them to depot **/ foreach (var inst in dispatchInstructions.Distinct()) { Shelf shelf = wdb.Shelves.Find(inst.shelfid); string[] shelveName = shelf.shelfName.Split('s'); string shelves = "s" + shelveName[1]; shelfRetrieval.Add(shelves); instructionString = "Go to shelf " + shelves + " and pick " + inst.itemname + " from slots " + inst.startslot + " to " + inst.endslot + " and send them to depot"; instruction.Add(instructionString); Slotting s = new Slotting(); List <ShelfItems> shelfItems = s.covert_to_object(shelf.shelfItems); List <ShelfItems> copyShelfItems = new List <ShelfItems>(); copyShelfItems.AddRange(shelfItems); bool with = false; int i = 0; foreach (ShelfItems shelve in shelfItems) { if (shelve.slot_id == inst.startslot || with == true) { with = true; copyShelfItems[i].item_id = -1; copyShelfItems[i].status = 0; copyShelfItems[i].item_name = ""; copyShelfItems[i].expiry_date = ""; if (shelve.slot_id == inst.endslot) { with = false; } } i++; } string updatedString = jsonSerialiser.Serialize(copyShelfItems); wbl.updateShelf(inst.shelfid, updatedString); } string json = jsonSerialiser.Serialize(instruction); int maxDispatchId = 1; try { maxDispatchId = wdb.Orders.Max(a => a.dispatchNo).Value + 1; } catch (Exception ex) { maxDispatchId = 1; } wbl.updateOrder(order.orderId, json, maxDispatchId); WarehouseDBEntities wde = new WarehouseDBEntities(); Order orders = wde.Orders.Find(order.orderId); orders.shelfRetrieval = jsonSerialiser.Serialize(shelfRetrieval.Distinct().ToList()); wde.Entry(orders).State = System.Data.Entity.EntityState.Modified; wde.SaveChanges(); }
public ActionResult Save(List <Item> ware, List <Item_Consignment> itemcon, List <Consignment> con) { int conid = -1; List <ItemsSlotter> isl = new List <ItemsSlotter>(); foreach (Consignment conn in con) { WarehouseBusinessLayer wbl = new WarehouseBusinessLayer(); int warehouseIdd = wbl.getWarehouseId(Convert.ToInt32(Session["UserID"])); conn.warehouseId = warehouseIdd; conn.consignmentStatus = "Added"; try { conid = db.Consignments.Max(u => u.id) + 1; } catch (Exception ex) { conid = 1; } conn.id = conid; cbl.addConsignment(conn); int index = 0; foreach (Item_Consignment ic in itemcon) { Item items = ware.ElementAt(index); ic.itemId = getNewOrOldId(items); ItemsSlotter itemslot = new ItemsSlotter(); itemslot.item_id = ic.itemId; itemslot.quantity = (int)ic.quantity; // itemslot.expiry_date = ic.expiry.Value.ToShortDateString(); Item it = db.Items.FirstOrDefault(a => a.id == itemslot.item_id); itemslot.item_name = it.itemName; bool val = db.Item_Warehouse.Any(o => o.itemId == ic.itemId && o.warehouseId == warehouseIdd); if (val == true) { Item_Warehouse iw = db.Item_Warehouse.FirstOrDefault(a => a.itemId == ic.itemId && a.warehouseId == warehouseIdd); iw.quantity += ic.quantity; cbl.updateItemWarehouse(iw); itemslot.quantity = (int)iw.quantity; // found = true; //TODO: ADO.NET CODE } else { Item_Warehouse iw = new Item_Warehouse(); iw.warehouseId = warehouseIdd; iw.itemId = ic.itemId; iw.quantity = ic.quantity; iw.orders = 0; cbl.addItemWarehouse(iw); itemslot.quantity = (int)iw.quantity; } ic.consignmentId = conid; cbl.addItem_Consignment(ic); isl.Add(itemslot); index++; } //Yaha pe SLotting Horae ha List <Shelf> newShelf = db.Shelves.Where(a => a.warehouse_id == warehouseIdd).ToList(); Slotting slotting = new Slotting(); bool isError = slotting.slotting(newShelf, isl); if (isError) { ViewBag.throwError = "Unfortunately, there is no space in warehouse for the new items"; } List <String> instructionList = slotting.instructionsList; JavaScriptSerializer jss = new JavaScriptSerializer(); string inst = jss.Serialize(instructionList); SlottingBusinessLayer sbl = new SlottingBusinessLayer(); sbl.UpdateConsignmentInstruction(conid, inst); List <String> shelfInserted = slotting.shelfInserted.Distinct().ToList(); string insertedShelfJSON = jss.Serialize(shelfInserted); WarehouseDBEntities wdb = new WarehouseDBEntities(); Consignment consignment = wdb.Consignments.Find(conid); consignment.consignmentStatus = "Added"; consignment.shelfInserted = insertedShelfJSON; wdb.Entry(consignment).State = EntityState.Modified; wdb.SaveChanges(); Session["consignmentID"] = conid; break; } return(RedirectToAction("LoggedIn", "Account")); }