public static MemoryStream GetPayslipPDF(string payMonthRef, string badge, string langCode, string ConnectionString) { using (var con = new SqlConnection(ConnectionString)) { con.Open(); using (var command = new SqlCommand("exec [dbo].[SP_GetPaySlip_by_Badge_Month] @badge, @payMonth, @Language_Code ", con)) { command.Parameters.AddWithValue("@badge", badge); command.Parameters.AddWithValue("@payMonth", payMonthRef); command.Parameters.AddWithValue("@Language_Code", langCode); var model = new PayslipModelForPDF() { LangCode = langCode, BadgeNumber = badge, PayMonthSelected = payMonthRef, ConnectionString = ConnectionString }; using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { model.Name = reader["Name"].ToString(); model.Position = reader["Position"].ToString(); model.CostCenter = reader["EmpOCC"].ToString(); model.WorkLocation = reader["EmpWorkLoc"].ToString(); model.BasicSalary = reader["EmpBasicSal"].ToString(); model.otRate = reader["EmpOTRate"].ToString(); model.ytdVac = reader["EmpYTDVac"].ToString(); model.hFund = reader["EmpHFund"].ToString(); model.EmpCategory = reader["EmpEL"].ToString(); model.ContractType = reader["ContrType"].ToString(); model.Currency = reader["EmpCurr"].ToString(); model.NetSalary = reader["EmpSalTotal"].ToString(); model.GrossSalary = reader["EmpCredit"].ToString(); model.salaryDeduction = reader["EmpDebit"].ToString(); model.CompanyName = reader["BussUnit"].ToString(); model.Department = reader["EmpDept"].ToString(); model.MonthName = reader["Month_Name"].ToString(); } } return(_GetPayslipPDF(model)); } } }
private static MemoryStream _GetPayslipPDF(PayslipModelForPDF model) { bool grossRowAdded = false; using (var memoryStream = new MemoryStream()) { string ARIALUNI_TFF = Path.Combine(Path.Combine(Environment.GetEnvironmentVariable("windir"), "Fonts"), "ARIALUNI.TTF"); BaseFont bf = BaseFont.CreateFont(ARIALUNI_TFF, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); string Courier_TFF = Path.Combine(Path.Combine(System.Environment.GetEnvironmentVariable("windir"), "Fonts"), "COUR.TTF"); BaseFont bf3 = BaseFont.CreateFont(Courier_TFF, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); Font cf9 = new Font(bf3, 9, Font.NORMAL); Font big = new Font(bf, 18, Font.NORMAL); Font f9 = new Font(bf, 9, Font.NORMAL); Font f9b = new Font(bf, 9, Font.BOLD); Font f20b = new Font(bf, 20, Font.BOLD); Font f12 = new Font(bf, 12, Font.NORMAL); Font i = new Font(bf, 9, Font.ITALIC); Font u = new Font(bf, 9, Font.UNDERLINE); Font fb = new Font(bf, 9, Font.BOLD); PdfPCell emptyCell = new PdfPCell(); emptyCell.Border = Rectangle.NO_BORDER; Document document = new Document(PageSize.A4, 20, 20, 10, 10); PdfWriter writer = PdfWriter.GetInstance(document, memoryStream); document.Open(); // PdfPTable CompanyTable = new PdfPTable(1); CompanyTable.WidthPercentage = 100f; PdfPCell c1 = new PdfPCell(); c1.VerticalAlignment = Element.ALIGN_MIDDLE; if (model.CompanyName.Contains("ERSAI")) { c1.AddElement(new Paragraph("ERSAI Caspian Contractor, LLC", big)); } if (model.CompanyName.Contains("SAKAZ")) { c1.AddElement(new Paragraph("SAIPEM Kazakhstan, LLC", big)); } if (model.CompanyName.Contains("PROTC")) { c1.AddElement(new Paragraph("Proffecianal Training Center, LLC", big)); } c1.Border = PdfPCell.BOTTOM_BORDER; c1.BorderWidthBottom = 1f; c1.FixedHeight = 37f; CompanyTable.AddCell(c1); document.Add(CompanyTable); // PdfPTable secondLine = new PdfPTable(3); secondLine.WidthPercentage = 100f; float[] widths = new float[] { 2f, 2f, 2f }; secondLine.SetWidths(widths); PdfPCell r2c1 = new PdfPCell(); r2c1.Border = Rectangle.NO_BORDER; if (model.LangCode == "1") { r2c1.AddElement(new Paragraph(model.MonthName, f12)); } else if (model.LangCode == "3") { r2c1.AddElement(new Paragraph(model.MonthName, f12)); } else { r2c1.AddElement(new Paragraph(model.MonthName, f12)); } PdfPCell r2c3 = new PdfPCell(); r2c3.Border = Rectangle.NO_BORDER; if (model.LangCode == "1") { r2c3.AddElement(new Paragraph("КОНФИДЕНЦИАЛЬНО", f12)); } else if (model.LangCode == "3") { r2c3.AddElement(new Paragraph("КОНФИДЕНЦИАЛЬНО", f12)); } else { r2c3.AddElement(new Paragraph("PRIVATE/CONFIDENTIAL", f12)); } r2c3.HorizontalAlignment = Element.ALIGN_RIGHT; secondLine.AddCell(r2c1); secondLine.AddCell(emptyCell); secondLine.AddCell(r2c3); secondLine.SpacingAfter = 30f; document.Add(secondLine); //description table PdfPTable descTable = new PdfPTable(11); //float[] widths2 = new float[] { 6f, 1f, 3f, 1f, 8f, 1f, 8f, 1f, 13f, 1f, 6f }; float[] widths2 = new float[] { 6f, 1f, 3f, 1f, 8f, 1f, 8f, 1f, 3f, 1f, 6f }; descTable.SetWidths(widths2); descTable.TotalWidth = PageSize.A4.Width - 40; descTable.LockedWidth = true; PdfPCell rr1c1; if (model.LangCode == "1") { rr1c1 = new PdfPCell(new Phrase("Таб. Номері", cf9)); } else if (model.LangCode == "3") { rr1c1 = new PdfPCell(new Phrase("Таб. номер", cf9)); } else { rr1c1 = new PdfPCell(new Phrase("Badge No.", cf9)); } rr1c1.Border = Rectangle.NO_BORDER; descTable.AddCell(rr1c1); PdfPCell rr1c2 = new PdfPCell(new Phrase(":", cf9)); rr1c2.Border = Rectangle.NO_BORDER; descTable.AddCell(rr1c2); PdfPCell rr1c3 = new PdfPCell(new Phrase(model.BadgeNumber, cf9)); rr1c3.Colspan = 2; rr1c3.Border = Rectangle.NO_BORDER; descTable.AddCell(rr1c3); descTable.AddCell(emptyCell); descTable.AddCell(emptyCell); PdfPCell rr1c7; if (model.LangCode == "1") { rr1c7 = new PdfPCell(new Phrase("Шығын орталығы", cf9)); } else if (model.LangCode == "3") { rr1c7 = new PdfPCell(new Phrase("Центр расходов", cf9)); } else { rr1c7 = new PdfPCell(new Phrase("Cost Center", cf9)); } rr1c7.Border = Rectangle.NO_BORDER; descTable.AddCell(rr1c7); PdfPCell rr1c8 = new PdfPCell(new Phrase(":", cf9)); rr1c8.Border = Rectangle.NO_BORDER; descTable.AddCell(rr1c8); PdfPCell rr1c9 = new PdfPCell(new Phrase(model.CostCenter, cf9)); rr1c9.Border = Rectangle.NO_BORDER; rr1c9.Colspan = 3; descTable.AddCell(rr1c9); //second row!!! PdfPCell rr2c1; if (model.LangCode == "1") { rr2c1 = new PdfPCell(new Phrase("Қызметкердің аты-жөні", cf9)); } else if (model.LangCode == "3") { rr2c1 = new PdfPCell(new Phrase("Ф.И.О работника", cf9)); } else { rr2c1 = new PdfPCell(new Phrase("Employee Name", cf9)); } rr2c1.Border = Rectangle.NO_BORDER; descTable.AddCell(rr2c1); PdfPCell rr2c2 = new PdfPCell(new Phrase(":", cf9)); rr2c2.Border = Rectangle.NO_BORDER; descTable.AddCell(rr2c2); PdfPCell rr2c3 = new PdfPCell(new Phrase(model.Name, cf9)); rr2c3.Colspan = 3; rr2c3.Border = Rectangle.NO_BORDER; descTable.AddCell(rr2c3); descTable.AddCell(emptyCell); PdfPCell rr2c7; if (model.LangCode == "1") { rr2c7 = new PdfPCell(new Phrase("Бөлімі", cf9)); } else if (model.LangCode == "3") { rr2c7 = new PdfPCell(new Phrase("Департамент", cf9)); } else { rr2c7 = new PdfPCell(new Phrase("Department", cf9)); } rr2c7.Border = Rectangle.NO_BORDER; descTable.AddCell(rr2c7); PdfPCell rr2c8 = new PdfPCell(new Phrase(":", cf9)); rr2c8.Border = Rectangle.NO_BORDER; descTable.AddCell(rr2c8); PdfPCell rr2c9 = new PdfPCell(new Phrase(model.Department, cf9)); rr2c9.Border = Rectangle.NO_BORDER; rr2c9.Colspan = 3; descTable.AddCell(rr2c9); //third row!!! PdfPCell rr3c1; if (model.LangCode == "1") { rr3c1 = new PdfPCell(new Phrase("Лауазымы", cf9)); } else if (model.LangCode == "3") { rr3c1 = new PdfPCell(new Phrase("Должность", cf9)); } else { rr3c1 = new PdfPCell(new Phrase("Position", cf9)); } rr3c1.Border = Rectangle.NO_BORDER; descTable.AddCell(rr3c1); PdfPCell rr3c2 = new PdfPCell(new Phrase(":", cf9)); rr3c2.Border = Rectangle.NO_BORDER; descTable.AddCell(rr3c2); PdfPCell rr3c3 = new PdfPCell(new Phrase(model.Position, cf9)); rr3c3.Colspan = 3; rr3c3.Border = Rectangle.NO_BORDER; descTable.AddCell(rr3c3); descTable.AddCell(emptyCell); PdfPCell rr3c7; if (model.LangCode == "1") { rr3c7 = new PdfPCell(new Phrase("Жұмыс орыны", cf9)); } else if (model.LangCode == "3") { rr3c7 = new PdfPCell(new Phrase("Место работы", cf9)); } else { rr3c7 = new PdfPCell(new Phrase("Work Location", cf9)); } rr3c7.Border = Rectangle.NO_BORDER; descTable.AddCell(rr3c7); PdfPCell rr3c8 = new PdfPCell(new Phrase(":", cf9)); rr3c8.Border = Rectangle.NO_BORDER; descTable.AddCell(rr3c8); PdfPCell rr3c9 = new PdfPCell(new Phrase(model.WorkLocation, cf9)); rr3c9.Border = Rectangle.NO_BORDER; rr3c9.Colspan = 3; descTable.AddCell(rr3c9); //fourth row!!! PdfPCell rr4c1; /* * if (langCode == "1") * { * rr4c1 = new PdfPCell(new Phrase("Айлық жалақысы", cf9)); * } * else if (langCode == "3") * { * rr4c1 = new PdfPCell(new Phrase("Ежемесячная заработная плата", cf9)); * } * else * { * rr4c1 = new PdfPCell(new Phrase("Monthly Basic Salary", cf9)); * } */ rr4c1 = new PdfPCell(new Phrase(model.ContractType, cf9)); rr4c1.Colspan = 3; rr4c1.Border = Rectangle.NO_BORDER; descTable.AddCell(rr4c1); PdfPCell rr4c2 = new PdfPCell(new Phrase(":", cf9)); rr4c2.Border = Rectangle.NO_BORDER; descTable.AddCell(rr4c2); PdfPCell rr4c3 = new PdfPCell(new Phrase(model.Currency + " " + model.BasicSalary, cf9)); rr4c3.Colspan = 2; rr4c3.Border = Rectangle.NO_BORDER; descTable.AddCell(rr4c3); if (model.EmpCategory == "E") // exspats ONLY!! { PdfPCell rr4c4; if (model.LangCode == "1") { rr4c4 = new PdfPCell(new Phrase("Демалыс соммасы", cf9)); } else if (model.LangCode == "3") { rr4c4 = new PdfPCell(new Phrase("Сумма отпуска", cf9)); } else { rr4c4 = new PdfPCell(new Phrase("Y-T-D Vacation Amount", cf9)); } rr4c4.Colspan = 3; rr4c4.Border = Rectangle.NO_BORDER; descTable.AddCell(rr4c4); PdfPCell rr4c5 = new PdfPCell(new Phrase(":", cf9)); rr4c5.Border = Rectangle.NO_BORDER; descTable.AddCell(rr4c5); PdfPCell rr4c6 = new PdfPCell(new Phrase(model.Currency + " " + model.ytdVac, cf9)); rr4c6.Border = Rectangle.NO_BORDER; descTable.AddCell(rr4c6); } else { PdfPCell rr4c4; rr4c4 = new PdfPCell(new Phrase("", cf9)); rr4c4.Colspan = 3; rr4c4.Border = Rectangle.NO_BORDER; descTable.AddCell(rr4c4); PdfPCell rr4c5 = new PdfPCell(new Phrase("", cf9)); rr4c5.Border = Rectangle.NO_BORDER; descTable.AddCell(rr4c5); PdfPCell rr4c6 = new PdfPCell(new Phrase("", cf9)); rr4c6.Border = Rectangle.NO_BORDER; descTable.AddCell(rr4c6); } //fifth row!!! if (model.EmpCategory == "E") // exspats ONLY!! { PdfPCell rr5c1; if (model.LangCode == "1") { rr5c1 = new PdfPCell(new Phrase("Үстеме жұмыс үшін төлем мөлшері", cf9)); } else if (model.LangCode == "3") { rr5c1 = new PdfPCell(new Phrase("Ставка за сверхурочную работу", cf9)); } else { rr5c1 = new PdfPCell(new Phrase("Overtime Rate", cf9)); } rr5c1.Colspan = 3; rr5c1.Border = Rectangle.NO_BORDER; descTable.AddCell(rr5c1); PdfPCell rr5c2 = new PdfPCell(new Phrase(":", cf9)); rr5c2.Border = Rectangle.NO_BORDER; descTable.AddCell(rr5c2); PdfPCell rr5c3 = new PdfPCell(new Phrase(model.Currency + " " + model.otRate, cf9)); rr5c3.Colspan = 2; rr5c3.Border = Rectangle.NO_BORDER; descTable.AddCell(rr5c3); PdfPCell rr5c4; if (model.LangCode == "1") { rr5c4 = new PdfPCell(new Phrase("Демалыс күндері", cf9)); } else if (model.LangCode == "3") { rr5c4 = new PdfPCell(new Phrase("Дни отпуска", cf9)); } else { rr5c4 = new PdfPCell(new Phrase("Y-T-D Vacation Days", cf9)); } rr5c4.Colspan = 3; rr5c4.Border = Rectangle.NO_BORDER; descTable.AddCell(rr5c4); PdfPCell rr5c5 = new PdfPCell(new Phrase(":", cf9)); rr5c5.Border = Rectangle.NO_BORDER; descTable.AddCell(rr5c5); PdfPCell rr5c6 = new PdfPCell(new Phrase(model.hFund, cf9)); rr5c6.Border = Rectangle.NO_BORDER; descTable.AddCell(rr5c6); } descTable.SpacingAfter = 30f; document.Add(descTable); //PAY SLIP CENTER PdfPTable payslipTitle = new PdfPTable(1); payslipTitle.HorizontalAlignment = Element.ALIGN_CENTER; PdfPCell payslipCell; if (model.LangCode == "1") { payslipCell = new PdfPCell(new Phrase("Есеп айырысу парағы", f20b)); } else if (model.LangCode == "3") { payslipCell = new PdfPCell(new Phrase("Расчетный лист", f20b)); } else { payslipCell = new PdfPCell(new Phrase("PAYSLIP", f20b)); } payslipCell.HorizontalAlignment = Element.ALIGN_CENTER; payslipCell.Border = Rectangle.NO_BORDER; payslipTitle.AddCell(payslipCell); payslipTitle.SpacingAfter = 20f; document.Add(payslipTitle); //CREDITS TABLE //header PdfPTable CreditTable = new PdfPTable(6); float[] widths3 = new float[] { 3f, 11f, 11f, 6f, 6f, 7f }; CreditTable.TotalWidth = PageSize.A4.Width - 40; CreditTable.LockedWidth = true; CreditTable.SetWidths(widths3); PdfPCell row1c1 = new PdfPCell(new Phrase("No.", cf9)); row1c1.Border = Rectangle.TOP_BORDER | Rectangle.LEFT_BORDER | Rectangle.BOTTOM_BORDER; CreditTable.AddCell(row1c1); PdfPCell row1c2; if (model.LangCode == "1") { row1c2 = new PdfPCell(new Phrase("Жалақы сипаттамасы", cf9)); } else if (model.LangCode == "3") { row1c2 = new PdfPCell(new Phrase("Описание", cf9)); } else { row1c2 = new PdfPCell(new Phrase("Pay Description", cf9)); } row1c2.Border = Rectangle.TOP_BORDER | Rectangle.BOTTOM_BORDER; CreditTable.AddCell(row1c2); PdfPCell row1c3; if (model.LangCode == "1") { row1c3 = new PdfPCell(new Phrase("Ескертулер", cf9)); } else if (model.LangCode == "3") { row1c3 = new PdfPCell(new Phrase("Помечание", cf9)); } else { row1c3 = new PdfPCell(new Phrase("Pay Remarks", cf9)); } row1c3.Border = Rectangle.TOP_BORDER | Rectangle.BOTTOM_BORDER; CreditTable.AddCell(row1c3); PdfPCell row1c4; if (model.LangCode == "1") { row1c4 = new PdfPCell(new Phrase("Сағат ", cf9)); } else if (model.LangCode == "3") { row1c4 = new PdfPCell(new Phrase("Часы", cf9)); } else { row1c4 = new PdfPCell(new Phrase("Unit", cf9)); } row1c4.HorizontalAlignment = PdfPCell.ALIGN_RIGHT; row1c4.Border = Rectangle.TOP_BORDER | Rectangle.BOTTOM_BORDER; CreditTable.AddCell(row1c4); PdfPCell row1c5; if (model.LangCode == "1") { row1c5 = new PdfPCell(new Phrase("Төлеу м-лшері", cf9)); } else if (model.LangCode == "3") { row1c5 = new PdfPCell(new Phrase("Ставка", cf9)); } else { row1c5 = new PdfPCell(new Phrase("Rate", cf9)); } row1c5.HorizontalAlignment = PdfPCell.ALIGN_RIGHT; row1c5.Border = Rectangle.TOP_BORDER | Rectangle.BOTTOM_BORDER; CreditTable.AddCell(row1c5); PdfPCell row1c6; if (model.LangCode == "1") { row1c6 = new PdfPCell(new Phrase("Жиыны", cf9)); } else if (model.LangCode == "3") { row1c6 = new PdfPCell(new Phrase("Итого", cf9)); } else { row1c6 = new PdfPCell(new Phrase("Amount", cf9)); } row1c6.HorizontalAlignment = PdfPCell.ALIGN_RIGHT; row1c6.Border = Rectangle.TOP_BORDER | Rectangle.BOTTOM_BORDER | Rectangle.RIGHT_BORDER; CreditTable.AddCell(row1c6); using (var con = new SqlConnection(model.ConnectionString)) { con.Open(); using (SqlCommand command = new SqlCommand("exec dbo.SP_GetPaySlip_Details @payMonthSelected, @badge, @Language_Code", con)) { command.Parameters.AddWithValue("@payMonthSelected", model.PayMonthSelected); command.Parameters.AddWithValue("@badge", model.BadgeNumber); command.Parameters.AddWithValue("@Language_Code", model.LangCode); using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { //loop through credist and debits. NESTED QUERY! //adding row here var PayCode = reader["PayCode"].ToString(); var PayDesc = reader["PayDesc"].ToString(); var PayRemarks = reader["PayRemarks"].ToString(); var PayUnit = reader["PayUnit"].ToString(); var PayRate = reader["PayRate"].ToString(); var PaymentAmt = reader["PayAmount"].ToString(); var payType = reader["PayType"].ToString(); //dynamic row credit if (payType == "2") //credit { PdfPCell dynamicCell1 = new PdfPCell(new Phrase(PayCode, cf9)); dynamicCell1.Border = Rectangle.NO_BORDER; CreditTable.AddCell(dynamicCell1); PdfPCell dynamicCell2 = new PdfPCell(new Phrase(PayDesc, cf9)); dynamicCell2.Border = Rectangle.NO_BORDER; CreditTable.AddCell(dynamicCell2); PdfPCell dynamicCell3 = new PdfPCell(new Phrase(PayRemarks, cf9)); dynamicCell3.Border = Rectangle.NO_BORDER; CreditTable.AddCell(dynamicCell3); PdfPCell dynamicCell4 = new PdfPCell(new Phrase(PayUnit, cf9)); dynamicCell4.HorizontalAlignment = PdfPCell.ALIGN_RIGHT; dynamicCell4.Border = Rectangle.NO_BORDER; CreditTable.AddCell(dynamicCell4); PdfPCell dynamicCell5 = new PdfPCell(new Phrase(PayRate, cf9)); dynamicCell5.HorizontalAlignment = PdfPCell.ALIGN_RIGHT; dynamicCell5.Border = Rectangle.NO_BORDER; CreditTable.AddCell(dynamicCell5); PdfPCell dynamicCell6 = new PdfPCell(new Phrase(PaymentAmt, cf9)); dynamicCell6.HorizontalAlignment = PdfPCell.ALIGN_RIGHT; dynamicCell6.Border = Rectangle.NO_BORDER; CreditTable.AddCell(dynamicCell6); } if (payType == "3") //debit { //gross row <----- add total credit gross row first, then debits if (grossRowAdded == false) { PdfPCell rowGc1; if (model.LangCode == "1") { rowGc1 = new PdfPCell(new Phrase("Салыққа дейін жалпы жалақы сомасы", cf9)); } else if (model.LangCode == "3") { rowGc1 = new PdfPCell(new Phrase("Сумма до обложения налога", cf9)); } else { rowGc1 = new PdfPCell(new Phrase("Gross Salary", cf9)); } rowGc1.Colspan = 5; rowGc1.Border = Rectangle.BOTTOM_BORDER; CreditTable.AddCell(rowGc1); PdfPCell rowGc2 = new PdfPCell(new Phrase(model.GrossSalary, cf9)); rowGc2.HorizontalAlignment = PdfPCell.ALIGN_RIGHT; rowGc2.Border = Rectangle.BOTTOM_BORDER; CreditTable.AddCell(rowGc2); //empty row (spacing) after gross salary PdfPCell rowEmpty = new PdfPCell(new Phrase(" ")); rowEmpty.Border = Rectangle.NO_BORDER; rowEmpty.Colspan = 6; CreditTable.AddCell(rowEmpty); // grossRowAdded = true; } //dynamic debit rows: PdfPCell debitCell1 = new PdfPCell(new Phrase(PayCode, cf9)); debitCell1.Border = Rectangle.NO_BORDER; CreditTable.AddCell(debitCell1); PdfPCell debitCell2 = new PdfPCell(new Phrase(PayDesc, cf9)); debitCell2.Border = Rectangle.NO_BORDER; CreditTable.AddCell(debitCell2); PdfPCell debitCell3 = new PdfPCell(new Phrase(PayRemarks, cf9)); debitCell3.Border = Rectangle.NO_BORDER; CreditTable.AddCell(debitCell3); PdfPCell debitCell4 = new PdfPCell(new Phrase(PayUnit, cf9)); debitCell4.HorizontalAlignment = PdfPCell.ALIGN_RIGHT; debitCell4.Border = Rectangle.NO_BORDER; CreditTable.AddCell(debitCell4); PdfPCell debitCell5 = new PdfPCell(new Phrase(PayRate, cf9)); debitCell5.HorizontalAlignment = PdfPCell.ALIGN_RIGHT; debitCell5.Border = Rectangle.NO_BORDER; CreditTable.AddCell(debitCell5); PdfPCell debitCell6 = new PdfPCell(new Phrase(PaymentAmt, cf9)); debitCell6.HorizontalAlignment = PdfPCell.ALIGN_RIGHT; debitCell6.Border = Rectangle.NO_BORDER; CreditTable.AddCell(debitCell6); } } } } } if (grossRowAdded == false) { //gross row <----- add gross row first, then debits IF THERE WERE NO DEBITS: PdfPCell rowGc1; if (model.LangCode == "1") { rowGc1 = new PdfPCell(new Phrase("Салыққа дейін жалпы жалақы сомасы", cf9)); } else if (model.LangCode == "3") { rowGc1 = new PdfPCell(new Phrase("Сумма до обложения налога", cf9)); } else { rowGc1 = new PdfPCell(new Phrase("Gross Salary", cf9)); } rowGc1.Colspan = 5; rowGc1.Border = Rectangle.BOTTOM_BORDER; CreditTable.AddCell(rowGc1); PdfPCell rowGc2 = new PdfPCell(new Phrase(model.GrossSalary, cf9)); rowGc2.HorizontalAlignment = PdfPCell.ALIGN_RIGHT; rowGc2.Border = Rectangle.BOTTOM_BORDER; CreditTable.AddCell(rowGc2); //empty row (spacing) after gross salary PdfPCell rowEmpty = new PdfPCell(new Phrase(" ")); rowEmpty.Border = Rectangle.NO_BORDER; rowEmpty.Colspan = 6; CreditTable.AddCell(rowEmpty); // } if (model.salaryDeduction != "") { //deduction amount row if deduction is not 0 PdfPCell rowGc1; if (model.LangCode == "1") { rowGc1 = new PdfPCell(new Phrase("Жалпы аударымдар", cf9)); } else if (model.LangCode == "3") { rowGc1 = new PdfPCell(new Phrase("Общие удержания", cf9)); } else { rowGc1 = new PdfPCell(new Phrase("Deductions", cf9)); } rowGc1.Colspan = 5; rowGc1.Border = Rectangle.BOTTOM_BORDER; CreditTable.AddCell(rowGc1); PdfPCell rowGc2 = new PdfPCell(new Phrase(model.salaryDeduction, cf9)); rowGc2.HorizontalAlignment = PdfPCell.ALIGN_RIGHT; rowGc2.Border = Rectangle.BOTTOM_BORDER; CreditTable.AddCell(rowGc2); } document.Add(CreditTable); //footer table PdfPTable TableNet = new PdfPTable(3); TableNet.SetWidths(new float[] { 10f, 50f, 20f }); TableNet.TotalWidth = document.PageSize.Width - document.LeftMargin - document.RightMargin; PdfPCell lastC1; if (model.LangCode == "1") { lastC1 = new PdfPCell(new Phrase("Төлеуге жататын сома", cf9)); } else if (model.LangCode == "3") { lastC1 = new PdfPCell(new Phrase("Сумма к выдаче", cf9)); } else { lastC1 = new PdfPCell(new Phrase("Net Payment", cf9)); } lastC1.Colspan = 2; lastC1.Border = Rectangle.BOTTOM_BORDER; TableNet.AddCell(lastC1); PdfPCell lastC3 = new PdfPCell(new Phrase(model.Currency + " " + model.NetSalary, f9b)); lastC3.HorizontalAlignment = Element.ALIGN_RIGHT; lastC3.Border = Rectangle.BOTTOM_BORDER; TableNet.AddCell(lastC3); TableNet.WriteSelectedRows(0, -1, document.LeftMargin, 100, writer.DirectContent); document.Close(); return(memoryStream); } }