private void SendEmail(PurchaseRequestStatus PRS) { if (_presenter.GetUser(PRS.Approver).IsAssignedJob != true) { EmailSender.Send(_presenter.GetUser(PRS.Approver).Email, "Purchase Request", _presenter.GetUser(_presenter.CurrentPurchaseRequest.Requester).FullName + " Requests for Purchase with Request No. " + (_presenter.CurrentPurchaseRequest.RequestNo).ToUpper()); } else { EmailSender.Send(_presenter.GetUser(_presenter.GetAssignedJobbycurrentuser(PRS.Approver).AssignedTo).Email, "Purchase Request", _presenter.GetUser(_presenter.CurrentPurchaseRequest.Requester).FullName + "Requests for Purchase with Request No." + (_presenter.CurrentPurchaseRequest.RequestNo).ToUpper()); } }
private void SendEmail(PurchaseRequestStatus PRS) { if (_presenter.GetSuperviser(PRS.Approver).IsAssignedJob != true) { EmailSender.Send(_presenter.GetSuperviser(PRS.Approver).Email, "Purchase Request", _presenter.GetUser(_presenter.CurrentPurchaseRequest.Requester).FullName + "' Request for Item procurment No. '" + _presenter.CurrentPurchaseRequest.RequestNo + "'"); } else { EmailSender.Send(_presenter.GetSuperviser(_presenter.GetAssignedJobbycurrentuser(PRS.Approver).AssignedTo).Email, "Purchase Request", _presenter.GetUser(_presenter.CurrentPurchaseRequest.Requester).FullName + "' Request for Item procurment No. '" + _presenter.CurrentPurchaseRequest.RequestNo + "'"); } }
private void SendEmailRejected(PurchaseRequestStatus PRS) { EmailSender.Send(_presenter.GetUser(_presenter.CurrentPurchaseRequest.Requester).Email, "Purchase Request Rejection", "Your Purchase Request with Request No. - '" + (_presenter.CurrentPurchaseRequest.RequestNo.ToString()).ToUpper() + " was Rejected by " + _presenter.CurrentUser().FullName + " for this reason - '" + (PRS.RejectedReason).ToUpper() + "'"); if (PRS.WorkflowLevel > 1) { for (int i = 0; i + 1 < PRS.WorkflowLevel; i++) { EmailSender.Send(_presenter.GetUser(_presenter.CurrentPurchaseRequest.PurchaseRequestStatuses[i].Approver).Email, "Purchase Request Rejection", "Purchase Request with Request No. - '" + (_presenter.CurrentPurchaseRequest.RequestNo.ToString()).ToUpper() + "' made by " + (_presenter.GetUser(_presenter.CurrentPurchaseRequest.Requester).FullName).ToUpper() + " was Rejected by " + _presenter.CurrentUser().FullName + " for this reason - '" + (PRS.RejectedReason).ToUpper() + "'"); } } }
private void SavePurchaseRequestStatus() { if (_presenter.CurrentPurchaseRequest.Id <= 0) { if (_presenter.GetApprovalSettingforPurchaseProcess(RequestType.Purchase_Request.ToString().Replace('_', ' '), 0) != null) { int i = 1; foreach (ApprovalLevel AL in _presenter.GetApprovalSettingforPurchaseProcess(RequestType.Purchase_Request.ToString().Replace('_', ' '), 0).ApprovalLevels) { PurchaseRequestStatus PRS = new PurchaseRequestStatus(); PRS.PurchaseRequest = _presenter.CurrentPurchaseRequest; if (AL.EmployeePosition.PositionName == "Superviser/Line Manager") { if (_presenter.CurrentUser().Superviser.Value != 0) { PRS.Approver = _presenter.CurrentUser().Superviser.Value; } else { PRS.ApprovalStatus = ApprovalStatus.Approved.ToString(); PRS.ApprovalDate = DateTime.Today.Date; } } else if (AL.EmployeePosition.PositionName == "Program Manager") { if (_presenter.CurrentPurchaseRequest.PurchaseRequestDetails[0].Project != null) { if (_presenter.CurrentPurchaseRequest.PurchaseRequestDetails[0].Project.AppUser.Id != _presenter.CurrentUser().Id) { PRS.Approver = _presenter.GetProject(_presenter.CurrentPurchaseRequest.PurchaseRequestDetails[0].Project.Id).AppUser.Id; } else { PRS.Approver = _presenter.CurrentUser().Superviser.Value; } } } else { PRS.Approver = _presenter.Approver(AL.EmployeePosition.Id).Id; } PRS.WorkflowLevel = i; i++; _presenter.CurrentPurchaseRequest.PurchaseRequestStatuses.Add(PRS); } } else { pnlWarning.Visible = true; } } }
public PRListGridViewModel(IEnumerable <PurchaseRequest> Requests, IUserRepository UsersRepo, PurchaseRequestStatus Status, IProjectRepository ProjectRepository, IPurchaseTypeRepository PurchaseTypeRepository, IDepartmentRepository DeptRepository, IPRContentRepository PRContentRepository) { rows = new List <PRListGridRowModel>(); string _userName, _reviewUser, _submitUser; string _dept; #region EF性能优化 360ms --> 40ms List <User> _users = UsersRepo.Users.ToList(); List <PurchaseType> _purTypes = PurchaseTypeRepository.PurchaseTypes.ToList(); List <Department> _deps = DeptRepository.Departments.ToList(); List <PRContent> _prcs = PRContentRepository.PRContents.ToList(); foreach (PurchaseRequest _request in Requests) { try { _userName = UsersRepo.GetUserByID(_request.UserID).FullName; } catch { _userName = ""; } try { _reviewUser = _users.Where(u => u.UserID == _request.ReviewUserID).FirstOrDefault().FullName;//UsersRepo.GetUserByID(_request.ReviewUserID).FullName; } catch { _reviewUser = ""; } try { _submitUser = _users.Where(u => u.UserID == _request.SubmitUserID).FirstOrDefault().FullName;//UsersRepo.GetUserByID(_request.SubmitUserID).FullName; } catch { _submitUser = ""; } string _type = ""; try { _type = _purTypes.Where(t => t.PurchaseTypeID == _request.PurchaseType).FirstOrDefault().Name;//PurchaseTypeRepository.QueryByID(_request.PurchaseType).Name; } catch { _type = ""; } try { _dept = _deps.Where(d => d.DepartmentID == _request.DepartmentID).FirstOrDefault().Name;//DeptRepository.GetByID(_request.DepartmentID).Name; } catch { _dept = ""; } //申请者 User ApprovalUser = _users.Where(u => u.UserCode == _request.ApprovalERPUserID).FirstOrDefault() ?? new User(); //UsersRepo.Users.Where(u => u.UserCode == _request.ApprovalERPUserID).FirstOrDefault() ?? new User(); //ERP料号同步状态 List <PRContent> prcs = _prcs.Where(p => p.PurchaseRequestID == _request.PurchaseRequestID).ToList() ?? new List <PRContent>(); //PRContentRepository.QueryByRequestID(_request.PurchaseRequestID).ToList() ?? new List<PRContent>(); bool ERPPartStatus = true; foreach (var prc in prcs) { if (string.IsNullOrEmpty(prc.ERPPartID)) { ERPPartStatus = false; } } rows.Add(new PRListGridRowModel(_request, _userName, _type, _dept, _submitUser, _reviewUser, ApprovalUser.FullName, ERPPartStatus)); } #endregion Page = 1; Total = 100; Records = 30; }