예제 #1
0
        public ActionResult ViewBill(long OfflineBookingId)
        {
            Areas.Admin.Models.OfflineBookingModel data = new Areas.Admin.Models.OfflineBookingModel();

            try
            {
                data.OfflineBookingId = OfflineBookingId;
                data.Vendorlist       = BLayer.OfflineBooking.getVendorDetails(OfflineBookingId);
                ViewBag.viewonly      = "yes";
                //return View("~/Areas/Admin/Views/OfflineBooking/BookingData.cshtml", data);
            }
            catch (Exception ex)
            {
                Common.LogHandler.HandleError(ex);
            }
            //return new ViewAsPdf("~/Views/BookingHistory/OfflineBookingCofirmation.cshtml", data)
            //{

            //    PageMargins = new Rotativa.Options.Margins(0, 0, 0, 0),
            //    PageOrientation = Rotativa.Options.Orientation.Portrait
            //};

            var PDFResult = new ViewAsPdf("~/Views/BookingHistory/OfflineBookingCofirmation.cshtml", data)
            {
                FileName       = "Report.PDF",
                CustomSwitches =
                    "--footer-center \"  DOS: " +
                    DateTime.Now.Date.ToString("MM/dd/yyyy") + "  Page: [page]/[toPage]\"" +
                    " --footer-line --footer-font-size \"9\" --footer-spacing 6 --footer-font-name \"calibri light\""
            };

            return(PDFResult);
        }
예제 #2
0
        public async Task <bool> SupplierInvoiceToSupplier()
        {
            List <CLayer.OfflineBooking> BookingList = BLayer.OfflineBooking.GetOfflinebookingsAtCheckInOutNow();

            foreach (CLayer.OfflineBooking dt in BookingList)
            {
                string        message  = "";
                string        Filename = "";
                Common.Mailer ml       = new Common.Mailer();
                try
                {
                    if (dt.PropertyEmail != "" || dt.SupplierEmail != "")
                    {
                        message = await Common.Mailer.MessageFromHtml(System.Configuration.ConfigurationManager.AppSettings.Get("SupplierInvoiceOfflineBookGST") + dt.OfflineBookingId.ToString() + "&key=" + BLayer.Settings.GetValue(CLayer.Settings.PUBLIC_PAGE_LOCK));

                        System.Net.Mail.MailMessage supplierMsg = new System.Net.Mail.MailMessage();

                        supplierMsg.Subject = "Supplier Invoice";
                        supplierMsg.Body    = message;

                        if (dt.PropertyEmail != null)
                        {
                            if (dt.PropertyEmail != "")
                            {
                                supplierMsg.CC.Add(dt.PropertyEmail);
                            }
                        }

                        if (dt.SupplierEmail != null)
                        {
                            if (dt.SupplierEmail != "")
                            {
                                supplierMsg.To.Add(dt.SupplierEmail);
                            }
                        }

                        string AccountMail = BLayer.Settings.GetValue(CLayer.Settings.SUPPLIER_INVOICE_REQUEST_MAILS);
                        if (AccountMail != "")
                        {
                            string[] Accemails = AccountMail.Split(',');
                            for (int i = 0; i < Accemails.Length; ++i)
                            {
                                supplierMsg.CC.Add(Accemails[i]);
                            }
                        }


                        supplierMsg.IsBodyHtml = true;

                        //add atachment
                        try
                        {
                            Areas.Admin.Models.OfflineBookingModel data = new Areas.Admin.Models.OfflineBookingModel();
                            data.OfflineBookingId = dt.OfflineBookingId;
                            var PDFResult = new ViewAsPdf("~/Areas/Admin/Views/OfflineBookingGST/SupplierInvoice.cshtml", data)
                            {
                                CustomSwitches =
                                    "--footer-center \"  DOS: " +
                                    DateTime.Now.Date.ToString("MM/dd/yyyy") + "  Page: [page]/[toPage]\"" +
                                    " --footer-line --footer-font-size \"9\" --footer-spacing 6 --footer-font-name \"calibri light\""
                            };
                            string newdirectory = "Files\\Temp\\SupplierInvoice\\" + dt.OfflineBookingId;
                            if (!Directory.Exists(Server.MapPath("~") + "\\" + newdirectory))
                            {
                                Directory.CreateDirectory(Server.MapPath("~") + "\\" + newdirectory);
                            }
                            Filename = Server.MapPath("~") + "\\" + newdirectory + "\\" + "SupplierInvoice_" + dt.ConfirmationNumber + ".pdf";
                            var byteArray  = PDFResult.BuildPdf(ControllerContext);
                            var fileStream = new FileStream(Filename, FileMode.Create, FileAccess.Write);
                            fileStream.Write(byteArray, 0, byteArray.Length);
                            fileStream.Close();
                            fileStream.Dispose();
                            Attachment attacht = new Attachment(Filename, MediaTypeNames.Application.Octet);
                            supplierMsg.Attachments.Add(attacht);
                        }
                        catch (Exception ex)
                        {
                            Common.LogHandler.HandleError(ex);
                        }



                        try
                        {
                            await ml.SendMailAsync(supplierMsg, Common.Mailer.MailType.Reservation);
                        }
                        catch (Exception ex)
                        {
                            Common.LogHandler.HandleError(ex);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Common.LogHandler.HandleError(ex);
                }
            }
            return(true);
        }