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;
     }
 }
Example #3
0
 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"));
     }
 }