示例#1
0
        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();
        }
示例#2
0
        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);
        }
示例#3
0
        public async Task <IActionResult> Approve(RequestApprovalViewModel requestApprovalViewModel)
        {
            await this.supplierRequest.ApproveUpdate(requestApprovalViewModel, this.User.Identity.Name);

            return(RedirectToAction("InboxList"));
        }