/// <summary> /// Save Change Request Data /// </summary> /// <param name="sodChangeMaster"></param> /// <param name="sodChangeDetails"></param> /// <returns></returns> public Int64 SaveChangeRequest(SODEmployeeChangeRequestMaster sodChangeMaster, SODEmployeeChangeRequestDetails sodChangeDetails) { Int64 id = 0; using (System.Data.Entity.DbContextTransaction dbTran = _context.Database.BeginTransaction()) { try { _context.SODEmployeeChangeRequestMaster.Add(sodChangeMaster); _context.SaveChanges(); //Get Max ID id = _context.SODEmployeeChangeRequestMaster.DefaultIfEmpty().Max(x => x == null ? 1 : x.ReqId); //Add Id in Details sodChangeDetails.ReqId = id; _context.SODEmployeeChangeRequestDetails.Add(sodChangeDetails); //_context.SaveChanges(); _context.SaveChanges(); dbTran.Commit(); } catch (Exception ex) { //Rollback transaction if exception occurs dbTran.Rollback(); id = -1; throw; } } return(id); }
/// <summary> /// Send Mail Of Change Request Data to Finance /// </summary> /// <param name="ReqId"></param> /// <param name="status"></param> /// <returns></returns> public JsonResult SendChangeRequestToFinance(Int64 ReqId, string status) { Int64 flag = 0; if (status != null && status != "") { flag = _changerequest.SaveHRApproval(ReqId, status); if (flag != 0) { var MailData = _changerequest.CRMailData(ReqId, status, ""); if (MailData != null) { SODEmployeeChangeRequestMaster sodmaster = new SODEmployeeChangeRequestMaster { ReqId = MailData.ReqId, RequestedEmpName = MailData.RequestedEmpName, PhoneNo = MailData.Phone, EmailID = MailData.EmailID, RequestedEmpId = MailData.EmployeCode, DesignationName = MailData.Designation }; SODEmployeeChangeRequestDetails soddetails = new SODEmployeeChangeRequestDetails { RequestTypeId = MailData.RequestTypeId, UserRemarks = MailData.UserRemarks, CRUpdatet1 = MailData.CR1Update, CRUpdatet2 = MailData.CR2Update, CRUpdatet3 = MailData.CR3Update }; if (status == "Approve") { var emailSubject = "SOD Employee Change Request Notification :" + System.DateTime.Now.ToString(); var emailTemplateName_Finance = "SODHRChangeRequest_Approval_Rejection.html"; TempData["emailId_HR"] = _changerequest.GetFinanceEmailId(Convert.ToInt32(Session["DeptCR"])); TempData["emailData_HR"] = EmailCredentials(emailSubject, emailTemplateName_Finance, sodmaster, soddetails, soddetails.RequestTypeId, 4); } else { var emailSubject = "SOD Employee Change Request Update Notification From HR :" + System.DateTime.Now.ToString(); var emailTemplateName_User = "******"; TempData["emailId"] = sodmaster.EmailID; TempData["emailData"] = EmailCredentials(emailSubject, emailTemplateName_User, sodmaster, soddetails, soddetails.RequestTypeId, 6); } sendEmailNotification(); } } } //return Json("",JsonRequestBehavior.AllowGet); return(Json(flag != 0 && status == "Approve" ? "1" : flag != 0 && status == "Reject" ? "2" : "0", JsonRequestBehavior.AllowGet)); }
/// <summary> /// Resend Mail to HR /// </summary> /// <param name="ReqId"></param> /// <returns></returns> public JsonResult ResendMailtoHRConfirmation(Int64 ReqId) { string msg = ""; var resendData = _changerequest.ResendMailtoHRData(ReqId); if (resendData != null && resendData.ToString() != "") { SODEmployeeChangeRequestMaster sodmaster = new SODEmployeeChangeRequestMaster { ReqId = resendData.ReqId, RequestedEmpName = resendData.RequestedEmpName, PhoneNo = resendData.Phone, EmailID = resendData.EmailID, RequestedEmpId = resendData.EmployeCode, DesignationName = resendData.Designation }; SODEmployeeChangeRequestDetails soddetails = new SODEmployeeChangeRequestDetails { RequestTypeId = resendData.RequestTypeId, UserRemarks = resendData.UserRemarks, CRUpdatet1 = resendData.CR1Update, CRUpdatet2 = resendData.CR2Update, CRUpdatet3 = resendData.CR3Update }; if (_changerequest.GetHREmail(Convert.ToInt32(Session["DeptCR"])) == "") { msg = "Sorry, HR right is not allocated for this Department."; } else { var emailSubject = "SOD Employee Change Request Notification :" + System.DateTime.Now.ToString(); var emailTemplateName_HR = "SODHRChangeRequest_Approval_Rejection.html"; TempData["emailId_HR"] = _changerequest.GetHREmail(Convert.ToInt32(Session["DeptCR"])); TempData["emailData_HR"] = EmailCredentials(emailSubject, emailTemplateName_HR, sodmaster, soddetails, soddetails.RequestTypeId, 2); sendEmailNotification(); msg = "Your request has been resent to HR for updation"; } } return(Json(msg, JsonRequestBehavior.AllowGet)); }
public JsonResult ConfirmationMailtoUser(Int64 ReqId, string status, string remarks) { var confirmdata = _changerequest.CRMailData(ReqId, status, remarks); if (confirmdata != null && confirmdata.ToString() != "") { SODEmployeeChangeRequestMaster sodmaster = new SODEmployeeChangeRequestMaster { ReqId = confirmdata.ReqId, RequestedEmpName = confirmdata.RequestedEmpName, PhoneNo = confirmdata.Phone, EmailID = confirmdata.EmailID, RequestedEmpId = confirmdata.EmployeCode }; SODEmployeeChangeRequestDetails soddetails = new SODEmployeeChangeRequestDetails { RequestTypeId = confirmdata.RequestTypeId, UserRemarks = confirmdata.UserRemarks, CRUpdatet1 = confirmdata.CR1Update, CRUpdatet2 = confirmdata.CR2Update, CRUpdatet3 = confirmdata.CR3Update, FinanceApprovalRemarks = confirmdata.RemarksFin }; TempData["emailId"] = sodmaster.EmailID; var emailSubject = "SOD Employee Change Request Update Notification From Finance/SAP Team :" + System.DateTime.Now.ToString(); var emailTemplateName_User = "******"; if (status == "Ok") { TempData["emailData"] = EmailCredentials(emailSubject, emailTemplateName_User, sodmaster, soddetails, soddetails.RequestTypeId, 3); } else { TempData["emailData"] = EmailCredentials(emailSubject, emailTemplateName_User, sodmaster, soddetails, soddetails.RequestTypeId, 5); } sendEmailNotification(); } return(Json(status == "Ok" ? "Request has been approved successfully and confirmation email has sent to " + TempData["emailId"] + "" : "Request has not been approved and has sent " + TempData["emailId"] + "", JsonRequestBehavior.AllowGet)); }
/// <summary> /// To Save User Change Request data in Master and details Table /// </summary> /// <param name="sodChangeMaster"></param> /// <param name="sodChangeDetails"></param> /// <returns></returns> public JsonResult SaveChangeRequestMaster(SODEmployeeChangeRequestMaster sodChangeMaster, SODEmployeeChangeRequestDetails sodChangeDetails) { sodChangeMaster.RequestedDate = DateTime.Now; var savedReqID = _changerequest.SaveChangeRequest(sodChangeMaster, sodChangeDetails); if (savedReqID != -1) { var emailSubject = "SOD Employee Change Request Notification :" + System.DateTime.Now.ToString(); var emailTemplateName_User = "******"; var emailTemplateName_HR = "SODHRChangeRequest_Approval_Rejection.html"; var verticalID = getverticalID(); TempData["hod"] = _userRepository.GetHODEmailIdDetails(verticalID, 5);//VerticalId TempData["emailId"] = sodChangeMaster.EmailID; var userEmailId = sodChangeMaster.EmailID; var hrEmailId = _changerequest.GetHREmail(Convert.ToInt32(Session["DeptCR"])); var financeEmailID = _changerequest.GetFinanceEmailId(Convert.ToInt32(Session["DeptIdCR"])); TempData["emailId_HR"] = hrEmailId; if (userEmailId.Trim() == hrEmailId.Trim()) { SendChangeRequestToFinance(savedReqID, "Approve"); TempData["successmsg"] = "Your Request has been sent successfully to Finance Team."; } else if (userEmailId.Trim() == financeEmailID.Trim()) { _changerequest.CRMailData(savedReqID, "Approve", ""); _changerequest.SaveHRApproval(savedReqID, "Approve"); ConfirmationMailtoUser(savedReqID, "Ok", sodChangeDetails.UserRemarks); TempData["successmsg"] = "Request is initiated."; } else { TempData["emailData_HR"] = EmailCredentials(emailSubject, emailTemplateName_HR, sodChangeMaster, sodChangeDetails, sodChangeDetails.RequestTypeId, 2); TempData["successmsg"] = "Your Request has been sent successfully to HR Team."; } TempData["emailData"] = EmailCredentials(emailSubject, emailTemplateName_User, sodChangeMaster, sodChangeDetails, sodChangeDetails.RequestTypeId, 1); } return(Json("", JsonRequestBehavior.AllowGet)); }
/// <summary> /// Read File /// </summary> /// <param name="emailTemplateName"></param> /// <param name="sod_data"></param> /// <param name="sodChangeDetails"></param> /// <param name="reqtypeId"></param> /// <param name="criteria"></param> /// <returns></returns> private string ReadFile(string emailTemplateName, SODEmployeeChangeRequestMaster sod_data, SODEmployeeChangeRequestDetails sodChangeDetails, int reqtypeId, Int16 criteria) { var strContent = new StringBuilder(); string line; string detailname = reqtypeId == 1 ? "personal" : "HOD"; var tr = ""; var UserRole = checkRole(); string UserType = UserRole.Data.ToString(); string context = string.Empty; //Personal if (criteria == 1) { var file = new System.IO.StreamReader(Server.MapPath("~/Template/HR" + "//" + emailTemplateName)); while ((line = file.ReadLine()) != null) { strContent.Append(line); } file.Close(); strContent = strContent.Replace("[user]", sod_data.RequestedEmpName); strContent = strContent.Replace("[DetailName]", detailname); strContent = strContent.Replace("[ReqId]", Convert.ToString(sod_data.ReqId)); if (UserType == "user") { context = "sent to HR team"; } else if (UserType == "hr") { context = "sent to Finance team"; } else { context = "initiated"; } strContent = strContent.Replace("[Team]", context); if (reqtypeId == 1) { tr = "<tr style='background-color:#EE1D23;color:white;text-align:left;'><th style='padding-left:10px;border-right:solid 1px #c2c2c2;'>Email ID</th><th style='padding-left:10px;border-right:solid 1px #c2c2c2;'>Phone Number</th><th style='padding-left:10px;border-right:solid 1px #c2c2c2;'>Remarks</th></tr>"; tr += "<tr style='font-family:Arial; font-size:12px;'><td>" + sod_data.EmailID + "</td><td>" + sod_data.PhoneNo + "</td><td>" + sodChangeDetails.UserRemarks + "</td></tr>"; } else { tr = "<tr style='background-color:#EE1D23;color:white;text-align:left;'><th style='padding-left:10px;border-right:solid 1px #c2c2c2;'>HOD Employee Code</th><th style='padding-left:10px;border-right:solid 1px #c2c2c2;'>HOD Name</th><th style='padding-left:10px;border-right:solid 1px #c2c2c2;'>Designation</th><th style='padding-left:10px;border-right:solid 1px #c2c2c2;'>Remarks</th></tr>"; tr += "<tr style='font-family:Arial; font-size:12px;'><td>" + sodChangeDetails.CRUpdatet1 + "</td><td>" + sodChangeDetails.CRUpdatet2 + "</td><td>" + sodChangeDetails.CRUpdatet3 + "</td><td>" + sodChangeDetails.UserRemarks + "</td></tr>"; } strContent = strContent.Replace("[tr]", tr); } else if (criteria == 2 || criteria == 4) { var span = ""; var file = new System.IO.StreamReader(Server.MapPath("~/Template/HR" + "//" + emailTemplateName)); while ((line = file.ReadLine()) != null) { strContent.Append(line); } file.Close(); strContent = strContent.Replace("[team]", criteria == 2 ? "HR" : "Finance"); strContent = strContent.Replace("[DetailName]", detailname); strContent = strContent.Replace("[RequesterName]", sod_data.RequestedEmpName + "(ECN-" + sod_data.RequestedEmpId + " " + "|" + sod_data.DesignationName + ")"); strContent = strContent.Replace("[content]", criteria == 2 ? "as mentioned below" : "as approved by HR Team"); strContent = strContent.Replace("[ReqId]", Convert.ToString(sod_data.ReqId)); if (reqtypeId == 1) { tr = "<tr style='background-color:#EE1D23;color:white;text-align:left;'><th style='padding-left:10px;border-right:solid 1px #c2c2c2;'>Email ID</th><th style='padding-left:10px;border-right:solid 1px #c2c2c2;'>Phone Number</th><th style='padding-left:10px;border-right:solid 1px #c2c2c2;'>Remarks</th></tr>"; tr += "<tr style='font-family:Arial; font-size:12px;'><td>" + sod_data.EmailID + "</td><td>" + sod_data.PhoneNo + "</td><td>" + sodChangeDetails.UserRemarks + "</td></tr>"; } else { tr = "<tr style='background-color:#EE1D23;color:white;text-align:left;'><th style='padding-left:10px;border-right:solid 1px #c2c2c2;'>HOD Employee Code</th><th style='padding-left:10px;border-right:solid 1px #c2c2c2;'>HOD Name</th><th style='padding-left:10px;border-right:solid 1px #c2c2c2;'>Designation</th><th style='padding-left:10px;border-right:solid 1px #c2c2c2;'>Remarks</th></tr>"; tr += "<tr style='font-family:Arial; font-size:12px;'><td>" + sodChangeDetails.CRUpdatet1 + "</td><td>" + sodChangeDetails.CRUpdatet2 + "</td><td>" + sodChangeDetails.CRUpdatet3 + "</td><td>" + sodChangeDetails.UserRemarks + "</td></tr>"; } if (criteria == 2) { span = "<span><span><a href='" + ConfigurationManager.AppSettings["FinanceMail"] + "?ReqId=[RID]&status=[Approve]'><input type='button' value='Approve' style='padding:8px 40px;border-radius:8px;background-color:#4CAF50;'></a></span>"; span += "<span><span><a href='" + ConfigurationManager.AppSettings["FinanceMail"] + "?ReqId=[RID]&status=[Reject]'><input type='button' value='Reject' style='padding: 8px 30px; border-radius:8px;background-color:#f44336'></a></span>"; } else { span = "<span><span><a href='" + ConfigurationManager.AppSettings["UserconfirmMail"] + "?ReqId=[RID]&status=[ok]'><input type='button' value='Approve' style='padding:8px 40px;border-radius:8px;background-color:#4CAF50;'></a></span>"; span += "<span><span><a href='" + ConfigurationManager.AppSettings["UserconfirmMail"] + "?ReqId=[RID]&status=[cancel]'><input type='button' value='Reject' style='padding: 8px 30px; border-radius:8px;background-color:#f44336'></a></span>"; } strContent = strContent.Replace("[tr]", tr); strContent = strContent.Replace("[span]", span); strContent = criteria == 2 ? strContent.Replace("[Approve]", "Approve") : strContent.Replace("[ok]", "Ok"); strContent = criteria == 2 ? strContent.Replace("[Reject]", "Reject") : strContent.Replace("[cancel]", "cancel"); strContent = strContent.Replace("[RID]", Convert.ToString(sod_data.ReqId)); } else { var file = new System.IO.StreamReader( Server.MapPath("~/Template/HR" + "//" + emailTemplateName)); while ((line = file.ReadLine()) != null) { strContent.Append(line); } file.Close(); string status = criteria == 3 ? "Your Request has been updated by Finance Team." : "Your Request has not been approved by Finance Team."; if (criteria == 6) { status = "Your Request has not been approved by HR Team."; } strContent = strContent.Replace("[RequesterName]", sod_data.RequestedEmpName); strContent = strContent.Replace("[status]", status); strContent = strContent.Replace("[ReqId]", Convert.ToString(sod_data.ReqId)); string approvalMessage = criteria == 3 ? "In SOD system, It will be reflected after <b> 2:00 </b> hours." : "Sorry, We are not able to process your request."; strContent = strContent.Replace("[approvalMessage]", approvalMessage); if (reqtypeId == 1) { tr = "<tr style='background-color:#EE1D23;color:white;text-align:left;'><th style='padding-left:10px;border-right:solid 1px #c2c2c2;'>Email ID</th><th style='padding-left:10px;border-right:solid 1px #c2c2c2;'>Phone Number</th><th style='padding-left:10px;border-right:solid 1px #c2c2c2;'>Remarks</th></tr>"; tr += "<tr style='font-family:Arial; font-size:12px;'><td>" + sod_data.EmailID + "</td><td>" + sod_data.PhoneNo + "</td><td>" + sodChangeDetails.UserRemarks + "</td></tr>"; } else { tr = "<tr style='background-color:#EE1D23;color:white;text-align:left;'><th style='padding-left:10px;border-right:solid 1px #c2c2c2;'>HOD Employee Code</th><th style='padding-left:10px;border-right:solid 1px #c2c2c2;'>HOD Name</th><th style='padding-left:10px;border-right:solid 1px #c2c2c2;'>Designation</th><th style='padding-left:10px;border-right:solid 1px #c2c2c2;'>Remarks</th></tr>"; tr += "<tr style='font-family:Arial; font-size:12px;'><td>" + sodChangeDetails.CRUpdatet1 + "</td><td>" + sodChangeDetails.CRUpdatet2 + "</td><td>" + sodChangeDetails.CRUpdatet3 + "</td><td>" + sodChangeDetails.UserRemarks + "</td></tr>"; } strContent = strContent.Replace("[tr]", tr); strContent = strContent.Replace("[FinRemarks]", sodChangeDetails.FinanceApprovalRemarks == null ? "" : "Finance Remarks: " + sodChangeDetails.FinanceApprovalRemarks + ""); } return(strContent.ToString()); }
/// <summary> /// Email Credentails /// </summary> /// <param name="subjectName"></param> /// <param name="emailTemplateName"></param> /// <param name="sod_data"></param> /// <param name="sodChangeDetails"></param> /// <param name="reqtypeId"></param> /// <param name="criteria"></param> /// <returns></returns> public EmailNotificationModel EmailCredentials(string subjectName, string emailTemplateName, SODEmployeeChangeRequestMaster sod_data, SODEmployeeChangeRequestDetails sodChangeDetails, int reqtypeId, Int16 criteria) { var objEmailServices = new EmailNotificationModel { SmtpUser = ConfigurationManager.AppSettings["smtpUser"].Trim(), SmtpPass = ConfigurationManager.AppSettings["smtptdPass"].Trim(), SmtpServer = ConfigurationManager.AppSettings["smtptdServer"].Trim(), SmtpPort = ConfigurationManager.AppSettings["smtptdPort"].Trim(), TemplateFilePath = ReadFile(emailTemplateName, sod_data, sodChangeDetails, reqtypeId, criteria), EmailSubjectName = subjectName }; return(objEmailServices); }