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 IHttpActionResult GetRequisitionDetails([FromBody] RequisitionMobileViewModel viewModel) { List <ItemRequisition> itemRequisitions = itemRequisitionService.GetAllByRequisitionId(viewModel.RequisitionId).ToList(); List <RequisitionDetailsMobileViewModel> itemRequsitionViewModel = itemRequisitions.Select(ir => new RequisitionDetailsMobileViewModel() { ItemCode = ir.ItemId, Description = itemService.Get(ir.ItemId).ItemDescription, Quantity = ir.Quantity }).ToList(); return(Ok(itemRequsitionViewModel)); }
public IHttpActionResult RejectRequisition([FromBody] RequisitionMobileViewModel requisition) { try { var req = requisitionService.Get(requisition.RequisitionId); req.Status = CustomStatus.Cancelled; requisitionService.Save(req); } catch (Exception) { return(BadRequest("Requisition already approved")); } return(Ok()); }