Exemplo n.º 1
0
        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"));
            }
        }
Exemplo n.º 4
0
        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"));
            }
        }