Example #1
0
        public IHttpActionResult GetRequestedItemsByRequestPK(int requestPK)
        {
            List <Client_RequestedItemDetail> client_RequestedItemDetails = new List <Client_RequestedItemDetail>();
            IssuingDAO issuingDAO = new IssuingDAO();

            try
            {
                Request request = db.Requests.Find(requestPK);
                List <RequestedItem> requestedItems = (from rI in db.RequestedItems
                                                       where rI.RequestPK == request.RequestPK
                                                       select rI).ToList();
                foreach (var requestedItem in requestedItems)
                {
                    DemandedItem demandedItem            = db.DemandedItems.Find(requestedItem.DemandedItemPK);
                    Accessory    accessory               = db.Accessories.Find(demandedItem.AccessoryPK);
                    double       sumOfOtherRequestedItem = issuingDAO.OtherRequestedItem(demandedItem.DemandedItemPK, requestedItem.RequestedItemPK);

                    client_RequestedItemDetails.Add(new Client_RequestedItemDetail(requestedItem, accessory, demandedItem.DemandedQuantity, sumOfOtherRequestedItem,
                                                                                   issuingDAO.InStoredQuantity(accessory.AccessoryPK) - issuingDAO.InRequestedQuantity(accessory.AccessoryPK)));
                }
            }
            catch (Exception e)
            {
                return(Content(HttpStatusCode.Conflict, new Content_InnerException(e).InnerMessage()));
            }
            return(Content(HttpStatusCode.OK, client_RequestedItemDetails));
        }
Example #2
0
        public IHttpActionResult GetRequestedItemsByRequestPKPrepared(int requestPK)
        {
            List <Client_RequestedItem> client_RequestedItemDetails = new List <Client_RequestedItem>();
            IssuingDAO issuingDAO = new IssuingDAO();

            try
            {
                Request request = db.Requests.Find(requestPK);
                if (request == null)
                {
                    return(Content(HttpStatusCode.Conflict, "YÊU CẦU XUẤT KHÔNG TỒN TẠI!"));
                }
                List <RequestedItem> requestedItems = (from rI in db.RequestedItems
                                                       where rI.RequestPK == request.RequestPK
                                                       select rI).ToList();
                foreach (var requestedItem in requestedItems)
                {
                    DemandedItem demandedItem = db.DemandedItems.Find(requestedItem.DemandedItemPK);
                    Accessory    accessory    = db.Accessories.Find(demandedItem.AccessoryPK);
                    List <Client_Box_Shelf_Row> client_Boxes = issuingDAO.StoredBox_ItemPK_IsRestoredOfEntries(accessory);
                    client_RequestedItemDetails.Add(new Client_RequestedItem(requestedItem, accessory, issuingDAO.InStoredQuantity(accessory.AccessoryPK), client_Boxes));
                }
            }
            catch (Exception e)
            {
                return(Content(HttpStatusCode.Conflict, new Content_InnerException(e).InnerMessage()));
            }
            return(Content(HttpStatusCode.OK, client_RequestedItemDetails));
        }
Example #3
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!"));
            }
        }
Example #4
0
 public Client_DemandDetail(DemandedItem demandedItem, Accessory accessory, double totalRequestedQuantity, double availableQuantity)
 {
     DemandedItemPK       = demandedItem.DemandedItemPK;
     DemandedQuantity     = demandedItem.DemandedQuantity;
     AccessoryID          = accessory.AccessoryID;
     AccessoryDescription = accessory.AccessoryDescription;
     Art   = accessory.Art;
     Color = accessory.Color;
     Item  = accessory.Item;
     TotalRequestedQuantity = totalRequestedQuantity;
     AvailableQuantity      = availableQuantity;
 }
Example #5
0
        public void CreateDemandedItems(Demand demand, List <Client_Accessory_DemandedQuantity_Comment> list, int conceptionPK)
        {
            try
            {
                foreach (var item in list)
                {
                    Accessory accessory = (from a in db.Accessories
                                           where a.AccessoryID == item.AccessoryID
                                           select a).FirstOrDefault();

                    Conception conception = db.Conceptions.Find(conceptionPK);

                    ConceptionAccessory conceptionAccessory = (from ca in db.ConceptionAccessories
                                                               where ca.AccessoryPK == accessory.AccessoryPK &&
                                                               ca.ConceptionPK == conception.ConceptionPK
                                                               select ca).FirstOrDefault();
                    if (accessory == null)
                    {
                        throw new Exception("PHỤ LIỆU " + accessory.AccessoryID + " KHÔNG TỒN TẠI!");
                    }
                    if (conception == null)
                    {
                        throw new Exception("MÃ HÀNG " + conception.ConceptionCode + " KHÔNG TỒN TẠI!");
                    }
                    if (conceptionAccessory == null)
                    {
                        throw new Exception("PHỤ LIỆU " + accessory.AccessoryID + " CHƯA ĐƯỢC GẮN CC!");
                    }
                    DemandedItem demandedItem = new DemandedItem(item.DemandedQuantity, item.Comment, demand.DemandPK, accessory.AccessoryPK);
                    db.DemandedItems.Add(demandedItem);
                }
                db.SaveChanges();
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Example #6
0
        public void UpdateDemandedItem(int demandedItemPK, double demandedQuantity, string comment)
        {
            try
            {
                DemandedItem demandedItem = db.DemandedItems.Find(demandedItemPK);
                if (demandedQuantity > 0)
                {
                    demandedItem.DemandedQuantity = demandedQuantity;
                    demandedItem.Comment          = comment;
                    db.Entry(demandedItem).State  = EntityState.Modified;
                }
                else
                {
                    db.DemandedItems.Remove(demandedItem);
                }

                db.SaveChanges();
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Example #7
0
        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!"));
            }
        }