public IActionResult EmailPeople(PaySlipView model) { if (HttpContext.Session.GetString("Session_Role") == veryrole) { var id = model.PaySlip.Id; var name = model.PaySlip.Job.People.Name; var position = model.PaySlip.Job.Position; var address = model.PaySlip.Job.People.Address; var basic = model.PaySlip.Basic; var employeeepf = model.PaySlip.EmployeeEPF; var bonus = model.PaySlip.Bonus; var employerepf = model.PaySlip.EmployerEPF; var Advancepay = model.PaySlip.AdvancePay; var employeesocso = model.PaySlip.EmployeeSocso; var net = model.PaySlip.NetSalary; var date = model.PaySlip.Date.ToString("MMMM yyyy"); var email = model.PaySlip.Job.People.Email; var HtmlString = "<!DOCTYPE html><html lang='en'><head><meta charset='utf - 8' /><meta name = 'viewport' content = 'width=device-width, initial-scale=1.0' /><link href='https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css' rel='stylesheet' integrity='sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk' crossorigin='anonymous'></head><body><br><br><br><br><br><br><div><div class='card-header text-center'><b>V3X Company</b></div><div class='card-body'><div class='text-center'><b>" + date + "</b></div><table class='table'><tbody><tr><th>Name:</th><th><th>" + name + "</th><th></th></tr><tr><th>Position:</th><th></th><th>" + position + "</th><th></th></tr><th>Address:</th><th></th><th>" + address + "</th><th></th></tr><tr><th>Basic:</th><th>RM" + basic + "</th><th>EPF:</th><th>RM" + employeeepf + "</th></tr><tr><th>Bonus:</th><th>RM" + bonus + "</th><th>CompanyEPF:</th><th>RM" + employerepf + "</th></tr><tr><th>AdvancePay:</th><th>RM" + Advancepay + "</th><th>SOCSO:</th><th>RM" + employeesocso + "</th></tr><tr><th>NetSalary:</th><th></th><th>RM" + net + "</th><th></th></tr></tbody></table></div></div></body></html>"; HtmlToPdf converter = new HtmlToPdf(); PdfDocument doc = converter.ConvertHtmlString(HtmlString); MemoryStream pdfStream = new MemoryStream(); doc.Save(pdfStream); pdfStream.Position = 0; // create email message MailMessage message = new MailMessage("*****@*****.**", email); //message.From = new MailAddress("*****@*****.**"); //message.To.Add(new MailAddress(email)); message.Subject = "Payroll"; message.Body = "The following attachment is payslip for the payroll"; message.Attachments.Add(new Attachment(pdfStream, "PaySlip" + name + id + ".pdf")); SmtpClient smtp = new SmtpClient(); smtp.Host = "smtp.gmail.com"; smtp.Port = 587; smtp.EnableSsl = true; NetworkCredential nc = new NetworkCredential("*****@*****.**", "v3xthebest"); smtp.UseDefaultCredentials = false; smtp.Credentials = nc; // send email smtp.Send(message); return(RedirectToAction(nameof(Index))); } else { return(RedirectToAction("Index", "Home")); } }
public IActionResult PdfPaySlip(PaySlipView model) { if (HttpContext.Session.GetString("Session_Role") == veryrole) { var name = model.PaySlip.Job.People.Name; var position = model.PaySlip.Job.Position; var address = model.PaySlip.Job.People.Address; var basic = model.PaySlip.Basic; var employeeepf = model.PaySlip.EmployeeEPF; var bonus = model.PaySlip.Bonus; var employerepf = model.PaySlip.EmployerEPF; var Advancepay = model.PaySlip.AdvancePay; var employeesocso = model.PaySlip.EmployeeSocso; var net = model.PaySlip.NetSalary; var date = model.PaySlip.Date.ToString("MMMM yyyy"); var HtmlString = "<!DOCTYPE html><html lang='en'>" + "<head><meta charset='utf - 8' />" + "<meta name = 'viewport' content = 'width=device-width, initial-scale=1.0' />" + "<link href='https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css' rel='stylesheet' integrity='sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk' crossorigin='anonymous'>" + "</head>" + "<body>" + "<br><br><br><br><br><br>" + "<div>" + "<div class='card-header text-center'>" + "<b>V3X Company</b>" + "</div>" + "<div class='card-body'>" + "<div class='text-center'>" + "<b>" + date + "</b>" + "</div>" + "<table class='table'>" + "<tbody>" + "<tr><th>Name:</th>" + "<th><th>" + name + "</th><th>" + "</th></tr><tr><th>Position:</th><th></th><th>" + position + "</th><th></th></tr><th>Address:</th><th></th><th>" + address + "</th><th></th></tr><tr><th>Basic:</th><th>RM" + basic + "</th><th>EPF:</th><th>RM" + employeeepf + "</th></tr><tr><th>Bonus:</th><th>RM" + bonus + "</th><th>CompanyEPF:</th><th>RM" + employerepf + "</th></tr><tr><th>AdvancePay:</th><th>RM" + Advancepay + "</th><th>SOCSO:</th><th>RM" + employeesocso + "</th></tr><tr><th>NetSalary:</th><th></th><th>RM" + net + "</th><th></th></tr></tbody></table></div></div></body></html>"; HtmlToPdf converter = new HtmlToPdf(); PdfDocument doc = converter.ConvertHtmlString(HtmlString); MemoryStream pdfStream = new MemoryStream(); doc.Save(pdfStream); pdfStream.Position = 0; doc.Close(); return(File(pdfStream.ToArray(), "application/pdf")); } else { return(RedirectToAction("Index", "Home")); } }
public IActionResult PaySlip(string paySlipDate) { if (HttpContext.Session.GetString("Session_Role") == veryrole) { var paySlipView = new PaySlipView(); if (paySlipDate != null) { var parsedDate = DateTime.ParseExact(paySlipDate, "MMMM yyyy", CultureInfo.InvariantCulture); var paySlip = _context.PaySlip .Include(x => x.Job) .Include(x => x.Job.People) .Where(x => x.Job.People.Name == HttpContext.Session.GetString("Session_Name")) .Where(x => x.Date.Year == parsedDate.Year && x.Date.Month == parsedDate.Month) .FirstOrDefault(); //var empId = _context.People.Where(p => p.Name == Name).Select(e => e.Id).FirstOrDefault(); //var jobId = _context.Job.Where(j => j.PeopleId == empId).Select(j => j.JobId).FirstOrDefault(); //var paySlip = _context.PaySlip // .Where(ps => ps.JobId == jobId) // .Where(ps => ps.Date.ToString("MMMM yyyy") == paySlipDate) // .FirstOrDefault(); var date = _context.PaySlip.Select(d => d.Date.ToString("MMMM yyyy")).Distinct(); var empName = _context.People.Where(e => e.Role == "employee").Select(e => e.Name); paySlipView = new PaySlipView { PaySlip = paySlip, Date = new SelectList(date.ToList()), EmpName = new SelectList(empName.ToList()), Name = paySlip.Job.People.Name, paySlipDate = paySlip.Date.ToString("MMMM yyyy") }; } else { var date = _context.PaySlip.Select(d => d.Date.ToString("MMMM yyyy")).Distinct(); paySlipView = new PaySlipView { Date = new SelectList(date.ToList()) }; } return(View(paySlipView)); } else { return(RedirectToAction("Index", "Home")); } }
public IActionResult PaySlip(String Name, string paySlipDate) { if (HttpContext.Session.GetString("Session_Role") == veryrole) { Debug.WriteLine($"My input : {paySlipDate} {Name}"); var paySlipView = new PaySlipView(); if (paySlipDate != null && Name != null) { var parsedDate = DateTime.ParseExact(paySlipDate, "MMMM yyyy", CultureInfo.InvariantCulture); var paySlip = _context.PaySlip .Include(x => x.Job) .Include(x => x.Job.People) .Where(x => x.Job.People.Name == Name) .Where(x => x.Date.Year == parsedDate.Year && x.Date.Month == parsedDate.Month) .FirstOrDefault(); paySlip.NetSalary = Math.Round(paySlip.NetSalary, 2); paySlip.Basic = Math.Round(paySlip.Basic, 2); paySlip.EmployeeEPF = Math.Round(paySlip.EmployeeEPF, 2); paySlip.EmployerEPF = Math.Round(paySlip.EmployerEPF, 2); paySlip.Bonus = Math.Round(paySlip.Bonus, 2); paySlip.AdvancePay = Math.Round(paySlip.AdvancePay, 2); paySlip.EmployeeSocso = Math.Round(paySlip.EmployeeSocso, 2); paySlip.EmployerSocso = Math.Round(paySlip.EmployerSocso, 2); //var empId = _context.People.Where(p => p.Name == Name).Select(e => e.Id).FirstOrDefault(); //var jobId = _context.Job.Where(j => j.PeopleId == empId).Select(j => j.JobId).FirstOrDefault(); //var paySlip = _context.PaySlip // .Where(ps => ps.JobId == jobId) // .Where(ps => ps.Date.ToString("MMMM yyyy") == paySlipDate) // .FirstOrDefault(); var date = _context.PaySlip.Select(d => d.Date.ToString("MMMM yyyy")).Distinct(); var empName = _context.People.Where(e => e.Role == "employee").Select(e => e.Name); paySlipView = new PaySlipView { PaySlip = paySlip, Date = new SelectList(date.ToList()), EmpName = new SelectList(empName.ToList()), Name = paySlip.Job.People.Name, paySlipDate = paySlip.Date.ToString("MMMM yyyy") }; } else { var date = _context.PaySlip.Select(d => d.Date.ToString("MMMM yyyy")).Distinct(); var empName = _context.People.Where(e => e.Role == "employee").Select(e => e.Name); paySlipView = new PaySlipView { Date = new SelectList(date.ToList()), EmpName = new SelectList(empName.ToList()) }; } return(View(paySlipView)); } else { return(RedirectToAction("Index", "Home")); } }