public ActionResult CustomerInvoicePDF(long obId) { Areas.Admin.Models.Invoice inv = new Areas.Admin.Models.Invoice(); try { CLayer.Invoice data = BLayer.Invoice.GetInvoiceByOfflineBooking(obId); if (data == null) { data = new CLayer.Invoice(); data.OfflineBookingId = obId; // data.InvoiceDate = DateTime.Today; data.DueDate = DateTime.Today.AddDays(10); data.InvoiceType = (int)CLayer.ObjectStatus.InvoiceType.Invoice; BLayer.Invoice.Save(data); } inv.InvoiceId = data.InvoiceId; inv.OfflineBookingId = data.OfflineBookingId; inv.IsMailed = (data.MailedDate <= DateTime.Today); inv.HtmlSection1 = data.HtmlSection1; inv.HtmlSection2 = data.HtmlSection2; inv.HtmlSection3 = data.HtmlSection3; } catch (Exception ex) { Common.LogHandler.HandleError(ex); } return(new ViewAsPdf("CustomerInvoicePDF", inv)); }
public ActionResult MailContent(long obId) { CLayer.Invoice data = BLayer.Invoice.GetInvoiceByOfflineBooking(obId); if (data == null) { data = new CLayer.Invoice(); data.OfflineBookingId = obId; /// data.InvoiceDate = DateTime.Today; data.DueDate = DateTime.Today.AddDays(10); data.InvoiceType = (int)CLayer.ObjectStatus.InvoiceType.Invoice; BLayer.Invoice.Save(data); //data = BLayer.Invoice.GetInvoiceByOfflineBooking(offId); //data = await MessageFromHtml(offId); } Areas.Admin.Models.Invoice inv = new Areas.Admin.Models.Invoice(); inv.InvoiceId = data.InvoiceId; inv.OfflineBookingId = data.OfflineBookingId; inv.IsMailed = (data.MailedDate <= DateTime.Today); inv.HtmlSection1 = data.HtmlSection1; inv.HtmlSection2 = data.HtmlSection2; inv.HtmlSection3 = data.HtmlSection3; CLayer.OfflineBooking dd = BLayer.OfflineBooking.GetAllCustomerDetails(obId); if (dd != null) { inv.CustomerName = dd.CustomerName; } return(View("Mail", inv)); }
public async Task <bool> SendMailInvoice(long OfflineBookingId) { string Filename = ""; // send mail to customer -- after save string msg = await GetMailBody(OfflineBookingId); Common.Mailer ml = new Common.Mailer(); System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage(); CLayer.OfflineBooking booking = BLayer.OfflineBooking.GetAllDetailsById(OfflineBookingId); CLayer.OfflineBooking customer = new CLayer.OfflineBooking(); int bookingType = BLayer.OfflineBooking.GetBookingType(OfflineBookingId); if (bookingType == (int)CLayer.ObjectStatus.OfflineBookingType.TAC) { //Mail To Supplier if (OfflineBookingId > 0) { CLayer.OfflineBooking OfflinePropertydata = BLayer.OfflineBooking.GetAllpropertyDetails(OfflineBookingId); if (OfflinePropertydata != null) { if (OfflinePropertydata.SupplierEmail != null && OfflinePropertydata.SupplierEmail != "") { mail.To.Add(OfflinePropertydata.SupplierEmail); } } } string BccEmailsforSup = BLayer.Settings.GetValue(CLayer.Settings.CC_SUPPLIERCOMMUNICATION); if (BccEmailsforSup.Trim() != "") { string[] emails = BccEmailsforSup.Split(','); for (int i = 0; i < emails.Length; ++i) { mail.CC.Add(emails[i]); } } } else { //Mail To Customer if (OfflineBookingId > 0) { customer = BLayer.OfflineBooking.GetAllCustomerDetails(OfflineBookingId); } if (customer != null) { if (customer.CustomerEmail != "") { mail.To.Add(customer.CustomerEmail); } } #region for corporate //for corporate admins //long userid = BLayer.User.GetUserId(customer.CustomerEmail); //if (userid > 0) //{ // CLayer.Role.Roles rle = BLayer.User.GetRole(userid); // if (rle == CLayer.Role.Roles.CorporateUser) // { // long cid = BLayer.B2B.GetCorporateIdOfUser(userid); // } //} //message = await Common.Mailer.MessageFromHtml(System.Configuration.ConfigurationManager.AppSettings.Get("CorpIntimation") + bookingId.ToString() + "&key=" + BLayer.Settings.GetValue(CLayer.Settings.PUBLIC_PAGE_LOCK)); //long cid = BLayer.B2B.GetCorporateIdOfUser(byUser.UserId); //if (cid > 0) //{ // string em = BLayer.User.GetEmail(cid); // if (em != null && em != "") // { // msg.CC.Add(em); // } //} //mail.To.Add(BLayer.Settings.GetValue(CLayer.Settings.SUPPORT_EMAIL)); #endregion string BccEmailsforcus = BLayer.Settings.GetValue(CLayer.Settings.CC_CUSTOMERCOMMUNICATION); if (BccEmailsforcus.Trim() != "") { string[] emails = BccEmailsforcus.Split(','); for (int i = 0; i < emails.Length; ++i) { mail.CC.Add(emails[i]); } } } CLayer.Invoice data = BLayer.Invoice.GetInvoiceByOfflineBooking(OfflineBookingId); if (data != null) { mail.Subject = "Invoice against Booking ID: " + booking.ConfirmationNumber + ", Invoice No. " + data.InvoiceNumber; } mail.Body = msg; mail.IsBodyHtml = true; //add atachment try { Areas.Admin.Models.Invoice inv = new Areas.Admin.Models.Invoice(); if (data != null) { inv.InvoiceId = data.InvoiceId; inv.OfflineBookingId = data.OfflineBookingId; inv.IsMailed = (data.MailedDate <= DateTime.Today); inv.HtmlSection1 = data.HtmlSection1; inv.HtmlSection2 = data.HtmlSection2; inv.HtmlSection3 = data.HtmlSection3; ViewAsPdf v = new ViewAsPdf("~/Areas/Admin/Views/ManageOfflineBooking/Mail.cshtml", inv) { PageMargins = new Rotativa.Options.Margins(1, 1, 1, 1), PageOrientation = Rotativa.Options.Orientation.Portrait, PageSize = Rotativa.Options.Size.Letter }; string newdirectory = "Files\\Temp\\" + inv.InvoiceId; if (!Directory.Exists(Server.MapPath("~") + "\\" + newdirectory)) { Directory.CreateDirectory(Server.MapPath("~") + "\\" + newdirectory); } Filename = Server.MapPath("~") + "\\" + newdirectory + "\\" + "Invoice_" + data.InvoiceNumber + ".pdf"; var byteArray = v.BuildPdf(ControllerContext); var fileStream = new FileStream(Filename, FileMode.Create, FileAccess.Write); fileStream.Write(byteArray, 0, byteArray.Length); fileStream.Close(); fileStream.Dispose(); // System.Net.Mail.Attachment attachment; Attachment attacht = new Attachment(Filename, MediaTypeNames.Application.Octet); mail.Attachments.Add(attacht); } } catch (Exception ex) { Common.LogHandler.HandleError(ex); } string AccountMail = BLayer.Settings.GetValue(CLayer.Settings.ACCOUNT_EMAILS); if (AccountMail != "") { string[] Accemails = AccountMail.Split(','); for (int i = 0; i < Accemails.Length; ++i) { mail.CC.Add(Accemails[i]); } } //send to ops mail string SalesPersonOPSMails = ""; if (OfflineBookingId > 0) { CLayer.OfflineBooking OffdataStaff = BLayer.OfflineBooking.GetAllDetailsById(OfflineBookingId); if (OffdataStaff != null) { if (OffdataStaff.SalesPersonId > 0) { CLayer.User usrstaff = BLayer.User.Get(OffdataStaff.SalesPersonId); if (usrstaff != null) { if (usrstaff.OPSEmail != null && usrstaff.OPSEmail != "") { SalesPersonOPSMails = usrstaff.OPSEmail; } } } } } if (SalesPersonOPSMails != "") { string CcOPSEmails = SalesPersonOPSMails.Trim(); if (CcOPSEmails != "") { string[] emails = CcOPSEmails.Split(','); for (int i = 0; i < emails.Length; ++i) { mail.CC.Add(emails[i]); } } } try { await ml.SendMailAsyncForBooking(mail, Common.Mailer.MailType.Reservation); } catch (Exception ex) { Common.LogHandler.HandleError(ex); } return(true); }