Beispiel #1
0
        // Consolidates all outstanding requests by stationery item
        // Saves the disbursement list to the DB
        public ActionResult GenerateRetrievalList()
        {
            // Create StationeryRetrieval
            StationeryRetrievalEF retrieval = new StationeryRetrievalEF()
            {
                DateRetrieved = Timestamp.unixTimestamp(),
                Status        = "Processing"
            };

            rndService.CreateRetrieval(retrieval);

            //Insert each dept's request quantity per item into disbursement and disbursement details
            List <StationeryRequestDetailsEF> outstandingRequests = rndService.FindOutstandingRequestDetails();

            rndService.GenerateDisbursementList(outstandingRequests, retrieval.RetrievalId);

            // set all the request details status to processed
            foreach (StationeryRequestDetailsEF detail in outstandingRequests)
            {
                detail.FulfilmentStatus = "Processed";
                rndService.UpdateRequestDetails(detail);
            }

            return(RedirectToAction("ViewRetrievalHistory", "ManageStationeryRetrieval", new { page = 1 }));
        }
Beispiel #2
0
        // Receive retrieval details from android
        public JsonResult SetRetrieval(MobileRetrievalItemDTO mRetrieval)
        {
            if (mRetrieval != null)
            {
                // save it to the database
                // update individual request's fulfilled quantity and retrieved quantity in current retrieval
                rndService.UpdateRequestAfterRetrieval(mRetrieval.RetrievalItems, mRetrieval.RetrievalId);

                // update retrieval status from processing to retrieved
                StationeryRetrievalEF retrieval = rndService.FindRetrievalById(mRetrieval.RetrievalId);
                retrieval.Status = "Retrieved";
                rndService.SaveRetrieval(retrieval);

                // get disbursements and save the dates
                string[]       date          = mRetrieval.DateDisbursed.Split('/');
                int            year          = int.Parse(date[2]);
                int            month         = int.Parse(date[1]);
                int            day           = int.Parse(date[0]);
                DateTimeOffset disbursedDate = new DateTimeOffset(year, month, day, 12, 0, 0,
                                                                  new TimeSpan(8, 0, 0));
                rndService.UpdateDisbursementDate(mRetrieval.RetrievalId, disbursedDate);

                // update disbursement list
                rndService.UpdateRetrievedQuantities(mRetrieval.RetrievalId);

                // and log stock transaction (deduction for department) (StockService)
                stockService.LogTransactionsForRetrieval(mRetrieval.RetrievalId);
                return(Json(new { status = "ok" }));
            }
            return(Json(new { status = "Retreival Obtained" }));
        }
Beispiel #3
0
        public List <RetrievalItemDTO> ViewRetrievalListById(int retrievalId)
        {
            StationeryRetrievalEF retrieval = rndEFF.FindRetrievalById(retrievalId);
            List <StationeryDisbursementDetailsEF> details = rndEFF.FindDisbursementDetailsByRetrievalId(retrievalId);

            // group by item code
            List <RetrievalItemDTO> retrievalList = new List <RetrievalItemDTO>();
            var items = from d in details
                        group d by d.ItemCode into itemGroup
                        select new
            {
                ItemCode            = itemGroup.Key,
                OutstandingQuantity = itemGroup.Sum(d => d.RequestQuantity),
                RetrievedQty        = itemGroup.Sum(a => a.RetrievedQuantity)
            };

            foreach (var item in items)
            {
                RetrievalItemDTO rItem = new RetrievalItemDTO()
                {
                    ItemCode            = item.ItemCode,
                    ItemDescription     = stockEFF.FindStockByItemCode(item.ItemCode).Description,
                    TotalOutstandingQty = item.OutstandingQuantity,
                    Bin          = stockEFF.FindStockByItemCode(item.ItemCode).Bin,
                    RetrievedQty = item.RetrievedQty
                };
                retrievalList.Add(rItem);
            }
            return(retrievalList);
        }
Beispiel #4
0
        // View and amend retrieval
        public ActionResult ViewRetrieval(int retrievalId)
        {
            StationeryRetrievalEF retrieval = rndService.FindRetrievalById(retrievalId);

            ViewData["retrieval"] = retrieval;
            List <RetrievalItemDTO> details = rndService.ViewRetrievalListById(retrievalId).OrderBy(x => x.Bin).ToList();

            return(View(details));
        }
Beispiel #5
0
        public void SaveRetrieval(StationeryRetrievalEF retrieval)
        {
            var existingRetrieval = context.StationeryRetrievals.Find(retrieval.RetrievalId);

            if (existingRetrieval != null)
            {
                context.Entry(existingRetrieval).CurrentValues.SetValues(retrieval);
                context.SaveChanges();
            }
        }
Beispiel #6
0
        // Send retrieval details to android
        public JsonResult GetRetrieval()
        {
            // find retrieval where status = Processed
            StationeryRetrievalEF  retrieval  = rndService.FindRetrievalByStatus("Processing");
            MobileRetrievalItemDTO mRetrieval = null;

            if (retrieval != null)
            {
                // get the retrieval details

                List <RetrievalItemDTO> details = rndService.ViewRetrievalListById(retrieval.RetrievalId);
                // send the retrieval list over to android app
                mRetrieval = new MobileRetrievalItemDTO()
                {
                    RetrievalId    = retrieval.RetrievalId,
                    RetrievalItems = details
                };
            }

            return(Json(mRetrieval, JsonRequestBehavior.AllowGet));
        }
Beispiel #7
0
        public ActionResult SaveRetrieval(List <RetrievalItemDTO> items, int retrievalId, string decision,
                                          DateTimeOffset disbursementDate)
        {
            if (decision == "Cancel")
            {
                return(RedirectToAction("ViewRetrievalHistory", new { page = 1 }));
            }

            // update individual request's fulfilled quantity and retrieved quantity in current retrieval
            rndService.UpdateRequestAfterRetrieval(items, retrievalId);

            // update retrieval status from processing to retrieved
            StationeryRetrievalEF retrieval = rndService.FindRetrievalById(retrievalId);

            retrieval.Status = "Retrieved";
            rndService.SaveRetrieval(retrieval);

            //get disbursements and save the dates
            rndService.UpdateDisbursementDate(retrievalId, disbursementDate);

            return(RedirectToAction("GenerateDisbursementList", "GenerateDisbursementList", new { retrievalId }));
        }
Beispiel #8
0
 public void SaveRetrieval(StationeryRetrievalEF retrieval)
 {
     rndEFF.SaveRetrieval(retrieval);
 }
Beispiel #9
0
        //RETREIVAL

        public void CreateRetrieval(StationeryRetrievalEF retrieval)
        {
            rndEFF.AddToRetrieval(retrieval);
        }
Beispiel #10
0
 //RETRIEVAL
 public void AddToRetrieval(StationeryRetrievalEF retrieval)
 {
     context.StationeryRetrievals.Add(retrieval);
     context.SaveChanges();
 }