예제 #1
0
        public IHttpActionResult UpdateRetrievalListByItem(CustomRetrievalList customRetrievalList)
        {
            RetrievalList retrievalList = FindCurrentRetrievalList();

            if (retrievalList == null)
            {
                return(NotFound());
            }
            int retrievalListId = retrievalList.RetrievalListID;

            CustomRetrievalListDetail[] retrievalListDetails = customRetrievalList.RetrievalListDetails;
            int itemId = customRetrievalList.ItemID;

            for (int i = 0; i < retrievalListDetails.Length; i++)
            {
                CustomRetrievalListDetail customDetail = retrievalListDetails[i];
                RetrievalListDetail       detail       = db.RetrievalListDetails.SingleOrDefault(
                    r => r.RetrievalListID == retrievalListId &&
                    r.ItemID == itemId &&
                    r.DepartmentID == customDetail.DepartmentID);
                detail.QuantityOffered = customDetail.QuantityOffered;
            }
            db.SaveChanges();
            return(Ok());
        }
예제 #2
0
        public IHttpActionResult UpdateDisbursementList(CustomDisbursementList disbursementList)
        {
            int retrievalListId = FindCurrentRetrievalList().RetrievalListID - 1;
            int departmentId    = disbursementList.DepartmentID;

            CustomItem[] customItems = disbursementList.CustomItems;
            for (int i = 0; i < customItems.Count(); i++)
            {
                CustomItem          customItem          = customItems[i];
                RetrievalListDetail retrievalListDetail = db.RetrievalListDetails.SingleOrDefault(
                    r => r.DepartmentID == departmentId && r.ItemID == customItem.ItemID && r.RetrievalListID == retrievalListId);
                retrievalListDetail.QuantityReceived = customItem.QuantityReceived;
            }
            db.SaveChanges();
            return(Ok());
        }
예제 #3
0
        //Incompleted requisitions transfer to next Retrieval list
        public void IncompletedRequisitionTransferToRetrieval(Requisition requisition, RetrievalList retrievalList)
        {
            int departmentId = requisition.Employee.DepartmentID;
            List <RequisitionDetail> requisitionDetails = this.GetIncompletedDetails(requisition);

            if (this.ContainsDepartment(departmentId, retrievalList))
            {
                foreach (var item in requisitionDetails)
                {
                    //if(this.RetrievalListDetailContainItem(item.ItemID, retrievalList.RetrievalListDetails.Where(x => x.DepartmentID == departmentId).ToList()))
                    //{
                    RetrievalListDetail retrievalListDetail = retrievalList.RetrievalListDetails.Where(x => x.DepartmentID == departmentId).Where(x => x.ItemID == item.ItemID).SingleOrDefault();
                    if (retrievalListDetail != null)
                    {
                        retrievalListDetail.Quantity += (item.Quantity - item.QuantityReceived);
                    }
                    //}
                    else
                    {
                        RetrievalListDetail newRetrieval = new RetrievalListDetail();
                        newRetrieval.DepartmentID    = departmentId;
                        newRetrieval.ItemID          = item.ItemID;
                        newRetrieval.Quantity        = item.Quantity - item.QuantityReceived;
                        newRetrieval.RetrievalListID = retrievalList.RetrievalListID;
                        retrievalList.RetrievalListDetails.Add(newRetrieval);
                    }
                }
            }
            else
            {
                foreach (var item in requisitionDetails)
                {
                    RetrievalListDetail newRetrievalListDetail = new RetrievalListDetail();
                    newRetrievalListDetail.DepartmentID    = departmentId;
                    newRetrievalListDetail.ItemID          = item.ItemID;
                    newRetrievalListDetail.Quantity        = item.Quantity;
                    newRetrievalListDetail.RetrievalListID = retrievalList.RetrievalListID;
                    retrievalList.RetrievalListDetails.Add(newRetrievalListDetail);
                }
            }
        }
예제 #4
0
        public IHttpActionResult UpdateRequisition(CustomRequisition customRequisition)
        {
            int requisitionId   = customRequisition.RequisitionID;
            int retrievalListId = FindCurrentRetrievalList().RetrievalListID;

            CustomItem[] items = customRequisition.CustomItems;
            for (int i = 0; i < items.Length; i++)
            {
                CustomItem        item   = items[i];
                RequisitionDetail detail = db.RequisitionDetails.SingleOrDefault(
                    r => r.RequisitionID == requisitionId && r.ItemID == item.ItemID);
                detail.QuantityReceived = item.QuantityReceived;
                if (item.QuantityReceived < detail.Quantity)
                {
                    int departmentId = detail.Requisition.Employee.DepartmentID;
                    RetrievalListDetail retrievalListDetail = db.RetrievalListDetails.SingleOrDefault(
                        r => r.RetrievalListID == retrievalListId &&
                        r.DepartmentID == departmentId && r.ItemID == item.ItemID);
                    if (retrievalListDetail == null)
                    {
                        retrievalListDetail = new RetrievalListDetail
                        {
                            RetrievalListID = retrievalListId,
                            DepartmentID    = departmentId,
                            ItemID          = item.ItemID,
                            Quantity        = detail.Quantity - item.QuantityReceived
                        };
                        db.RetrievalListDetails.Add(retrievalListDetail);
                    }
                    else
                    {
                        retrievalListDetail.Quantity += (detail.Quantity - item.QuantityReceived);
                    }
                    RequisitionRetrieval requisitionRetrieval = db.RequisitionRetrievals.SingleOrDefault(r => r.RequisitionID == requisitionId);
                    requisitionRetrieval.RetrievalListID = retrievalListId;
                }
            }
            db.SaveChanges();
            return(Ok());
        }
예제 #5
0
        public IHttpActionResult ApproveRequisition(int id)
        {
            Requisition requisition = db.Requisitions.SingleOrDefault(r => r.RequisitionID == id);

            requisition.Status = Status.Approved;
            int deptId = requisition.Employee.DepartmentID;
            List <RequisitionDetail> details = requisition.RequisitionDetails.ToList();
            int retrievalListId = FindCurrentRetrievalList().RetrievalListID;

            db.RequisitionRetrievals.Add(new RequisitionRetrieval {
                RequisitionID = requisition.RequisitionID, RetrievalListID = retrievalListId
            });
            db.SaveChanges();
            for (int i = 0; i < details.Count(); i++)
            {
                RequisitionDetail   detail = details[i];
                RetrievalListDetail retrievalListDetail = db.RetrievalListDetails.SingleOrDefault(
                    r => r.RetrievalListID == retrievalListId &&
                    r.DepartmentID == deptId && r.ItemID == detail.ItemID
                    );
                if (retrievalListDetail == null)
                {
                    retrievalListDetail = new RetrievalListDetail
                    {
                        RetrievalListID = retrievalListId,
                        DepartmentID    = deptId,
                        ItemID          = detail.ItemID,
                        Quantity        = detail.Quantity
                    };
                    db.RetrievalListDetails.Add(retrievalListDetail);
                }
                else
                {
                    retrievalListDetail.Quantity += detail.Quantity;
                }
                db.SaveChanges();
            }
            return(Ok());
        }