public void ConfirmCollectionTest()
        {
            int expected = 10; //status id of Items Collected

            //get retrieval object
            Retrieval retrieval = context.Retrieval.Where(x => x.RetrievalId == "TEST").First();

            retrieval.Requisitions.FirstOrDefault().RequisitionDetails = new List <RequisitionDetail>()
            {
                new RequisitionDetail()
                {
                    RequisitionId = retrieval.Requisitions.FirstOrDefault().RequisitionId,
                    Item          = new ItemService(context).FindItemByItemCode("E030"),
                    Status        = new StatusService(context).FindStatusByStatusId(8),
                }
            };

            //create disbursement and save it into database
            Disbursement a = new Disbursement();

            a.DisbursementId = IdService.GetNewDisbursementId(context);
            a.Department     = departmentRepository.FindById("COMM");
            retrieval.Requisitions.Add(context.Requisition.First());
            a.Retrieval       = retrieval;
            a.CreatedDateTime = DateTime.Now;
            disbursementService.Save(a);

            //include Disbursement detail object and save it
            DisbursementDetail detail = new DisbursementDetail()
            {
                Disbursement   = a,
                Item           = context.Item.First(),
                PlanQuantity   = 1,
                ActualQuantity = 1
            };

            disbursementdetailRepository.Save(detail);

            Disbursement result = disbursementService.ConfirmCollection(a.DisbursementId);


            //Asert
            Assert.AreEqual(expected, result.Status.StatusId);
        }
        public ActionResult Collect(string did)
        {
            Disbursement d;

            try
            {
                disbursementService.ConfirmCollection(did);
                d = disbursementRepository.FindById(did);
            } catch {
                TempData["error"] = true;
                return(RedirectToAction("DisbursementDetails", "Disbursement", new { did }));
            }
            TempData["did"] = did;
            return(RedirectToAction("StationeryDisbursement", "Requisition", new { rid = d.Retrieval.RetrievalId }));
        }