Example #1
0
        private void WriteQuotationLines(PdfPTable pdfTable, QoutationModel qoutationModel)
        {
            foreach (QouteLineModel qouteLineModel in qoutationModel.Items)
            {
                AddTableCell(pdfTable, qouteLineModel.Code, 10, Font.NORMAL, Rectangle.NO_BORDER);
                AddTableCell(pdfTable, qouteLineModel.Description, 10, Font.NORMAL, Rectangle.NO_BORDER);
                AddTableCell(pdfTable, qouteLineModel.Quantity, 10, Font.NORMAL, Rectangle.NO_BORDER);
                AddTableCell(pdfTable, qouteLineModel.Price, 10, Font.NORMAL, Rectangle.NO_BORDER);
                AddTableCell(pdfTable, qouteLineModel.TotalExclVat == decimal.MinValue ? "" : qouteLineModel.TotalExclVat.ToString(Constants.MONEY_FORMAT), 10, Font.NORMAL, Rectangle.NO_BORDER);
            }

            WriteLine(pdfTable, 5);

            AddTableCell(pdfTable, "".ToUpper(), 10, Font.NORMAL, Rectangle.NO_BORDER, 3);
            AddTableCell(pdfTable, "Total Excl", 10, Font.NORMAL, Rectangle.NO_BORDER);
            AddTableCell(pdfTable, string.Format("R {0}", qoutationModel.TotalExcl.ToString(Constants.MONEY_FORMAT)), 10, Font.NORMAL, Rectangle.NO_BORDER);

            AddTableCell(pdfTable, "".ToUpper(), 10, Font.NORMAL, Rectangle.NO_BORDER, 3);
            AddTableCell(pdfTable, "Vat @ 14%", 10, Font.NORMAL, Rectangle.NO_BORDER);
            AddTableCell(pdfTable, string.Format("R {0}", qoutationModel.TotalVat.ToString(Constants.MONEY_FORMAT)), 10, Font.NORMAL, Rectangle.NO_BORDER);

            AddTableCell(pdfTable, "".ToUpper(), 10, Font.NORMAL, Rectangle.NO_BORDER, 3);
            AddTableCell(pdfTable, "Total Incl", 10, Font.NORMAL, Rectangle.NO_BORDER);
            AddTableCell(pdfTable, string.Format("R {0}", qoutationModel.TotalIncl.ToString(Constants.MONEY_FORMAT)), 10, Font.NORMAL, Rectangle.NO_BORDER);
        }
Example #2
0
        private static QoutationModel ConvertToQuotation(XElement quotationXmlElement)
        {
            QoutationModel qoutationModel = new QoutationModel
            {
                Description = quotationXmlElement.Element("Description").Value,
                FileName    = quotationXmlElement.Element("FileName").Value,
                QouteDate   = quotationXmlElement.Element("QouteDate").Value.StringToDateTime(),
                Items       = (from item in quotationXmlElement.Descendants("Item")
                               select CreateQouteLineModel(item)).ToList()
            };

            qoutationModel.TotalExcl = qoutationModel.Items.Where(q => q.TotalExclVat != decimal.MinValue).Sum(item => item.TotalExclVat);
            qoutationModel.TotalVat  = VatCalculator.GetVatAmount(qoutationModel.TotalExcl);
            qoutationModel.TotalIncl = VatCalculator.GetAmountInclVat(qoutationModel.TotalExcl);

            return(qoutationModel);
        }
Example #3
0
        public void Write(MemoryStream pdfOutputStream, QoutationModel qoutationModel)
        {
            using (Document pdfDocument = new Document(iTextSharp.text.PageSize.A4))
            {
                try
                {
                    iTextSharp.text.pdf.PdfWriter pdfWriter = iTextSharp.text.pdf.PdfWriter.GetInstance(pdfDocument, pdfOutputStream);

                    pdfDocument.Open();

                    WritePdfContent(pdfDocument, qoutationModel);

                    pdfWriter.Flush();
                    pdfWriter.CloseStream = true;
                }
                finally
                {
                    pdfDocument.Close();
                }
            }
        }
