public IHttpActionResult PrepareRequest(int requestPK, string userID, [FromBody] Client_InputPrepareRequestAPI input) { if (new ValidationBeforeCommandDAO().IsValidUser(userID, "Staff")) { IssuingDAO issuingDAO = new IssuingDAO(); StoringDAO storingDAO = new StoringDAO(); BoxDAO boxDAO = new BoxDAO(); IssuingSession issuingSession = null; try { issuingDAO.UpdateRequest(requestPK, true); boxDAO.ChangeIsActiveBoxes(input.boxIDs, false); issuingSession = issuingDAO.CreateIssuingSession(userID, requestPK, input.boxIDs); storingDAO.CreateIssueEntry(input, issuingSession); } catch (Exception e) { if (issuingSession != null) { issuingDAO.UpdateRequest(requestPK, false); boxDAO.ChangeIsActiveBoxes(input.boxIDs, true); issuingDAO.DeleteIssuingSession(issuingSession.IssuingSessionPK); } return(Content(HttpStatusCode.Conflict, new Content_InnerException(e).InnerMessage())); } return(Content(HttpStatusCode.OK, "TẠO YÊU CẦU XUẤT THÀNH CÔNG!")); } else { return(Content(HttpStatusCode.Conflict, "BẠN KHÔNG CÓ QUYỀN ĐỂ THỰC HIỆN VIỆC NÀY!")); } }
public IHttpActionResult EditRequest(int requestPK, DateTime expectedDate, string comment, string userID, [FromBody] List <Client_RequestedItemPK_RequestedQuantity> list) { if (new ValidationBeforeCommandDAO().IsValidUser(userID, "Receiver")) { IssuingDAO issuingDAO = new IssuingDAO(); try { foreach (var item in list) { RequestedItem requestedItem = db.RequestedItems.Find(item.RequestedItemPK); DemandedItem demandedItem = db.DemandedItems.Find(requestedItem.DemandedItemPK); Accessory accessory = db.Accessories.Find(demandedItem.AccessoryPK); List <RequestedItem> requestedItems = (from rI in db.RequestedItems where rI.DemandedItemPK == demandedItem.DemandedItemPK select rI).ToList(); double temp = issuingDAO.InStoredQuantity(accessory.AccessoryPK) - issuingDAO.InOtherRequestedQuantity(accessory.AccessoryPK, item.RequestedItemPK); if (item.RequestedQuantity > temp) { return(Content(HttpStatusCode.Conflict, "SỐ LƯỢNG YÊU CẦU XUẤT KHÔNG HỢP LỆ!")); } temp = item.RequestedQuantity + issuingDAO.TotalOtherRequestedQuantity(requestedItem.RequestedItemPK, requestedItems); if (demandedItem.DemandedQuantity < temp) { return(Content(HttpStatusCode.Conflict, "SỐ LƯỢNG YÊU CẦU XUẤT KHÔNG HỢP LỆ!")); } } if (expectedDate.Date < DateTime.Now) { return(Content(HttpStatusCode.Conflict, "NGÀY DỰ KIẾN KHÔNG HỢP LỆ!")); } Request request = db.Requests.Find(requestPK); if (request.UserID != userID) { return(Content(HttpStatusCode.Conflict, "BẠN KHÔNG CÓ QUYỀN ĐỂ THỰC HIỆN VIỆC NÀY!")); } if (request.IsIssued) { return(Content(HttpStatusCode.Conflict, "YÊU CẦU XUẤT ĐÃ ĐƯỢC CHUẨN BỊ XONG!")); } // update request issuingDAO.UpdateRequest(requestPK, comment, expectedDate); // update requestedItems issuingDAO.UpdateRequestedItems(list, requestPK); } catch (Exception e) { return(Content(HttpStatusCode.Conflict, new Content_InnerException(e).InnerMessage())); } return(Content(HttpStatusCode.OK, "SỬA YÊU CẦU XUẤT THÀNH CÔNG!")); } else { return(Content(HttpStatusCode.Conflict, "BẠN KHÔNG CÓ QUYỀN ĐỂ THỰC HIỆN VIỆC NÀY!")); } }