public IHttpActionResult CreateRequest(int demandPK, DateTime expectedDate, string comment, string userID, [FromBody] List <Client_DemandedItemPK_RequestedQuantity> list) { if (new ValidationBeforeCommandDAO().IsValidUser(userID, "Receiver")) { IssuingDAO issuingDAO = new IssuingDAO(); try { foreach (var item in list) { DemandedItem demandedItem = db.DemandedItems.Find(item.DemandedItemPK); Accessory accessory = db.Accessories.Find(demandedItem.AccessoryPK); List <RequestedItem> requestedItems = (from rI in db.RequestedItems where rI.DemandedItemPK == demandedItem.DemandedItemPK select rI).ToList(); if (item.RequestedQuantity > (issuingDAO.InStoredQuantity(accessory.AccessoryPK) - issuingDAO.InRequestedQuantity(accessory.AccessoryPK))) { return(Content(HttpStatusCode.Conflict, "SỐ LƯỢNG YÊU CẦU XUẤT KHÔNG HỢP LỆ!")); } if (demandedItem.DemandedQuantity < item.RequestedQuantity + issuingDAO.TotalRequestedQuantity(requestedItems)) { 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Ệ!")); } // init requestid int noRequestID; Demand demand = db.Demands.Find(demandPK); if (!demand.IsOpened) { return(Content(HttpStatusCode.Conflict, "DEMAND ĐÃ ĐÓNG, KHÔNG THỂ TẠO YÊU CẦU XUẤT!")); } Request lastRequest = (from p in db.Requests.OrderByDescending(unit => unit.RequestPK) where p.RequestID.Contains(demand.DemandID) select p).FirstOrDefault(); if (lastRequest == null) { noRequestID = 1; } else { noRequestID = Int32.Parse(lastRequest.RequestID.Substring(lastRequest.RequestID.Length - 2)) + 1; } string requestID = (noRequestID >= 10) ? (demand.DemandID + "#" + noRequestID) : (demand.DemandID + "#" + "0" + noRequestID); // create request Request request = issuingDAO.CreateRequest(requestID, expectedDate, false, false, comment, demandPK, userID); // create requestedItems issuingDAO.CreateRequestedItems(list, request.RequestPK); } catch (Exception e) { 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!")); } }