Example #4
0
        private void WriteQuotationSummary(PdfPTable quotationTable, QoutationModel qoutationModel)
        {
            Font     cellFont = FontFactory.GetFont("Arial", 18, Font.BOLD, BaseColor.BLACK);
            PdfPCell pdfPCell = new PdfPCell(new Phrase(qoutationModel.Description.ToUpper(), cellFont));

            pdfPCell.PaddingLeft         = 10f;
            pdfPCell.HorizontalAlignment = Rectangle.ALIGN_CENTER;

            pdfPCell.Colspan = 5;
            pdfPCell.Border  = Rectangle.NO_BORDER;
            quotationTable.AddCell(pdfPCell);

            Font     pdfPQouteDateCellFont = FontFactory.GetFont("Arial", 11, Font.NORMAL, BaseColor.BLACK);
            PdfPCell pdfPQouteDateCell     = new PdfPCell(new Phrase(string.Format("Date: {0}", DateTime.Now.ToString(Constants.DATE_FORMAT).ToUpper()), pdfPQouteDateCellFont));

            pdfPQouteDateCell.PaddingLeft         = 10f;
            pdfPQouteDateCell.PaddingBottom       = 30f;
            pdfPQouteDateCell.HorizontalAlignment = Rectangle.ALIGN_RIGHT;

            pdfPQouteDateCell.Colspan = 5;
            pdfPQouteDateCell.Border  = Rectangle.NO_BORDER;
            quotationTable.AddCell(pdfPQouteDateCell);
        }
Example #5
0
        private void WritePdfContent(Document pdfDocument, QoutationModel qoutationModel)
        {
            PdfPTable companyHeadingTable = new PdfPTable(1);
            PdfPTable quotationTable      = new PdfPTable(5);
            PdfPTable summaryBoxTable     = new PdfPTable(3);
            PdfPTable notesTable          = new PdfPTable(1);

            List <PdfPTable> documentTables = new List <PdfPTable>();

            companyHeadingTable.WidthPercentage = 100f;
            documentTables.Add(companyHeadingTable);

            WriteCompanyHeading(companyHeadingTable);
            WriteLine(companyHeadingTable, 1);

            quotationTable.SetWidths(new int[] { 1, 3, 1, 1, 1 });
            quotationTable.WidthPercentage = 100f;
            documentTables.Add(quotationTable);

            WriteQuotation(quotationTable, qoutationModel);

            summaryBoxTable.SetWidths(new int[] { 2, 1, 1 });
            summaryBoxTable.WidthPercentage = 100f;
            documentTables.Add(summaryBoxTable);
            WriteSummaryBoxTable(summaryBoxTable);

            notesTable.WidthPercentage = 100f;
            documentTables.Add(notesTable);
            WriteQoutationNotesTable(notesTable);

            foreach (PdfPTable pdfPTable in documentTables)
            {
                pdfDocument.Add(pdfPTable);
                pdfPTable.FlushContent();
            }
        }
Example #6
0
        public void Write(string fileName, QoutationModel qoutationModel)
        {
            using (FileStream fileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None))
            {
                using (Document pdfDocument = new Document(iTextSharp.text.PageSize.A4))
                {
                    try
                    {
                        iTextSharp.text.pdf.PdfWriter pdfWriter = iTextSharp.text.pdf.PdfWriter.GetInstance(pdfDocument, fileStream);

                        pdfDocument.Open();
                        WritePdfContent(pdfDocument, qoutationModel);


                        pdfWriter.Flush();
                        pdfWriter.CloseStream = true;
                    }
                    finally
                    {
                        pdfDocument.Close();
                    }
                }
            }
        }
Example #7
0
 private void WriteQuotation(PdfPTable quotationTable, QoutationModel qoutationModel)
 {
     WriteQuotationSummary(quotationTable, qoutationModel);
     WriteQuotationTableHeaders(quotationTable);
     WriteQuotationLines(quotationTable, qoutationModel);
 }