public ActionResult OrderDetails(int id) { Session["OrderNo"] = id; bool isLogin = false; if (Session["isLogin"] != null) { isLogin = (bool)Session["isLogin"]; } if (!isLogin) { Session["isLogin"] = false; return(RedirectToAction("Login", "Home")); } UserDetails userDetails = new UserDetails(); userDetails = ApiUtility.GetUserDetailsByOrderId(id); List <OrderDetails> orderDetailsList = new List <OrderDetails>(); orderDetailsList = ApiUtility.GetOrderDetailsByOrderId(id); OrderPriceVM orderPrice = new OrderPriceVM(); orderPrice = ApiUtility.GetOrderPriceCalculationByOrderId(id); Session["CustomerDetails"] = userDetails; Session["OrderProductDetailsList"] = orderDetailsList; Session["OrderPriceCalculation"] = orderPrice; Session["CustomerDetails"] = userDetails; return(View()); }
private void CreatePdf() { int orderId = Convert.ToInt32(Session["OrderNo"]); UserDetails userDetails = new UserDetails(); userDetails = ApiUtility.GetUserDetailsByOrderId(orderId); List <OrderDetails> orderDetailsList = new List <OrderDetails>(); orderDetailsList = ApiUtility.GetOrderDetailsByOrderId(orderId); OrderPriceVM orderPrice = new OrderPriceVM(); orderPrice = ApiUtility.GetOrderPriceCalculationByOrderId(orderId); iTextSharp.text.Document pdfDoc = new iTextSharp.text.Document(PageSize.A4, 25, 25, 25, 15); PdfWriter pdfWriter = PdfWriter.GetInstance(pdfDoc, Response.OutputStream); pdfDoc.Open(); Image image = Image.GetInstance(Server.MapPath("~/Content/template-content/img/logo/lex-diary-logo.jpg")); image.ScaleAbsolute(80, 55); image.Alignment = 2; pdfDoc.Add(image); Chunk address = new Chunk("123/2 Middle Paikpara, Mirpur -1, Dhaka-1216", FontFactory.GetFont("Arial", 8, Font.NORMAL, BaseColor.BLACK)); Paragraph addressPara = new Paragraph(); addressPara.Add(address); addressPara.Alignment = 2; pdfDoc.Add(addressPara); Chunk printDate = new Chunk("Date: " + DateTime.Today.ToShortDateString(), FontFactory.GetFont("Arial", 8, Font.NORMAL, BaseColor.BLACK)); Paragraph para = new Paragraph(); para.Add(printDate); para.Alignment = 0; pdfDoc.Add(para); var line = new Paragraph(new Chunk(new iTextSharp.text.pdf.draw.LineSeparator(0.0F, 100.0F, BaseColor.BLACK, Element.ALIGN_LEFT, 1))); //pdfDoc.Add(line); PdfPTable table = new PdfPTable(1); PdfPCell cell = new PdfPCell(); Paragraph titlePara = new Paragraph(); titlePara.Alignment = 1; Chunk chunkTitle = new Chunk("Invoice", FontFactory.GetFont("Arial", 14, Font.BOLD, BaseColor.BLACK)); titlePara.Add(chunkTitle); pdfDoc.Add(titlePara); Paragraph customerInfoPara = new Paragraph(); customerInfoPara.Alignment = 0; Chunk chunk = new Chunk("\n" + "Order#: " + orderId + "\n" + "Customer Name: " + userDetails.userName + "\n" + "Address: " + userDetails.address + "\n" + "Phone: " + userDetails.userNumber + "\n" + "Contact Person Name: " + userDetails.cpName + "\n" + "Contact Person Number: " + userDetails.cpNumber + "\n"); chunk.Font = FontFactory.GetFont("Arial", 10, Font.NORMAL, BaseColor.BLACK); customerInfoPara.Add(chunk); pdfDoc.Add(customerInfoPara); Font normalFont = new Font(); normalFont.Size = 10; //Table table = new PdfPTable(8); table.WidthPercentage = 100; table.HorizontalAlignment = 0; table.SpacingBefore = 20f; table.SpacingAfter = 20f; int[] columnSize = new[] { 1, 4, 2, 2, 2, 3, 3, 3 }; table.SetWidths(columnSize); table.DefaultCell.Phrase = new Phrase() { Font = normalFont }; //Cell cell = new PdfPCell(); //Chunk taleTitleChunk = new Chunk("Product List\n\n"); Font font = new Font(); font.Size = 10; //taleTitleChunk.Font = font; // cell.AddElement(taleTitleChunk); //cell.Colspan = 7; // cell.HorizontalAlignment = 1; //cell.VerticalAlignment = 1; //table.AddCell(cell); cell = new PdfPCell(); Chunk thChunk = new Chunk("SL"); thChunk.Font = font; cell.AddElement(thChunk); cell.PaddingBottom = 10; cell.PaddingLeft = 3; table.AddCell(cell); cell = new PdfPCell(); thChunk = new Chunk("Product Name"); thChunk.Font = font; cell.AddElement(thChunk); cell.PaddingBottom = 10; cell.PaddingLeft = 3; table.AddCell(cell); cell = new PdfPCell(); thChunk = new Chunk("Quantity"); thChunk.Font = font; cell.AddElement(thChunk); cell.PaddingBottom = 10; cell.PaddingLeft = 3; table.AddCell(cell); cell = new PdfPCell(); thChunk = new Chunk("Colour"); thChunk.Font = font; cell.AddElement(thChunk); cell.PaddingBottom = 10; cell.PaddingLeft = 3; table.AddCell(cell); cell = new PdfPCell(); Chunk dueChunk = new Chunk("Size", new Font() { Color = BaseColor.RED }); dueChunk.Font = font; cell.AddElement(dueChunk); table.AddCell(cell); cell = new PdfPCell(); thChunk = new Chunk("Unit Price"); thChunk.Font = font; cell.HorizontalAlignment = Element.ALIGN_RIGHT; cell.AddElement(thChunk); cell.PaddingBottom = 10; cell.PaddingLeft = 3; table.AddCell(cell); cell = new PdfPCell(); thChunk = new Chunk("Discount Percentage"); thChunk.Font = font; cell.AddElement(thChunk); table.AddCell(cell); cell = new PdfPCell(); thChunk = new Chunk("Net Price"); thChunk.Font = font; cell.HorizontalAlignment = Element.ALIGN_RIGHT; cell.AddElement(thChunk); cell.PaddingBottom = 10; cell.PaddingLeft = 3; table.AddCell(cell); int serialNo = 1; Chunk text = new Chunk("Product List\n\n"); Font fontSize = new Font(); fontSize.Size = 9; foreach (var orderDetails in orderDetailsList) { var color = ""; if (orderDetails.colors == "NULL") { orderDetails.colors = ""; } else { List <string> colorName = new List <string>(orderDetails.colors.Split(':')); color = colorName[0]; } if (orderDetails.sizes == "NULL") { orderDetails.sizes = ""; } else { } cell = new PdfPCell(); text = new Chunk(serialNo++.ToString()); text.Font = fontSize; cell.AddElement(text); cell.HorizontalAlignment = 0; cell.VerticalAlignment = 1; cell.PaddingBottom = 10; cell.PaddingLeft = 3; table.AddCell(cell); cell = new PdfPCell(); text = new Chunk(orderDetails.productName); text.Font = fontSize; cell.AddElement(text); cell.HorizontalAlignment = 0; cell.VerticalAlignment = 1; cell.PaddingBottom = 10; cell.PaddingLeft = 3; table.AddCell(cell); cell = new PdfPCell(); text = new Chunk(orderDetails.quantity); text.Font = fontSize; cell.AddElement(text); cell.HorizontalAlignment = 0; cell.VerticalAlignment = 1; cell.PaddingBottom = 10; cell.PaddingLeft = 3; table.AddCell(cell); cell = new PdfPCell(); text = new Chunk(color); text.Font = fontSize; cell.AddElement(text); cell.HorizontalAlignment = 0; cell.VerticalAlignment = 1; cell.PaddingBottom = 10; cell.PaddingLeft = 3; table.AddCell(cell); cell = new PdfPCell(); text = new Chunk(orderDetails.sizes); text.Font = fontSize; cell.AddElement(text); cell.HorizontalAlignment = 0; cell.VerticalAlignment = 1; cell.PaddingBottom = 10; cell.PaddingLeft = 3; table.AddCell(cell); var productPrice = String.Format(new CultureInfo("en-IN", false), "{0:n}", Convert.ToDouble(orderDetails.productPrice)); cell = new PdfPCell(); text = new Chunk(productPrice + " BDT\n"); text.Font = fontSize; cell.AddElement(text); cell.HorizontalAlignment = Element.ALIGN_RIGHT; cell.VerticalAlignment = 1; cell.PaddingBottom = 10; cell.PaddingLeft = 3; table.AddCell(cell); //var date = (new DateTime(1970, 1, 1)).AddMilliseconds(double.Parse(rqst.startServiceTime.ToString())); var discountPrice = String.Format(new CultureInfo("en-IN", false), "{0:n}", Convert.ToDouble(orderDetails.discountPrice)); cell = new PdfPCell(); text = new Chunk(orderDetails.discountPercentage + "%"); text.Font = fontSize; cell.AddElement(text); cell.HorizontalAlignment = Element.ALIGN_RIGHT; cell.VerticalAlignment = 1; cell.PaddingLeft = 3; table.AddCell(cell); cell = new PdfPCell(); dueChunk = new Chunk(discountPrice + " BDT", new Font() { Color = BaseColor.BLACK, Size = 10 }); cell.HorizontalAlignment = 1; cell.VerticalAlignment = 1; cell.AddElement(dueChunk); table.AddCell(cell); } pdfDoc.Add(table); //Paragraph totalPricePara = new Paragraph(); //totalPricePara.Alignment = 2; //Chunk chunk1 = new Chunk("Subtotal:"+"\t"+"2500"+ "BDT"+"\n"+"Delivery Charge:"+"\t"+"25 BDT"+"\n"+"Total: "+"\t"+"2550 BDT"); //chunk1.Font = FontFactory.GetFont("Arial", 11, Font.NORMAL, BaseColor.BLACK); //totalPricePara.Add(chunk1); //pdfDoc.Add(totalPricePara); Paragraph subTotalPara = new Paragraph(); Chunk glue = new Chunk(new VerticalPositionMark()); Phrase ph1 = new Phrase(); //ph1.Add(new Chunk(Environment.NewLine)); string title1 = " Total"; string subTotal = String.Format(new CultureInfo("en-IN", false), "{0:n}", Convert.ToDouble(orderPrice.subTotal)); Paragraph main = new Paragraph(); ph1.Add(new Chunk(title1, FontFactory.GetFont("Arial", 10, Font.NORMAL, BaseColor.BLACK))); // Here I add projectname as a chunk into Phrase. ph1.Add(glue); // Here I add special chunk to the same phrase. ph1.Add(new Chunk(subTotal + " BDT", FontFactory.GetFont("Arial", 10, Font.NORMAL, BaseColor.BLACK))); // Here I add date as a chunk into same phrase. main.Add(ph1); subTotalPara.Add(main); pdfDoc.Add(subTotalPara); Paragraph deliveryChargePara = new Paragraph(); Chunk glue1 = new Chunk(new VerticalPositionMark()); glue1.Font = FontFactory.GetFont("Arial", 11, Font.NORMAL, BaseColor.BLACK); Phrase ph2 = new Phrase(); // ph2.Add(new Chunk(Environment.NewLine)); string title2 = " Delivery Charge"; string deliveryCharge = String.Format(new CultureInfo("en-IN", false), "{0:n}", Convert.ToDouble(orderPrice.deliveryCharge)); Paragraph main1 = new Paragraph(); ph2.Add(new Chunk(title2, FontFactory.GetFont("Arial", 10, Font.NORMAL, BaseColor.BLACK))); // Here I add projectname as a chunk into Phrase. ph2.Add(glue1); // Here I add special chunk to the same phrase. ph2.Add(new Chunk(deliveryCharge + " BDT", FontFactory.GetFont("Arial", 10, Font.NORMAL, BaseColor.BLACK))); // Here I add date as a chunk into same phrase. main1.Add(ph2); deliveryChargePara.Add(main1); pdfDoc.Add(deliveryChargePara); line = new Paragraph(new Chunk(new iTextSharp.text.pdf.draw.LineSeparator(0F, 35F, BaseColor.BLACK, Element.ALIGN_RIGHT, 1))); pdfDoc.Add(line); Paragraph totalPricePara = new Paragraph(); Chunk glue3 = new Chunk(new VerticalPositionMark()); Phrase ph3 = new Phrase(); //ph3.Add(new Chunk(Environment.NewLine)); string title3 = " Total"; string totalPrice = String.Format(new CultureInfo("en-IN", false), "{0:n}", Convert.ToDouble(orderPrice.total)); Paragraph main3 = new Paragraph(); ph3.Add(new Chunk(title3, FontFactory.GetFont("Arial", 10, Font.NORMAL, BaseColor.BLACK))); // Here I add projectname as a chunk into Phrase. ph3.Add(glue3); // Here I add special chunk to the same phrase. ph3.Add(new Chunk(totalPrice + " BDT", FontFactory.GetFont("Arial", 10, Font.NORMAL, BaseColor.BLACK))); // Here I add date as a chunk into same phrase. main3.Add(ph3); totalPricePara.Add(main3); totalPricePara.SpacingAfter = 80f; pdfDoc.Add(totalPricePara); //line = new Paragraph(new Chunk(new iTextSharp.text.pdf.draw.LineSeparator(0.0F, 100.0F, BaseColor.BLACK, Element.ALIGN_LEFT, 3))); //pdfDoc.Add(line); Paragraph signatureDashLine = new Paragraph(); Chunk glue4 = new Chunk(new VerticalPositionMark()); Phrase ph4 = new Phrase(); //ph4.Add(new Chunk(Environment.NewLine)); string title4 = "___________________"; string receiver = "____________________"; Paragraph main4 = new Paragraph(); ph4.Add(new Chunk(title4)); // Here I add projectname as a chunk into Phrase. ph4.Add(glue4); // Here I add special chunk to the same phrase. ph4.Add(new Chunk(receiver)); // Here I add date as a chunk into same phrase. main4.Add(ph4); signatureDashLine.Add(main4); pdfDoc.Add(signatureDashLine); Paragraph signature = new Paragraph(); Chunk glue5 = new Chunk(new VerticalPositionMark()); Phrase ph5 = new Phrase(); //ph5.Add(new Chunk(Environment.NewLine)); string title5 = "For Lex Mall"; string receiverSignature = "Receiver Signature"; Paragraph main5 = new Paragraph(); ph5.Add(new Chunk(title5, FontFactory.GetFont("Arial", 10, Font.NORMAL, BaseColor.BLACK))); // Here I add projectname as a chunk into Phrase. ph5.Add(glue5); // Here I add special chunk to the same phrase. ph5.Add(new Chunk(receiverSignature, FontFactory.GetFont("Arial", 10, Font.NORMAL, BaseColor.BLACK))); // Here I add date as a chunk into same phrase. main5.Add(ph5); signature.Add(main5); pdfDoc.Add(signature); pdfWriter.CloseStream = false; pdfDoc.Close(); Response.Buffer = true; Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "attachment;" + orderId + "_Order_History.pdf"); Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.Write(pdfDoc); Response.End(); }