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