public async Task ApproveUpdate(RequestApprovalViewModel requestApprovalViewModel, string user) { var supplierRequest = await this._context.SupplierRequest.GetSupplierRequest(requestApprovalViewModel.InboxListViewModel.RequestId); var approvalLog = await this._context.SupplierRequestApprovalLog.GetApprovalLogById(supplierRequest.SupplierRequestApprovalId.GetValueOrDefault()); approvalLog.IsApproved = requestApprovalViewModel.Approve.ToUpper() == "APPROVE"; approvalLog.ApprovalComments = requestApprovalViewModel.Comments; approvalLog.ApprovedOn = DateTime.Now; approvalLog.ApprovedBy = user; this._context.SupplierRequestApprovalLog.Update(approvalLog); await this._context.CompleteAsync(); var approvalLogList = await this._context.SupplierRequestApprovalLog.GetApprovalLogBySupplierRequestId(approvalLog.SupplierRequestId); supplierRequest.SupplierRequestApprovalId = approvalLogList.Where(x => !x.IsApproved.GetValueOrDefault()).OrderBy(x => x.OrderBy).FirstOrDefault()?.SupplierRequestApprovalId; supplierRequest.IsEditable = false; if (!approvalLog.IsApproved.GetValueOrDefault()) { supplierRequest.IsRejected = true; supplierRequest.IsApprovalPending = false; supplierRequest.SupplierRequestApprovalId = null; } if (supplierRequest.SupplierRequestApprovalId == null || supplierRequest.SupplierRequestApprovalId == 0) { supplierRequest.SupplierRequestApprovalId = null; supplierRequest.IsApprovalPending = false; } this._context.SupplierRequest.Update(supplierRequest); await this._context.CompleteAsync(); }
public async Task <IActionResult> ViewApprovals(long requestid, long moduleid) { RequestApprovalViewModel model = new RequestApprovalViewModel { IsView = true, InboxListViewModel = new InboxListViewModel() { RequestId = requestid, ModuleId = moduleid } }; switch (moduleid) { case (long)Module.SupplierRequest: var response = await this.supplierRequest.GetSupplierRequest(requestid); model.SupplierViewModel = await bindSupplierViewModel(response); model.SupplierRequestApprovalLog = await this.supplierRequest.GetApprovedLogBySupplierRequestId(requestid); return(View("SupplierApproveView", model)); default: break; } return(null); }
public async Task <IActionResult> Approve(RequestApprovalViewModel requestApprovalViewModel) { await this.supplierRequest.ApproveUpdate(requestApprovalViewModel, this.User.Identity.Name); return(RedirectToAction("InboxList")); }