public IHttpActionResult ApproveRequisition([FromBody] RequisitionMobileViewModel requisition) { try { // Update requisition status to Approved var req = requisitionService.Get(requisition.RequisitionId); req.Status = CustomStatus.Approved; requisitionService.Save(req); var inventoryList = (List <Inventory>)inventoryService.GetAll(); var itemRequisitionList = itemRequisitionService.GetAllByRequisitionId(requisition.RequisitionId); var itemDisbursementList = new List <ItemDisbursement>(); // Add Disbursement var disbursement = new Disbursement() { DepartmentId = requisition.DepartmentId, Status = CustomStatus.ForRetrieval }; //Retrieve all itemDisbursements meant for retrieval var allItemDisbursements = (List <ItemDisbursement>)disbursementService.getAllItemDisbursementsByStatus(CustomStatus.ForRetrieval); //Allocate itemrequisition details to itemdisbursement foreach (var itemReq in itemRequisitionList) { var itemDisbursement = new ItemDisbursement() { DisbursementId = disbursement.Id, ItemId = itemReq.ItemId, RequestedQuantity = itemReq.Quantity, AvailableQuantity = 0 }; itemDisbursementList.Add(itemDisbursement); } disbursementService.Save(disbursement); //Allocate available quantity by inventory availability List <ItemDisbursement> finalItemDisbursementList = AllocateAvailableQtyAndStatus(itemDisbursementList, inventoryList, allItemDisbursements); foreach (var ib in finalItemDisbursementList) { itemDisbursementService.Save(ib); } } catch (Exception) { return(BadRequest("Requisition already approved")); } return(Ok()); }
public ActionResult Details(string id) { var r = requisitionService.Get(id); var irs = itemRequisitionService.GetAllByRequisitionId(id); var requisitionViewModel = new RequisitionViewModel { Id = r.Id, Department = r.Department, createdDateTime = r.createdDateTime, Status = r.Status, Remark = r.Remark, ItemRequisitions = irs }; return(View("Details", requisitionViewModel)); }
public async Task <IActionResult> GetRequisition(Guid id) { try { var requisition = await _requisitionService.Get(id); if (requisition == null) { return(NotFound()); } return(Ok(requisition)); } catch (Exception e) { return(StatusCode(500, new JsonResult(new { message = e.Message }))); } }