private static void ReportBuilderPatronage(List <ListStatementPatRetainItem> stateList, int cropYear, DateTime certificateDate, string shid, string fromShid, string toShid, string logoUrl, System.IO.FileStream fs, string sigName, string sigTitle, string sigImagePath) { const string METHOD_NAME = "ReportBuilderPatronage: "; string SHID = ""; string equityCropYear = ""; string rptTitle = ""; string certificateDateStr = certificateDate.ToString(HEADER_DATE_FORMAT); string qualifiedStr = ""; float pdfYPos = 0; float pdfXPos = -4; Document document = null; PdfWriter writer = null; PdfPTable bottomTable = null; ColumnText ct = null; PdfImportedPage pdfImport = null; CertificateEvent pgEvent = null; try { if (stateList.Count > 0) { qualifiedStr = (stateList[0].Qualified.ToLower() == "qualified" ? "Qualified" : "NonQualified"); } iTextSharp.text.Image imgSignature = PdfReports.GetImage(sigImagePath, 228, 68, iTextSharp.text.Element.ALIGN_LEFT); foreach (ListStatementPatRetainItem state in stateList) { if (rptTitle.Length == 0) { rptTitle = qualifiedStr.ToUpper() + " PATRONAGE REFUND NOTICE\n" + "CROP YEAR " + cropYear.ToString(); } SHID = state.SHID; equityCropYear = state.EquityCropYear; if (document == null) { // IF YOU CHANGE MARGINS, CHANGE YOUR TABLE LAYOUTS !!! // *** US LETTER: 612 X 792 *** document = new Document(PortraitPageSize.PgPageSize, PortraitPageSize.PgLeftMargin, PortraitPageSize.PgRightMargin, PortraitPageSize.PgTopMargin, PortraitPageSize.PgBottomMargin); // we create a writer that listens to the document // and directs a PDF-stream to a file writer = PdfWriter.GetInstance(document, fs); // Attach my override event handler(s) pgEvent = new CertificateEvent(); pgEvent.FillEvent(state.SHID, state.BusName, state.Addr1, state.Addr2, state.CSZ, rptTitle, logoUrl); writer.PageEvent = pgEvent; // Open the document document.Open(); //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> // ** ROTATE ** ROTATE ** --------------------------------------------------------------------------------------- //PdfReader reader = new PdfReader(...); //for (int k = 1; k <= reader.getNumberOfPages(); ++k) { // reader.getPageN(k).put(PdfName.ROTATE, new PdfNumber(90)); //} //PdfStamper stp = new PdfStamper(reader, ...); //stp.close(); // ** ROTATE ** ROTATE ** --------------------------------------------------------------------------------------- //string tmpFilePath = sigImagePath.Replace("CertificateSignature.gif", "WorkTemplate.pdf"); //PdfReader rdr = new PdfReader(tmpFilePath); //rdr.GetPageN(1).Put(PdfName.ROTATE, new PdfNumber(90)); //Document docCopy = new Document(rdr.GetPageSizeWithRotation(1)); //PdfCopy pCopy = new PdfCopy(docCopy, new System.IO.FileStream(sigImagePath.Replace("CertificateSignature.gif", "WorkTemplate90.pdf"), // System.IO.FileMode.Create, System.IO.FileAccess.Write, System.IO.FileShare.Read)); //docCopy.Open(); //docCopy.AddCreationDate(); //docCopy.AddCreator(""); //docCopy.AddTitle("CertificateTemplate.pdf"); //pCopy.AddPage(pCopy.GetImportedPage(rdr, 1)); //docCopy.Close(); //using (System.IO.FileStream fsTmpOut = new FileStream(sigImagePath.Replace("CertificateSignature.gif", "WorkTemplate90.pdf"), // System.IO.FileMode.Create, System.IO.FileAccess.Write, System.IO.FileShare.Read)) { // PdfStamper tmpStamp = new PdfStamper(rdr, fsTmpOut); // tmpStamp.Close(); //} // ================================================================================================================ // FROM PDF -- Pulls a background image out of a pdf and uses it as the under layer! Works BUT NEEDS ADJUSTMENT // ================================================================================================================ string _certBorderPath = sigImagePath.Replace("CertificateSignature.gif", "CertBorders.pdf"); PdfReader rdrCertBorder = new PdfReader(_certBorderPath); pdfImport = writer.GetImportedPage(rdrCertBorder, 1); // import only page 1. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< // ================================================================================================================ // FROM JPG -- Uses a jpg image as the under layer!!! This ROUGHLY WORKS -- NEEDS HELP ! // ================================================================================================================ //string _logo = sigImagePath.Replace("CertificateSignature.gif", "MyBorders.gif"); //iTextSharp.text.Image imgBack = PdfReports.GetImage(_logo, Convert.ToInt32(document.Right - document.RightMargin - document.LeftMargin), // Convert.ToInt32(document.Top - document.TopMargin - document.BottomMargin), iTextSharp.text.Element.ALIGN_CENTER); //float imageYPos = document.Top - imgBack.Height; //float imageXPos = 0; //// To position an image at (x,y) use addImage(image, image_width, 0, 0, image_height, x, y) //writer.DirectContentUnder.AddImage(imgBack, imgBack.Width, 0, 0, imgBack.Height, imageXPos, imageYPos); //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< } else { pgEvent.FillEvent(state.SHID, state.BusName, state.Addr1, state.Addr2, state.CSZ, rptTitle, logoUrl); document.NewPage(); } writer.DirectContentUnder.AddTemplate(pdfImport, pdfXPos, pdfYPos); // ======================================================= // Build Report // ======================================================= // Fill report Body ct = pgEvent.GetColumnObject(); BuildPatronageBodyText(cropYear, qualifiedStr, ct); // Add Bottom section -- Date, Amount, SigLine. bottomTable = PdfReports.CreateTable(_bottomPatLayout, 0); PdfReports.AddText2Table(bottomTable, " ", _normalFont); PdfReports.AddText2Table(bottomTable, "Dated: " + certificateDateStr, _normalFont, "left"); PdfReports.AddText2Table(bottomTable, "Total patronage refund: ", _normalFont, "left"); PdfReports.AddText2Table(bottomTable, Convert.ToDecimal(state.EquityAmt).ToString("$#,##0.00"), _normalFont, "right"); PdfReports.AddText2Table(bottomTable, " ", _normalFont); PdfReports.AddText2Table(bottomTable, " ", _normalFont, 2); PdfReports.AddText2Table(bottomTable, "Paid by check: ", _normalFont, "left"); PdfReports.AddText2Table(bottomTable, Convert.ToDecimal(state.PatInitPayment).ToString("$#,##0.00"), _normalFont, "right"); PdfReports.AddText2Table(bottomTable, " ", _normalFont); PdfReports.AddText2Table(bottomTable, " ", _normalFont, 2); PdfReports.AddText2Table(bottomTable, "Patronage equity: ", _normalFont, "left"); PdfReports.AddText2Table(bottomTable, Convert.ToDecimal(state.RedeemAmt).ToString("$#,##0.00"), _normalFont, "right"); PdfReports.AddText2Table(bottomTable, " ", _normalFont); PdfReports.AddText2Table(bottomTable, " ", _normalFont, _bottomRetLayout.Length); PdfReports.AddText2Table(bottomTable, " ", _normalFont, _bottomRetLayout.Length); ct.AddElement(bottomTable); //---------------------------------- // Add Signature //---------------------------------- // this is odd, but use the RET layout for sig line. bottomTable = PdfReports.CreateTable(_bottomRetLayout, 0); PdfReports.AddText2Table(bottomTable, " ", _normalFont, 2); PdfReports.AddImage2Table(bottomTable, imgSignature); PdfReports.AddText2Table(bottomTable, " ", _normalFont); // add signature info PdfReports.AddText2Table(bottomTable, " ", _normalFont, 2); PdfReports.AddText2Table(bottomTable, sigName, _normalFont); PdfReports.AddText2Table(bottomTable, " ", _normalFont); PdfReports.AddText2Table(bottomTable, " ", _normalFont, 2); PdfReports.AddText2Table(bottomTable, sigTitle, _normalFont); PdfReports.AddText2Table(bottomTable, " ", _normalFont); ct.AddElement(bottomTable); ct.Go(false); } // ====================================================== // Close document // ====================================================== if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); document = null; } if (writer == null) { // Warn that we have no data. WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("No records matched your report criteria."); throw (warn); } } catch (Exception ex) { string errMsg = "document is null: " + (document == null).ToString() + "; " + "writer is null: " + (writer == null).ToString(); WSCIEMP.Common.CException wscex = new WSCIEMP.Common.CException(METHOD_NAME + errMsg, ex); throw (wscex); } finally { if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); } if (writer != null) { writer.Close(); } } }
private static void ReportBuilderRetainRedeems(int cropYear, string paymentDate, string shid, string fromShid, string toShid, string logoUrl, System.IO.FileStream fs) { const string METHOD_NAME = "ReportBuilderRetainRedeems: "; string SHID = ""; string equityCropYear = ""; string lastSHID = ""; string lastEquityCropYear = ""; decimal totalCheckAmount = 0; string rptTitle = ""; string statementDate = Convert.ToDateTime(paymentDate).ToString(HEADER_DATE_FORMAT); Document document = null; PdfWriter writer = null; PdfPTable detailTable = null; iTextSharp.text.Image imgLogo = null; StatementPatronageRetainEvent pgEvent = null; try { List <ListStatementPatRetainItem> stateList = WSCReportsExec.RptStatementRetainRedeem(cropYear, shid, fromShid, toShid, paymentDate); for (int i = 0; i < stateList.Count; i++) { ListStatementPatRetainItem state = stateList[i]; if (rptTitle.Length == 0) { rptTitle = "Unit Retain -- " + state.Qualified + " -- " + statementDate; } SHID = state.SHID; equityCropYear = state.EquityCropYear; if (document == null) { // Create the detail table detailTable = PdfReports.CreateTable(_primaryTableLayout, 0); AddRetainRedeemDetailHeader(detailTable); lastSHID = state.SHID; totalCheckAmount = CalcRedeemCheck(stateList, i); // IF YOU CHANGE MARGINS, CHANGE YOUR TABLE LAYOUTS !!! // *** US LETTER: 612 X 792 *** document = new Document(PortraitPageSize.PgPageSize, PortraitPageSize.PgLeftMargin, PortraitPageSize.PgRightMargin, PortraitPageSize.PgTopMargin, PortraitPageSize.PgBottomMargin); // we create a writer that listens to the document // and directs a PDF-stream to a file writer = PdfWriter.GetInstance(document, fs); imgLogo = PdfReports.GetImage(logoUrl, 77, 45, iTextSharp.text.Element.ALIGN_CENTER); // Attach my override event handler(s) pgEvent = new StatementPatronageRetainEvent(); pgEvent.FillEvent(state.SHID, state.BusName, state.Addr1, state.Addr2, state.CSZ, totalCheckAmount, 0, rptTitle, imgLogo); writer.PageEvent = pgEvent; // Open the document document.Open(); } else { if (lastSHID != SHID) { //------------------------------------------------------------------------------------- // When you change members, kick out the page and move on to the next member, // and reset flags. //------------------------------------------------------------------------------------- lastSHID = SHID; lastEquityCropYear = ""; // Add Grand Total Line PdfReports.AddText2Table(detailTable, " ", _normalFont, _primaryTableLayout.Length); PdfReports.AddText2Table(detailTable, "Total Amount", _labelFont, "center"); PdfReports.AddText2Table(detailTable, " ", _normalFont, 2); PdfReports.AddText2Table(detailTable, totalCheckAmount.ToString("$#,##0.00"), _normalFont, "right"); // Add this members detail lines to the document PdfReports.AddTableNoSplit(document, pgEvent, detailTable); // Calc the total for the new SHID totalCheckAmount = CalcRedeemCheck(stateList, i); pgEvent.FillEvent(state.SHID, state.BusName, state.Addr1, state.Addr2, state.CSZ, totalCheckAmount, 0, rptTitle, imgLogo); document.NewPage(); // Refresh the detail table detailTable = PdfReports.CreateTable(_primaryTableLayout, 0); AddRetainRedeemDetailHeader(detailTable); } } // ======================================================= // Build Report // ======================================================= if (state.EquityCropYear != lastEquityCropYear) { // Before resetting the lastEquityCropYear, a non-blank crop year means this is a subsequent // crop year for the same shid. Add a blank if (lastEquityCropYear.Length > 0) { PdfReports.AddText2Table(detailTable, " ", _normalFont, _primaryTableLayout.Length); } lastEquityCropYear = state.EquityCropYear; // Show Equity Data for Crop Year PdfReports.AddText2Table(detailTable, state.EquityCropYear, _normalFont, "center"); PdfReports.AddText2Table(detailTable, state.EquityTons, _normalFont, "right"); PdfReports.AddText2Table(detailTable, state.RatePerTon, _normalFont, "right"); PdfReports.AddText2Table(detailTable, Convert.ToDecimal(state.RedeemAmt).ToString("$#,##0.00"), _normalFont, "right"); if (state.DeductionDesc.Length > 0) { PdfReports.AddText2Table(detailTable, " ", _normalFont, _primaryTableLayout.Length); PdfReports.AddText2Table(detailTable, " ", _normalFont); PdfReports.AddText2Table(detailTable, "Less Deductions: ", _normalItalicFont, "left", 3); PdfReports.AddText2Table(detailTable, " ", _normalFont); PdfReports.AddText2Table(detailTable, state.DeductionDesc, _normalFont, "left", 2); PdfReports.AddText2Table(detailTable, Convert.ToDecimal(state.DeductionAmt).ToString("$#,##0.00"), _normalFont, "right"); } } else { //---------------------------------------------------------- // This is a deduction only line, a subsequent deduction. //---------------------------------------------------------- PdfReports.AddText2Table(detailTable, " ", _normalFont); PdfReports.AddText2Table(detailTable, state.DeductionDesc, _normalFont, "left", 2); PdfReports.AddText2Table(detailTable, Convert.ToDecimal(state.DeductionAmt).ToString("$#,##0.00"), _normalFont, "right"); } } if (detailTable != null) { // Add Grand Total Line PdfReports.AddText2Table(detailTable, " ", _normalFont, _primaryTableLayout.Length); PdfReports.AddText2Table(detailTable, "Total Amount", _labelFont, "center"); PdfReports.AddText2Table(detailTable, " ", _normalFont, 2); PdfReports.AddText2Table(detailTable, totalCheckAmount.ToString("$#,##0.00"), _normalFont, "right"); // Add this members detail lines to the document PdfReports.AddTableNoSplit(document, pgEvent, detailTable); } // ====================================================== // Close document // ====================================================== if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); document = null; } if (writer == null) { // Warn that we have no data. WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("No records matched your report criteria."); throw (warn); } } catch (Exception ex) { string errMsg = "document is null: " + (document == null).ToString() + "; " + "writer is null: " + (writer == null).ToString(); WSCIEMP.Common.CException wscex = new WSCIEMP.Common.CException(METHOD_NAME + errMsg, ex); throw (wscex); } finally { if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); } if (writer != null) { writer.Close(); } } }
private static void ReportBuilder(SqlDataReader drPay, int cropYear, int paymentNumber, string paymentDescription, string fromDate, string toDate, string statementDate, bool isCumulative, string logoUrl, System.IO.FileStream fs) { const string METHOD_NAME = "rptTransmittal.ReportBuilder: "; const int resetFlag = 0; Document document = null; PdfWriter writer = null; PdfPTable table = null; TransmittalReportEvent pgEvent = null; iTextSharp.text.Image imgLogo = null; int contractNumber = 0; int lastContractNumber = 0; int payeeNumber = 0; int lastPayeeNumber = 0; decimal ytdEHBonus = 0; decimal ytdEHAmount = 0; decimal ytdRHAmount = 0; decimal ytdDeductions = 0; decimal ytdEHAmountMoved = 0; decimal ytdRHAmountMoved = 0; decimal ytdNet = 0; decimal curSLM = 0; decimal pctPaid = 0; decimal actualSugar = 0; string rptTitle = "Western Sugar Cooperative Payment Transmittal"; Font headerFont = FontFactory.GetFont("HELVETICA", 8F, Font.NORMAL); Font normalFont = FontFactory.GetFont("HELVETICA", 8F, Font.NORMAL); Font labelFont = FontFactory.GetFont("HELVETICA", 8F, Font.BOLD); try { using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BeetConn"].ToString())) { while (drPay.Read()) { try { contractNumber = Convert.ToInt32(drPay.GetString(drPay.GetOrdinal("Contract_Number"))); payeeNumber = drPay.GetInt16(drPay.GetOrdinal("Payee_Number")); if (document == null) { lastContractNumber = contractNumber; lastPayeeNumber = payeeNumber; // IF YOU CHANGE MARGINS, CHANGE YOUR TABLE LAYOUTS !!! // *** US LETTER: 612 X 792 *** //document = new Document(iTextSharp.text.PageSize.LETTER, 36, 36, 54, 72); document = new Document(PortraitPageSize.PgPageSize, PortraitPageSize.PgLeftMargin, PortraitPageSize.PgRightMargin, PortraitPageSize.PgTopMargin, PortraitPageSize.PgBottomMargin); // we create a writer that listens to the document // and directs a PDF-stream to a file writer = PdfWriter.GetInstance(document, fs); imgLogo = PdfReports.GetImage(logoUrl, 127, 50, iTextSharp.text.Element.ALIGN_CENTER); // Attach my override event handler(s) pgEvent = new TransmittalReportEvent(); pgEvent.FillEvent(drPay, cropYear, statementDate, resetFlag, rptTitle, paymentDescription, imgLogo); writer.PageEvent = pgEvent; // Open the document document.Open(); } else { if (contractNumber != lastContractNumber || payeeNumber != lastPayeeNumber) { ytdEHBonus = 0; ytdEHAmount = 0; ytdRHAmount = 0; ytdDeductions = 0; ytdNet = 0; ytdEHAmountMoved = 0; ytdRHAmountMoved = 0; lastContractNumber = contractNumber; if (payeeNumber != lastPayeeNumber) { lastPayeeNumber = payeeNumber; } pgEvent.FillEvent(drPay, cropYear, statementDate, resetFlag, rptTitle, paymentDescription, imgLogo); document.NewPage(); } } // ======================================================= // Add Payment Detail // ======================================================= table = PdfReports.CreateTable(_primaryTableLayout, 1); PdfReports.AddText2Table(table, drPay.GetString(drPay.GetOrdinal("Payment_Description")) + " Payment", labelFont, 8); // Header PdfReports.AddText2Table(table, " ", labelFont); PdfReports.AddText2Table(table, "SLM", labelFont, "center"); PdfReports.AddText2Table(table, "% Sugar", labelFont); PdfReports.AddText2Table(table, "% Paid", labelFont); PdfReports.AddText2Table(table, "Price/Ton", labelFont); PdfReports.AddText2Table(table, "Tons", labelFont); PdfReports.AddText2Table(table, "YTD Amount", labelFont); PdfReports.AddText2Table(table, "Current Amount", labelFont); // EH Premium PdfReports.AddText2Table(table, "Early Harvest Premium", labelFont, "left"); PdfReports.AddText2Table(table, " ", labelFont); PdfReports.AddText2Table(table, " ", labelFont); PdfReports.AddText2Table(table, " ", labelFont); PdfReports.AddText2Table(table, " ", labelFont); PdfReports.AddText2Table(table, " ", labelFont); if (isCumulative) { ytdEHBonus += drPay.GetDecimal(drPay.GetOrdinal("EH_Bonus")); } else { ytdEHBonus = drPay.GetDecimal(drPay.GetOrdinal("ncYtdEhBonus")); } PdfReports.AddText2Table(table, ytdEHBonus.ToString("$#,##0.00"), normalFont); PdfReports.AddText2Table(table, drPay.GetDecimal(drPay.GetOrdinal("EH_Bonus")).ToString("$#,##0.00"), normalFont); // Early Harvest actualSugar = drPay.GetDecimal(drPay.GetOrdinal("EH_Sugar")); curSLM = drPay.GetDecimal(drPay.GetOrdinal("EH_SLM")); pctPaid = drPay.GetDecimal(drPay.GetOrdinal("Pct_EH_Paid")); PdfReports.AddText2Table(table, "Early Harvest ", labelFont, "left"); if (drPay.GetDecimal(drPay.GetOrdinal("EH_SLM")) != 0) { PdfReports.AddText2Table(table, curSLM.ToString("N4"), normalFont, "center"); } else { PdfReports.AddText2Table(table, "------", normalFont, "center"); } if (drPay.GetDecimal(drPay.GetOrdinal("EH_Sugar")) != 0) { PdfReports.AddText2Table(table, actualSugar.ToString("N2"), normalFont); } else { PdfReports.AddText2Table(table, "------", normalFont); } if (drPay.GetDecimal(drPay.GetOrdinal("Pct_EH_Paid")) != 0) { PdfReports.AddText2Table(table, pctPaid.ToString("N3"), normalFont); } else { PdfReports.AddText2Table(table, "------", normalFont); } if (drPay.GetDecimal(drPay.GetOrdinal("EH_Price")) != 0) { PdfReports.AddText2Table(table, drPay.GetDecimal(drPay.GetOrdinal("EH_Price")).ToString("$#,##0.000"), normalFont); } else { PdfReports.AddText2Table(table, "------", normalFont); } if (drPay.GetDecimal(drPay.GetOrdinal("EH_Tons")) != 0 || drPay.GetDecimal(drPay.GetOrdinal("EH_tons_moved")) != 0) { PdfReports.AddText2Table(table, (drPay.GetDecimal(drPay.GetOrdinal("EH_Tons")) - drPay.GetDecimal(drPay.GetOrdinal("EH_tons_moved"))).ToString("N4"), normalFont); } else { PdfReports.AddText2Table(table, "------", normalFont); } if (isCumulative) { ytdEHAmount += drPay.GetDecimal(drPay.GetOrdinal("EH_Gross_Pay")) - drPay.GetDecimal(drPay.GetOrdinal("EH_amt_moved")); } else { ytdEHAmount = drPay.GetDecimal(drPay.GetOrdinal("ncYtdEhGrossPay")) - drPay.GetDecimal(drPay.GetOrdinal("ncYtdEhAmtMoved")); } PdfReports.AddText2Table(table, ytdEHAmount.ToString("$#,##0.00"), normalFont); PdfReports.AddText2Table(table, (drPay.GetDecimal(drPay.GetOrdinal("EH_Gross_Pay")) - drPay.GetDecimal(drPay.GetOrdinal("EH_amt_moved"))).ToString("$#,##0.00"), normalFont); // Regular Harvest actualSugar = drPay.GetDecimal(drPay.GetOrdinal("RH_Sugar")); curSLM = drPay.GetDecimal(drPay.GetOrdinal("RH_SLM")); pctPaid = drPay.GetDecimal(drPay.GetOrdinal("Pct_RH_Paid")); PdfReports.AddText2Table(table, "Regular Harvest ", labelFont, "left"); PdfReports.AddText2Table(table, curSLM.ToString("N4"), normalFont, "center"); PdfReports.AddText2Table(table, actualSugar.ToString("N2"), normalFont); PdfReports.AddText2Table(table, pctPaid.ToString("N3"), normalFont); PdfReports.AddText2Table(table, drPay.GetDecimal(drPay.GetOrdinal("RH_Price")).ToString("$#,##0.000"), normalFont); PdfReports.AddText2Table(table, (drPay.GetDecimal(drPay.GetOrdinal("RH_Tons")) - drPay.GetDecimal(drPay.GetOrdinal("RH_Tons_moved"))).ToString("N4"), normalFont); if (isCumulative) { ytdRHAmount += drPay.GetDecimal(drPay.GetOrdinal("RH_Gross_Pay")) - drPay.GetDecimal(drPay.GetOrdinal("RH_amt_moved")); } else { ytdRHAmount = drPay.GetDecimal(drPay.GetOrdinal("ncYtdRhGrossPay")) - drPay.GetDecimal(drPay.GetOrdinal("ncYtdRhAmtMoved")); } // YTD Amount PdfReports.AddText2Table(table, ytdRHAmount.ToString("$#,##0.00"), normalFont); // Current Amount PdfReports.AddText2Table(table, (drPay.GetDecimal(drPay.GetOrdinal("RH_Gross_Pay")) - drPay.GetDecimal(drPay.GetOrdinal("RH_amt_moved"))).ToString("$#,##0.00"), normalFont); // Reduced Early Harvest PdfReports.AddText2Table(table, "Reduced Early Harvest Excess Beets ", labelFont, "left", 4); PdfReports.AddText2Table(table, " ", normalFont); PdfReports.AddText2Table(table, drPay.GetDecimal(drPay.GetOrdinal("EH_tons_moved")).ToString("#,#.0000;(#,#.0000)"), normalFont); if (isCumulative) { ytdEHAmountMoved += drPay.GetDecimal(drPay.GetOrdinal("EH_amt_moved")); } else { ytdEHAmountMoved = drPay.GetDecimal(drPay.GetOrdinal("ncYtdEhAmtMoved")); } PdfReports.AddText2Table(table, ytdEHAmountMoved.ToString("$#,#.00;$(#,#.00)"), normalFont); PdfReports.AddText2Table(table, drPay.GetDecimal(drPay.GetOrdinal("EH_amt_moved")).ToString("$#,#.00;$(#,#.00)"), normalFont); // Reduced Regular Harvest PdfReports.AddText2Table(table, "Reduced Regular Harvest Excess Beets", labelFont, "left", 4); PdfReports.AddText2Table(table, " ", normalFont); PdfReports.AddText2Table(table, drPay.GetDecimal(drPay.GetOrdinal("RH_tons_moved")).ToString("#,#.0000;(#,#.0000)"), normalFont); if (isCumulative) { ytdRHAmountMoved += drPay.GetDecimal(drPay.GetOrdinal("RH_amt_moved")); } else { ytdRHAmountMoved = drPay.GetDecimal(drPay.GetOrdinal("ncYtdRhAmtMoved")); } PdfReports.AddText2Table(table, ytdRHAmountMoved.ToString("$#,#.00;$(#,#.00)"), normalFont); PdfReports.AddText2Table(table, drPay.GetDecimal(drPay.GetOrdinal("RH_amt_moved")).ToString("$#,#.00;$(#,#.00)"), normalFont); PdfReports.AddText2Table(table, " ", normalFont, 8); // Total lines // YTD Amount PdfReports.AddText2Table(table, " ", normalFont, 4); PdfReports.AddText2Table(table, "Total Gross Amount: ", labelFont, "right", 2); PdfReports.AddText2Table(table, ((ytdEHBonus + ytdEHAmount + ytdRHAmount) + ytdEHAmountMoved + ytdRHAmountMoved //+ drPay.GetDecimal(drPay.GetOrdinal("ncYtdEhAmtMoved")) //+ drPay.GetDecimal(drPay.GetOrdinal("ncYtdRhAmtMoved")) ).ToString("#,##0.00"), normalFont); // Current Amount PdfReports.AddText2Table(table, (drPay.GetDecimal(drPay.GetOrdinal("EH_Bonus")) + drPay.GetDecimal(drPay.GetOrdinal("EH_Gross_Pay")) + drPay.GetDecimal(drPay.GetOrdinal("RH_Gross_Pay")) //+ //drPay.GetDecimal(drPay.GetOrdinal("EH_amt_moved")) + //drPay.GetDecimal(drPay.GetOrdinal("RH_amt_moved")) ).ToString("#,##0.00"), normalFont); PdfReports.AddText2Table(table, " ", normalFont, 5); PdfReports.AddText2Table(table, "Deduction Total: ", labelFont, "right"); if (isCumulative) { ytdDeductions += drPay.GetDecimal(drPay.GetOrdinal("Deduct_Total")); } else { ytdDeductions = drPay.GetDecimal(drPay.GetOrdinal("ncYtdDeductTotal")); } PdfReports.AddText2Table(table, ytdDeductions.ToString("#,##0.00"), normalFont); PdfReports.AddText2Table(table, drPay.GetDecimal(drPay.GetOrdinal("Deduct_Total")).ToString("#,##0.00"), normalFont); PdfReports.AddText2Table(table, " ", normalFont, 5); PdfReports.AddText2Table(table, "Net Payment: ", labelFont, "right"); decimal currentNet = drPay.GetDecimal(drPay.GetOrdinal("EH_Bonus")) + drPay.GetDecimal(drPay.GetOrdinal("EH_Gross_Pay")) + drPay.GetDecimal(drPay.GetOrdinal("RH_Gross_Pay")) //drPay.GetDecimal(drPay.GetOrdinal("EH_amt_moved")) //drPay.GetDecimal(drPay.GetOrdinal("RH_amt_moved")) - drPay.GetDecimal(drPay.GetOrdinal("Deduct_Total")); if (isCumulative) { ytdNet += currentNet; } else { ytdNet = drPay.GetDecimal(drPay.GetOrdinal("ncYtdEhBonus")) + drPay.GetDecimal(drPay.GetOrdinal("ncYtdEhGrossPay")) + drPay.GetDecimal(drPay.GetOrdinal("ncYtdRhGrossPay")) //drPay.GetDecimal(drPay.GetOrdinal("ncYtdEhAmtMoved")) //drPay.GetDecimal(drPay.GetOrdinal("ncYtdRhAmtMoved")) - drPay.GetDecimal(drPay.GetOrdinal("ncYtdDeductTotal")); } PdfReports.AddText2Table(table, ytdNet.ToString("#,##0.00"), normalFont); PdfReports.AddText2Table(table, currentNet.ToString("#,##0.00"), normalFont); PdfReports.AddText2Table(table, " ", normalFont, 8); PdfReports.AddText2Table(table, " ", normalFont, 6); PdfReports.AddText2Table(table, "Grower Net: ", labelFont, "right"); PdfReports.AddText2Table(table, drPay.GetDecimal(drPay.GetOrdinal("Payment_Amount")).ToString("#,##0.00"), normalFont); PdfReports.AddText2Table(table, " ", normalFont, 6); PdfReports.AddText2Table(table, "Landowner Net: ", labelFont, "right"); PdfReports.AddText2Table(table, drPay.GetDecimal(drPay.GetOrdinal("Split_Payment")).ToString("#,##0.00"), normalFont); PdfReports.AddText2Table(table, " ", normalFont, 8); PdfReports.AddTableNoSplit(document, pgEvent, table); if (paymentNumber == drPay.GetInt16(drPay.GetOrdinal("Payment_Number"))) { //================================================================ // Add Deduction information //================================================================ table = PdfReports.CreateTable(_primaryTableLayout, 1); using (SqlDataReader drDed = WSCPayment.GetTransmittalDeduction(conn, cropYear, contractNumber, drPay.GetInt16(drPay.GetOrdinal("Payment_Number")), isCumulative)) { PdfReports.AddText2Table(table, "Deduction", labelFont, 5); PdfReports.AddText2Table(table, "Payment", labelFont); PdfReports.AddText2Table(table, "Amount", labelFont); PdfReports.AddText2Table(table, " ", labelFont); while (drDed.Read()) { PdfReports.AddText2Table(table, drDed.GetString(drDed.GetOrdinal("Deduction_Desc")), normalFont, 5); PdfReports.AddText2Table(table, drDed.GetString(drDed.GetOrdinal("Payment_Description")), normalFont); PdfReports.AddText2Table(table, drDed.GetDecimal(drDed.GetOrdinal("Amount")).ToString("$#,##0.00"), normalFont); PdfReports.AddText2Table(table, " ", labelFont); } PdfReports.AddText2Table(table, " ", normalFont, 8); PdfReports.AddTableNoSplit(document, pgEvent, table); } //================================================================ // Add Delivery information //================================================================ float[] deliveryLayout = new float[] { 110.8F, 110.8F, 55.4F, 110.8F, 55.4F, 55.4F, 55.4F }; table = PdfReports.CreateTable(deliveryLayout, 1); List <TransmittalDeliveryItem> deliveryList = WSCPayment.GetTransmittalDelivery(cropYear, contractNumber, paymentNumber, fromDate, toDate); PdfReports.AddText2Table(table, "Delivery Date", labelFont); PdfReports.AddText2Table(table, "First Net Pounds", labelFont); PdfReports.AddText2Table(table, "Tare %", labelFont); PdfReports.AddText2Table(table, "Final Net Lbs", labelFont); PdfReports.AddText2Table(table, "Sugar %", labelFont); PdfReports.AddText2Table(table, "SLM", labelFont); PdfReports.AddText2Table(table, "Loads", labelFont); foreach (TransmittalDeliveryItem deliveryDay in deliveryList) { PdfReports.AddText2Table(table, deliveryDay.Delivery_Date.ToShortDateString(), normalFont); PdfReports.AddText2Table(table, deliveryDay.First_Net_Pounds.ToString("###,###"), normalFont); PdfReports.AddText2Table(table, deliveryDay.Tare.ToString("N2"), normalFont); PdfReports.AddText2Table(table, deliveryDay.Final_Net_Pounds.ToString("###,###"), normalFont); PdfReports.AddText2Table(table, deliveryDay.Sugar_Content.ToString("N2"), normalFont); PdfReports.AddText2Table(table, deliveryDay.SLM_Pct.ToString("N4"), normalFont); PdfReports.AddText2Table(table, deliveryDay.Loads.ToString(), normalFont); } PdfReports.AddText2Table(table, " ", normalFont, 6); PdfReports.AddTableNoSplit(document, pgEvent, table); } } catch (System.Exception ex) { WSCIEMP.Common.CException wscEx = new WSCIEMP.Common.CException(METHOD_NAME, ex); throw (wscEx); } } } // ====================================================== // Close document // ====================================================== if (document != null) { document.Close(); document = null; } if (writer == null) { // Warn that we have no data. WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("No records matched your report criteria."); throw (warn); } } catch (Exception ex) { string errMsg = "document is null: " + (document == null).ToString() + "; " + "writer is null: " + (writer == null).ToString(); WSCIEMP.Common.CException wscex = new WSCIEMP.Common.CException(METHOD_NAME + errMsg, ex); throw (wscex); } finally { if (document != null) { document.Close(); } if (drPay != null) { if (!drPay.IsClosed) { drPay.Close(); } } if (writer != null) { writer.Close(); } } }
private static void ReportBuilderRetain(List <ListStatementPatRetainItem> stateList, int cropYear, DateTime certificateDate, string shid, string fromShid, string toShid, string logoUrl, System.IO.FileStream fs, string sigName, string sigTitle, string sigImagePath) { const string METHOD_NAME = "ReportBuilderRetain: "; string SHID = ""; string equityCropYear = ""; string rptTitle = ""; string certificateDateStr = certificateDate.ToString(HEADER_DATE_FORMAT); string qualifiedStr = ""; float pdfYPos = 0; float pdfXPos = -4; Document document = null; PdfWriter writer = null; PdfPTable bottomTable = null; ColumnText ct = null; PdfImportedPage pdfImport = null; CertificateEvent pgEvent = null; try { if (stateList.Count > 0) { qualifiedStr = (stateList[0].Qualified.ToLower() == "qualified" ? "Qualified" : "NonQualified"); } iTextSharp.text.Image imgSignature = PdfReports.GetImage(sigImagePath, 228, 68, iTextSharp.text.Element.ALIGN_LEFT); foreach (ListStatementPatRetainItem state in stateList) { if (rptTitle.Length == 0) { rptTitle = qualifiedStr.ToUpper() + " UNIT RETAIN NOTICE\n" + "CROP YEAR " + cropYear.ToString(); } SHID = state.SHID; equityCropYear = state.EquityCropYear; if (document == null) { // IF YOU CHANGE MARGINS, CHANGE YOUR TABLE LAYOUTS !!! // *** US LETTER: 612 X 792 *** document = new Document(PortraitPageSize.PgPageSize, PortraitPageSize.PgLeftMargin, PortraitPageSize.PgRightMargin, PortraitPageSize.PgTopMargin, PortraitPageSize.PgBottomMargin); // we create a writer that listens to the document // and directs a PDF-stream to a file writer = PdfWriter.GetInstance(document, fs); // Attach my override event handler(s) pgEvent = new CertificateEvent(); pgEvent.FillEvent(state.SHID, state.BusName, state.Addr1, state.Addr2, state.CSZ, rptTitle, logoUrl); writer.PageEvent = pgEvent; // Open the document document.Open(); // ================================================================================================================ // FROM PDF -- Pulls a background image out of a pdf and uses it as the under layer! Works BUT NEEDS ADJUSTMENT // ================================================================================================================ string _certBorderPath = sigImagePath.Replace("CertificateSignature.gif", "CertBorders.pdf"); PdfReader rdrCertBorder = new PdfReader(_certBorderPath); pdfImport = writer.GetImportedPage(rdrCertBorder, 1); // import only page 1. } else { pgEvent.FillEvent(state.SHID, state.BusName, state.Addr1, state.Addr2, state.CSZ, rptTitle, logoUrl); document.NewPage(); } writer.DirectContentUnder.AddTemplate(pdfImport, pdfXPos, pdfYPos); // ======================================================= // Build Report // ======================================================= // Fill report Body ct = pgEvent.GetColumnObject(); BuildRetainBodyText(cropYear, qualifiedStr, ct); // Add Bottom section -- Date, Amount, SigLine. bottomTable = PdfReports.CreateTable(_bottomRetLayout, 0); PdfReports.AddText2Table(bottomTable, " ", _normalFont); PdfReports.AddText2Table(bottomTable, "Dated: " + certificateDateStr, _normalFont, "left"); PdfReports.AddText2Table(bottomTable, "Amount: " + Convert.ToDecimal(state.EquityAmt).ToString("$#,##0.00"), _normalFont, "left"); PdfReports.AddText2Table(bottomTable, " ", _normalFont); PdfReports.AddText2Table(bottomTable, " ", _normalFont, _bottomRetLayout.Length); PdfReports.AddText2Table(bottomTable, " ", _normalFont, _bottomRetLayout.Length); //---------------------------------- // Add Signature //---------------------------------- PdfReports.AddText2Table(bottomTable, " ", _normalFont, 2); PdfReports.AddImage2Table(bottomTable, imgSignature); PdfReports.AddText2Table(bottomTable, " ", _normalFont); // add signature info PdfReports.AddText2Table(bottomTable, " ", _normalFont, 2); PdfReports.AddText2Table(bottomTable, sigName, _normalFont); PdfReports.AddText2Table(bottomTable, " ", _normalFont); PdfReports.AddText2Table(bottomTable, " ", _normalFont, 2); PdfReports.AddText2Table(bottomTable, sigTitle, _normalFont); PdfReports.AddText2Table(bottomTable, " ", _normalFont); ct.AddElement(bottomTable); ct.Go(false); } // ====================================================== // Close document // ====================================================== if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); document = null; } if (writer == null) { // Warn that we have no data. WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("No records matched your report criteria."); throw (warn); } } catch (Exception ex) { string errMsg = "document is null: " + (document == null).ToString() + "; " + "writer is null: " + (writer == null).ToString(); WSCIEMP.Common.CException wscex = new WSCIEMP.Common.CException(METHOD_NAME + errMsg, ex); throw (wscex); } finally { if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); } if (writer != null) { writer.Close(); } } }
public static void ReportBuilder(SqlDataReader dr, int cropYear, int shid, string busName, string logoUrl, System.IO.FileStream fs) { const string METHOD_NAME = "ReportBuilder"; Document document = null; PdfWriter writer = null; PdfPTable table = null; iTextSharp.text.Image imgLogo = null; ContractSummaryEvent pgEvent = null; int resetFlag = 0; string rptTitle = "Contract Summary\nCrop Year " + cropYear.ToString(); Font headerFont = FontFactory.GetFont("HELVETICA", 8F, Font.NORMAL); Font normalFont = FontFactory.GetFont("HELVETICA", 8F, Font.NORMAL); Font labelFont = FontFactory.GetFont("HELVETICA", 8F, Font.BOLD); try { while (dr.Read()) { if (document == null) { // IF YOU CHANGE MARGINS, CHANGE YOUR TABLE LAYOUTS !!! // *** US LETTER: 612 X 792 *** //document = new Document(iTextSharp.text.PageSize.LETTER, 36, 36, 54, 72); document = new Document(PortraitPageSize.PgPageSize, PortraitPageSize.PgLeftMargin, PortraitPageSize.PgRightMargin, PortraitPageSize.PgTopMargin, PortraitPageSize.PgBottomMargin); // we create a writer that listens to the document // and directs a PDF-stream to a file writer = PdfWriter.GetInstance(document, fs); imgLogo = PdfReports.GetImage(logoUrl, 127, 50, iTextSharp.text.Element.ALIGN_CENTER); // Attach my override event handler(s) pgEvent = new ContractSummaryEvent(); pgEvent.FillEvent(busName, shid, resetFlag, rptTitle, imgLogo, _primaryTableLayout); writer.PageEvent = pgEvent; // Open the document document.Open(); //table = PdfReports.CreateTable(_primaryTableLayout, 1); //AddDetailSectionHdr(ref table, labelFont, normalFont); } table = PdfReports.CreateTable(_primaryTableLayout, 1); // ======================================================= // Add Delivery information // ======================================================= PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("ContractFactory")), normalFont, "center"); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("ContractStation")), normalFont, "center"); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("ContractNo")), normalFont, "center"); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("LandownerName")), normalFont, "center"); PdfReports.AddText2Table(table, dr.GetDecimal(dr.GetOrdinal("FinalNetTons")).ToString("#,##0.0000"), normalFont, "right"); PdfReports.AddText2Table(table, dr.GetDecimal(dr.GetOrdinal("SugarPct")).ToString("##0.00"), normalFont, "center"); PdfReports.AddText2Table(table, dr.GetDecimal(dr.GetOrdinal("TarePct")).ToString("##0.00"), normalFont, "center"); PdfReports.AddText2Table(table, dr.GetDecimal(dr.GetOrdinal("TonsPerAcre")).ToString("#,##0.00"), normalFont, "right"); PdfReports.AddText2Table(table, dr.GetDecimal(dr.GetOrdinal("SLMPct")).ToString("##0.0000"), normalFont, "center"); PdfReports.AddText2Table(table, dr.GetInt32(dr.GetOrdinal("ExtSugarTon")).ToString("#,##0"), normalFont, "center"); PdfReports.AddTableNoSplit(document, pgEvent, table); } // ====================================================== // Close document // ====================================================== if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); document = null; } if (table == null) { // Warn that we have no data. WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("No records matched your report criteria."); throw (warn); } } catch (Exception ex) { string errMsg = "document is null: " + (document == null).ToString() + "; " + "writer is null: " + (writer == null).ToString(); WSCIEMP.Common.CException wscex = new WSCIEMP.Common.CException(METHOD_NAME + errMsg, ex); throw (wscex); } finally { if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); } if (writer != null) { writer.Close(); } } }
public static void ReportBuilder(SqlDataReader dr, int cropYear, int shid, string busName, string deliveryDate, string logoUrl, System.IO.FileStream fs) { const string METHOD_NAME = "ReportBuilder"; Document document = null; PdfWriter writer = null; PdfPTable table = null; iTextSharp.text.Image imgLogo = null; DeliveryByDayEvent pgEvent = null; const int RowBlockSize = 4; int rowCount = 1; int resetFlag = 0; string rptTitle = "Delivery By Day - Summary"; try { while (dr.Read()) { if (document == null) { // IF YOU CHANGE MARGINS, CHANGE YOUR TABLE LAYOUTS !!! // *** US LETTER: 612 X 792 *** //document = new Document(iTextSharp.text.PageSize.LETTER, 36, 36, 54, 72); document = new Document(PortraitPageSize.PgPageSize, PortraitPageSize.PgLeftMargin, PortraitPageSize.PgRightMargin, PortraitPageSize.PgTopMargin, PortraitPageSize.PgBottomMargin); // we create a writer that listens to the document // and directs a PDF-stream to a file writer = PdfWriter.GetInstance(document, fs); imgLogo = PdfReports.GetImage(logoUrl, 127, 50, iTextSharp.text.Element.ALIGN_CENTER); // Attach my override event handler(s) pgEvent = new DeliveryByDayEvent(); pgEvent.FillEvent(busName, shid, deliveryDate, resetFlag, rptTitle, imgLogo, _detailTableNames, _primaryTableLayout); writer.PageEvent = pgEvent; // Open the document document.Open(); } table = PdfReports.CreateTable(_primaryTableLayout, 1); // ======================================================= // Add Delivery information // ======================================================= PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("ContractFactory")), _normalFont, "left"); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("DeliveryStation")), _normalFont, "center"); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("ContractNo")), _normalFont, "center"); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("LandownerName")), _normalFont, "center"); PdfReports.AddText2Table(table, dr.GetDecimal(dr.GetOrdinal("FinalNetTons")).ToString("#,##0.0000"), _normalFont, "right"); PdfReports.AddText2Table(table, dr.GetDecimal(dr.GetOrdinal("SugarPct")).ToString("##0.00"), _normalFont, "center"); PdfReports.AddText2Table(table, dr.GetDecimal(dr.GetOrdinal("TarePct")).ToString("##0.00"), _normalFont, "center"); PdfReports.AddText2Table(table, dr.GetDecimal(dr.GetOrdinal("SLMPct")).ToString("##0.0000"), _normalFont, "center"); PdfReports.AddText2Table(table, dr.GetInt32(dr.GetOrdinal("ExtractableSugarPerTon")).ToString("#,##0"), _normalFont, "center"); // add a blank after every row-block-size for visual breaks. if (rowCount % RowBlockSize == 0) { PdfReports.AddText2Table(table, " ", _normalFont, _primaryTableLayout.Length); rowCount = 1; } else { rowCount++; } PdfReports.AddTableNoSplit(document, pgEvent, table); } // ====================================================== // Close document // ====================================================== if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); document = null; } if (writer == null) { // Warn that we have no data. WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("No records matched your report criteria."); throw (warn); } } catch (Exception ex) { string errMsg = "document is null: " + (document == null).ToString() + "; " + "writer is null: " + (writer == null).ToString(); WSCIEMP.Common.CException wscex = new WSCIEMP.Common.CException(METHOD_NAME + errMsg, ex); throw (wscex); } finally { if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); } if (writer != null) { writer.Close(); } } }
public static void ReportBuilder(SqlDataReader dr, int cropYear, DateTime letterDate, DateTime deadlineDate, string logoUrl, System.IO.FileStream fs) { const string METHOD_NAME = "ReportBuilder"; const float primaryLeading = 13.5F; const float primaryLeftIndent = 20F; string strLetterDate = letterDate.ToString("MMMM dd, yyyy"); string strDeadlineDate = deadlineDate.ToString("MMMM dd, yyyy"); string LdoBusinessName = ""; string tmpStr = ""; string tmpStr2 = ""; Document document = null; PdfWriter writer = null; LandownerLetterEvent pgEvent = null; ColumnText ct = null; iTextSharp.text.Image imgLogo = null; try { while (dr.Read()) { LdoBusinessName = dr["LdoBusinessName"].ToString(); string LdoAddressLine1 = dr["LdoAddressLine1"].ToString(); string LdoAddressLine2 = dr["LdoAddressLine2"].ToString(); string LdoCityStateZip = dr["LdoCityStateZip"].ToString(); if (document == null) { // IF YOU CHANGE MARGINS, CHANGE YOUR TABLE LAYOUTS !!! // *** US LETTER: 612 X 792 *** document = new Document(PortraitPageSize.PgPageSize, PortraitPageSize.PgLeftMargin, PortraitPageSize.PgRightMargin, PortraitPageSize.PgTopMargin, PortraitPageSize.PgBottomMargin); imgLogo = PdfReports.GetImage(logoUrl, 127, 50, iTextSharp.text.Element.ALIGN_CENTER); // we create a writer that listens to the document // and directs a PDF-stream to a file writer = PdfWriter.GetInstance(document, fs); // Attach my override event handler(s) pgEvent = new LandownerLetterEvent(); pgEvent.FillEvent(imgLogo, strLetterDate, LdoBusinessName, LdoAddressLine1, LdoAddressLine2, LdoCityStateZip); writer.PageEvent = pgEvent; // Open the document document.Open(); } else { pgEvent.FillEvent(imgLogo, strLetterDate, LdoBusinessName, LdoAddressLine1, LdoAddressLine2, LdoCityStateZip); document.NewPage(); } ct = pgEvent.GetColumnObject(); Paragraph p = new Paragraph(primaryLeading, "Your tenant, " + dr["GroBusinessName"].ToString() + ", has indicated that the proceeds for sugar beets grown on your land in\n" + cropYear.ToString() + " are to be split and you will be receiving " + dr.GetDecimal(dr.GetOrdinal("LdoSplitPercent")).ToString("##.0##") + "% of the proceeds. Since Western Sugar Cooperative no\n" + "longer requires signatures for the second payees, this letter has been sent for your verification.\n\n", _normalFont); ct.AddElement(p); p = new Paragraph(new Phrase(primaryLeading, "Your check will be made payable as follows:", _normalFont)); ct.AddElement(p); p = new Paragraph(primaryLeading, dr["ldoPayeeDescription"].ToString(), _normalFont); p.IndentationLeft = primaryLeftIndent; ct.AddElement(p); p = new Paragraph(primaryLeading, "If you have a lien on the beets, the lien holder’s name should be included above.\n\n" + "In addition, the following options were selected by your tenant.", _normalFont); ct.AddElement(p); decimal ldoChemPct = dr.GetDecimal(dr.GetOrdinal("LdoChemicalSplitPct")); if (dr.GetBoolean(dr.GetOrdinal("IsSplitChemical")) && ldoChemPct != 0) { tmpStr = ldoChemPct.ToString("##.0##") + "%"; } else { tmpStr = "No"; } decimal ldoRetainPct = dr.GetDecimal(dr.GetOrdinal("LdoSplitPercent")); if (dr.GetBoolean(dr.GetOrdinal("IsSplitRetain")) && ldoRetainPct != 0) { tmpStr2 = ldoRetainPct.ToString("##.0##") + "% of the"; } else { tmpStr2 = "No"; } p = new Paragraph(primaryLeading, tmpStr2 + " Unit Retains on this contract will be deducted from your proceeds.\n" + tmpStr + " seed & chemical receivables charged to this contract will be deducted from your proceeds.", _normalFont); p.IndentationLeft = primaryLeftIndent; ct.AddElement(p); p = new Paragraph(primaryLeading, "If the above information is correct, no response is needed.\n\n", _normalFont); ct.AddElement(p); p = new Paragraph(primaryLeading, "If any of the above information is not correct, please contact your tenant’s agriculturist, " + dr["AgriculturistName"].ToString() + " at\n" + WSCIEMP.Common.CodeLib.FormatPhoneNumber2Display(dr["AgriculturistPhone"].ToString()) + " by " + strDeadlineDate + ", or mail the corrections to:\n\n", _normalFont); ct.AddElement(p); p = new Paragraph(12F, "Western Sugar Cooperative\n" + "Attn: Marty Smith\n" + "1221 8th Avenue Unit E\n" + "Greeley, CO 80631\n\n", _normalFont); p.IndentationLeft = primaryLeftIndent; ct.AddElement(p); p = new Paragraph(primaryLeading, "Sincerely,\n\n" + "Marty Smith\n" + "Beet Accounting Manager\n\n" + "Ref: " + dr["ContractNo"].ToString(), _normalFont); ct.AddElement(p); ct.Go(false); } // ====================================================== // Close document // ====================================================== if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); document = null; } if (writer == null || String.IsNullOrEmpty(LdoBusinessName)) { // Warn that we have no data. WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("No records matched your report criteria."); throw (warn); } } catch (Exception ex) { string errMsg = "document is null: " + (document == null).ToString() + "; " + "writer is null: " + (writer == null).ToString(); WSCIEMP.Common.CException wscex = new WSCIEMP.Common.CException(MOD_NAME + METHOD_NAME + errMsg, ex); throw (wscex); } finally { if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); } if (writer != null) { writer.Close(); } } }
private static void ReportBuilder(SqlDataReader dr, int cropYear, string logoUrl, System.IO.FileStream fs) { const string METHOD_NAME = "rptFieldContracting.ReportBuilder: "; string rptTitle = ""; StringBuilder sb = new StringBuilder(); Document document = null; PdfWriter writer = null; PdfPTable table = null; ContractingReportEvent pgEvent = null; iTextSharp.text.Image imgLogo = null; Font titleFont = FontFactory.GetFont("HELVETICA", 12F, Font.BOLD); Font subTitleFont = FontFactory.GetFont("HELVETICA", 9F, Font.NORMAL); Font headerFont = FontFactory.GetFont("HELVETICA", 8F, Font.NORMAL); Font normalFont = FontFactory.GetFont("HELVETICA", 8F, Font.NORMAL); Font labelFont = FontFactory.GetFont("HELVETICA", 8F, Font.BOLD); try { while (dr.Read()) { try { if (document == null) { // IF YOU CHANGE MARGINS, CHANGE YOUR TABLE LAYOUTS !!! // *** US LETTER: 612 X 792 *** //document = new Document(iTextSharp.text.PageSize.LETTER, 36, 36, 54, 72); document = new Document(PortraitPageSize.PgPageSize, PortraitPageSize.PgLeftMargin, PortraitPageSize.PgRightMargin, PortraitPageSize.PgTopMargin, PortraitPageSize.PgBottomMargin); // we create a writer that listens to the document // and directs a PDF-stream to a file writer = PdfWriter.GetInstance(document, fs); imgLogo = PdfReports.GetImage(logoUrl, 127, 50, iTextSharp.text.Element.ALIGN_CENTER); rptTitle = cropYear.ToString() + " Shareholder Contracting\nJanuary 15th through March 30th"; // Attach my override event handler(s) pgEvent = new ContractingReportEvent(); pgEvent.FillEvent(DateTime.Now.ToShortDateString(), 0, rptTitle, imgLogo); writer.PageEvent = pgEvent; // Open the document document.Open(); } // ====================================================== // Generate a new page. // ====================================================== if (table != null) { pgEvent.FillEvent(DateTime.Now.ToShortDateString(), 0, rptTitle, imgLogo); document.NewPage(); } // ====================================================== // Shareholder Block // ====================================================== string cntNo = "Contract #: " + dr.GetString(dr.GetOrdinal("cntg_contract_no")); float[] addrLayout = new float[] { 270F, 270F }; table = PdfReports.CreateTable(addrLayout, 0); PdfReports.AddText2Table(table, "\nSHID: " + dr.GetString(dr.GetOrdinal("cntg_shid")), normalFont, "left"); PdfReports.AddText2Table(table, cntNo, normalFont, "right"); Paragraph p = PdfReports.GetAddressBlock(dr.GetString(dr.GetOrdinal("cntg_business_name")), dr.GetString(dr.GetOrdinal("cntg_address1")), dr.GetString(dr.GetOrdinal("cntg_address2")), dr.GetString(dr.GetOrdinal("cntg_city")) + ", " + dr.GetString(dr.GetOrdinal("cntg_state")) + " " + dr.GetString(dr.GetOrdinal("cntg_zip")), 0F, 15F, iTextSharp.text.Element.ALIGN_LEFT, normalFont); PdfReports.AddText2Table(table, p); string landOwner = "Land Owner: " + dr.GetString(dr.GetOrdinal("cntg_landowner_name")); PdfReports.AddText2Table(table, landOwner, normalFont, "right"); // Add a blank line. PdfReports.AddText2Table(table, " ", normalFont, "center", addrLayout.Length); PdfReports.AddTableNoSplit(document, pgEvent, table); // ====================================================== // Legal Land Description // ====================================================== // *** ROW 1 *** float[] tmpLayout = new float[] { 13F, 13.5F, 11F, 13.5F, 11F, 13.5F, 11F, 13.5F }; table = PdfReports.CreateTable(tmpLayout, 0); PdfReports.AddText2Table(table, "Field Name: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_field_name")), normalFont); PdfReports.AddText2Table(table, "Acres: ", labelFont); PdfReports.AddText2Table(table, dr.GetInt32(dr.GetOrdinal("cntg_acres")).ToString(), normalFont); PdfReports.AddText2Table(table, "State: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_lld_state")), normalFont); PdfReports.AddText2Table(table, "County: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_lld_county")), normalFont); // *** ROW 2 *** PdfReports.AddText2Table(table, "1/4 Quadrant: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_lld_quarter_quadrant")), normalFont); PdfReports.AddText2Table(table, "Quadrant: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_lld_quadrant")), normalFont); PdfReports.AddText2Table(table, "Section: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_lld_section")), normalFont); PdfReports.AddText2Table(table, "Township: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_lld_township")), normalFont); // *** ROW 3 *** PdfReports.AddText2Table(table, "Range: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_lld_range")), normalFont); PdfReports.AddText2Table(table, "Latitude: ", labelFont); PdfReports.AddText2Table(table, dr.GetDecimal(dr.GetOrdinal("cntg_latitude")).ToString(), normalFont); PdfReports.AddText2Table(table, "Longitude: ", labelFont); PdfReports.AddText2Table(table, dr.GetDecimal(dr.GetOrdinal("cntg_longitude")).ToString(), normalFont); PdfReports.AddText2Table(table, "FSA Official: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_fsa_official")), normalFont); // *** ROW 4 *** PdfReports.AddText2Table(table, "FSA Number: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_fsa_number")), normalFont, 3); PdfReports.AddText2Table(table, "FSA State: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_fsa_state")), normalFont); PdfReports.AddText2Table(table, "FSA County: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_fsa_county")), normalFont); // *** ROW 5 *** PdfReports.AddText2Table(table, "Farm No: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_farm_number")), normalFont); PdfReports.AddText2Table(table, "Tract No: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_tract_number")), normalFont); PdfReports.AddText2Table(table, "Field No: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_field_number")), normalFont); PdfReports.AddText2Table(table, "1/4 Field: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_quarter_field")), normalFont, 7); // *** ROW 6 *** PdfReports.AddText2Table(table, "Description", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_description")), normalFont, 7); PdfReports.AddText2Table(table, " ", normalFont, tmpLayout.Length); PdfReports.AddTableNoSplit(document, pgEvent, table); // ====================================================== // Field Contracting // ====================================================== float[] fcLayout = new float[] { 120.0F, 150.0F, 100.0F, 170.0F }; table = PdfReports.CreateTable(fcLayout, 1); table.DefaultCell.PaddingTop = 3.0F; table.DefaultCell.PaddingBottom = 0; table.DefaultCell.PaddingLeft = 0; table.DefaultCell.HorizontalAlignment = Element.ALIGN_LEFT; table.DefaultCell.VerticalAlignment = Element.ALIGN_BOTTOM; // Row 1 PdfReports.AddText2Table(table, "Land Ownership: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_ownership")).ToString(), normalFont); PdfReports.AddText2Table(table, " ", normalFont, 2); // Row 2 PdfReports.AddText2Table(table, "Rotation Length (years): ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_rotation_len")).ToString(), normalFont); PdfReports.AddText2Table(table, "Prior Crop: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_prev_crop_type")).ToString(), normalFont); // Row 3 PdfReports.AddText2Table(table, "Years field has had beets: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_beet_years")).ToString(), normalFont); PdfReports.AddText2Table(table, "Tillage: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_tillage")).ToString(), normalFont); // blank PdfReports.AddText2Table(table, " ", normalFont, fcLayout.Length); PdfReports.AddText2Table(table, " ", normalFont); PdfReports.AddText2Table(table, "Pre-Harvest", labelFont, "center"); PdfReports.AddText2Table(table, "Post-Harvest", labelFont, "center"); PdfReports.AddText2Table(table, " ", normalFont); PdfReports.AddText2Table(table, "Rhizomania Suspect: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_suspect_rhizomania")).ToString(), normalFont, "center"); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_post_rhizomania")).ToString(), normalFont, "center"); PdfReports.AddText2Table(table, " ", normalFont); PdfReports.AddText2Table(table, "Aphanomyces Suspect: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_suspect_aphanomyces")).ToString(), normalFont, "center"); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_post_aphanomyces")).ToString(), normalFont, "center"); PdfReports.AddText2Table(table, " ", normalFont); PdfReports.AddText2Table(table, "Curly Top Suspect: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_suspect_curly_top")).ToString(), normalFont, "center"); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_post_curlytop")).ToString(), normalFont, "center"); PdfReports.AddText2Table(table, " ", normalFont); PdfReports.AddText2Table(table, "Fusarium Suspect: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_suspect_fusarium")).ToString(), normalFont, "center"); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_post_fusarium")).ToString(), normalFont, "center"); PdfReports.AddText2Table(table, " ", normalFont); PdfReports.AddText2Table(table, "Rhizoctonia Suspect: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_suspect_rhizoctonia")).ToString(), normalFont, "center"); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_post_rhizoctonia")).ToString(), normalFont, "center"); PdfReports.AddText2Table(table, " ", normalFont); PdfReports.AddText2Table(table, "Nematode Suspect: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_suspect_nematode")).ToString(), normalFont, "center"); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_post_nematode")).ToString(), normalFont, "center"); PdfReports.AddText2Table(table, " ", normalFont); PdfReports.AddText2Table(table, "Cercospora Suspect: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_suspect_cercospora")).ToString(), normalFont, "center"); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_post_cercospora")).ToString(), normalFont, "center"); PdfReports.AddText2Table(table, " ", normalFont); PdfReports.AddText2Table(table, "Root Aphid Suspect: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_suspect_root_aphid")).ToString(), normalFont, "center"); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_post_rootaphid")).ToString(), normalFont, "center"); PdfReports.AddText2Table(table, " ", normalFont); PdfReports.AddText2Table(table, "Powdery Mildew Suspect: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_suspect_powdery_mildew")).ToString(), normalFont, "center"); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_post_powderymildew")).ToString(), normalFont, "center"); PdfReports.AddText2Table(table, " ", normalFont); PdfReports.AddText2Table(table, " ", normalFont, 4); PdfReports.AddTableNoSplit(document, pgEvent, table); float[] lld2Layout = new float[] { 67.5F, 67.5F, 55F, 80F, 67.5F, 67.5F, 67.5F, 67.5F }; table = PdfReports.CreateTable(lld2Layout, 1); PdfReports.AddText2Table(table, "Irrigation System: ", labelFont, 2); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_irrigation_method")).ToString(), normalFont, "left", 2); PdfReports.AddText2Table(table, " ", labelFont, 4); PdfReports.AddText2Table(table, "Water Source: ", labelFont, 2); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_irrigation_source")).ToString(), normalFont, "left", 2); PdfReports.AddText2Table(table, "Water: ", labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("cntg_post_water")).ToString(), normalFont, "left"); PdfReports.AddText2Table(table, " ", labelFont, 2); PdfReports.AddTableNoSplit(document, pgEvent, table); } catch (System.Exception ex) { WSCIEMP.Common.CException wscEx = new WSCIEMP.Common.CException(METHOD_NAME, ex); throw (wscEx); } } // ====================================================== // Close document // ====================================================== if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); document = null; } if (writer == null) { // Warn that we have no data. WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("No records matched your report criteria."); throw (warn); } } catch (Exception ex) { string errMsg = "sb is null: " + (sb == null).ToString() + "; " + "document is null: " + (document == null).ToString() + "; " + "writer is null: " + (writer == null).ToString(); WSCIEMP.Common.CException wscex = new WSCIEMP.Common.CException(METHOD_NAME + errMsg, ex); throw (wscex); } finally { if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); } if (writer != null) { writer.Close(); } } }
private static void ReportBuilder(int cropYear, string shid, string fromShid, string toShid, string filePath, string logoUrl) { const string METHOD_NAME = "ReportBuilder"; Document document = null; PdfWriter writer = null; iTextSharp.text.Image imgLogo = null; NoticeOfPassthroughEvent pgEvent = null; string rptTitle = "NOTICE OF PASSTHROUGH OF DOMESTIC PRODUCTION ACTIVITIES\n" + "DEDUCTION FROM THE WESTERN SUGAR COOPERATIVE TO PATRONS "; try { List <ListNoticeOfPassthrough> stateList = WSCReportsExec.PassthroughGetBySHID(cropYear, shid, fromShid, toShid); if (stateList.Count > 0) { using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.Read)) { foreach (ListNoticeOfPassthrough state in stateList) { if (document == null) { // IF YOU CHANGE MARGINS, CHANGE YOUR TABLE LAYOUTS !!! // *** US LETTER: 612 X 792 *** //document = new Document(iTextSharp.text.PageSize.LETTER, 36, 36, 54, 72); document = new Document(PortraitPageSize.PgPageSize, PortraitPageSize.PgLeftMargin, PortraitPageSize.PgRightMargin, PortraitPageSize.PgTopMargin, PortraitPageSize.PgBottomMargin); // we create a writer that listens to the document // and directs a PDF-stream to a file writer = PdfWriter.GetInstance(document, fs); ; imgLogo = PdfReports.GetImage(logoUrl, 127, 50, iTextSharp.text.Element.ALIGN_CENTER); // Attach my override event handler(s) pgEvent = new NoticeOfPassthroughEvent(); pgEvent.FillEvent(state, 0, rptTitle, imgLogo); writer.PageEvent = pgEvent; // Open the document document.Open(); } else { pgEvent.FillEvent(state, 0, rptTitle, imgLogo); document.NewPage(); } // ====================================================== // Fill in body of letter // ====================================================== PdfPTable table = PdfReports.CreateTable(_bodyLayout, 0); Paragraph para = new Paragraph("The purpose of this notice is to inform you of your allocable share of the domestic production activities " + "deduction (also known as the Section 199 deduction) which The Western Sugar Cooperative (“WSC”) is passing " + "through to patrons. The deduction will be reported on your " + state.TaxYear.ToString() + " Form 1099-PATR.", _normalFont); PdfReports.AddText2Table(table, para, _bodyLayout.Length); PdfReports.AddText2Table(table, " ", _subFont, _bodyLayout.Length); para = new Paragraph("Your share of the passthrough domestic production activities deduction amount is detailed below:", _normalFont); PdfReports.AddText2Table(table, para, _bodyLayout.Length); PdfReports.AddText2Table(table, " ", _subFont, _bodyLayout.Length); PdfReports.AddText2Table(table, " ", _normalFont); PdfReports.AddText2Table(table, "Domestic Production Activities Deduction Allocated to Patron", _labelFont); PdfReports.AddText2Table(table, " ", _normalFont); PdfReports.AddText2Table(table, " ", _subFont, _bodyLayout.Length); PdfReports.AddText2Table(table, " ", _normalFont); para = new Paragraph("SHID: " + state.SHID + "\n" + "Member Name: " + state.MemberName + "\n" + "Patron’s share of WSC Domestic Production Activities Deduction: $" + state.PatronShareOfDeduction.ToString("#,###.00"), _normalFont); PdfReports.AddText2Table(table, para, 2); PdfReports.AddText2Table(table, " ", _subFont, _bodyLayout.Length); PdfReports.AddText2Table(table, "Explanation", _labelFont, _bodyLayout.Length); PdfReports.AddText2Table(table, " ", _subFont, _bodyLayout.Length); para = new Paragraph("Created by Congress, the domestic production activities deduction has been in effect since 2005. It is designed " + "to encourage businesses like WSC to engage in production and/or manufacturing activities in the United States " + "and to employ workers in those activities.", _normalFont); PdfReports.AddText2Table(table, para, _bodyLayout.Length); PdfReports.AddText2Table(table, " ", _subFont, _bodyLayout.Length); para = new Paragraph("Section 199(d)(3) of the Internal Revenue Code contains special rules governing how cooperatives and their " + "patrons must compute the deduction. The Code permits a cooperative to elect to pass through to patrons all or a " + "portion of its domestic production activities deduction. Cooperatives typically pass through to patrons whatever " + "part of the deduction they can not themselves use.", _normalFont); PdfReports.AddText2Table(table, para, _bodyLayout.Length); string pctToApply = "All"; if (state.PercentageToApply != 100) { pctToApply = state.PercentageToApply.ToString("N3"); if (pctToApply.EndsWith("000")) { pctToApply = state.PercentageToApply.ToString("N0"); } pctToApply += "%"; } PdfReports.AddText2Table(table, " ", _subFont, _bodyLayout.Length); para = new Paragraph("WSC is passing through to its patrons " + pctToApply + " of the domestic production activities deduction it earned " + "for the fiscal year ending " + state.FiscalYearEndDate.ToShortDateString() + ". The passthrough is being allocated to patrons based on sugar " + "beet tonnage for Crop Year " + state.CropYear.ToString() + " (fiscal year " + state.FiscalYear.ToString() + "). This notice identifies your share of the " + "passthrough. ", _normalFont); PdfReports.AddText2Table(table, para, _bodyLayout.Length); PdfReports.AddText2Table(table, " ", _subFont, _bodyLayout.Length); para = new Paragraph("A domestic production activities deduction passed through to a patron can generally be used to reduce the " + "patron’s taxable income. In order to claim this passed-through deduction, a patron must include a Form 8903 " + "(Domestic Production Activities Deduction) with the patron’s income tax return and report the passthrough " + "deduction on the appropriate line of that form.", _normalFont); PdfReports.AddText2Table(table, para, _bodyLayout.Length); PdfReports.AddText2Table(table, " ", _subFont, _bodyLayout.Length); PdfReports.AddText2Table(table, " ", _normalFont); PdfReports.AddText2Table(table, "We strongly advise you consult with your tax advisor to determine how to take\n" + "advantage of this potential tax benefit.", _labelFont, "center"); PdfReports.AddText2Table(table, " ", _normalFont); PdfReports.AddText2Table(table, " ", _subFont, _bodyLayout.Length); PdfReports.AddText2Table(table, " ", _subFont, _bodyLayout.Length); para = new Paragraph("______________________________\n\n", _subFont); Chunk ck = new Chunk("1", _subFont); ck.SetTextRise(5); para.Add(ck); Chunk chunk = new Chunk(" This notice is issued pursuant to Section 199(d)(3) of the Internal Revenue Code.", _subFont); para.Add(chunk); PdfReports.AddText2Table(table, para, _bodyLayout.Length); PdfReports.AddTableNoSplit(document, pgEvent, table); } // ====================================================== // Close document // ====================================================== if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); document = null; } if (writer == null) { // Warn that we have no data. WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("No records matched your report criteria."); throw (warn); } } } else { // No recs qualified for query. WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("No records matched your query."); throw(warn); } } catch (System.Exception ex) { string errMsg = "cropYear: " + cropYear.ToString(); WSCIEMP.Common.CException wscEx = new WSCIEMP.Common.CException(MOD_NAME + "." + METHOD_NAME + ": " + errMsg, ex); throw (wscEx); } finally { if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); } if (writer != null) { writer.Close(); } } }
public static void ReportBuilder(int cropYear, int contractNumber, string logoUrl, System.IO.FileStream fs) { const string METHOD_NAME = "ReportBuilder"; Document document = null; PdfWriter writer = null; PdfPTable table = null; ContractDeliverySummaryEvent pgEvent = null; iTextSharp.text.Image imgLogo = null; int contractID = 0; int stationNo = 0; int factoryNo = 0; int acresContracted = 0; int acresHarvested = 0; int acresLost = 0; int acresPlanted = 0; try { if (document == null) { // IF YOU CHANGE MARGINS, CHANGE YOUR TABLE LAYOUTS !!! // *** US LETTER: 612 X 792 *** // margins: L, R, T, B //document = new Document(iTextSharp.text.PageSize.LETTER, 36, 36, 54, 72); document = new Document(PortraitPageSize.PgPageSize, PortraitPageSize.PgLeftMargin, PortraitPageSize.PgRightMargin, PortraitPageSize.PgTopMargin, PortraitPageSize.PgBottomMargin); // we create a writer that listens to the document // and directs a PDF-stream to a file writer = PdfWriter.GetInstance(document, fs); imgLogo = PdfReports.GetImage(logoUrl, 127, 50, iTextSharp.text.Element.ALIGN_CENTER); // Attach my override event handler(s) pgEvent = new ContractDeliverySummaryEvent(); pgEvent.FillEvent(imgLogo, cropYear.ToString()); writer.PageEvent = pgEvent; // Open the document document.Open(); } // ======================================================= // Build Report // ======================================================= int staExSugar = 0; int ftyExSugar = 0; decimal extractableSugarPerTon = 0; PdfPTable addrTable = null; List <ContractGorwerLandownerItem> stateList = WSCReportsExec.ContractDeliverySummary1(cropYear, contractNumber); float[] addrLayout = new float[] { 9.3F, 67.6F, 23.1F }; addrTable = PdfReports.CreateTable(addrLayout, 0); if (stateList.Count > 0) { ContractGorwerLandownerItem item = stateList[0]; PdfReports.AddText2Table(addrTable, "Contract", _normalFont); PdfReports.AddText2Table(addrTable, "Grower#: " + item.Gro_Address_Number, _normalFont); PdfReports.AddText2Table(addrTable, "Landowner#: " + item.Ldo_Address_Number, _normalFont); PdfReports.AddText2Table(addrTable, item.Contract_Number, _normalFont); Paragraph p = PdfReports.GetAddressBlock(item.Grower_Name, item.Gro_Address_1, item.Gro_Address_2, item.Grower_City + ", " + item.Grower_State + " " + item.Grower_Zip, 0F, 12F, iTextSharp.text.Element.ALIGN_LEFT, _uspsFont); PdfReports.AddText2Table(addrTable, p); p = PdfReports.GetAddressBlock(item.Landowner_Name, item.Ldo_Address_1, item.Ldo_Address_2, item.Ldo_City + ", " + item.Ldo_State + " " + item.Ldo_Zip, 0F, 12F, iTextSharp.text.Element.ALIGN_LEFT, _normalFont); PdfReports.AddText2Table(addrTable, p); PdfReports.AddText2Table(addrTable, " ", _normalFont, 3); PdfReports.AddText2Table(addrTable, " ", _normalFont, 3); PdfReports.AddTableNoSplit(document, pgEvent, addrTable); acresContracted = item.Contract_Acres; acresHarvested = item.Harvest_Acres; acresPlanted = item.Planted_Acres; acresLost = acresPlanted - acresHarvested; contractID = item.cnt_contract_id; stationNo = Convert.ToInt32(item.Station_Number); factoryNo = Convert.ToInt32(item.Factory_Number); } table = PdfReports.CreateTable(_primaryTableLayout, 0); List <ContractDeliverySummary2Item> cntDelSumList = WSCReportsExec.ContractDeliverySummary2(contractID); if (cntDelSumList.Count > 0) { ContractDeliverySummary2Item cntdsItem = cntDelSumList[0]; PdfReports.AddText2Table(table, "Contract Tons: " + cntdsItem.ContractTons.ToString("#,###.0000"), _normalFont, 3); PdfReports.AddText2Table(table, "Contract % Sugar: " + cntdsItem.SugarPct.ToString("0.00") + "%", _normalFont, 3); PdfReports.AddText2Table(table, "Contract % SLM: " + cntdsItem.SLMPct.ToString("0.0000") + "%", _normalFont, 3); string tonsPerAcre = null; if (acresHarvested == 0) { tonsPerAcre = String.Format("{0:#,##0.00}", 0); } else { tonsPerAcre = (cntdsItem.ContractTons / acresHarvested).ToString("#,###.00"); } PdfReports.AddText2Table(table, "Tons Per Acre: " + tonsPerAcre, _normalFont, 3); PdfReports.AddText2Table(table, " ", _normalFont, 3); extractableSugarPerTon = cntdsItem.ExtractableSugarPerTon; PdfReports.AddText2Table(table, "Pounds Extractable Sugar Per Ton Contract: " + extractableSugarPerTon.ToString("#,##0"), _normalFont, 3); } int factoryExtSugarAvg, stationExtSugarAvg; WSCReportsExec.FactoryStationGetExtractSugarAvg(factoryNo, stationNo, cropYear, out factoryExtSugarAvg, out stationExtSugarAvg); if (stationExtSugarAvg != 0) { PdfReports.AddText2Table(table, "Pounds Extractable Sugar Per Ton Receiving Station: " + stationExtSugarAvg.ToString("#,##0"), _normalFont, 3); } if (factoryExtSugarAvg != 0) { PdfReports.AddText2Table(table, "Pounds Extractable Sugar Per Ton Factory: " + factoryExtSugarAvg.ToString("#,##0"), _normalFont, 3); } string percentOfStation = String.Format("{0:##0.00}", 0); string percentOfFactory = String.Format("{0:##0.00}", 0); if (stationExtSugarAvg != 0) { percentOfStation = String.Format("{0:##0.00}", (extractableSugarPerTon / stationExtSugarAvg) * 100); } if (factoryExtSugarAvg != 0) { percentOfFactory = String.Format("{0:##0.00}", (extractableSugarPerTon / factoryExtSugarAvg) * 100); } PdfReports.AddText2Table(table, "Percent of Station: " + percentOfStation + "%", _normalFont, 3); PdfReports.AddText2Table(table, "Percent of Factory: " + percentOfFactory + "%", _normalFont, 3); PdfReports.AddText2Table(table, " ", _normalFont, 3); PdfReports.AddText2Table(table, "Acres Contracted: " + acresContracted.ToString("#,##0"), _normalFont, 3); PdfReports.AddText2Table(table, "Acres Planted: " + acresPlanted.ToString("#,##0"), _normalFont, 3); PdfReports.AddText2Table(table, "Acres Lost: " + acresLost.ToString("#,##0"), _normalFont, 3); PdfReports.AddText2Table(table, "Acres Harvested: " + acresHarvested.ToString("#,##0"), _normalFont, 3); PdfReports.AddTableNoSplit(document, pgEvent, table); // ====================================================== // Close document // ====================================================== if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); document = null; } if (addrTable == null) { // Warn that we have no data. WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("No records matched your report criteria."); throw (warn); } } catch (Exception ex) { string errMsg = "document is null: " + (document == null).ToString() + "; " + "writer is null: " + (writer == null).ToString(); WSCIEMP.Common.CException wscex = new WSCIEMP.Common.CException(METHOD_NAME + errMsg, ex); throw (wscex); } finally { if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); } if (writer != null) { writer.Close(); } } }
public static void ReportBuilder(int cropYear, string factoryList, string stationList, string contractList, int paymentNumber, string paymentDescription, string fromDate, string toDate, string statementDate, bool isCumulative, string logoUrl, System.IO.FileStream fs) { const string METHOD_NAME = "rptGroTransmittal.ReportBuilder: "; const int resetFlag = 0; Document document = null; PdfWriter writer = null; PdfPTable table = null; iTextSharp.text.Image imgLogo = null; GroTransmittalEvent pgEvent = null; int contractNumber = 0; int lastContractNumber = 0; int payeeNumber = 0; int lastPayeeNumber = 0; decimal ytdEHBonus = 0; decimal ytdEHAmount = 0; decimal ytdRHAmount = 0; decimal ytdDeductions = 0; decimal ytdEHAmountMoved = 0; decimal ytdRHAmountMoved = 0; decimal ytdNet = 0; decimal curSLM = 0; decimal pctPaid = 0; decimal actualSugar = 0; string rptTitle = "Western Sugar Cooperative Payment Transmittal"; try { List <TransmittalPaymentItem> stateList = WSCPayment.GetTransmittalPayment(cropYear, paymentNumber, factoryList, stationList, contractList, isCumulative); int minContractNumber = stateList.Min(c => Convert.ToInt32(c.Contract_Number)); int maxContractNumber = stateList.Max(c => Convert.ToInt32(c.Contract_Number)); List <TransDeductionListItem> deductionList = WSCPayment.GetTransmittalDeduction2(ConfigurationManager.ConnectionStrings["BeetConn"].ToString(), cropYear, 0, paymentNumber, minContractNumber, maxContractNumber, isCumulative); using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BeetConn"].ToString())) { foreach (TransmittalPaymentItem item in stateList) { try { contractNumber = Convert.ToInt32(item.Contract_Number); payeeNumber = item.Payee_Number; if (document == null) { lastContractNumber = contractNumber; lastPayeeNumber = payeeNumber; // IF YOU CHANGE MARGINS, CHANGE YOUR TABLE LAYOUTS !!! // *** US LETTER: 612 X 792 *** //document = new Document(iTextSharp.text.PageSize.LETTER, 36, 36, 54, 72); document = new Document(PortraitPageSize.PgPageSize, PortraitPageSize.PgLeftMargin, PortraitPageSize.PgRightMargin, PortraitPageSize.PgTopMargin, PortraitPageSize.PgBottomMargin); // we create a writer that listens to the document // and directs a PDF-stream to a file writer = PdfWriter.GetInstance(document, fs); imgLogo = PdfReports.GetImage(logoUrl, 127, 50, iTextSharp.text.Element.ALIGN_CENTER); if (statementDate == null) { statementDate = WSCPayment.GetPaymentTransmittalDate(paymentNumber, cropYear); } // Attach my override event handler(s) pgEvent = new GroTransmittalEvent(); pgEvent.FillEvent(item, cropYear, statementDate, resetFlag, rptTitle, paymentDescription, imgLogo); writer.PageEvent = pgEvent; // Open the document document.Open(); } else { if (contractNumber != lastContractNumber || payeeNumber != lastPayeeNumber) { ytdEHBonus = 0; ytdEHAmount = 0; ytdRHAmount = 0; ytdDeductions = 0; ytdNet = 0; ytdEHAmountMoved = 0; ytdRHAmountMoved = 0; lastContractNumber = contractNumber; if (payeeNumber != lastPayeeNumber) { lastPayeeNumber = payeeNumber; } pgEvent.FillEvent(item, cropYear, statementDate, resetFlag, rptTitle, paymentDescription, imgLogo); document.NewPage(); } } // ======================================================= // Add Payment Detail // ======================================================= table = PdfReports.CreateTable(_primaryTableLayout, 1); PdfReports.AddText2Table(table, item.Payment_Description + " Payment", _labelFont, 8); // Header PdfReports.AddText2Table(table, " ", _labelFont); PdfReports.AddText2Table(table, "SLM", _labelFont, "center"); PdfReports.AddText2Table(table, "% Sugar", _labelFont); PdfReports.AddText2Table(table, "% Paid", _labelFont); PdfReports.AddText2Table(table, "Price/Ton", _labelFont); PdfReports.AddText2Table(table, "Tons", _labelFont); PdfReports.AddText2Table(table, "YTD Amount", _labelFont); PdfReports.AddText2Table(table, "Current Amount", _labelFont); // EH Premium PdfReports.AddText2Table(table, "Early Harvest Premium", _labelFont, "left"); PdfReports.AddText2Table(table, " ", _labelFont); PdfReports.AddText2Table(table, " ", _labelFont); PdfReports.AddText2Table(table, " ", _labelFont); PdfReports.AddText2Table(table, " ", _labelFont); PdfReports.AddText2Table(table, " ", _labelFont); if (isCumulative) { ytdEHBonus += item.EH_Bonus; } else { ytdEHBonus = item.YtdEhBonus; } PdfReports.AddText2Table(table, ytdEHBonus.ToString("$#,##0.00"), _normalFont); PdfReports.AddText2Table(table, item.EH_Bonus.ToString("$#,##0.00"), _normalFont); // Early Harvest actualSugar = item.EH_Sugar; curSLM = item.EH_SLM; pctPaid = item.Pct_EH_Paid; PdfReports.AddText2Table(table, "Early Harvest", _labelFont, "left"); if (item.EH_SLM != 0) { PdfReports.AddText2Table(table, curSLM.ToString("N4"), _normalFont, "center"); } else { PdfReports.AddText2Table(table, "------", _normalFont, "center"); } if (item.EH_Sugar != 0) { PdfReports.AddText2Table(table, actualSugar.ToString("N2"), _normalFont); } else { PdfReports.AddText2Table(table, "------", _normalFont); } if (item.EH_Sugar != 0) { PdfReports.AddText2Table(table, pctPaid.ToString("N3"), _normalFont); } else { PdfReports.AddText2Table(table, "------", _normalFont); } if (item.EH_Price != 0) { PdfReports.AddText2Table(table, item.EH_Price.ToString("$#,##0.000"), _normalFont); } else { PdfReports.AddText2Table(table, "------", _normalFont); } if (item.EH_Tons != 0 || item.EH_Tons_Moved != 0) { PdfReports.AddText2Table(table, (item.EH_Tons - item.EH_Tons_Moved).ToString("N4"), _normalFont); } else { PdfReports.AddText2Table(table, "------", _normalFont); } if (isCumulative) { ytdEHAmount += item.EH_Gross_Pay - item.EH_Amt_Moved; } else { ytdEHAmount = item.YtdEhGrossPay - item.YtdEhAmtMoved; } PdfReports.AddText2Table(table, ytdEHAmount.ToString("$#,##0.00"), _normalFont); PdfReports.AddText2Table(table, (item.EH_Gross_Pay - item.EH_Amt_Moved).ToString("$#,##0.00"), _normalFont); // Regular Harvest actualSugar = item.RH_Sugar; curSLM = item.RH_SLM; pctPaid = item.Pct_RH_Paid; PdfReports.AddText2Table(table, "Regular Harvest", _labelFont, "left"); PdfReports.AddText2Table(table, curSLM.ToString("N4"), _normalFont, "center"); PdfReports.AddText2Table(table, actualSugar.ToString("N2"), _normalFont); PdfReports.AddText2Table(table, pctPaid.ToString("N3"), _normalFont); PdfReports.AddText2Table(table, item.RH_Price.ToString("$#,##0.000"), _normalFont); PdfReports.AddText2Table(table, (item.RH_Tons - item.RH_Tons_Moved).ToString("N4"), _normalFont); if (isCumulative) { ytdRHAmount += item.RH_Gross_Pay - item.RH_Amt_Moved; } else { ytdRHAmount = item.YtdRhGrossPay - item.YtdRhAmtMoved; } PdfReports.AddText2Table(table, ytdRHAmount.ToString("$#,##0.00"), _normalFont); PdfReports.AddText2Table(table, (item.RH_Gross_Pay - item.RH_Amt_Moved).ToString("$#,##0.00"), _normalFont); PdfReports.AddText2Table(table, " ", _normalFont, 8); // Reduced Early Harvest PdfReports.AddText2Table(table, "Reduced Early Harvest Excess Beets", _labelFont, "left", 4); PdfReports.AddText2Table(table, " ", _normalFont); PdfReports.AddText2Table(table, item.EH_Tons_Moved.ToString("#,#.0000;(#,#.0000)"), _normalFont); if (isCumulative) { ytdEHAmountMoved += item.EH_Amt_Moved; } else { ytdEHAmountMoved = item.YtdEhAmtMoved; } PdfReports.AddText2Table(table, ytdEHAmountMoved.ToString("$#,#.00;$(#,#.00)"), _normalFont); PdfReports.AddText2Table(table, item.EH_Amt_Moved.ToString("$#,#.00;$(#,#.00)"), _normalFont); // Reduced Regular Harvest PdfReports.AddText2Table(table, "Reduced Regular Harvest Excess Beets", _labelFont, "left", 4); PdfReports.AddText2Table(table, " ", _normalFont); PdfReports.AddText2Table(table, item.RH_Tons_Moved.ToString("#,#.0000;(#,#.0000)"), _normalFont); if (isCumulative) { ytdRHAmountMoved += item.RH_Amt_Moved; } else { ytdRHAmountMoved = item.YtdRhAmtMoved; } PdfReports.AddText2Table(table, ytdRHAmountMoved.ToString("$#,#.00;$(#,#.00)"), _normalFont); PdfReports.AddText2Table(table, item.RH_Amt_Moved.ToString("$#,#.00;$(#,#.00)"), _normalFont); PdfReports.AddText2Table(table, " ", _normalFont, 8); // Total lines PdfReports.AddText2Table(table, " ", _normalFont, 4); PdfReports.AddText2Table(table, "Total Gross Amount: ", _labelFont, "right", 2); PdfReports.AddText2Table(table, (ytdEHBonus + ytdEHAmount + ytdRHAmount + ytdEHAmountMoved + ytdRHAmountMoved).ToString("#,##0.00"), _normalFont); PdfReports.AddText2Table(table, (item.EH_Bonus + item.EH_Gross_Pay + item.RH_Gross_Pay //+ item.EH_Amt_Moved //+ item.RH_Amt_Moved ).ToString("#,##0.00"), _normalFont); PdfReports.AddText2Table(table, " ", _normalFont, 5); PdfReports.AddText2Table(table, "Deduction Total: ", _labelFont, "right"); if (isCumulative) { ytdDeductions += item.Deduct_Total; } else { ytdDeductions = item.YtdDeductTotal; } PdfReports.AddText2Table(table, ytdDeductions.ToString("#,##0.00"), _normalFont); PdfReports.AddText2Table(table, item.Deduct_Total.ToString("#,##0.00"), _normalFont); PdfReports.AddText2Table(table, " ", _normalFont, 5); PdfReports.AddText2Table(table, "Net Payment: ", _labelFont, "right"); decimal currentNet = item.EH_Bonus + item.EH_Gross_Pay + item.RH_Gross_Pay - item.Deduct_Total; if (isCumulative) { ytdNet += currentNet; } else { ytdNet = item.YtdEhBonus + item.YtdEhGrossPay + item.YtdRhGrossPay - item.YtdDeductTotal; } PdfReports.AddText2Table(table, ytdNet.ToString("#,##0.00"), _normalFont); PdfReports.AddText2Table(table, currentNet.ToString("#,##0.00"), _normalFont); PdfReports.AddText2Table(table, " ", _normalFont, 8); PdfReports.AddText2Table(table, " ", _normalFont, 6); PdfReports.AddText2Table(table, "Grower Net: ", _labelFont, "right"); PdfReports.AddText2Table(table, item.Payment_Amount.ToString("#,##0.00"), _normalFont); PdfReports.AddText2Table(table, " ", _normalFont, 6); PdfReports.AddText2Table(table, "Landowner Net: ", _labelFont, "right"); PdfReports.AddText2Table(table, item.Split_Payment.ToString("#,##0.00"), _normalFont); PdfReports.AddText2Table(table, " ", _normalFont, 8); PdfReports.AddTableNoSplit(document, pgEvent, table); if (paymentNumber == item.Payment_Number) { //================================================================ // Add Deduction information //================================================================ table = PdfReports.CreateTable(_primaryTableLayout, 1); //using (SqlDataReader drDed = WSCPayment.GetTransmittalDeduction(conn, // cropYear, contractNumber, item.Payment_Number, isCumulative)) { PdfReports.AddText2Table(table, "Deduction", _labelFont, 5); PdfReports.AddText2Table(table, "Payment", _labelFont); PdfReports.AddText2Table(table, "Amount", _labelFont); PdfReports.AddText2Table(table, " ", _labelFont); var contractDeductions = from deduction in deductionList where deduction.Contract_Number.ToString() == item.Contract_Number && deduction.Payment_Number <= item.Payment_Number orderby deduction.Payment_Number, deduction.Deduction_Number select deduction; foreach (TransDeductionListItem dedItem in contractDeductions) { if (dedItem.Amount != 0) { PdfReports.AddText2Table(table, dedItem.Deduction_Desc, _normalFont, 5); PdfReports.AddText2Table(table, dedItem.Payment_Description, _normalFont); PdfReports.AddText2Table(table, dedItem.Amount.ToString("$#,##0.00"), _normalFont); PdfReports.AddText2Table(table, " ", _labelFont); } } // OLD CODE - replace by For loop above //while (drDed.Read()) { // PdfReports.AddText2Table(table, drDed.GetString(drDed.GetOrdinal("Deduction_Desc")), _normalFont, 5); // PdfReports.AddText2Table(table, drDed.GetString(drDed.GetOrdinal("Payment_Description")), _normalFont); // PdfReports.AddText2Table(table, drDed.GetDecimal(drDed.GetOrdinal("Amount")).ToString("$#,##0.00"), _normalFont); // PdfReports.AddText2Table(table, " ", _labelFont); //} PdfReports.AddText2Table(table, " ", _normalFont, 8); PdfReports.AddTableNoSplit(document, pgEvent, table); //} //================================================================ // Add Delivery information //================================================================ float[] deliveryLayout = new float[] { 110.8F, 110.8F, 55.4F, 110.8F, 55.4F, 55.4F, 55.4F }; table = PdfReports.CreateTable(deliveryLayout, 1); List <TransmittalDeliveryItem> deliveryList = WSCPayment.GetTransmittalDelivery(cropYear, contractNumber, paymentNumber, null, null); PdfReports.AddText2Table(table, "Delivery Date", _labelFont); PdfReports.AddText2Table(table, "First Net Pounds", _labelFont); PdfReports.AddText2Table(table, "Tare %", _labelFont); PdfReports.AddText2Table(table, "Final Net Lbs", _labelFont); PdfReports.AddText2Table(table, "Sugar %", _labelFont); PdfReports.AddText2Table(table, "SLM", _labelFont); PdfReports.AddText2Table(table, "Loads", _labelFont); foreach (TransmittalDeliveryItem deliveryDay in deliveryList) { PdfReports.AddText2Table(table, deliveryDay.Delivery_Date.ToShortDateString(), _normalFont); PdfReports.AddText2Table(table, deliveryDay.First_Net_Pounds.ToString("###,###"), _normalFont); PdfReports.AddText2Table(table, deliveryDay.Tare.ToString("N2"), _normalFont); PdfReports.AddText2Table(table, deliveryDay.Final_Net_Pounds.ToString("###,###"), _normalFont); PdfReports.AddText2Table(table, deliveryDay.Sugar_Content.ToString("N2"), _normalFont); PdfReports.AddText2Table(table, deliveryDay.SLM_Pct.ToString("N4"), _normalFont); PdfReports.AddText2Table(table, deliveryDay.Loads.ToString(), _normalFont); } PdfReports.AddText2Table(table, " ", _normalFont, 6); PdfReports.AddTableNoSplit(document, pgEvent, table); } } catch (System.Exception ex) { WSCIEMP.Common.CException wscEx = new WSCIEMP.Common.CException(METHOD_NAME, ex); throw (wscEx); } } } // ====================================================== // Close document // ====================================================== if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); document = null; } if (writer == null) { // Warn that we have no data. WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("No records matched your report criteria."); throw (warn); } } catch (Exception ex) { string errMsg = "document is null: " + (document == null).ToString() + "; " + "writer is null: " + (writer == null).ToString(); WSCIEMP.Common.CException wscex = new WSCIEMP.Common.CException(METHOD_NAME + errMsg, ex); throw (wscex); } finally { if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); } if (writer != null) { writer.Close(); } } }
private void ReportBuilder(SqlDataReader dr, int cropYear, DateTime reportDate, string logoUrl, System.IO.FileStream fs) { const string METHOD_NAME = "rptEquityStatement.ReportBuilder: "; const int resetFlag = 0; Document document = null; PdfWriter writer = null; PdfPTable table = null; iTextSharp.text.Image imgLogo = null; EQStmtEvent pgEvent = null; _cropYear = cropYear; _reportDate = reportDate; int shid = 0; int lastShid = 0; int entityTypeID = 0; int lastEntityTypeID = 0; string rptTitle = "Shareholder Equity Statement"; try { while (dr.Read()) { entityTypeID = dr.GetInt32(dr.GetOrdinal("EntityTypeID")); if (entityTypeID == _entTypeIDAddress) { shid = dr.GetInt32(dr.GetOrdinal("MemberNumber")); } // when you switch entities, close out the last entity when appropriate if (entityTypeID != lastEntityTypeID || entityTypeID == _entTypeIDAddress) { FinishEntityBlock(writer, document, ref table, entityTypeID, lastEntityTypeID, pgEvent); } if (document == null) { lastShid = shid; // IF YOU CHANGE MARGINS, CHANGE YOUR TABLE LAYOUTS !!! // *** US LETTER: 612 X 792 *** document = new Document(PortraitPageSize.PgPageSize, PortraitPageSize.PgLeftMargin, PortraitPageSize.PgRightMargin, PortraitPageSize.PgTopMargin, PortraitPageSize.PgBottomMargin); // we create a writer that listens to the document // and directs a PDF-stream to a file writer = PdfWriter.GetInstance(document, fs); imgLogo = PdfReports.GetImage(logoUrl, 127, 50, iTextSharp.text.Element.ALIGN_CENTER); // Attach my override event handler(s) pgEvent = new EQStmtEvent(); pgEvent.FillEvent(reportDate, shid, " ", dr.GetString(dr.GetOrdinal("BusinessName")), dr.GetString(dr.GetOrdinal("Addr1")), dr.GetString(dr.GetOrdinal("Addr2")), dr.GetString(dr.GetOrdinal("CityStateZip")), resetFlag, rptTitle, imgLogo); writer.PageEvent = pgEvent; // Open the document document.Open(); } else { if (lastShid != shid) { lastShid = shid; lastEntityTypeID = entityTypeID; _financingBalance = 0; pgEvent.FillEvent(reportDate, shid, " ", dr.GetString(dr.GetOrdinal("BusinessName")), dr.GetString(dr.GetOrdinal("Addr1")), dr.GetString(dr.GetOrdinal("Addr2")), dr.GetString(dr.GetOrdinal("CityStateZip")), resetFlag, rptTitle, imgLogo); document.NewPage(); } } //========================================================= // Add Common Stock //========================================================= if (entityTypeID == _entTypeIDCommonStock) { if (lastEntityTypeID != _entTypeIDCommonStock) { lastEntityTypeID = _entTypeIDCommonStock; AddCommonHeader(ref table); } AddCommonData(dr, table); } //========================================================= // Patron Stock //========================================================= if ((entityTypeID == _entTypeIDPatronStock || entityTypeID == _entTypeIDPatronPermTransfer) && ((lastEntityTypeID != _entTypeIDPatronStock && lastEntityTypeID != _entTypeIDPatronPermTransfer))) { AddPatronStockHeader(ref table); } if (entityTypeID == _entTypeIDPatronStock) { if (lastEntityTypeID != _entTypeIDPatronStock) { lastEntityTypeID = _entTypeIDPatronStock; AddPatronStockPurchaseHeader(ref table); } AddPatronStockPurchaseData(dr, table); } if (entityTypeID == _entTypeIDPatronPermTransfer) { if (lastEntityTypeID != _entTypeIDPatronPermTransfer) { lastEntityTypeID = _entTypeIDPatronPermTransfer; AddPatronStockTransferHeader(ref table); } AddPatronStockTransferData(dr, table); } //========================================================= // Add Unit Retains //========================================================= if (entityTypeID == _entTypeIDUnitRetain) { if (lastEntityTypeID != _entTypeIDUnitRetain) { lastEntityTypeID = _entTypeIDUnitRetain; AddUnitRetainHeader(ref table); } AddUnitRetainData(dr, table); } //========================================================= // Add Patronage Refunds //========================================================= if (entityTypeID == _entTypeIDPatronageRefundCert) { if (lastEntityTypeID != _entTypeIDPatronageRefundCert) { lastEntityTypeID = _entTypeIDPatronageRefundCert; AddPatronageRefundHeader(ref table); } AddPatronageRefundData(dr, table); } //========================================================= // Add Equity Financing //========================================================= if (entityTypeID == _entTypeIDEquityFinancing || entityTypeID == _entTypeIDEquityFinancingPayment) { if (lastEntityTypeID != _entTypeIDEquityFinancing && lastEntityTypeID != _entTypeIDEquityFinancingPayment) { AddFinancingHeader(ref table); } lastEntityTypeID = entityTypeID; if (entityTypeID == _entTypeIDEquityFinancing) { AddFinancingLoanData(dr, table); } if (entityTypeID == _entTypeIDEquityFinancingPayment) { AddFinancingLoanPaymentData(dr, table); } } /* */ } entityTypeID = 0; FinishEntityBlock(writer, document, ref table, entityTypeID, lastEntityTypeID, pgEvent); // ====================================================== // Close document // ====================================================== if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); document = null; } if (writer == null) { // Warn that we have no data. WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("No records matched your report criteria."); throw (warn); } } catch (Exception ex) { string errMsg = "document is null: " + (document == null).ToString() + "; " + "writer is null: " + (writer == null).ToString(); WSCIEMP.Common.CException wscex = new WSCIEMP.Common.CException(METHOD_NAME + errMsg, ex); throw (wscex); } finally { if (dr != null) { if (!dr.IsClosed) { dr.Close(); } } if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); } if (writer != null) { writer.Close(); } } }
private static void ReportBuilder(List <SHPaySumListItem> stateList, int cropYear, string statementDate, string shid, string fromShid, string toShid, int paymentDescID, bool isCumulative, string rptFooter, string logoUrl, FileStream fs) { const string METHOD_NAME = "rptPaymentSummary.ReportBuilder: "; Document document = null; PdfWriter writer = null; PdfPTable table = null; PaymentSummaryEvent pgEvent = null; iTextSharp.text.Image imgLogo = null; decimal totalTons = 0; decimal totalEHPrem = 0; decimal totalGross = 0; decimal totalDeductions = 0; decimal totalNet = 0; decimal totalGrowerNet = 0; decimal totalLandownerNet = 0; decimal checkAmount = 0; int resetFlag = 0; int checkSequence = 0; int payeeNumber = 0; string rptTitle = "Western Sugar Cooperative Payment Summary"; Font headerFont = FontFactory.GetFont("HELVETICA", 8F, Font.NORMAL); Font normalFont = FontFactory.GetFont("HELVETICA", 8F, Font.NORMAL); Font labelFont = FontFactory.GetFont("HELVETICA", 8F, Font.BOLD); try { int firstContractNumber = stateList.Min(c => c.i_ContractNumber); int lastContractNumber = stateList.Max(c => c.i_ContractNumber); List <TransDeductionListItem> deductionList = WSCPayment.GetTransmittalDeduction2(ConfigurationManager.ConnectionStrings["BeetConn"].ToString(), cropYear, paymentDescID, 0, firstContractNumber, lastContractNumber, isCumulative); foreach (SHPaySumListItem item in stateList) { if (document == null) { // IF YOU CHANGE MARGINS, CHANGE YOUR TABLE LAYOUTS !!! // *** US LETTER: 612 X 792 *** //document = new Document(iTextSharp.text.PageSize.LETTER, 36, 36, 54, 72); document = new Document(PortraitPageSize.PgPageSize, PortraitPageSize.PgLeftMargin, PortraitPageSize.PgRightMargin, PortraitPageSize.PgTopMargin, PortraitPageSize.PgBottomMargin); // we create a writer that listens to the document // and directs a PDF-stream to a file writer = PdfWriter.GetInstance(document, fs); imgLogo = PdfReports.GetImage(logoUrl, 127, 50, iTextSharp.text.Element.ALIGN_CENTER); // Attach my override event handler(s) checkSequence = item.i_CheckSequence; pgEvent = new PaymentSummaryEvent(); pgEvent.FillEvent(item, cropYear, statementDate, resetFlag, rptTitle, imgLogo); writer.PageEvent = pgEvent; pgEvent.HeaderNameList = _detailSectionHdrNames; pgEvent.HeaderTableLayout = _primaryTableLayout; // Open the document document.Open(); pgEvent.HeaderTableLayout = null; table = PdfReports.CreateTable(_primaryTableLayout, 1); checkAmount = item.d_checkAmount; payeeNumber = item.i_Payee_Number; } else { if (checkSequence != item.i_CheckSequence) { AddTotals(ref writer, ref document, ref table, labelFont, normalFont, totalTons, totalEHPrem, totalGross, totalDeductions, totalNet, checkAmount, payeeNumber, totalGrowerNet, totalLandownerNet, pgEvent); AddFooter(ref writer, ref document, normalFont, rptFooter, pgEvent); // Clear totals values totalTons = 0; totalEHPrem = 0; totalGross = 0; totalDeductions = 0; totalNet = 0; totalGrowerNet = 0; totalLandownerNet = 0; checkSequence = item.i_CheckSequence; // NEW CHECK pgEvent.FillEvent(item, cropYear, statementDate, resetFlag, rptTitle, imgLogo); pgEvent.HeaderTableLayout = _primaryTableLayout; document.NewPage(); pgEvent.HeaderTableLayout = null; table = PdfReports.CreateTable(_primaryTableLayout, 1); checkAmount = item.d_checkAmount; payeeNumber = item.i_Payee_Number; //AddDetailSectionHdr(ref table, labelFont, normalFont); } } // ======================================================= // Contract Number Line // ======================================================= PdfReports.AddText2Table(table, "Contract", labelFont, "left"); PdfReports.AddText2Table(table, item.i_ContractNumber.ToString(), labelFont, "center"); PdfReports.AddText2Table(table, " ", normalFont); PdfReports.AddText2Table(table, item.d_Avg_SLM.ToString("N4"), normalFont, "right"); PdfReports.AddText2Table(table, " ", normalFont, 3); PdfReports.AddText2Table(table, item.d_EH_Bonus.ToString("N2"), normalFont, "right", 2); totalEHPrem += item.d_EH_Bonus; PdfReports.AddText2Table(table, " ", normalFont, 4); // ======================================================= // Station Name Line // ======================================================= PdfReports.AddText2Table(table, "Station", normalFont); PdfReports.AddText2Table(table, item.s_Station_Name, normalFont, "center"); PdfReports.AddText2Table(table, "EH", normalFont, "center"); PdfReports.AddText2Table(table, item.d_EH_SLM.ToString("N4"), normalFont, "right"); PdfReports.AddText2Table(table, item.d_EH_Sugar.ToString("N2"), normalFont, "right"); PdfReports.AddText2Table(table, item.d_EH_Paid.ToString("N3"), normalFont, "right"); PdfReports.AddText2Table(table, item.d_EH_Price.ToString("N3"), normalFont, "right"); PdfReports.AddText2Table(table, (item.d_EH_Tons - item.d_EH_tons_moved).ToString("N4"), normalFont, "right"); totalTons += item.d_EH_Tons; PdfReports.AddText2Table(table, " ", normalFont); PdfReports.AddText2Table(table, (item.d_EH_Gross_Pay - item.d_EH_amt_moved).ToString("N2"), normalFont, "right"); totalGross += item.d_EH_Gross_Pay; PdfReports.AddText2Table(table, " ", normalFont, 3); // ======================================================= // Landowner Name Line // ======================================================= PdfReports.AddText2Table(table, "LO", normalFont); PdfReports.AddText2Table(table, item.s_LOName, normalFont, "center"); PdfReports.AddText2Table(table, "RH", normalFont, "center"); PdfReports.AddText2Table(table, item.d_RH_SLM.ToString("N4"), normalFont, "right"); PdfReports.AddText2Table(table, item.d_RH_Sugar.ToString("N2"), normalFont, "right"); PdfReports.AddText2Table(table, item.d_RH_Paid.ToString("N3"), normalFont, "right"); PdfReports.AddText2Table(table, item.d_RH_Price.ToString("N3"), normalFont, "right"); PdfReports.AddText2Table(table, (item.d_RH_Tons - item.d_RH_tons_moved).ToString("N4"), normalFont, "right"); totalTons += item.d_RH_Tons; PdfReports.AddText2Table(table, " ", normalFont); PdfReports.AddText2Table(table, (item.d_RH_Gross_Pay - item.d_RH_amt_moved).ToString("N2"), normalFont, "right"); totalGross += item.d_RH_Gross_Pay; PdfReports.AddText2Table(table, item.d_Deduct_Total.ToString("N2"), normalFont, "right"); totalDeductions += item.d_Deduct_Total; PdfReports.AddText2Table(table, (item.d_Total_Net - item.d_EH_amt_moved - item.d_RH_amt_moved).ToString("N2"), normalFont, "right"); totalNet += item.d_Total_Net; PdfReports.AddText2Table(table, " ", normalFont); // ======================================================= // Reduced for Excess Beets // ======================================================= // Reduced Early Harvest PdfReports.AddText2Table(table, "Reduced Early Harvest Excess Beets", normalFont, 3); PdfReports.AddText2Table(table, " ", normalFont, "right"); PdfReports.AddText2Table(table, " ", normalFont, "right"); PdfReports.AddText2Table(table, " ", normalFont, "right"); PdfReports.AddText2Table(table, " ", normalFont, "right"); PdfReports.AddText2Table(table, item.d_EH_tons_moved.ToString("#,#.0000;(#,#.0000)"), normalFont, "right"); //totalTons += item.d_RH_Tons; PdfReports.AddText2Table(table, " ", normalFont); PdfReports.AddText2Table(table, item.d_EH_amt_moved.ToString("#,#.00;(#,#.00)"), normalFont, "right"); //totalGross += item.d_RH_Gross_Pay; PdfReports.AddText2Table(table, " ", normalFont, "right"); //totalDeductions += item.d_Deduct_Total; PdfReports.AddText2Table(table, item.d_EH_amt_moved.ToString("#,#.00;(#,#.00)"), normalFont, "right"); //totalNet += item.d_Total_Net; PdfReports.AddText2Table(table, " ", normalFont); // Reduced Regular Harvest PdfReports.AddText2Table(table, "Reduced Regular Harvest Excess Beets", normalFont, 3); PdfReports.AddText2Table(table, " ", normalFont, "right"); PdfReports.AddText2Table(table, " ", normalFont, "right"); PdfReports.AddText2Table(table, " ", normalFont, "right"); PdfReports.AddText2Table(table, " ", normalFont, "right"); PdfReports.AddText2Table(table, item.d_RH_tons_moved.ToString("#,#.0000;(#,#.0000)"), normalFont, "right"); //totalTons += item.d_RH_Tons; PdfReports.AddText2Table(table, " ", normalFont); PdfReports.AddText2Table(table, item.d_RH_amt_moved.ToString("#,#.00;(#,#.00)"), normalFont, "right"); //totalGross += item.d_RH_Gross_Pay; PdfReports.AddText2Table(table, " ", normalFont, "right"); //totalDeductions += item.d_Deduct_Total; PdfReports.AddText2Table(table, item.d_RH_amt_moved.ToString("#,#.00;(#,#.00)"), normalFont, "right"); //totalNet += item.d_Total_Net; PdfReports.AddText2Table(table, " ", normalFont); // ======================================================= // Grower / Landowner NET Split // ======================================================= PdfReports.AddText2Table(table, " ", normalFont, 9); PdfReports.AddText2Table(table, "Grower Net", labelFont, 2); totalGrowerNet += item.d_groAmount; PdfReports.AddText2Table(table, item.d_groAmount.ToString("N2"), normalFont, "right"); PdfReports.AddText2Table(table, " ", normalFont); PdfReports.AddText2Table(table, " ", normalFont, 9); PdfReports.AddText2Table(table, "Landowner Net", labelFont, 2); totalLandownerNet += item.d_ldoAmount; PdfReports.AddText2Table(table, item.d_ldoAmount.ToString("N2"), normalFont, "right"); PdfReports.AddText2Table(table, " ", normalFont); // BLANK LINE PdfReports.AddText2Table(table, " ", normalFont, 13); pgEvent.HeaderTableLayout = _primaryTableLayout; PdfReports.AddTableNoSplit(document, pgEvent, table); pgEvent.HeaderTableLayout = null; //================================================================ // Add Deduction information //================================================================ table = PdfReports.CreateTable(_primaryTableLayout, 1); PdfReports.AddText2Table(table, " ", labelFont, 4); PdfReports.AddText2Table(table, "Deduction", labelFont, "left", 4); PdfReports.AddText2Table(table, "Payment", labelFont, "left", 2); PdfReports.AddText2Table(table, "Amount", labelFont, "center"); PdfReports.AddText2Table(table, " ", labelFont, 2); var contractDeductions = from deduction in deductionList where deduction.Contract_Number == item.i_ContractNumber && deduction.Payment_Number <= item.i_PaymentNumber orderby deduction.Payment_Number, deduction.Deduction_Number select deduction; foreach (TransDeductionListItem dedItem in contractDeductions) { if (dedItem.Amount != 0) { PdfReports.AddText2Table(table, " ", labelFont, 4); PdfReports.AddText2Table(table, dedItem.Deduction_Desc, normalFont, "left", 4); PdfReports.AddText2Table(table, dedItem.Payment_Description, normalFont, "left", 2); PdfReports.AddText2Table(table, dedItem.Amount.ToString("$#,##0.00"), normalFont, "right"); PdfReports.AddText2Table(table, " ", labelFont, 2); } } PdfReports.AddText2Table(table, " ", normalFont, 13); } // BLANK LINE PdfReports.AddText2Table(table, " ", normalFont, 13); PdfReports.AddTableNoSplit(document, pgEvent, table); table = PdfReports.CreateTable(_primaryTableLayout, 1); // ====================================================== // Close document // ====================================================== if (document != null) { table = PdfReports.CreateTable(_primaryTableLayout, 1); AddTotals(ref writer, ref document, ref table, labelFont, normalFont, totalTons, totalEHPrem, totalGross, totalDeductions, totalNet, checkAmount, payeeNumber, totalGrowerNet, totalLandownerNet, pgEvent); AddFooter(ref writer, ref document, normalFont, rptFooter, pgEvent); pgEvent.IsDocumentClosing = true; document.Close(); document = null; } if (writer == null) { // Warn that we have no data. WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("No records matched your report criteria."); throw (warn); } } catch (Exception ex) { string errMsg = "document is null: " + (document == null).ToString() + "; " + "writer is null: " + (writer == null).ToString(); WSCIEMP.Common.CException wscex = new WSCIEMP.Common.CException(METHOD_NAME + errMsg, ex); throw (wscex); } finally { if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); } if (writer != null) { writer.Close(); } } }
private static void ReportBuilder(int cropYear, ArrayList shidList, string busName, ArrayList growerPerformanceList, ArrayList regionCodeList, ArrayList areaCodeList, ArrayList regionNameList, ArrayList areaNameList, string logoUrl, string filePath, System.IO.FileStream fs) { const string METHOD_NAME = "ReportBuilder: "; const string CharBlank = " "; const string CharAffirm = "X"; Document document = null; PdfWriter writer = null; PdfPTable table = null; ShareholderSummaryEvent pgEvent = null; iTextSharp.text.Image imgLogo = null; int iShid = 0; string areaCode = ""; string regionCode = ""; string regionName = ""; string areaName = ""; int growerPerformanceID = 0; string rptTitle = "Western Sugar Cooperative\nShareholder Summary for " + cropYear.ToString() + " Crop Year"; string okFertility = ""; string okIrrigation = ""; string okStand = ""; string okWeed = ""; string okDisease = ""; string okVariety = ""; string descFertility = ""; string descIrrigation = ""; string descStand = ""; string descWeed = ""; string descDisease = ""; string descVariety = ""; // Build the contract information. try { for (int j = 0; j < shidList.Count; j++) { string shid = shidList[j].ToString(); iShid = Convert.ToInt32(shid); if (growerPerformanceList.Count == 0) { busName = ""; using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BeetConn"].ToString())) { using (SqlDataReader dr = WSCField.SharholderSummaryGetAreas(conn, cropYear, iShid)) { while (dr.Read()) { growerPerformanceList.Add(dr["GrowerPerformanceID"].ToString()); regionCodeList.Add(dr["RegionCode"].ToString()); areaCodeList.Add(dr["AreaCode"].ToString()); regionNameList.Add(dr["RegionName"].ToString()); areaNameList.Add(dr["AreaName"].ToString()); if (busName.Length == 0) { busName = dr["BusName"].ToString(); } } } } } // --------------------------------------------------------------------------------------------------------- // Given all of the pieces, crop year, shid, growerPerformanceID, region, and area, generate the report // --------------------------------------------------------------------------------------------------------- if (areaCodeList.Count > 0) { for (int i = 0; i < areaCodeList.Count; i++) { growerPerformanceID = Convert.ToInt32(growerPerformanceList[i]); regionCode = regionCodeList[i].ToString(); areaCode = areaCodeList[i].ToString(); regionName = regionNameList[i].ToString(); areaName = areaNameList[i].ToString(); // ------------------------------------------------ // Collect the data: Get the report card. // ------------------------------------------------ using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BeetConn"].ToString())) { using (SqlDataReader dr = WSCField.GrowerAdviceGetBySHID(conn, growerPerformanceID)) { if (dr.Read()) { //busName = dr["gadBusinessName"].ToString(); okFertility = dr["gadGoodFertilityManagement"].ToString(); okIrrigation = dr["gadGoodIrrigationManagement"].ToString(); okStand = dr["gadGoodStandEstablishment"].ToString(); okWeed = dr["gadGoodWeedControl"].ToString(); okDisease = dr["gadGoodDiseaseControl"].ToString(); okVariety = dr["gadGoodVarietySelection"].ToString(); descFertility = dr["gadTextFertilityManagement"].ToString(); descIrrigation = dr["gadTextIrrigationManagement"].ToString(); descStand = dr["gadTextStandEstablishment"].ToString(); descWeed = dr["gadTextWeedControl"].ToString(); descDisease = dr["gadTextDiseaseControl"].ToString(); descVariety = dr["gadTextVarietySelection"].ToString(); } else { //busName = ""; okFertility = ""; okIrrigation = ""; okStand = ""; okWeed = ""; okDisease = ""; okVariety = ""; descFertility = ""; descIrrigation = ""; descStand = ""; descWeed = ""; descDisease = ""; descVariety = ""; } } } if (document == null) { // IF YOU CHANGE MARGINS, CHANGE YOUR TABLE LAYOUTS !!! // *** US LETTER: 612 X 792 *** //document = new Document(iTextSharp.text.PageSize.LETTER, 36, 36, 54, 72); document = new Document(PortraitPageSize.PgPageSize, PortraitPageSize.PgLeftMargin, PortraitPageSize.PgRightMargin, PortraitPageSize.PgTopMargin, PortraitPageSize.PgBottomMargin); // we create a writer that listens to the document // and directs a PDF-stream to a file writer = PdfWriter.GetInstance(document, fs); imgLogo = PdfReports.GetImage(logoUrl, 127, 50, iTextSharp.text.Element.ALIGN_CENTER); // Attach my override event handler(s) //busName = dr["Business Name"].ToString(); pgEvent = new ShareholderSummaryEvent(); pgEvent.FillEvent(cropYear, shid, busName, rptTitle, regionName, areaName, imgLogo); writer.PageEvent = pgEvent; // Open the document document.Open(); } else { // everytime thru kick out a new page because we're on a different shid/region/area combination. pgEvent.FillEvent(cropYear, shid, busName, rptTitle, regionName, areaName, imgLogo); document.NewPage(); } // ----------------------------------------------------- // Create the report card // ----------------------------------------------------- table = PdfReports.CreateTable(_adviceTableLayout, 1); Color borderColor = Color.BLACK; //new Color(255, 0, 0); float borderWidth = 1.0F; int borderTypeAll = Rectangle.TOP_BORDER | Rectangle.RIGHT_BORDER | Rectangle.BOTTOM_BORDER | Rectangle.LEFT_BORDER; float fPadding = 3; // HEADER iTextSharp.text.pdf.PdfPCell cell = PdfReports.AddText2Cell("Okay", _labelFont, PdfPCell.ALIGN_CENTER, PdfPCell.ALIGN_BOTTOM, fPadding, borderWidth, borderTypeAll, borderColor); table.AddCell(cell); cell = PdfReports.AddText2Cell("Opportunity\nfor\nImprovement", _labelFont, PdfPCell.ALIGN_CENTER, PdfPCell.ALIGN_BOTTOM, fPadding, borderWidth, borderTypeAll, borderColor); table.AddCell(cell); cell = PdfReports.AddText2Cell("Big Six Growing Practices", _labelFont, PdfPCell.ALIGN_CENTER, PdfPCell.ALIGN_BOTTOM, fPadding, borderWidth, borderTypeAll, borderColor); table.AddCell(cell); /// ---------------------------------------- // TBODY /// ---------------------------------------- // Fertility cell = PdfReports.AddText2Cell((okFertility == "Y" ? CharAffirm : CharBlank), _labelFont, PdfPCell.ALIGN_CENTER, PdfPCell.ALIGN_BOTTOM, fPadding, borderWidth, borderTypeAll, borderColor); table.AddCell(cell); cell = PdfReports.AddText2Cell((okFertility == "N" ? CharAffirm : CharBlank), _labelFont, PdfPCell.ALIGN_CENTER, PdfPCell.ALIGN_BOTTOM, fPadding, borderWidth, borderTypeAll, borderColor); table.AddCell(cell); cell = PdfReports.AddText2Cell("Fertility Management", _labelFont, PdfPCell.ALIGN_LEFT, PdfPCell.ALIGN_BOTTOM, fPadding, borderWidth, borderTypeAll, borderColor); table.AddCell(cell); // Irrigation cell = PdfReports.AddText2Cell((okIrrigation == "Y" ? CharAffirm : CharBlank), _labelFont, PdfPCell.ALIGN_CENTER, PdfPCell.ALIGN_BOTTOM, fPadding, borderWidth, borderTypeAll, borderColor); table.AddCell(cell); cell = PdfReports.AddText2Cell((okIrrigation == "N" ? CharAffirm : CharBlank), _labelFont, PdfPCell.ALIGN_CENTER, PdfPCell.ALIGN_BOTTOM, fPadding, borderWidth, borderTypeAll, borderColor); table.AddCell(cell); cell = PdfReports.AddText2Cell("Irrigation Water Management", _labelFont, PdfPCell.ALIGN_LEFT, PdfPCell.ALIGN_BOTTOM, fPadding, borderWidth, borderTypeAll, borderColor); table.AddCell(cell); // Stand cell = PdfReports.AddText2Cell((okStand == "Y" ? CharAffirm : CharBlank), _labelFont, PdfPCell.ALIGN_CENTER, PdfPCell.ALIGN_BOTTOM, fPadding, borderWidth, borderTypeAll, borderColor); table.AddCell(cell); cell = PdfReports.AddText2Cell((okStand == "N" ? CharAffirm : CharBlank), _labelFont, PdfPCell.ALIGN_CENTER, PdfPCell.ALIGN_BOTTOM, fPadding, borderWidth, borderTypeAll, borderColor); table.AddCell(cell); cell = PdfReports.AddText2Cell("Stand Establishment (Harvest Plant Population)", _labelFont, PdfPCell.ALIGN_LEFT, PdfPCell.ALIGN_BOTTOM, fPadding, borderWidth, borderTypeAll, borderColor); table.AddCell(cell); // Weed cell = PdfReports.AddText2Cell((okWeed == "Y" ? CharAffirm : CharBlank), _labelFont, PdfPCell.ALIGN_CENTER, PdfPCell.ALIGN_BOTTOM, fPadding, borderWidth, borderTypeAll, borderColor); table.AddCell(cell); cell = PdfReports.AddText2Cell((okWeed == "N" ? CharAffirm : CharBlank), _labelFont, PdfPCell.ALIGN_CENTER, PdfPCell.ALIGN_BOTTOM, fPadding, borderWidth, borderTypeAll, borderColor); table.AddCell(cell); cell = PdfReports.AddText2Cell("Weed Control", _labelFont, PdfPCell.ALIGN_LEFT, PdfPCell.ALIGN_BOTTOM, fPadding, borderWidth, borderTypeAll, borderColor); table.AddCell(cell); // Disease cell = PdfReports.AddText2Cell((okDisease == "Y" ? CharAffirm : CharBlank), _labelFont, PdfPCell.ALIGN_CENTER, PdfPCell.ALIGN_BOTTOM, fPadding, borderWidth, borderTypeAll, borderColor); table.AddCell(cell); cell = PdfReports.AddText2Cell((okDisease == "N" ? CharAffirm : CharBlank), _labelFont, PdfPCell.ALIGN_CENTER, PdfPCell.ALIGN_BOTTOM, fPadding, borderWidth, borderTypeAll, borderColor); table.AddCell(cell); cell = PdfReports.AddText2Cell("Disease & Insect Control", _labelFont, PdfPCell.ALIGN_LEFT, PdfPCell.ALIGN_BOTTOM, fPadding, borderWidth, borderTypeAll, borderColor); table.AddCell(cell); // Varitey cell = PdfReports.AddText2Cell((okVariety == "Y" ? CharAffirm : CharBlank), _labelFont, PdfPCell.ALIGN_CENTER, PdfPCell.ALIGN_BOTTOM, fPadding, borderWidth, borderTypeAll, borderColor); table.AddCell(cell); cell = PdfReports.AddText2Cell((okVariety == "N" ? CharAffirm : CharBlank), _labelFont, PdfPCell.ALIGN_CENTER, PdfPCell.ALIGN_BOTTOM, fPadding, borderWidth, borderTypeAll, borderColor); table.AddCell(cell); cell = PdfReports.AddText2Cell("Proper Variety Selection", _labelFont, PdfPCell.ALIGN_LEFT, PdfPCell.ALIGN_BOTTOM, fPadding, borderWidth, borderTypeAll, borderColor); table.AddCell(cell); PdfReports.AddText2Table(table, " ", _normalFont, 3); PdfReports.AddTableNoSplit(document, pgEvent, table); // ========================================================== // Recommendations for Improvement. // ========================================================== table = PdfReports.CreateTable(_adviceTableLayout, 1); // Caption iTextSharp.text.Phrase phrase = new iTextSharp.text.Phrase("Recommendations for Improvement", _labelFont); cell = new iTextSharp.text.pdf.PdfPCell(phrase); cell.Colspan = 3; cell.HorizontalAlignment = PdfPCell.ALIGN_LEFT; cell.VerticalAlignment = PdfPCell.ALIGN_BOTTOM; cell.Padding = fPadding; cell.BorderWidth = borderWidth; cell.Border = Rectangle.TOP_BORDER | Rectangle.RIGHT_BORDER | Rectangle.LEFT_BORDER; cell.BorderColor = borderColor; table.AddCell(cell); // Content phrase = new iTextSharp.text.Phrase((descFertility.Length > 0 ? descFertility + "\n\n" : "") + (descIrrigation.Length > 0 ? descIrrigation + "\n\n" : "") + (descStand.Length > 0 ? descStand + "\n\n" : "") + (descWeed.Length > 0 ? descWeed + "\n\n" : "") + (descDisease.Length > 0 ? descDisease + "\n\n" : "") + (descVariety.Length > 0 ? descVariety + "\n\n" : ""), _normalFont); cell = new iTextSharp.text.pdf.PdfPCell(phrase); cell.Colspan = 3; cell.HorizontalAlignment = PdfPCell.ALIGN_LEFT; cell.VerticalAlignment = PdfPCell.ALIGN_BOTTOM; cell.Padding = fPadding; cell.BorderWidth = borderWidth; cell.Border = Rectangle.RIGHT_BORDER | Rectangle.BOTTOM_BORDER | Rectangle.LEFT_BORDER; cell.BorderColor = borderColor; table.AddCell(cell); PdfReports.AddText2Table(table, " ", _normalFont, table.NumberOfColumns); PdfReports.AddText2Table(table, " ", _normalFont, table.NumberOfColumns); PdfReports.AddTableNoSplit(document, pgEvent, table); // ------------------------------------------------ // Create the contract dump. // ------------------------------------------------ ArrayList cntPerfs; using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BeetConn"].ToString())) { cntPerfs = WSCField.ShareholderSummaryContracts(conn, iShid, cropYear, regionCode, areaCode); } // ======================================= // HEADER // ======================================= table = PdfReports.CreateTable(_contractTableLayout, 0); pgEvent.BuildContractDumpHeader(document, _contractTableLayout); pgEvent.ContractTableLayout = _contractTableLayout; // DATA for (int k = 0; k < cntPerfs.Count; k++) { ContractPerformanceState perf = (ContractPerformanceState)cntPerfs[k]; switch (perf.RowType) { case 1: table = PdfReports.CreateTable(_contractTableLayout, 0); PdfReports.AddText2Table(table, perf.ContractNumber, _normalFont, "center"); PdfReports.AddText2Table(table, perf.ContractStation, _normalFont); PdfReports.AddText2Table(table, perf.FieldDescription, _normalFont); PdfReports.AddText2Table(table, perf.LandownerName, _normalFont); PdfReports.AddText2Table(table, perf.HarvestFinalNetTons, _normalFont, "right"); PdfReports.AddText2Table(table, perf.TonsPerAcre, _normalFont, "center"); PdfReports.AddText2Table(table, perf.HarvestSugarPct, _normalFont, "center"); PdfReports.AddText2Table(table, perf.HarvestTarePct, _normalFont, "center"); PdfReports.AddText2Table(table, perf.HarvestSLMPct, _normalFont, "center"); PdfReports.AddText2Table(table, perf.HarvestExtractableSugar, _normalFont, "center"); PdfReports.AddText2Table(table, perf.BeetsPerAcre, _normalFont, "center"); PdfReports.AddTableNoSplit(document, pgEvent, table); break; case 2: table = PdfReports.CreateTable(_contractTableLayout, 0); PdfReports.AddText2Table(table, " ", _normalFont, _contractTableLayout.Length); PdfReports.AddText2Table(table, " ", _normalFont); PdfReports.AddText2Table(table, "Overall Average", _labelFont, 3); PdfReports.AddText2Table(table, perf.HarvestFinalNetTons, _normalFont, "right"); PdfReports.AddText2Table(table, perf.TonsPerAcre, _normalFont, "center"); PdfReports.AddText2Table(table, perf.HarvestSugarPct, _normalFont, "center"); PdfReports.AddText2Table(table, perf.HarvestTarePct, _normalFont, "center"); PdfReports.AddText2Table(table, perf.HarvestSLMPct, _normalFont, "center"); PdfReports.AddText2Table(table, perf.HarvestExtractableSugar, _normalFont, "center"); PdfReports.AddText2Table(table, perf.BeetsPerAcre, _normalFont, "center"); break; case 3: PdfReports.AddText2Table(table, " ", _normalFont); PdfReports.AddText2Table(table, "Top 20% Area Average", _labelFont, 4); PdfReports.AddText2Table(table, perf.TonsPerAcre, _normalFont, "center"); PdfReports.AddText2Table(table, perf.HarvestSugarPct, _normalFont, "center"); PdfReports.AddText2Table(table, perf.HarvestTarePct, _normalFont, "center"); PdfReports.AddText2Table(table, perf.HarvestSLMPct, _normalFont, "center"); PdfReports.AddText2Table(table, perf.HarvestExtractableSugar, _normalFont, "center"); PdfReports.AddText2Table(table, perf.BeetsPerAcre, _normalFont, "center"); break; case 4: PdfReports.AddText2Table(table, " ", _normalFont); PdfReports.AddText2Table(table, "Your Rankings", _labelFont, 10); PdfReports.AddText2Table(table, " ", _normalFont); PdfReports.AddText2Table(table, areaName, _labelFont, 4); PdfReports.AddText2Table(table, perf.TonsPerAcre, _normalFont, "center"); PdfReports.AddText2Table(table, perf.HarvestSugarPct, _normalFont, "center"); PdfReports.AddText2Table(table, perf.HarvestTarePct, _normalFont, "center"); PdfReports.AddText2Table(table, perf.HarvestSLMPct, _normalFont, "center"); PdfReports.AddText2Table(table, perf.HarvestExtractableSugar, _normalFont, "center"); PdfReports.AddText2Table(table, perf.BeetsPerAcre, _normalFont, "center"); break; case 5: PdfReports.AddText2Table(table, " ", _normalFont); PdfReports.AddText2Table(table, regionName, _labelFont, 4); PdfReports.AddText2Table(table, perf.TonsPerAcre, _normalFont, "center"); PdfReports.AddText2Table(table, perf.HarvestSugarPct, _normalFont, "center"); PdfReports.AddText2Table(table, perf.HarvestTarePct, _normalFont, "center"); PdfReports.AddText2Table(table, perf.HarvestSLMPct, _normalFont, "center"); PdfReports.AddText2Table(table, perf.HarvestExtractableSugar, _normalFont, "center"); PdfReports.AddText2Table(table, perf.BeetsPerAcre, _normalFont, "center"); PdfReports.AddTableNoSplit(document, pgEvent, table); break; } } pgEvent.ContractTableLayout = null; } } // -------------------------------------------- // -------- reset for next iteration -------- // -------------------------------------------- growerPerformanceList.Clear(); regionCodeList.Clear(); areaCodeList.Clear(); regionNameList.Clear(); areaNameList.Clear(); } // ====================================================== // Close document // ====================================================== if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); document = null; } if (writer == null) { // Warn that we have no data. WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("No records matched your report criteria."); throw (warn); } } catch (Exception ex) { string errMsg = "document is null: " + (document == null).ToString() + "; " + "writer is null: " + (writer == null).ToString(); WSCIEMP.Common.CException wscex = new WSCIEMP.Common.CException(MOD_NAME + METHOD_NAME + errMsg, ex); throw (wscex); } finally { if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); } if (writer != null) { writer.Close(); } } }
private void ReportBuilder(SqlDataReader dr, int cropYear, DateTime reportDate, string logoUrl, System.IO.FileStream fs) { const string METHOD_NAME = "ReportBuilder: "; int contractNumber = 0; int groSHID = 0; int lastGroSHID = 0; Document document = null; PdfWriter writer = null; PdfPTable table = null; iTextSharp.text.Image imgLogo = null; ContractPayeeSummaryEvent pgEvent = null; string rptTitle = "Western Sugar Cooperative\n" + "Contract Payee Summary\n" + "Crop Year " + cropYear; try { while (dr.Read()) { contractNumber = Convert.ToInt32(dr.GetString(dr.GetOrdinal("ContractNumber"))); groSHID = Convert.ToInt32(dr.GetString(dr.GetOrdinal("GroAdrNumber"))); if (document == null) { lastGroSHID = groSHID; // IF YOU CHANGE MARGINS, CHANGE YOUR TABLE LAYOUTS !!! // *** US LETTER: 612 X 792 *** document = new Document(PortraitPageSize.PgPageSize, PortraitPageSize.PgLeftMargin, PortraitPageSize.PgRightMargin, PortraitPageSize.PgTopMargin, PortraitPageSize.PgBottomMargin); // we create a writer that listens to the document // and directs a PDF-stream to a file writer = PdfWriter.GetInstance(document, fs); imgLogo = PdfReports.GetImage(logoUrl, 127, 50, iTextSharp.text.Element.ALIGN_CENTER); // Attach my override event handler(s) pgEvent = new ContractPayeeSummaryEvent(); pgEvent.FillEvent(dr, reportDate.ToShortDateString(), 0, rptTitle, imgLogo); writer.PageEvent = pgEvent; // Open the document document.Open(); } else { if (lastGroSHID != groSHID) { lastGroSHID = groSHID; pgEvent.FillEvent(dr, reportDate.ToShortDateString(), 0, rptTitle, imgLogo); document.NewPage(); } } // ======================================================= // Build Report // ======================================================= table = PdfReports.CreateTable(_primaryTableLayout, 0); Phrase phrase = new Phrase("Contract: ", _labelFont); Paragraph p = new Paragraph("", _normalFont); p.Add(phrase); phrase = new Phrase(dr.GetString(dr.GetOrdinal("ContractNumber")), _normalFont); p.Add(phrase); PdfReports.AddText2Table(table, p); phrase = new Phrase("Grower #: ", _labelFont); p = new Paragraph("", _normalFont); p.Add(phrase); phrase = new Phrase(dr.GetString(dr.GetOrdinal("GroAdrNumber")), _normalFont); p.Add(phrase); PdfReports.AddText2Table(table, p); phrase = new Phrase("Landowner #: ", _labelFont); p = new Paragraph("", _normalFont); p.Add(phrase); phrase = new Phrase(dr.GetString(dr.GetOrdinal("LdoAdrNumber")) + " - " + dr.GetString(dr.GetOrdinal("LandownerName")), _normalFont); p.Add(phrase); PdfReports.AddText2Table(table, p, 3); PdfReports.AddText2Table(table, "Factory", _labelFont); PdfReports.AddText2Table(table, "Station", _labelFont); PdfReports.AddText2Table(table, "Assoc Member", _labelFont); PdfReports.AddText2Table(table, "LO Name on Check", _labelFont); PdfReports.AddText2Table(table, "Pac Dues", _labelFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("FactoryName")), _normalFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("StationName")), _normalFont); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("AssocMember")), _normalFont, "center"); PdfReports.AddText2Table(table, dr.GetString(dr.GetOrdinal("CashRent")), _normalFont, "center"); PdfReports.AddText2Table(table, "$" + dr.GetDecimal(dr.GetOrdinal("PacDues")).ToString("0.00"), _normalFont); // Add Payee information ShowPayeeInformation(table, contractNumber, cropYear, dr.GetBoolean(dr.GetOrdinal("SplitRetain")), dr.GetBoolean(dr.GetOrdinal("SplitChemical"))); ShowAcreage(table, dr.GetInt16(dr.GetOrdinal("ContractAcres")), dr.GetInt16(dr.GetOrdinal("PlantedAcres")), dr.GetInt16(dr.GetOrdinal("AcresLost")), dr.GetInt16(dr.GetOrdinal("HarvestAcres"))); PdfReports.AddText2Table(table, " ", _normalFont, _primaryTableLayout.Length); PdfReports.AddText2Table(table, " ", _normalFont, _primaryTableLayout.Length); PdfReports.AddTableNoSplit(document, pgEvent, table); } // ====================================================== // Close document // ====================================================== if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); document = null; } if (writer == null) { // Warn that we have no data. WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("No records matched your report criteria."); throw (warn); } } catch (Exception ex) { string errMsg = "document is null: " + (document == null).ToString() + "; " + "writer is null: " + (writer == null).ToString(); WSCIEMP.Common.CException wscex = new WSCIEMP.Common.CException(METHOD_NAME + errMsg, ex); throw (wscex); } finally { if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); } if (writer != null) { writer.Close(); } } }
private static void ReportBuilder(int shid, int cropYear, int calYear, string logoUrl, FileStream fs) { const string METHOD_NAME = "rptBeetPaymentBreakdown.ReportBuilder: "; Document document = null; PdfWriter writer = null; PdfPTable table = null; BeetPaymentBreakdownEvent pgEvent = null; iTextSharp.text.Image imgLogo = null; int curShid = 0; int lastShid = 0; decimal grossAmt = 0; decimal netAmt = 0; string rptTitle = "Western Sugar Cooperative Beet Payments by Year"; Font headerFont = FontFactory.GetFont("HELVETICA", 8F, Font.NORMAL); Font normalFont = FontFactory.GetFont("HELVETICA", 8F, Font.NORMAL); Font labelFont = FontFactory.GetFont("HELVETICA", 8F, Font.BOLD); try { List <BeetPaymentListItem> stateList = WSCPayment.RptBeetPayBreakdown(ConfigurationManager.ConnectionStrings["BeetConn"].ToString(), shid, cropYear, calYear); foreach (BeetPaymentListItem item in stateList) { curShid = item.SHID; if (document == null) { // IF YOU CHANGE MARGINS, CHANGE YOUR TABLE LAYOUTS !!! // *** US LETTER: 612 X 792 *** //document = new Document(iTextSharp.text.PageSize.LETTER, 36, 36, 54, 72); document = new Document(PortraitPageSize.PgPageSize, PortraitPageSize.PgLeftMargin, PortraitPageSize.PgRightMargin, PortraitPageSize.PgTopMargin, PortraitPageSize.PgBottomMargin); // we create a writer that listens to the document // and directs a PDF-stream to a file writer = PdfWriter.GetInstance(document, fs); imgLogo = PdfReports.GetImage(logoUrl, 127, 50, iTextSharp.text.Element.ALIGN_CENTER); lastShid = curShid; grossAmt = 0; netAmt = 0; // Attach my override event handler(s) pgEvent = new BeetPaymentBreakdownEvent(); pgEvent.FillEvent(_primaryTableLayout, _hdrNames, curShid, item.PayeeName, rptTitle, imgLogo); writer.PageEvent = pgEvent; // Open the document document.Open(); table = PdfReports.CreateTable(_primaryTableLayout, 1); } if (curShid != lastShid) { // BLANK LINE PdfReports.AddText2Table(table, " ", normalFont, "center", 5); PdfReports.AddText2Table(table, grossAmt.ToString("c2"), labelFont, "right"); PdfReports.AddText2Table(table, netAmt.ToString("c2"), labelFont, "right"); PdfReports.AddText2Table(table, " ", normalFont, 13); PdfReports.AddTableNoSplit(document, pgEvent, table); lastShid = curShid; grossAmt = 0; netAmt = 0; pgEvent.FillEvent(_primaryTableLayout, _hdrNames, curShid, item.PayeeName, rptTitle, imgLogo); document.NewPage(); table = PdfReports.CreateTable(_primaryTableLayout, 1); } PdfReports.AddText2Table(table, item.CalendarYear.ToString(), normalFont, "center"); PdfReports.AddText2Table(table, item.CropYear.ToString(), normalFont, "center"); PdfReports.AddText2Table(table, item.PaymentNumber.ToString("N0"), normalFont, "center"); PdfReports.AddText2Table(table, item.PaymentDescription, normalFont, "left"); PdfReports.AddText2Table(table, item.TransmittalDate.ToString("MM/dd/yyyy"), normalFont, "center"); PdfReports.AddText2Table(table, item.GrossDollars.ToString("c2"), normalFont, "right"); PdfReports.AddText2Table(table, item.PaymentAmount.ToString("c2"), normalFont, "right"); grossAmt += item.GrossDollars; netAmt += item.PaymentAmount; } if (document != null) { // BLANK LINE PdfReports.AddText2Table(table, " ", normalFont, "center", 5); PdfReports.AddText2Table(table, grossAmt.ToString("c2"), labelFont, "right"); PdfReports.AddText2Table(table, netAmt.ToString("c2"), labelFont, "right"); PdfReports.AddText2Table(table, " ", normalFont, 13); PdfReports.AddTableNoSplit(document, pgEvent, table); } // ====================================================== // Close document // ====================================================== if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); document = null; } if (writer == null) { // Warn that we have no data. WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("No records matched your report criteria."); throw (warn); } } catch (Exception ex) { string errMsg = "document is null: " + (document == null).ToString() + "; " + "writer is null: " + (writer == null).ToString(); WSCIEMP.Common.CException wscex = new WSCIEMP.Common.CException(METHOD_NAME + errMsg, ex); throw (wscex); } finally { if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); } if (writer != null) { writer.Close(); } } }
private static void ReportBuilder(int cropYear, DateTime fromDate, DateTime toDate, string shid, string filePath, string logoUrl, System.IO.FileStream fs) { const string METHOD_NAME = "ReportBuilder: "; string lastPayee = ""; decimal subTotalPayAmt; decimal subTotalNinetySixPct; decimal subTotalFirstNetTons; string rptTitle = cropYear.ToString() + " Direct Deliveries"; Document document = null; PdfWriter writer = null; PdfPTable detailTable = null; PdfPTable bodyTable = null; iTextSharp.text.Image imgLogo = null; DirectDeliveryStatementEvent pgEvent = null; try { List <ListDirectDeliveryStatementItem> stateList = RptDirectDeliveryStatementData(cropYear, fromDate, toDate, shid); for (int i = 0; i < stateList.Count; i++) { ListDirectDeliveryStatementItem state = stateList[i]; if (document == null) { lastPayee = state.Payee; CalcSubTotals(stateList, i, out subTotalFirstNetTons, out subTotalNinetySixPct, out subTotalPayAmt); // IF YOU CHANGE MARGINS, CHANGE YOUR TABLE LAYOUTS !!! // *** US LETTER: 612 X 792 *** document = new Document(PortraitPageSize.PgPageSize, PortraitPageSize.PgLeftMargin, PortraitPageSize.PgRightMargin, PortraitPageSize.PgTopMargin, PortraitPageSize.PgBottomMargin); // we create a writer that listens to the document // and directs a PDF-stream to a file writer = PdfWriter.GetInstance(document, fs); imgLogo = PdfReports.GetImage(logoUrl, 77, 45, iTextSharp.text.Element.ALIGN_CENTER); // Attach my override event handler(s) pgEvent = new DirectDeliveryStatementEvent(); pgEvent.FillEvent(state.Shid, state.BusinessName, state.AddrLine1, state.AddrLine2, state.CSZ, subTotalPayAmt, 0, rptTitle, imgLogo); writer.PageEvent = pgEvent; // Open the document document.Open(); bodyTable = PdfReports.CreateTable(_bodyTableLayout, 0); detailTable = PdfReports.CreateTable(_detailTableLayout, 0); AddBodyText(bodyTable, cropYear, fromDate.ToString(HEADER_DATE_FORMAT), toDate.ToString(HEADER_DATE_FORMAT), state.Payee); AddDetailTable(detailTable, stateList, i, subTotalFirstNetTons, subTotalNinetySixPct, subTotalPayAmt); PdfReports.AddTableNoSplit(document, pgEvent, bodyTable); PdfReports.AddTableNoSplit(document, pgEvent, detailTable); } if (lastPayee != state.Payee) { //------------------------------------------------------------------------------------- // When you change members, kick out the page and move on to the next member, // and reset flags. //------------------------------------------------------------------------------------- lastPayee = state.Payee; bodyTable = PdfReports.CreateTable(_bodyTableLayout, 0); detailTable = PdfReports.CreateTable(_detailTableLayout, 0); CalcSubTotals(stateList, i, out subTotalFirstNetTons, out subTotalNinetySixPct, out subTotalPayAmt); pgEvent.FillEvent(state.Shid, state.BusinessName, state.AddrLine1, state.AddrLine2, state.CSZ, subTotalPayAmt, 0, rptTitle, imgLogo); document.NewPage(); AddBodyText(bodyTable, cropYear, fromDate.ToString(HEADER_DATE_FORMAT), toDate.ToString(HEADER_DATE_FORMAT), state.Payee); AddDetailTable(detailTable, stateList, i, subTotalFirstNetTons, subTotalNinetySixPct, subTotalPayAmt); PdfReports.AddTableNoSplit(document, pgEvent, bodyTable); PdfReports.AddTableNoSplit(document, pgEvent, detailTable); } } // ====================================================== // Close document // ====================================================== if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); document = null; } if (writer == null) { // Warn that we have no data. WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("No records matched your report criteria."); throw (warn); } } catch (Exception ex) { string errMsg = "document is null: " + (document == null).ToString() + "; " + "writer is null: " + (writer == null).ToString(); WSCIEMP.Common.CException wscex = new WSCIEMP.Common.CException(METHOD_NAME + errMsg, ex); throw (wscex); } finally { if (document != null) { pgEvent.IsDocumentClosing = true; document.Close(); } if (writer != null) { writer.Close(); } } }