public MemoryStream DownloadPaymentPeriod(IQueryable <Order> model, ReportFilter reportFilter) { var pdfData = new MemoryStream(); var document = new Document(PageSize.A4, 35, 35, 25, 50); var pdfWriter = PdfWriter.GetInstance(document, pdfData); pdfWriter.ViewerPreferences = PdfWriter.PageLayoutOneColumn; // Our custom Header and Footer is done using Event Handler var pageEventHandler = new TwoColumnHeaderFooter(); pdfWriter.PageEvent = pageEventHandler; // Define the page header //pageEventHandler.Title = title; //pageEventHandler.HeaderFont = FontFactory.GetFont(BaseFont.COURIER_BOLD, 10, Font.BOLD); //pageEventHandler.HeaderLeft = "Group"; //pageEventHandler.HeaderRight = "1"; var filePath = System.IO.Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, "Content\\Fonts", "times.ttf"); BaseFont baseFont = BaseFont.CreateFont("C:\\Windows\\Fonts\\times.ttf", BaseFont.IDENTITY_H, true); var fontBold = new Font(baseFont, 11, Font.BOLD, BaseColor.BLACK); Font defaultFont = new Font(baseFont, 12, Font.NORMAL, BaseColor.BLACK); document.Open(); //Add header //var myCompany = new Chunk("VPDD CTY TNHH TM VC TRUNG THÀNH", defaultFont); //document.Add(myCompany); //document.Add(new Phrase("\n")); //var myCompanyAddress = new Chunk("Đ/C: SỐ 17 NGÁCH 43 NGÕ 64 NG.LƯƠNG BẰNG - ĐỐNG ĐA - HN", defaultFont); //document.Add(myCompanyAddress); //document.Add(new Phrase("\n")); //var myCompanyContact = new Chunk("SĐT: 04.3514.9969 FAX: 04.3573.9119", defaultFont); //document.Add(myCompanyContact); //document.Add(new Paragraph("\r\n")); //var myTitle = new Paragraph("DANH SÁCH ĐƠN HÀNG CẦN GIAO", new Font(baseFont, 22, Font.BOLD, BaseColor.BLACK)); //myTitle.Alignment = Element.ALIGN_CENTER; //document.Add(myTitle); document.Add(new Paragraph("\r\n")); //From - To Rectangle pageSize = document.PageSize; var fromDate = DateTime.Today; var isAllFromDate = true; var toDate = DateTime.Today; var isAllToDate = true; //Filter by date if (reportFilter.FromDate.HasValue) { fromDate = reportFilter.FromDate.Value.Date; isAllFromDate = false; } if (reportFilter.ToDate.HasValue) { toDate = reportFilter.ToDate.Value.Date.AddDays(1); isAllToDate = false; } //var listOffices = new int[1]; //var isGetAllListOffices = true; ////Filter by deliver to //if (reportFilter.ListOffices != null && reportFilter.ListOffices.Count() > 0) //{ // listOffices = reportFilter.ListOffices; // isGetAllListOffices = false; //} //var listCustomers = new int[1]; //var isGetAllListCustomers = true; ////Filter by deliver to //if (reportFilter.ListCustomers != null && reportFilter.ListCustomers.Count() > 0) //{ // listCustomers = reportFilter.ListCustomers; // isGetAllListCustomers = false; //} var headerTable = new PdfPTable(2) { WidthPercentage = 100 }; headerTable.DefaultCell.VerticalAlignment = Element.ALIGN_MIDDLE; headerTable.SetWidths(new Single[] { 1, 1 }); if (!isAllFromDate) { var headerLeftCell = new PdfPCell(new Phrase(0, "TỪ NGÀY: " + fromDate.ToString("dd/MM/yyyy"), defaultFont)) { BorderWidth = 0 }; headerTable.AddCell(headerLeftCell); } if (!isAllToDate) { var headerRightCell = new PdfPCell(new Phrase(8, "ĐẾN NGÀY: " + toDate.ToString("dd/MM/yyyy"), defaultFont)) { HorizontalAlignment = Element.ALIGN_RIGHT, PaddingRight = 5, BorderWidth = 0, }; headerTable.AddCell(headerRightCell); } document.Add(headerTable); ////Report date //if (!isGetAllListOffices) //{ // var officeNames = ""; // var officeEntities = _myOfficeRepository.GetAll().Where(p => listOffices.Contains(p.MyOfficeId)).ToList(); // foreach (var item in officeEntities) // { // officeNames += item.OfficeName + " ;"; // } // var officeReport = new Chunk(" CHI NHÁNH: " + officeNames, defaultFont); // document.Add(officeReport); //} //if (products.Count() > 1) //{ // var productNames = ""; // var productEntities = _productRepository.GetAll().Where(p => products.Contains(p.ProductId)).ToList(); // foreach (var item in productEntities) // { // productNames += item.ProductName + " ;"; // } // var productReport = new Chunk(" SẢN PHẨM: " + productNames, defaultFont); // document.Add(productReport); //} document.Add(new Paragraph("\r\n")); //Add columns var tableColumn = new PdfPTable(7) { WidthPercentage = 100 }; var colWidthPercentages = new Single[] { 7, 9, 31, 24, 15, 7, 7 }; tableColumn.DefaultCell.VerticalAlignment = Element.ALIGN_MIDDLE; tableColumn.SetWidths(colWidthPercentages); tableColumn.AddCell(new PdfPCell(new Phrase("STT", new Font(baseFont, 12, Font.BOLD, BaseColor.BLACK))) { BorderWidth = 2f, Padding = 3, HorizontalAlignment = Element.ALIGN_CENTER }); tableColumn.AddCell(new PdfPCell(new Phrase("ID", new Font(baseFont, 12, Font.BOLD, BaseColor.BLACK))) { BorderWidth = 2f, Padding = 3, HorizontalAlignment = Element.ALIGN_CENTER }); tableColumn.AddCell(new PdfPCell(new Phrase("CHI NHÁNH", new Font(baseFont, 12, Font.BOLD, BaseColor.BLACK))) { BorderWidth = 2f, Padding = 3, HorizontalAlignment = Element.ALIGN_CENTER }); tableColumn.AddCell(new PdfPCell(new Phrase("KHÁCH HÀNG", new Font(baseFont, 12, Font.BOLD, BaseColor.BLACK))) { BorderWidth = 2f, Padding = 3, HorizontalAlignment = Element.ALIGN_CENTER }); tableColumn.AddCell(new PdfPCell(new Phrase("SỐ TIỀN", new Font(baseFont, 12, Font.BOLD, BaseColor.BLACK))) { BorderWidth = 2f, Padding = 3, HorizontalAlignment = Element.ALIGN_CENTER }); tableColumn.AddCell(new PdfPCell(new Phrase("CK", new Font(baseFont, 12, Font.BOLD, BaseColor.BLACK))) { BorderWidth = 2f, Padding = 3, HorizontalAlignment = Element.ALIGN_CENTER }); tableColumn.AddCell(new PdfPCell(new Phrase("THU HỘ", new Font(baseFont, 12, Font.BOLD, BaseColor.BLACK))) { BorderWidth = 2f, Padding = 3, HorizontalAlignment = Element.ALIGN_CENTER }); document.Add(tableColumn); //Add rows var no = 1; foreach (var item in model.ToList()) { var tableRow = new PdfPTable(7) { WidthPercentage = 100 }; tableRow.DefaultCell.VerticalAlignment = Element.ALIGN_MIDDLE; tableRow.SetWidths(colWidthPercentages); tableRow.AddCell(new PdfPCell(new Phrase(no.ToString(), defaultFont))); tableRow.AddCell(new PdfPCell(new Phrase((item.OrderId + 1000).ToString(), defaultFont))); tableRow.AddCell(new PdfPCell(new Phrase(item.MyOffice.OfficeName, defaultFont))); tableRow.AddCell(new PdfPCell(new Phrase(item.Customer.CustomerName, defaultFont))); tableRow.AddCell(new PdfPCell(new Phrase(String.Format("{0:0,0}", item.TotalCost - item.TotalPaid), defaultFont))); var cell1 = new PdfPCell(new Phrase(item.PaymentType == (int)PaymentTypes.Tranfer ? "X" : "", defaultFont)); cell1.HorizontalAlignment = PdfPCell.ALIGN_CENTER; tableRow.AddCell(cell1); var cell = new PdfPCell(new Phrase(item.PaymentType == (int)PaymentTypes.InShippingPlace ? "X" : "", defaultFont)); cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER; tableRow.AddCell(cell); document.Add(tableRow); no++; } document.Close(); return(pdfData); }
public MemoryStream DownloadDeliveryPackage(ReportFilter reportFilter) { var pdfData = new MemoryStream(); var document = new Document(PageSize.A4, 35, 35, 25, 50); var pdfWriter = PdfWriter.GetInstance(document, pdfData); pdfWriter.ViewerPreferences = PdfWriter.PageLayoutOneColumn; // Our custom Header and Footer is done using Event Handler var pageEventHandler = new TwoColumnHeaderFooter(); pdfWriter.PageEvent = pageEventHandler; // Define the page header //pageEventHandler.Title = title; //pageEventHandler.HeaderFont = FontFactory.GetFont(BaseFont.COURIER_BOLD, 10, Font.BOLD); //pageEventHandler.HeaderLeft = "Group"; //pageEventHandler.HeaderRight = "1"; var filePath = System.IO.Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, "Content\\Fonts", "times.ttf"); BaseFont baseFont = BaseFont.CreateFont("C:\\Windows\\Fonts\\times.ttf", BaseFont.IDENTITY_H, true); var fontBold = new Font(baseFont, 11, Font.BOLD, BaseColor.BLACK); Font defaultFont = new Font(baseFont, 14, Font.NORMAL, BaseColor.BLACK); document.Open(); //Add header //var myCompany = new Chunk("VPDD CTY TNHH TM VC TRUNG THÀNH", defaultFont); //document.Add(myCompany); //document.Add(new Phrase("\n")); //var myCompanyAddress = new Chunk("Đ/C: SỐ 17 NGÁCH 43 NGÕ 64 NG.LƯƠNG BẰNG - ĐỐNG ĐA - HN", defaultFont); //document.Add(myCompanyAddress); //document.Add(new Phrase("\n")); //var myCompanyContact = new Chunk("SĐT: 04.3514.9969 FAX: 04.3573.9119", defaultFont); //document.Add(myCompanyContact); //document.Add(new Paragraph("\r\n")); //var myTitle = new Paragraph("DANH SÁCH ĐƠN HÀNG CẦN GIAO", new Font(baseFont, 22, Font.BOLD, BaseColor.BLACK)); //myTitle.Alignment = Element.ALIGN_CENTER; //document.Add(myTitle); //document.Add(new Paragraph("\r\n")); //From - To Rectangle pageSize = document.PageSize; //Report date //var dateReport = new Chunk(" NGÀY: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm"), defaultFont); //document.Add(dateReport); //document.Add(new Paragraph("\r\n")); //Add rows var no = 1; var model = GetDeliveryPackage(reportFilter); foreach (var item in model) { var line1 = new Chunk(string.Format("KHÁCH HÀNG: {0} ĐT: {1}", item.CustomerName, item.CustomerPhone), defaultFont); document.Add(line1); document.Add(new Phrase("\n")); var line2 = new Chunk(string.Format("NƠI ĐẾN: {0}", item.CustomerAddress), defaultFont); document.Add(line2); document.Add(new Phrase("\n")); var products = ""; foreach (var product in item.ProductReportModels) { products += string.Format("Mẫu {0}, SL {1}; ", product.CategoryName, product.Amount); } var line3 = new Chunk(products, defaultFont); document.Add(line3); document.Add(new Phrase("\n")); var line4 = new Chunk(string.Format("Số tiền thu hộ: {0} (Bằng chữ: {1})", String.Format("{0:0,0}", item.Total), NumberToWords.ChangeCurrencyToWords(item.Total)), defaultFont); document.Add(line4); document.Add(new Phrase("\n")); var line5 = new Chunk(string.Format("Khách hàng đến lấy: {0} Chuyển hàng: {1}", item.PaymentType == (int)PaymentTypes.InOffice ? "X" : "", item.PaymentType == (int)PaymentTypes.InShippingPlace ? "X" : ""), defaultFont); document.Add(line5); document.Add(new Phrase("\n")); var line6 = new Chunk(string.Format("Nhà xe: {0} ĐT: {1}", item.ShippingServiceName, item.ShippingServicePhone), defaultFont); document.Add(line6); document.Add(new Phrase("\n")); var line7 = new Chunk(string.Format("Đ/c nhà xe: {0} Giờ xe chạy: {1}", item.ShippingAddress, (item.StartAt.HasValue ? item.StartAt.Value.ToString("dd/MM/yyyy HH:mm") : "")), defaultFont); document.Add(line7); document.Add(new Phrase("\n")); DottedLineSeparator separator = new DottedLineSeparator(); //separator.s(59500f / 523f); Chunk linebreak = new Chunk(separator); document.Add(linebreak); document.Add(new Paragraph("\r\n")); no++; } document.Close(); return(pdfData); }
public MemoryStream DownloadOrderReporting(List <Order> orders, string from, string to, int[] offices, int[] products) { var pdfData = new MemoryStream(); var document = new Document(PageSize.A4, 35, 35, 25, 50); var pdfWriter = PdfWriter.GetInstance(document, pdfData); pdfWriter.ViewerPreferences = PdfWriter.PageLayoutOneColumn; // Our custom Header and Footer is done using Event Handler var pageEventHandler = new TwoColumnHeaderFooter(); pdfWriter.PageEvent = pageEventHandler; // Define the page header //pageEventHandler.Title = title; //pageEventHandler.HeaderFont = FontFactory.GetFont(BaseFont.COURIER_BOLD, 10, Font.BOLD); //pageEventHandler.HeaderLeft = "Group"; //pageEventHandler.HeaderRight = "1"; var filePath = System.IO.Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, "Content\\Fonts", "times.ttf"); BaseFont baseFont = BaseFont.CreateFont("C:\\Windows\\Fonts\\times.ttf", BaseFont.IDENTITY_H, true); var fontBold = new Font(baseFont, 11, Font.BOLD, BaseColor.BLACK); Font defaultFont = new Font(baseFont, 12, Font.NORMAL, BaseColor.BLACK); document.Open(); //Add header //var myCompany = new Chunk("VPDD CTY TNHH TM VC TRUNG THÀNH", defaultFont); //document.Add(myCompany); //document.Add(new Phrase("\n")); //var myCompanyAddress = new Chunk("Đ/C: SỐ 17 NGÁCH 43 NGÕ 64 NG.LƯƠNG BẰNG - ĐỐNG ĐA - HN", defaultFont); //document.Add(myCompanyAddress); //document.Add(new Phrase("\n")); //var myCompanyContact = new Chunk("SĐT: 04.3514.9969 FAX: 04.3573.9119", defaultFont); //document.Add(myCompanyContact); //document.Add(new Paragraph("\r\n")); //var myTitle = new Paragraph("DANH SÁCH ĐƠN HÀNG CẦN GIAO", new Font(baseFont, 22, Font.BOLD, BaseColor.BLACK)); //myTitle.Alignment = Element.ALIGN_CENTER; //document.Add(myTitle); document.Add(new Paragraph("\r\n")); //From - To Rectangle pageSize = document.PageSize; var headerTable = new PdfPTable(2) { WidthPercentage = 100 }; headerTable.DefaultCell.VerticalAlignment = Element.ALIGN_MIDDLE; headerTable.SetWidths(new Single[] { 1, 1 }); if (!string.IsNullOrEmpty(from)) { var headerLeftCell = new PdfPCell(new Phrase(0, "TỪ NGÀY: " + from, defaultFont)) { BorderWidth = 0 }; headerTable.AddCell(headerLeftCell); } if (!string.IsNullOrEmpty(to)) { var headerRightCell = new PdfPCell(new Phrase(8, "ĐẾN NGÀY: " + to, defaultFont)) { HorizontalAlignment = Element.ALIGN_RIGHT, PaddingRight = 5, BorderWidth = 0, }; headerTable.AddCell(headerRightCell); } document.Add(headerTable); //Report date if (offices.Count() > 1) { var officeNames = ""; var officeEntities = _myOfficeRepository.GetAll().Where(p => products.Contains(p.MyOfficeId)).ToList(); foreach (var item in officeEntities) { officeNames += item.OfficeName + " ;"; } var officeReport = new Chunk(" CHI NHÁNH: " + officeNames, defaultFont); document.Add(officeReport); } if (products.Count() > 1) { var productNames = ""; var productEntities = _productRepository.GetAll().Where(p => products.Contains(p.ProductId)).ToList(); foreach (var item in productEntities) { productNames += item.ProductName + " ;"; } var productReport = new Chunk(" SẢN PHẨM: " + productNames, defaultFont); document.Add(productReport); } document.Add(new Paragraph("\r\n")); //Add columns var tableColumn = new PdfPTable(6) { WidthPercentage = 100 }; var colWidthPercentages = new Single[] { 7, 9, 31, 23, 15, 15 }; tableColumn.DefaultCell.VerticalAlignment = Element.ALIGN_MIDDLE; tableColumn.SetWidths(colWidthPercentages); tableColumn.AddCell(new PdfPCell(new Phrase("STT", new Font(baseFont, 12, Font.BOLD, BaseColor.BLACK))) { BorderWidth = 2f, Padding = 3, HorizontalAlignment = Element.ALIGN_CENTER }); tableColumn.AddCell(new PdfPCell(new Phrase("ID", new Font(baseFont, 12, Font.BOLD, BaseColor.BLACK))) { BorderWidth = 2f, Padding = 3, HorizontalAlignment = Element.ALIGN_CENTER }); tableColumn.AddCell(new PdfPCell(new Phrase("KHÁCH HÀNG", new Font(baseFont, 12, Font.BOLD, BaseColor.BLACK))) { BorderWidth = 2f, Padding = 3, HorizontalAlignment = Element.ALIGN_CENTER }); tableColumn.AddCell(new PdfPCell(new Phrase("CHI NHÁNH", new Font(baseFont, 12, Font.BOLD, BaseColor.BLACK))) { BorderWidth = 2f, Padding = 3, HorizontalAlignment = Element.ALIGN_CENTER }); tableColumn.AddCell(new PdfPCell(new Phrase("NGÀY TẠO", new Font(baseFont, 12, Font.BOLD, BaseColor.BLACK))) { BorderWidth = 2f, Padding = 3, HorizontalAlignment = Element.ALIGN_CENTER }); tableColumn.AddCell(new PdfPCell(new Phrase("THÀNH TIÊN", new Font(baseFont, 12, Font.BOLD, BaseColor.BLACK))) { BorderWidth = 2f, Padding = 3, HorizontalAlignment = Element.ALIGN_CENTER }); document.Add(tableColumn); //Add rows var no = 1; foreach (var item in orders) { var tableRow = new PdfPTable(6) { WidthPercentage = 100 }; tableRow.DefaultCell.VerticalAlignment = Element.ALIGN_MIDDLE; tableRow.SetWidths(colWidthPercentages); tableRow.AddCell(new PdfPCell(new Phrase(no.ToString(), defaultFont))); tableRow.AddCell(new PdfPCell(new Phrase((item.OrderId + 1000).ToString(), defaultFont))); tableRow.AddCell(new PdfPCell(new Phrase(item.Customer.CustomerName, defaultFont))); tableRow.AddCell(new PdfPCell(new Phrase(item.MyOffice.OfficeName, defaultFont))); tableRow.AddCell(new PdfPCell(new Phrase(item.CreateDate.ToString("dd/MM/yyyy"), defaultFont))); tableRow.AddCell(new PdfPCell(new Phrase(String.Format("{0:0,0}", item.TotalCost), defaultFont))); document.Add(tableRow); no++; } document.Close(); return(pdfData); }