Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void GenerateDocuments()
- {
- if (_haveTax)
- {
- ActGenerator ag = new ActGenerator(this);
- InvoiceGenerator ig = new InvoiceGenerator(this);
- _act = ag.Generate();
- _invoice = ig.Generate();
- }
- else
- {
- NoticeGenerator ng = new NoticeGenerator(this);
- _notice = ng.Generate();
- }
- }
- using System;
- using System.Globalization;
- using System.IO;
- using System.Linq;
- using System.Windows.Forms;
- using iTextSharp.text;
- using iTextSharp.text.pdf;
- namespace PASSSS
- {
- class InvoiceGenerator : IDocumentGenerator
- {
- private readonly DocumentHandler _handler;
- // Fonts
- private static BaseFont _baseTahoma;
- private static Font _tahomaBold;
- private static Font _tahoma;
- private static Font _tahoma14Bold;
- private static Font _tahomaSmall;
- // Files
- private iTextSharp.text.Document _invoiceDoc;
- private PdfWriter _invoiceWriter;
- // Overall sum row
- private PdfPRow _overallSumRow;
- public InvoiceGenerator(DocumentHandler handler)
- {
- _handler = handler;
- PrepareFonts();
- }
- private static void PrepareFonts()
- {
- _baseTahoma = BaseFont.CreateFont("c:/windows/fonts/tahoma.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
- _tahomaBold = new Font(_baseTahoma, 8, Font.BOLD);
- _tahoma = new Font(_baseTahoma, 8, Font.NORMAL);
- _tahoma14Bold = new Font(_baseTahoma, 14, Font.BOLD);
- _tahomaSmall = new Font(_baseTahoma, 6, Font.NORMAL);
- }
- public FileInfo Generate()
- {
- DateTime dateOfDoc = _handler.DocData.DocumentDate;
- string invoiceFileName = Settings.Default.PDFPath + "\\" + "Бонус_№_" + _handler.DocData.DocumentNum + "_СФ_от_" + dateOfDoc.ToString("dd.MM.yyyy") + ".pdf";
- try
- {
- _invoiceDoc = new iTextSharp.text.Document(PageSize.A4.Rotate(), 15, 15, 15, 15);
- _invoiceWriter = PdfWriter.GetInstance(_invoiceDoc, new FileStream(invoiceFileName, FileMode.Create));
- }
- catch (IOException)
- {
- MessageBox.Show(Resources.DocumentIsOpenedError, Resources.ErrorHeaderForDialogs, MessageBoxButtons.OK, MessageBoxIcon.Error);
- return new FileInfo(invoiceFileName);
- }
- // Name
- string header = "Счёт-фактура № " + _handler.DocData.DocumentNum + " от " + dateOfDoc.ToString("dd.MM.yyyy");
- string correctionText;
- if (_handler.DocData.CorrectionNum != 0)
- correctionText = "Исправление № " + _handler.DocData.CorrectionNum + " от " + _handler.DocData.CorrectionDate.ToString("dd.MM.yyyy");
- else
- correctionText = "Исправление № ------ от \"----\"--------------";
- HeaderFooter hfEvent = new HeaderFooter();
- hfEvent.SetHeader(header);
- _invoiceWriter.PageEvent = hfEvent;
- _invoiceDoc.Open();
- AddInvoiceAnnex();
- // Title
- Paragraph title = new Paragraph();
- title.Font = _tahoma14Bold;
- title.Alignment = Element.ALIGN_CENTER;
- title.Add(header);
- title.Add(Chunk.NEWLINE);
- title.Add(correctionText);
- _invoiceDoc.Add(title);
- // Globus Juridical Address
- AddGlobusJurSection();
- // Globus hypermarkt
- AddRetoureMarkt();
- // Supplier retour address
- AddSuppRetoureAddress();
- // Applied to payment-account documents...
- Paragraph applToDocsPar = new Paragraph("К платежно-расчетному документу № _______ от ________________", _tahoma);
- applToDocsPar.FirstLineIndent = 2;
- _invoiceDoc.Add(applToDocsPar);
- // Supplier juridical address
- AddSuppJurAddress();
- // Currency : RUB
- Paragraph currencyPar = new Paragraph("Валюта: наименование, код: Российский рубль, 643 ", _tahoma);
- currencyPar.IndentationLeft = 2;
- _invoiceDoc.Add(currencyPar);
- // Debitor and Kreditor numbers
- AddKreDebNumbers();
- // Some empty lines
- _invoiceDoc.Add(Chunk.NEWLINE);
- // Retoure positions table
- AddPositionsTable();
- if (_invoiceWriter.GetVerticalPosition(true) < 100)
- {
- _invoiceDoc.NewPage();
- AddInvoiceEmptyTableHeader();
- _invoiceDoc.Add(Chunk.NEWLINE);
- }
- // Footer
- AddInvoiceSignatures();
- // Little note
- _invoiceDoc.Add(new Phrase("ПРИМЕЧАНИЕ. Первый экземпляр - покупателю, второй экземпляр - продавцу", _tahoma));
- // Save document
- _invoiceDoc.Close();
- return new FileInfo(invoiceFileName);
- }
- private void AddInvoiceAnnex()
- {
- PdfPTable annexTable = new PdfPTable(3);
- float[] widthsAnnexTable = new[] { 1.0f, 2.0f, 1.0f };
- annexTable.SetWidths(widthsAnnexTable);
- annexTable.HorizontalAlignment = 0;
- annexTable.WidthPercentage = 100;
- annexTable.DefaultCell.Border = 0;
- Image barcode = Image.GetInstance(_handler.Barcode.FullName);
- Paragraph annex = new Paragraph();
- annex.Leading = 10;
- annex.Add(new Phrase("Приложение №1", _tahoma));
- annex.Add(Chunk.NEWLINE);
- annex.Add(new Phrase("к постановлению Правительства Российской Федерации ", _tahoma));
- annex.Add(Chunk.NEWLINE);
- annex.Add(new Phrase("от 26.12.2011 №1137", _tahoma));
- annex.IndentationLeft = 600;
- annexTable.AddCell(barcode);
- annexTable.AddCell("");
- annexTable.AddCell(annex);
- _invoiceDoc.Add(annexTable);
- }
- private void AddGlobusJurSection()
- {
- PdfPTable globJurAddTable = new PdfPTable(2);
- globJurAddTable.SpacingBefore = 5;
- float[] widthsGlobusJur = new[] { 0.5f, 2.5f };
- globJurAddTable.SetWidths(widthsGlobusJur);
- globJurAddTable.HorizontalAlignment = 0;
- PdfPCell globusNameTitleCell = VariousCells.GetCell("Продавец: ", Element.ALIGN_LEFT, Element.ALIGN_MIDDLE, _tahoma);
- PdfPCell globusNameCell = VariousCells.GetCell("ООО", Element.ALIGN_LEFT, Element.ALIGN_MIDDLE, _tahoma);
- PdfPCell globusAddressTitleCell = VariousCells.GetCell("Адрес: ", Element.ALIGN_LEFT, Element.ALIGN_MIDDLE, _tahoma);
- PdfPCell globusAddressCell = VariousCells.GetCell(_handler.GlobusJurAddress, Element.ALIGN_LEFT, Element.ALIGN_MIDDLE, _tahoma);
- PdfPCell globusInnKppTitleCell = VariousCells.GetCell("ИНН/КПП продавца: ", Element.ALIGN_LEFT, Element.ALIGN_MIDDLE, _tahoma);
- PdfPCell globusInnKppCell = VariousCells.GetCell(_handler.Inn + " / " + _handler.Kpp, Element.ALIGN_LEFT, Element.ALIGN_MIDDLE, _tahoma);
- globusNameTitleCell.Border = 0;
- globusNameCell.Border = 0;
- globusAddressTitleCell.Border = 0;
- globusAddressCell.Border = 0;
- globusInnKppTitleCell.Border = 0;
- globusInnKppCell.Border = 0;
- globJurAddTable.AddCell(globusNameTitleCell);
- globJurAddTable.AddCell(globusNameCell);
- globJurAddTable.AddCell(globusAddressTitleCell);
- globJurAddTable.AddCell(globusAddressCell);
- globJurAddTable.AddCell(globusInnKppTitleCell);
- globJurAddTable.AddCell(globusInnKppCell);
- _invoiceDoc.Add(globJurAddTable);
- }
- private void AddRetoureMarkt()
- {
- PdfPTable globRetTable = new PdfPTable(2);
- float[] widthsGlobusRet = new[] { 0.8f, 2.2f };
- globRetTable.SetWidths(widthsGlobusRet);
- globRetTable.HorizontalAlignment = 0;
- PdfPCell globusRetNameTitleCell = VariousCells.GetCell("Грузоотправитель и его адрес:", Element.ALIGN_LEFT, Element.ALIGN_MIDDLE, _tahoma);
- PdfPCell globusRetNameCell = VariousCells.GetCell(new string('-', 20), Element.ALIGN_LEFT, Element.ALIGN_MIDDLE, _tahoma);
- globusRetNameTitleCell.Border = 0;
- globusRetNameCell.Border = 0;
- globRetTable.AddCell(globusRetNameTitleCell);
- globRetTable.AddCell(globusRetNameCell);
- _invoiceDoc.Add(globRetTable);
- }
- private void AddSuppRetoureAddress()
- {
- PdfPTable suppRetTable = new PdfPTable(2);
- float[] widthsSuppRet = new[] { 0.8f, 2.2f };
- suppRetTable.SetWidths(widthsSuppRet);
- suppRetTable.HorizontalAlignment = 0;
- PdfPCell suppRetNameTitleCell = VariousCells.GetCell("Грузополучатель и его адрес:", Element.ALIGN_LEFT, Element.ALIGN_MIDDLE, _tahoma);
- PdfPCell suppRetNameCell = VariousCells.GetCell(new string('-', 20), Element.ALIGN_LEFT, Element.ALIGN_MIDDLE, _tahoma);
- suppRetNameTitleCell.Border = 0;
- suppRetNameCell.Border = 0;
- // Nested table
- suppRetTable.AddCell(suppRetNameTitleCell);
- suppRetTable.AddCell(suppRetNameCell);
- _invoiceDoc.Add(suppRetTable);
- }
- private void AddSuppJurAddress()
- {
- PdfPTable suppJurAddTable = new PdfPTable(2);
- suppJurAddTable.SpacingBefore = 10;
- float[] widthsSuppJur = new[] { 0.5f, 2.5f };
- suppJurAddTable.SetWidths(widthsSuppJur);
- suppJurAddTable.HorizontalAlignment = 0;
- PdfPCell suppNameTitleCell = VariousCells.GetCell("Покупатель: ", Element.ALIGN_LEFT, Element.ALIGN_MIDDLE, _tahoma);
- PdfPCell suppNameCell = VariousCells.GetCell(_handler.DocData.Bills.Select(bill => bill.SupplierName).FirstOrDefault(), Element.ALIGN_LEFT, Element.ALIGN_MIDDLE, _tahoma);
- PdfPCell suppAddressTitleCell = VariousCells.GetCell("Адрес: ", Element.ALIGN_LEFT, Element.ALIGN_MIDDLE, _tahoma);
- PdfPCell suppAddressCell = VariousCells.GetCell(_handler.DocData.Bills.Select(bill => bill.SupplierAddress).FirstOrDefault(), Element.ALIGN_LEFT, Element.ALIGN_MIDDLE, _tahoma);
- PdfPCell suppInnKppTitleCell = VariousCells.GetCell("ИНН/КПП покупателя: ", Element.ALIGN_LEFT, Element.ALIGN_MIDDLE, _tahoma);
- PdfPCell suppInnKppCell = VariousCells.GetCell(_handler.DocData.Bills.Select(bill => bill.INN + " / " + bill.KPP).FirstOrDefault(), Element.ALIGN_LEFT, Element.ALIGN_MIDDLE, _tahoma);
- suppNameTitleCell.Border = 0;
- suppNameCell.Border = 0;
- suppAddressTitleCell.Border = 0;
- suppAddressCell.Border = 0;
- suppInnKppTitleCell.Border = 0;
- suppInnKppCell.Border = 0;
- suppJurAddTable.AddCell(suppNameTitleCell);
- suppJurAddTable.AddCell(suppNameCell);
- suppJurAddTable.AddCell(suppAddressTitleCell);
- suppJurAddTable.AddCell(suppAddressCell);
- suppJurAddTable.AddCell(suppInnKppTitleCell);
- suppJurAddTable.AddCell(suppInnKppCell);
- _invoiceDoc.Add(suppJurAddTable);
- }
- private void AddKreDebNumbers()
- {
- Paragraph kredDebInfo = new Paragraph();
- kredDebInfo.IndentationLeft = 2;
- kredDebInfo.Leading = 10;
- kredDebInfo.Add(new Phrase("Номер кредитора: " + _handler.DocData.SupplierNum, _tahoma));
- kredDebInfo.Add(Chunk.NEWLINE);
- kredDebInfo.Add(new Phrase("Номер кредитора: " + _handler.DocData.Bills.Select(bill => bill.DebitorNum).FirstOrDefault(), _tahoma));
- _invoiceDoc.Add(kredDebInfo);
- }
- private void AddPositionsTable()
- {
- PdfPTable positionsTable = new PdfPTable(13);
- positionsTable.HeaderRows = 3;
- positionsTable.WidthPercentage = 100;
- float[] positTableWidth = new[] { 2.8f, 0.3f, 0.6f, 0.7f, 0.7f, 0.9f, 0.5f, 0.6f, 0.8f, 1.1f, 0.3f, 1.1f, 1.4f };
- positionsTable.SetWidths(positTableWidth);
- positionsTable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;
- positionsTable.DefaultCell.VerticalAlignment = Element.ALIGN_MIDDLE;
- // Positions table header
- positionsTable.AddCell(VariousCells.GetTableHeaderCell("Наименование товара (описание выполненых работ, оказанных услуг), имущественного права", 1, 2, _tahomaBold));
- positionsTable.AddCell(VariousCells.GetTableHeaderCell("Единица измерения", 2, 1, _tahomaBold));
- positionsTable.AddCell(VariousCells.GetTableHeaderCell("Количество (объем)", 1, 2, _tahomaBold));
- positionsTable.AddCell(VariousCells.GetTableHeaderCell("Цена (тариф) за единицу измерения", 1, 2, _tahomaBold));
- positionsTable.AddCell(VariousCells.GetTableHeaderCell("Стоимость товаров (работ,услуг) имуществен-ных прав без налога - всего", 1, 2, _tahomaBold));
- positionsTable.AddCell(VariousCells.GetTableHeaderCell("В том числе сумма акциза", 1, 2, _tahomaBold));
- positionsTable.AddCell(VariousCells.GetTableHeaderCell("Налого-вая ставка", 1, 2, _tahomaBold));
- positionsTable.AddCell(VariousCells.GetTableHeaderCell("Сумма налога, предъявляе-мая покупателю", 1, 2, _tahomaBold));
- positionsTable.AddCell(VariousCells.GetTableHeaderCell("Стоимость товаров (работ,услуг), имущественных прав с налогом - всего", 1, 2, _tahomaBold));
- positionsTable.AddCell(VariousCells.GetTableHeaderCell("Страна происхождения товара", 2, 1, _tahomaBold));
- positionsTable.AddCell(VariousCells.GetTableHeaderCell("Номер таможенной декларации", 1, 2, _tahomaBold));
- positionsTable.AddCell(VariousCells.GetTableHeaderCell("код", 1, 1, _tahomaBold));
- positionsTable.AddCell(VariousCells.GetTableHeaderCell("условное обозначение (национальное)", 1, 1, _tahomaBold));
- positionsTable.AddCell(VariousCells.GetTableHeaderCell("цифровой код", 1, 1, _tahomaBold));
- positionsTable.AddCell(VariousCells.GetTableHeaderCell("краткое наименование", 1, 1, _tahomaBold));
- // Numbers
- positionsTable.AddCell(VariousCells.GetCell("1", _tahomaBold));
- positionsTable.AddCell(VariousCells.GetCell("2", _tahomaBold));
- positionsTable.AddCell(VariousCells.GetCell("2а", _tahomaBold));
- positionsTable.AddCell(VariousCells.GetCell("3", _tahomaBold));
- positionsTable.AddCell(VariousCells.GetCell("4", _tahomaBold));
- positionsTable.AddCell(VariousCells.GetCell("5", _tahomaBold));
- positionsTable.AddCell(VariousCells.GetCell("6", _tahomaBold));
- positionsTable.AddCell(VariousCells.GetCell("7", _tahomaBold));
- positionsTable.AddCell(VariousCells.GetCell("8", _tahomaBold));
- positionsTable.AddCell(VariousCells.GetCell("9", _tahomaBold));
- positionsTable.AddCell(VariousCells.GetCell("10", _tahomaBold));
- positionsTable.AddCell(VariousCells.GetCell("10а", _tahomaBold));
- positionsTable.AddCell(VariousCells.GetCell("11", _tahomaBold));
- positionsTable.DefaultCell.Border = 0;
- foreach (Bonus bill in _handler.BonusList)
- {
- // Article info
- PdfPCell infoCell = VariousCells.GetCell(bill.Description, _tahoma);
- positionsTable.AddCell(infoCell);
- // code in OKEI (Russian National Classification of Units of Measurement)
- PdfPCell unitCodeCell = VariousCells.GetCell("---", _tahoma);
- positionsTable.AddCell(unitCodeCell);
- // Unit
- PdfPCell unitCell = VariousCells.GetCell("---", _tahoma);
- positionsTable.AddCell(unitCell);
- // Quantity
- PdfPCell quantCell = VariousCells.GetCell(bill.Quantity, "{0:#,##0.00}", _tahoma);
- positionsTable.AddCell(quantCell);
- // Price
- PdfPCell priceCell = VariousCells.GetCell(bill.Price, "{0:#,##0.00}", _tahoma);
- positionsTable.AddCell(priceCell);
- // Price * Quantity
- PdfPCell priceQuantCell = VariousCells.GetCell(bill.Sum, "{0:#,##0.00}", _tahoma);
- positionsTable.AddCell(priceQuantCell);
- // Excise
- PdfPCell dashesCell = VariousCells.GetCell("Без акциза", _tahoma);
- positionsTable.AddCell(dashesCell);
- // TaxPercent
- PdfPCell taxCell = VariousCells.GetCell(bill.TaxPercent.ToString(CultureInfo.InvariantCulture) + "%", _tahoma);
- positionsTable.AddCell(taxCell);
- // Price * tax / 100
- PdfPCell artTaxCell = VariousCells.GetCell(bill.Tax, "{0:#,##0.00}", _tahoma);
- positionsTable.AddCell(artTaxCell);
- // Overall cost
- PdfPCell overallCell = VariousCells.GetCell(bill.PositionSum, "{0:#,##0.00}", _tahoma);
- positionsTable.AddCell(overallCell);
- // Code of land of production
- PdfPCell landCodeCell = VariousCells.GetCell("---", _tahoma);
- positionsTable.AddCell(landCodeCell);
- // Land of production
- PdfPCell landCell = VariousCells.GetCell("---", _tahoma);
- positionsTable.AddCell(landCell);
- // Declaration
- PdfPCell declCell = VariousCells.GetCell("---", _tahoma);
- positionsTable.AddCell(declCell);
- }
- PdfPCell noBorderCell = new PdfPCell();
- noBorderCell.Border = Rectangle.NO_BORDER;
- PdfPCell emptyCells = new PdfPCell();
- PdfPCell overAllText = VariousCells.GetCell("Всего к оплате", Element.ALIGN_LEFT, Element.ALIGN_MIDDLE, 7, 1, _tahomaBold);
- overAllText.Border = Rectangle.BOTTOM_BORDER | Rectangle.LEFT_BORDER;
- positionsTable.AddCell(overAllText);
- positionsTable.AddCell(emptyCells);
- PdfPCell overallTaxCell = VariousCells.GetCell(_handler.Tax, "{0:#,##0.00}", _tahoma);
- positionsTable.AddCell(overallTaxCell);
- PdfPCell overallPriceCell = VariousCells.GetCell(_handler.OverallSum, "{0:#,##0.00}", _tahomaBold);
- positionsTable.AddCell(overallPriceCell);
- positionsTable.CompleteRow();
- _overallSumRow = positionsTable.GetRow(positionsTable.Size - 1);
- _invoiceDoc.Add(positionsTable);
- }
- private void AddInvoiceEmptyTableHeader()
- {
- PdfPTable emptyTable = new PdfPTable(13);
- emptyTable.HeaderRows = 3;
- emptyTable.SpacingBefore = 10;
- emptyTable.WidthPercentage = 100;
- float[] positTableWidth = new[] { 2.8f, 0.3f, 0.6f, 0.7f, 0.7f, 0.9f, 0.5f, 0.6f, 0.7f, 1.0f, 0.3f, 1.1f, 1.6f };
- emptyTable.SetWidths(positTableWidth);
- emptyTable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;
- emptyTable.DefaultCell.VerticalAlignment = Element.ALIGN_MIDDLE;
- // Positions table header
- emptyTable.AddCell(VariousCells.GetTableHeaderCell("Наименование товара (описание выполненых работ, оказанных услуг), имущественного права", 1, 2, _tahomaBold));
- emptyTable.AddCell(VariousCells.GetTableHeaderCell("Единица измерения", 2, 1, _tahomaBold));
- emptyTable.AddCell(VariousCells.GetTableHeaderCell("Количество (объем)", 1, 2, _tahomaBold));
- emptyTable.AddCell(VariousCells.GetTableHeaderCell("Цена (тариф) за единицу измерения", 1, 2, _tahomaBold));
- emptyTable.AddCell(VariousCells.GetTableHeaderCell("Стоимость товаров (работ,услуг) имуществен-ных прав без налога - всего", 1, 2, _tahomaBold));
- emptyTable.AddCell(VariousCells.GetTableHeaderCell("В том числе сумма акциза", 1, 2, _tahomaBold));
- emptyTable.AddCell(VariousCells.GetTableHeaderCell("Налого-вая ставка", 1, 2, _tahomaBold));
- emptyTable.AddCell(VariousCells.GetTableHeaderCell("Сумма налога, предъявляе-мая покупателю", 1, 2, _tahomaBold));
- emptyTable.AddCell(VariousCells.GetTableHeaderCell("Стоимость товаров (работ,услуг), имущественных прав с налогом - всего", 1, 2, _tahomaBold));
- emptyTable.AddCell(VariousCells.GetTableHeaderCell("Страна происхождения товара", 2, 1, _tahomaBold));
- emptyTable.AddCell(VariousCells.GetTableHeaderCell("Номер таможенной декларации", 1, 2, _tahomaBold));
- emptyTable.AddCell(VariousCells.GetTableHeaderCell("код", 1, 1, _tahomaBold));
- emptyTable.AddCell(VariousCells.GetTableHeaderCell("условное обозначение (национальное)", 1, 1, _tahomaBold));
- emptyTable.AddCell(VariousCells.GetTableHeaderCell("цифровой код", 1, 1, _tahomaBold));
- emptyTable.AddCell(VariousCells.GetTableHeaderCell("краткое наименование", 1, 1, _tahomaBold));
- // Numbers
- emptyTable.AddCell(VariousCells.GetCell("1", _tahomaBold));
- emptyTable.AddCell(VariousCells.GetCell("2", _tahomaBold));
- emptyTable.AddCell(VariousCells.GetCell("2а", _tahomaBold));
- emptyTable.AddCell(VariousCells.GetCell("3", _tahomaBold));
- emptyTable.AddCell(VariousCells.GetCell("4", _tahomaBold));
- emptyTable.AddCell(VariousCells.GetCell("5", _tahomaBold));
- emptyTable.AddCell(VariousCells.GetCell("6", _tahomaBold));
- emptyTable.AddCell(VariousCells.GetCell("7", _tahomaBold));
- emptyTable.AddCell(VariousCells.GetCell("8", _tahomaBold));
- emptyTable.AddCell(VariousCells.GetCell("9", _tahomaBold));
- emptyTable.AddCell(VariousCells.GetCell("10", _tahomaBold));
- emptyTable.AddCell(VariousCells.GetCell("10а", _tahomaBold));
- emptyTable.AddCell(VariousCells.GetCell("11", _tahomaBold));
- emptyTable.Rows.Add(_overallSumRow);
- _invoiceDoc.Add(emptyTable);
- }
- private void AddInvoiceSignatures()
- {
- PdfPTable footerTable = new PdfPTable(2);
- footerTable.SpacingBefore = 10;
- footerTable.WidthPercentage = 100;
- footerTable.DefaultCell.Border = 0;
- float[] footerTableWidth = new[] { 1.1f, 0.9f };
- footerTable.SetWidths(footerTableWidth);
- // Prepare duplicated cells
- PdfPCell signCell = VariousCells.GetCell("(подпись)", _tahoma);
- signCell.Border = Rectangle.NO_BORDER;
- PdfPCell fioCell = VariousCells.GetCell("(Ф.И.О.)", _tahoma);
- fioCell.Border = Rectangle.NO_BORDER;
- // General director
- PdfPTable genDirNestedTable = new PdfPTable(3);
- genDirNestedTable.DefaultCell.Border = Rectangle.NO_BORDER;
- float[] genDirNestedTableWidth = new[] { 1.2f, 0.6f, 1.2f };
- genDirNestedTable.SetWidths(genDirNestedTableWidth);
- PdfPCell genDirTitleCell = VariousCells.GetCell("Руководитель организации или иное уполномоченное лицо", Element.ALIGN_LEFT, Element.ALIGN_MIDDLE, _tahoma);
- genDirTitleCell.Border = Rectangle.NO_BORDER;
- genDirNestedTable.AddCell(genDirTitleCell);
- // Fields to fill
- genDirNestedTable.AddCell("____________");
- PdfPCell generalDirectorCell = VariousCells.GetCell(_handler.GeneralDirector, _tahoma);
- generalDirectorCell.Border = Rectangle.NO_BORDER;
- genDirNestedTable.AddCell(generalDirectorCell);
- // Empty cell
- genDirNestedTable.AddCell("");
- // under lines...
- genDirNestedTable.AddCell(signCell);
- genDirNestedTable.AddCell(fioCell);
- footerTable.AddCell(genDirNestedTable);
- // Accountant
- PdfPTable accountantNestedTable = new PdfPTable(3);
- accountantNestedTable.DefaultCell.Border = Rectangle.NO_BORDER;
- float[] accountNestedTableWidth = new[] { 1.1f, 0.8f, 1.1f };
- accountantNestedTable.SetWidths(accountNestedTableWidth);
- PdfPCell accountantTitleCell = VariousCells.GetCell("Главный бухгалтер или иное уполномоченное лицо", Element.ALIGN_LEFT, Element.ALIGN_MIDDLE, _tahoma);
- accountantTitleCell.Border = Rectangle.NO_BORDER;
- accountantNestedTable.AddCell(accountantTitleCell);
- // Fields to fill
- accountantNestedTable.AddCell("____________");
- PdfPCell accountantCell = VariousCells.GetCell(_handler.Accountant, _tahoma);
- accountantCell.Border = Rectangle.NO_BORDER;
- accountantNestedTable.AddCell(accountantCell);
- // Empty cell
- accountantNestedTable.AddCell("");
- // under lines...
- accountantNestedTable.AddCell(signCell);
- accountantNestedTable.AddCell(fioCell);
- footerTable.AddCell(accountantNestedTable);
- // Business owner
- PdfPTable busOwnerNestedTable = new PdfPTable(3);
- busOwnerNestedTable.DefaultCell.Border = Rectangle.NO_BORDER;
- float[] busOwnerNestedTableWidth = new[] { 1.2f, 0.6f, 1.2f };
- busOwnerNestedTable.SetWidths(busOwnerNestedTableWidth);
- PdfPCell busOwnerTitleCell = VariousCells.GetCell("Индивидуальный предприниматель", Element.ALIGN_LEFT, Element.ALIGN_MIDDLE, _tahoma);
- busOwnerTitleCell.Border = Rectangle.NO_BORDER;
- busOwnerNestedTable.AddCell(busOwnerTitleCell);
- // Fields to fill
- busOwnerNestedTable.AddCell("___________");
- busOwnerNestedTable.AddCell("________________________");
- // Empty cell
- busOwnerNestedTable.AddCell("");
- // under lines...
- busOwnerNestedTable.AddCell(signCell);
- busOwnerNestedTable.AddCell(fioCell);
- footerTable.AddCell(busOwnerNestedTable);
- // Certificate details
- PdfPCell certDetails = VariousCells.GetCell("(реквизиты свидетельства о государственной регистрации индивидуального предпринимателя)", _tahoma);
- certDetails.Border = Rectangle.NO_BORDER;
- footerTable.AddCell(certDetails);
- // Add to document
- _invoiceDoc.Add(footerTable);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement