public void DeleteTransferingSession(int transferingSessionPK) { try { TransferringSession transferringSession = db.TransferringSessions.Find(transferingSessionPK); db.TransferringSessions.Remove(transferringSession); db.SaveChanges(); } catch (Exception e) { throw e; } }
public void CreateInAndOutEntry(List <Client_ItemPK_TransferQuantity_IsRestored> list, StoredBox sBoxFrom, StoredBox sBoxTo, TransferringSession transferringSession) { try { foreach (var item in list) { Accessory accessory; if (item.IsRestored) { RestoredItem restoredItem = db.RestoredItems.Find(item.ItemPK); accessory = db.Accessories.Find(restoredItem.AccessoryPK); } else { PassedItem passedItem = db.PassedItems.Find(item.ItemPK); ClassifiedItem classifiedItem = db.ClassifiedItems.Find(passedItem.ClassifiedItemPK); PackedItem packedItem = db.PackedItems.Find(classifiedItem.PackedItemPK); OrderedItem orderedItem = db.OrderedItems.Find(packedItem.OrderedItemPK); accessory = db.Accessories.Find(orderedItem.AccessoryPK); } // Tạo out entry Entry entry = new Entry(sBoxFrom, "Out", transferringSession.TransferingSessionPK, item.IsRestored, item.TransferQuantity, item.ItemPK, accessory); db.Entries.Add(entry); // Tạo in entry entry = new Entry(sBoxTo, "In", transferringSession.TransferingSessionPK, item.IsRestored, item.TransferQuantity, item.ItemPK, accessory); db.Entries.Add(entry); } db.SaveChanges(); } catch (Exception e) { throw e; } }
public IHttpActionResult TransferStoredItems(string boxFromID, string boxToID, string userID, [FromBody] List <Client_ItemPK_TransferQuantity_IsRestored> list) { if (new ValidationBeforeCommandDAO().IsValidUser(userID, "Staff")) { BoxDAO boxDAO = new BoxDAO(); StoringDAO storingDAO = new StoringDAO(); TransferringSession transferringSession = null; try { if (boxFromID != boxToID) { // lấy inBoxQuantity Box boxFrom = boxDAO.GetBoxByBoxID(boxFromID); StoredBox sBoxFrom = boxDAO.GetStoredBoxbyBoxPK(boxFrom.BoxPK); Box boxTo = boxDAO.GetBoxByBoxID(boxToID); StoredBox sBoxTo = boxDAO.GetStoredBoxbyBoxPK(boxTo.BoxPK); if (sBoxFrom == null) { return(Content(HttpStatusCode.Conflict, "BOX KHÔNG HỢP LỆ!")); } List <Entry> entries = (from e in db.Entries where e.StoredBoxPK == sBoxFrom.StoredBoxPK select e).ToList(); foreach (var item in list) { List <Entry> tempEntries = new List <Entry>(); foreach (var entry in entries) { if (entry.ItemPK == item.ItemPK) { tempEntries.Add(entry); } } if (item.TransferQuantity > storingDAO.EntriesQuantity(tempEntries)) { return(Content(HttpStatusCode.Conflict, "SỐ LƯỢNG KHÔNG HỢP LỆ!")); } } transferringSession = storingDAO.CreateTransferingSession(boxFromID, boxToID, userID); storingDAO.CreateInAndOutEntry(list, sBoxFrom, sBoxTo, transferringSession); } else { return(Content(HttpStatusCode.Conflict, "BOX KHÔNG HỢP LỆ!")); } return(Content(HttpStatusCode.OK, "TRANSFER THÀNH CÔNG!")); } catch (Exception e) { if (transferringSession != null) { storingDAO.DeleteTransferingSession(transferringSession.TransferingSessionPK); } return(Content(HttpStatusCode.Conflict, new Content_InnerException(e).InnerMessage())); } } else { return(Content(HttpStatusCode.Conflict, "BẠN KHÔNG CÓ QUYỀN ĐỂ THỰC HIỆN VIỆC NÀY")); } }