Esempio n. 1
0
        private static void ReportBuilder(int paymentCropYear, string filePath)
        {
            const string METHOD_NAME = "ReportBuilder";
            const string QUOTE       = "\"";

            try {
                using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BeetConn"].ToString())) {
                    List <List1099ExportItem> stateList = WSCPayment.GetBeet1099Export(paymentCropYear);

                    using (StreamWriter sw = new StreamWriter(filePath, false)) {
                        foreach (List1099ExportItem state in stateList)
                        {
                            //SHID, TaxID, Business Name, Address 1, Address 2, City, State, Zip, Dollars
                            sw.Write(QUOTE + state.SHID + QUOTE + ",");
                            sw.Write(QUOTE + state.TaxID + QUOTE + ",");
                            sw.Write(QUOTE + state.BusName + QUOTE + ",");
                            sw.Write(QUOTE + state.Address1 + QUOTE + ",");
                            sw.Write(QUOTE + state.Address2 + QUOTE + ",");
                            sw.Write(QUOTE + state.TaxCity + QUOTE + ",");
                            sw.Write(QUOTE + state.TaxState + QUOTE + ",");
                            sw.Write(QUOTE + state.TaxZip + QUOTE + ",");
                            sw.Write(QUOTE + state.TaxDollars + QUOTE + Environment.NewLine);
                        }

                        sw.Close();
                    }
                }
            }
            catch (Exception ex) {
                WSCIEMP.Common.CException wscex = new WSCIEMP.Common.CException(MOD_NAME + METHOD_NAME, ex);
                throw (wscex);
            }
        }
Esempio n. 2
0
 private void PaymentDescriptionSave(Label lblPayNum, DropDownList ddlFinished,
                                     DropDownList ddlRequired, TextBox txtTransmittalDate,
                                     TextBox txtPaymentDesc, TextBox txtPaymentDescID)
 {
     try {
         // validate data
         if (txtTransmittalDate.Text.Length > 0)
         {
             if (!Common.CodeLib.IsDate(txtTransmittalDate.Text))
             {
                 WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("If you enter a Transmittal Date for payment number " +
                                                                            lblPayNum.Text + ", it must be a valid date (mm/dd/yyyy).");
                 throw warn;
             }
         }
         WSCSecurity auth = Globals.SecurityState;
         WSCPayment.PaymentDescriptionSave(Int32.Parse(txtPaymentDescID.Text),
                                           Int32.Parse(lblPayNum.Text), _cropYear,
                                           txtPaymentDesc.Text,
                                           (Common.UILib.GetDropDownText(ddlRequired) == "Yes" ? true : false),
                                           (Common.UILib.GetDropDownText(ddlFinished) == "Yes" ? true : false),
                                           txtTransmittalDate.Text, auth.UserName);
     }
     catch (Exception ex) {
         Common.CException wex = new Common.CException("PaymentDescription.PaymentDescriptionSave", ex);
         throw (wex);
     }
 }
Esempio n. 3
0
        private void ShowPayeeInformation(PdfPTable table, int contractNumber, int cropYear, bool splitRetain, bool splitChemical)
        {
            const string METHOD_NAME = "rptContractPayeeSummary.ShowPayeeInformation";

            try {
                Paragraph p = new Paragraph("", _normalFont);

                using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BeetConn"].ToString())) {
                    using (SqlDataReader dr = WSCPayment.RptContractPayeeSummary2(conn, contractNumber, cropYear)) {
                        while (dr.Read())
                        {
                            if (dr.GetInt16(dr.GetOrdinal("PayeeNumber")) == 1)
                            {
                                Phrase phrase = new Phrase("1st Payee: ", _labelFont);
                                p.Add(phrase);
                                phrase = new Phrase(dr.GetString(dr.GetOrdinal("PayeeName")) + "\n", _normalFont);
                                p.Add(phrase);
                                phrase = new Phrase(dr.GetFloat(dr.GetOrdinal("SplitPercent")).ToString("##.0000") + "%" + "\n", _normalFont);
                                p.Add(phrase);
                                phrase = new Phrase("Mailed To: ", _labelFont);
                                p.Add(phrase);
                                phrase = new Phrase(dr.GetString(dr.GetOrdinal("AddressNumber")) + "  " + dr.GetString(dr.GetOrdinal("BusinessName")), _normalFont);
                                p.Add(phrase);

                                phrase = new Phrase("     Split Retains: ", _labelFont);
                                p.Add(phrase);
                                phrase = new Phrase((splitRetain ? "Y" : "N"), _normalFont);
                                p.Add(phrase);

                                phrase = new Phrase("     Split Chemicals: ", _labelFont);
                                p.Add(phrase);
                                phrase = new Phrase((splitChemical ? "Y" : "N") + "\n", _normalFont);
                                p.Add(phrase);
                            }
                            else
                            {
                                Phrase phrase = new Phrase("2nd Payee: ", _labelFont);
                                p.Add(phrase);
                                phrase = new Phrase(dr.GetString(dr.GetOrdinal("PayeeName")) + "\n", _normalFont);
                                p.Add(phrase);
                                phrase = new Phrase(dr.GetFloat(dr.GetOrdinal("SplitPercent")).ToString("##.0000") + "%" + "\n", _normalFont);
                                p.Add(phrase);
                                phrase = new Phrase("Mailed To: ", _labelFont);
                                p.Add(phrase);
                                phrase = new Phrase(dr.GetString(dr.GetOrdinal("AddressNumber")) + "  " + dr.GetString(dr.GetOrdinal("BusinessName")) + "\n", _normalFont);
                                p.Add(phrase);
                            }
                        }

                        PdfReports.AddText2Table(table, p, _primaryTableLayout.Length);
                    }
                }
            }
            catch (Exception ex) {
                WSCIEMP.Common.CException wscex = new WSCIEMP.Common.CException(METHOD_NAME, ex);
                throw (wscex);
            }
        }
Esempio n. 4
0
        protected void btnCalculate_Click(object sender, EventArgs e)
        {
            const string METHOD_NAME = "btnCalculate_Click";

            try {
                Decimal qcBeetPaymentPerTon = 0, oldNorthBeetPaymentPerTon = 0, oldSouthBeetPaymentPerTon = 0;
                string  sugarContent, slmPct, netReturn;
                int     cropYear = Convert.ToInt32(ddlCropYear.SelectedItem.Text);

                sugarContent = txtSugarContent.Text;
                if (sugarContent.Length == 0)
                {
                    Common.CWarning warn = new Common.CWarning("Please enter a Sugar Content.");
                    throw (warn);
                }
                if (!Common.CodeLib.IsNumeric(sugarContent))
                {
                    Common.CWarning warn = new Common.CWarning("Please enter a number for Sugar Content, like 16.54.");
                    throw (warn);
                }
                slmPct = txtSLM.Text;
                if (slmPct.Length == 0)
                {
                    Common.CWarning warn = new Common.CWarning("Please enter a SLM value.");
                    throw (warn);
                }
                if (!Common.CodeLib.IsNumeric(slmPct))
                {
                    Common.CWarning warn = new Common.CWarning("Please enter a number for SLM, like 1.60.");
                    throw (warn);
                }
                netReturn = txtNetReturn.Text;
                if (netReturn.Length == 0)
                {
                    Common.CWarning warn = new Common.CWarning("Please enter a Net Return.");
                    throw (warn);
                }
                if (!Common.CodeLib.IsNumeric(netReturn))
                {
                    Common.CWarning warn = new Common.CWarning("Please enter a number for Net Return, like 24.55.");
                    throw (warn);
                }

                using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BeetConn"].ToString())) {
                    WSCPayment.CalculatePayment(conn, Convert.ToDecimal(sugarContent),
                                                Convert.ToDecimal(slmPct),
                                                Convert.ToDecimal(netReturn), cropYear, ref qcBeetPaymentPerTon,
                                                ref oldNorthBeetPaymentPerTon, ref oldSouthBeetPaymentPerTon);

                    lblQCPayment.Text = "$" + qcBeetPaymentPerTon.ToString();
                }
            }
            catch (System.Exception ex) {
                Common.CException wex = new Common.CException(MOD_NAME + METHOD_NAME, ex);
                ((PrimaryTemplate)Page.Master).ShowWarning(ex);
            }
        }
        private void FillGridPayDescStation()
        {
            const string METHOD_NAME  = "FillGridPayDescStation";
            bool         isShidSearch = false;

            try {
                grdPayDescStation.SelectedIndex = -1;

                int    description_station_id = 0;
                string description_id_list    = "";

                int factory_no = 0;
                if (lstFactory.SelectedIndex != -1)
                {
                    factory_no = Convert.ToInt32(Common.UILib.GetListValues(lstFactory));
                }
                string station_no_list  = _stationList;
                string contract_no_list = _contractList;
                string payment_no_list  = _paymentList;
                int    icrop_year       = Convert.ToInt32(ddlCropYear.Text);
                string Shid             = txtSHID.Text.Replace("&nbsp;", "").Trim();

                if (Shid != "")
                {
                    lstFactory.SelectedIndex = -1;
                    lstStation.Items.Clear();
                    isShidSearch = true;
                }

                using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BeetConn"].ToString())) {
                    using (SqlDataReader dr = WSCPayment.GetPaymentDescriptionContract(conn, description_station_id, description_id_list, factory_no,
                                                                                       station_no_list, contract_no_list, payment_no_list, Shid, icrop_year)) {
                        grdPayDescStation.DataSource = dr;
                        grdPayDescStation.DataBind();

                        if (isShidSearch)
                        {
                            lstContract.Items.Clear();
                            foreach (GridViewRow row in grdPayDescStation.Rows)
                            {
                                ListItem item = new ListItem(
                                    row.Cells[(int)grdPayDescStationColumns.pdecnt_contract_no].Text,
                                    row.Cells[(int)grdPayDescStationColumns.pdecnt_contract_no].Text
                                    );
                                lstContract.Items.Add(item);
                                lstContract.Items[lstContract.Items.Count - 1].Selected = true;
                            }
                        }
                    }
                }
            }
            catch (Exception ex) {
                Common.CException wex = new Common.CException(MOD_NAME + METHOD_NAME, ex);
                throw (wex);
            }
        }
Esempio n. 6
0
        public string ReportPackager(int cropYear, DateTime reportDate, string shid, bool isActive, string fileName, string logoUrl, string pdfTempfolder,
                                     DateTime activityFromDate, DateTime activityToDate, bool isLienInfoWanted)
        {
            const string  METHOD_NAME = "rptEquityStatement.ReportPackager: ";
            DirectoryInfo pdfDir      = null;

            FileInfo[] pdfFiles = null;
            string     filePath = "";

            try {
                pdfDir = new DirectoryInfo(pdfTempfolder);

                // Build the output file name by getting a list of all PDF files
                // that begin with this session ID: use this as a name incrementer.
                pdfFiles  = pdfDir.GetFiles(fileName + "*.pdf");
                fileName += "_" + Convert.ToString(pdfFiles.Length + 1) + ".pdf";

                filePath = pdfDir.FullName + @"\" + fileName;

                try {
                    using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BeetConn"].ToString())) {
                        if (String.IsNullOrEmpty(shid))
                        {
                            shid = null;
                        }

                        using (SqlDataReader dr = WSCPayment.GetEquityStatement(conn, cropYear, shid, isActive, activityFromDate, activityToDate, isLienInfoWanted)) {
                            using (System.IO.FileStream fs = new FileStream(filePath, System.IO.FileMode.Create, System.IO.FileAccess.Write, System.IO.FileShare.Read)) {
                                ReportBuilder(dr, cropYear, reportDate, logoUrl, fs);
                            }
                        }
                    }
                }
                catch (System.Exception ex) {
                    string errMsg = "cropYear: " + cropYear.ToString();

                    WSCIEMP.Common.CException wscEx = new WSCIEMP.Common.CException(METHOD_NAME + errMsg, ex);
                    throw (wscEx);
                }

                return(filePath);
            }
            catch (System.Exception ex) {
                string errMsg = "cropYear: " + cropYear.ToString();

                WSCIEMP.Common.CException wscEx = new WSCIEMP.Common.CException(METHOD_NAME + errMsg, ex);
                throw (wscEx);
            }
        }
Esempio n. 7
0
        public static string ReportPackager(
            int cropYear, int paymentNumber, string paymentDescription,
            string fromDate, string toDate, string statementDate,
            string factoryList, string stationList, string contractList,
            bool isCumulative, string fileName, string logoUrl, string pdfTempfolder)
        {
            const string  METHOD_NAME = "rptTransmittal.ReportPackager: ";
            DirectoryInfo pdfDir      = null;

            FileInfo[] pdfFiles = null;
            string     filePath = "";

            try {
                pdfDir = new DirectoryInfo(pdfTempfolder);

                // Build the output file name by getting a list of all PDF files
                // that begin with this session ID: use this as a name incrementer.
                pdfFiles  = pdfDir.GetFiles(fileName + "*.pdf");
                fileName += "_" + Convert.ToString(pdfFiles.Length + 1) + ".pdf";

                filePath = pdfDir.FullName + @"\" + fileName;

                try {
                    using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BeetConn"].ToString())) {
                        using (SqlDataReader dr = WSCPayment.GetTransmittalPayment(conn,
                                                                                   cropYear, paymentNumber, factoryList, stationList, contractList, isCumulative)) {
                            using (System.IO.FileStream fs = new FileStream(filePath, System.IO.FileMode.Create, System.IO.FileAccess.Write, System.IO.FileShare.Read)) {
                                ReportBuilder(dr, cropYear, paymentNumber, paymentDescription, fromDate, toDate, statementDate, isCumulative, logoUrl, fs);
                            }
                        }
                    }
                }
                catch (System.Exception ex) {
                    string errMsg = "cropYear: " + cropYear.ToString();

                    WSCIEMP.Common.CException wscEx = new WSCIEMP.Common.CException(METHOD_NAME + errMsg, ex);
                    throw (wscEx);
                }

                return(filePath);
            }
            catch (System.Exception ex) {
                string errMsg = "cropYear: " + cropYear.ToString() + "; " +
                                "Payment Number: " + paymentNumber.ToString();

                WSCIEMP.Common.CException wscEx = new WSCIEMP.Common.CException(METHOD_NAME + errMsg, ex);
                throw (wscEx);
            }
        }
Esempio n. 8
0
        public static string ReportPackager(int cropYear, DateTime letterDate, DateTime deadlineDate,
                                            string factoryList, string stationList, string contractList, string fileName, string logoUrl, string pdfTempfolder)
        {
            const string  METHOD_NAME = "ReportPackager";
            DirectoryInfo pdfDir      = null;

            FileInfo[] pdfFiles = null;
            string     filePath = "";

            try {
                pdfDir = new DirectoryInfo(pdfTempfolder);

                // Build the output file name by getting a list of all PDF files
                // that begin with this session ID: use this as a name incrementer.
                pdfFiles  = pdfDir.GetFiles(fileName + "*.pdf");
                fileName += "_" + Convert.ToString(pdfFiles.Length + 1) + ".pdf";

                filePath = pdfDir.FullName + @"\" + fileName;

                try {
                    using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BeetConn"].ToString())) {
                        using (SqlDataReader dr = WSCPayment.GetLandownerLetter(conn, cropYear, factoryList, stationList, contractList)) {
                            //rptLandownerLetterHelper ldoHelper = new rptLandownerLetterHelper();
                            using (System.IO.FileStream fs = new FileStream(filePath, System.IO.FileMode.Create, System.IO.FileAccess.Write, System.IO.FileShare.Read)) {
                                //ldoHelper.ReportBuilder(page, dr, cropYear, letterDate, deadlineDate, fs);
                                ReportBuilder(dr, cropYear, letterDate, deadlineDate, logoUrl, fs);
                            }
                        }
                    }
                }
                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);
                }

                return(filePath);
            }
            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);
            }
        }
Esempio n. 9
0
        private void DoProcessPayment()
        {
            const string METHOD_NAME = "DoProcessPayment";

            try {
                int factoryID     = Convert.ToInt32(Common.UILib.GetListValues(lstFactory));
                int paymentNumber = Convert.ToInt32(Common.UILib.GetListValues(lstPayment));
                int cropYear      = Convert.ToInt32(Common.UILib.GetDropDownText(ddlCropYear));

                using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BeetConn"].ToString())) {
                    WSCPayment.PostCalculatePayment(conn, factoryID, paymentNumber, cropYear, Globals.SecurityState.UserName);
                }

                Common.AppHelper.ShowConfirmation((HtmlGenericControl)Master.FindControl("divWarning"), "Payment Processing Complete!");
            }
            catch (Exception ex) {
                Common.CException wex = new Common.CException(MOD_NAME + METHOD_NAME, ex);
                throw (wex);
            }
        }
Esempio n. 10
0
        private static void ReportBuilder(int paymentCropYear, bool isPatronage, string paymentType, string paymentDate, string filePath, ref string warnings)
        {
            const string METHOD_NAME = "rptEquityPayment.ReportBuilder: ";
            const string QUOTE       = "\"";

            // Build the Equity Payment information.
            try {
                using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BeetConn"].ToString())) {
                    System.Data.SqlClient.SqlParameter outParam = null;
                    using (SqlDataReader dr = WSCPayment.GetEquityPaymentExport(conn, paymentCropYear, isPatronage, paymentType, paymentDate, ref outParam)) {
                        using (StreamWriter sw = new StreamWriter(filePath, false)) {
                            while (dr.Read())
                            {
                                sw.Write(dr.GetInt32(dr.GetOrdinal("Pay_Crop_Year")).ToString() + ",");
                                sw.Write(QUOTE + dr.GetString(dr.GetOrdinal("Pay_SHID")) + QUOTE + ",");
                                sw.Write(dr.GetInt32(dr.GetOrdinal("Pay_Address_No")).ToString() + ",");
                                sw.Write(dr.GetInt32(dr.GetOrdinal("Pay_Number")) + ",");
                                sw.Write(QUOTE + dr.GetString(dr.GetOrdinal("Pay_Contact_Name")) + QUOTE + ",");
                                sw.Write(QUOTE + dr.GetString(dr.GetOrdinal("Pay_Business_Name")) + QUOTE + ",");
                                sw.Write(QUOTE + dr.GetString(dr.GetOrdinal("Pay_Adr_Line_1")) + QUOTE + ",");
                                sw.Write(QUOTE + dr.GetString(dr.GetOrdinal("Pay_Adr_Line_2")) + QUOTE + ",");
                                sw.Write(QUOTE + dr.GetString(dr.GetOrdinal("Pay_Adr_City")) + QUOTE + ",");
                                sw.Write(QUOTE + dr.GetString(dr.GetOrdinal("Pay_Adr_State")) + QUOTE + ",");
                                sw.Write(QUOTE + dr.GetString(dr.GetOrdinal("Pay_Adr_Zip_Code")) + QUOTE + ",");
                                sw.Write(QUOTE + dr.GetString(dr.GetOrdinal("Payee_Name")) + QUOTE + ",");
                                sw.WriteLine(dr.GetDecimal(dr.GetOrdinal("Payment_Amount")));
                            }
                            dr.Close();

                            warnings = outParam.Value.ToString();
                            sw.Close();
                        }
                    }
                }
            }
            catch (Exception ex) {
                WSCIEMP.Common.CException wscex = new WSCIEMP.Common.CException(METHOD_NAME, ex);
                throw (wscex);
            }
        }
Esempio n. 11
0
        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();
                }
            }
        }
Esempio n. 12
0
        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();
                }
            }
        }
Esempio n. 13
0
        public static string ReportPackager(
            int cropYear, string statementDate, string shid, string fromShid, string toShid, int paymentDescID,
            bool isCumulative, string footerText, string fileName, string logoUrl, string pdfTempfolder)
        {
            const string  METHOD_NAME = "rptPaymentSummary.ReportPackager: ";
            DirectoryInfo pdfDir      = null;

            FileInfo[] pdfFiles = null;
            string     filePath = "";

            try {
                pdfDir = new DirectoryInfo(pdfTempfolder);

                // Build the output file name by getting a list of all PDF files
                // that begin with this session ID: use this as a name incrementer.
                pdfFiles  = pdfDir.GetFiles(fileName + "*.pdf");
                fileName += "_" + Convert.ToString(pdfFiles.Length + 1) + ".pdf";

                filePath = pdfDir.FullName + @"\" + fileName;

                try {
                    // Because this report is built by data in one data set driving the selection of
                    // data in a dependent dataset, all the data retrival has to be driven down to the
                    // ReportBuilder.  This is not the typical situation.
                    if (shid.Length == 0 && fromShid.Length == 0 && toShid.Length == 0)
                    {
                        WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("Please enter SHID information before requesting a report.");
                        throw (warn);
                    }
                    else
                    {
                        if (shid.Length > 0 && (fromShid.Length > 0 || toShid.Length > 0))
                        {
                            WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("Please enter a single SHID or a SHID range, but not both.");
                            throw (warn);
                        }


                        List <SHPaySumListItem> stateList = WSCPayment.GetPaymentSummary(ConfigurationManager.ConnectionStrings["BeetConn"].ToString(),
                                                                                         cropYear, shid, fromShid, toShid, paymentDescID, isCumulative);

                        if (stateList.Count != 0)
                        {
                            using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write)) {
                                ReportBuilder(stateList, cropYear, statementDate, shid, fromShid, toShid, paymentDescID, isCumulative, footerText, logoUrl, fs);
                            }
                        }
                        else
                        {
                            WSCIEMP.Common.CWarning warn = new WSCIEMP.Common.CWarning("SHID does not have the required transmittal records or rollup records to create a Payment Summary report.");
                            throw (warn);
                        }
                    }
                }
                catch (System.Exception ex) {
                    string errMsg = "cropYear: " + cropYear.ToString() + "; " +
                                    "SHID: " + shid + "; " +
                                    "From SHID: " + fromShid + "; " +
                                    "To SHID: " + toShid + "; " +
                                    "filePath: " + filePath + "; " +
                                    "Payment Desc ID: " + paymentDescID.ToString();

                    WSCIEMP.Common.CException wscEx = new WSCIEMP.Common.CException(METHOD_NAME + errMsg, ex);
                    throw (wscEx);
                }

                return(filePath);
            }
            catch (System.Exception ex) {
                string errMsg = "cropYear: " + cropYear.ToString() + "; " +
                                "SHID: " + shid + "; " +
                                "From SHID: " + fromShid + "; " +
                                "To SHID: " + toShid + "; " +
                                "Payment Desc ID: " + paymentDescID.ToString();

                WSCIEMP.Common.CException wscEx = new WSCIEMP.Common.CException(METHOD_NAME + errMsg, ex);
                throw (wscEx);
            }
        }
        protected void btnSaveExcessPct_Click(object sender, EventArgs e)
        {
            const string METHOD_NAME = "btnSaveExcessPct_Click";

            try {
                WSCSecurity auth     = Globals.SecurityState;
                string      userName = auth.UserName;
                string      tmpValue = "";

                // Iterate on each grid row and save that row back to the database using
                // the entered Excess Percentage.
                foreach (GridViewRow row in grdPayDescStation.Rows)
                {
                    tmpValue = row.Cells[(int)grdPayDescStationColumns.pdecnt_description_contract_id].Text.Replace("&nbsp;", "0");
                    int pdecnt_description_contract_id = 0;
                    if (!int.TryParse(tmpValue, out pdecnt_description_contract_id))
                    {
                        Common.CWarning warn = new Common.CWarning("Cannot read grid value pdecnt_description_contract_id");
                        throw (warn);
                    }

                    tmpValue = row.Cells[(int)grdPayDescStationColumns.pdecnt_description_id].Text.Replace("&nbsp;", "");
                    int pdecnt_description_id = 0;
                    if (tmpValue != "" && !int.TryParse(tmpValue, out pdecnt_description_id))
                    {
                        Common.CWarning warn = new Common.CWarning("Cannot read grid value pdecnt_description_id");
                        throw (warn);
                    }


                    tmpValue = row.Cells[(int)grdPayDescStationColumns.pdecnt_factory_id].Text.Replace("&nbsp;", "");
                    int pdecnt_factory_id = 0;
                    if (tmpValue != "" && !int.TryParse(tmpValue, out pdecnt_factory_id))
                    {
                        Common.CWarning warn = new Common.CWarning("Cannot read grid value pdecnt_factory_id");
                        throw (warn);
                    }

                    tmpValue = row.Cells[(int)grdPayDescStationColumns.pdecnt_station_id].Text.Replace("&nbsp;", "");
                    int pdecnt_station_id = 0;
                    if (tmpValue != "" && !int.TryParse(tmpValue, out pdecnt_station_id))
                    {
                        Common.CWarning warn = new Common.CWarning("Cannot read grid value pdecnt_station_id");
                        throw (warn);
                    }

                    tmpValue = row.Cells[(int)grdPayDescStationColumns.pdecnt_contract_id].Text.Replace("&nbsp;", "");
                    int pdecnt_contract_id = 0;
                    if (tmpValue != "" && !int.TryParse(tmpValue, out pdecnt_contract_id))
                    {
                        Common.CWarning warn = new Common.CWarning("Cannot read grid value pdecnt_contract_id");
                        throw (warn);
                    }

                    tmpValue = Common.UILib.GetDropDownText(ddlCropYear);
                    int pdecnt_icrop_year = Convert.ToInt32(tmpValue);

                    tmpValue = txtExcessPct.Text;
                    decimal pdecnt_excess_beet_pct = 0;
                    if (!Decimal.TryParse(tmpValue, out pdecnt_excess_beet_pct))
                    {
                        Common.CWarning warn = new Common.CWarning("Please enter a number for Excess Percent.  This can be zero.");
                        throw (warn);
                    }

                    tmpValue = row.Cells[(int)grdPayDescStationColumns.pdecnt_rowversion].Text.Replace("&nbsp;", "");
                    string pdecnt_rowversion = tmpValue;

                    WSCPayment.PaymentDescriptionContractSave(pdecnt_description_contract_id,
                                                              pdecnt_description_id, pdecnt_factory_id, pdecnt_station_id,
                                                              pdecnt_contract_id, pdecnt_icrop_year, pdecnt_excess_beet_pct,
                                                              userName, pdecnt_rowversion);

                    FillGridPayDescStation();
                }
            }
            catch (System.Exception ex) {
                Common.CException wex = new Common.CException(MOD_NAME + METHOD_NAME, ex);
                ((PrimaryTemplate)Page.Master).ShowWarning(ex);
            }
        }
Esempio n. 15
0
        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();
                }
            }
        }
Esempio n. 16
0
        private void DoExport()
        {
            const string METHOD_NAME = "DoExport";
            const string dblQuote    = "\"";

            // Recordset returned by calling either stored procedure.
            const int eepexCrop_year         = 1,
                      eepexContract_no       = 2, // this is really SHID/contract no depending on New vs Old proc call
                      eepexAddress_no        = 3,
                      eepexPayment_no        = 4,
                      eepexAdr_contact_name  = 5,
                      eepexAdr_business_name = 6,
                      eepexAdr_line_1        = 7,
                      eepexAdr_line_2        = 8,
                      eepexAdr_city          = 9,
                      eepexAdr_state         = 10,
                      eepexAdr_zip_code      = 11,
                      eepexPayee_name        = 12,
                      eepexPayment_amount    = 13;

            try {
                int    paymentDescID         = 0;
                string procName              = "";
                int    cropYear              = Convert.ToInt32(Common.UILib.GetDropDownText(ddlCropYear));
                int    countExported         = 0;
                System.Text.StringBuilder sb = new System.Text.StringBuilder();

                paymentDescID = Convert.ToInt32(Common.UILib.GetListValues(lstPaymentNumber));

                if (cropYear < 2006)
                {
                    procName = "s70pay_GetPaymentExport";
                }
                else
                {
                    procName = "s70pay_GetPaymentExport2";
                }

                using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BeetConn"].ToString())) {
                    using (SqlDataReader dr = WSCPayment.GetPaymentExport(conn, procName, paymentDescID, cropYear)) {
                        while (dr.Read())
                        {
                            //=============================
                            // First time logic: HEADER !!!
                            //=============================
                            if (countExported == 0)
                            {
                                sb.Append(dblQuote);

                                sb.Append(dr.GetName(eepexCrop_year));
                                sb.Append(dblQuote);
                                sb.Append(",");

                                sb.Append(dblQuote);
                                sb.Append(dr.GetName(eepexContract_no));
                                sb.Append(dblQuote);
                                sb.Append(",");

                                sb.Append(dblQuote);
                                sb.Append(dr.GetName(eepexAddress_no));
                                sb.Append(dblQuote);
                                sb.Append(",");

                                sb.Append(dblQuote);
                                sb.Append(dr.GetName(eepexPayment_no));
                                sb.Append(dblQuote);
                                sb.Append(",");

                                sb.Append(dblQuote);
                                sb.Append(dr.GetName(eepexAdr_contact_name));
                                sb.Append(dblQuote);
                                sb.Append(",");

                                sb.Append(dblQuote);
                                sb.Append(dr.GetName(eepexAdr_business_name));
                                sb.Append(dblQuote);
                                sb.Append(",");

                                sb.Append(dblQuote);
                                sb.Append(dr.GetName(eepexAdr_line_1));
                                sb.Append(dblQuote);
                                sb.Append(",");

                                sb.Append(dblQuote);
                                sb.Append(dr.GetName(eepexAdr_line_2));
                                sb.Append(dblQuote);
                                sb.Append(",");

                                sb.Append(dblQuote);
                                sb.Append(dr.GetName(eepexAdr_city));
                                sb.Append(dblQuote);
                                sb.Append(",");

                                sb.Append(dblQuote);
                                sb.Append(dr.GetName(eepexAdr_state));
                                sb.Append(dblQuote);
                                sb.Append(",");

                                sb.Append(dblQuote);
                                sb.Append(dr.GetName(eepexAdr_zip_code));
                                sb.Append(dblQuote);
                                sb.Append(",");

                                sb.Append(dblQuote);
                                sb.Append(dr.GetName(eepexPayee_name));
                                sb.Append(dblQuote);
                                sb.Append(",");

                                sb.Append(dblQuote);
                                sb.Append(dr.GetName(eepexPayment_amount));
                                sb.Append(dblQuote);

                                sb.Append("\n");
                            }

                            sb.Append(dr.GetInt32(eepexCrop_year).ToString());
                            sb.Append(",");
                            sb.Append(dr.GetString(eepexContract_no));
                            sb.Append(",");
                            sb.Append(dr.GetInt32(eepexAddress_no).ToString("#"));       // SHID
                            sb.Append(",");
                            sb.Append(dr.GetInt32(eepexPayment_no).ToString("#"));
                            sb.Append(",");
                            sb.Append(dblQuote);
                            sb.Append(dr.GetString(eepexAdr_contact_name));
                            sb.Append(dblQuote);
                            sb.Append(",");
                            sb.Append(dblQuote);
                            sb.Append(dr.GetString(eepexAdr_business_name));
                            sb.Append(dblQuote);
                            sb.Append(",");
                            sb.Append(dblQuote);
                            sb.Append(dr.GetString(eepexAdr_line_1));
                            sb.Append(dblQuote);
                            sb.Append(",");
                            sb.Append(dblQuote);
                            sb.Append(dr.GetString(eepexAdr_line_2));
                            sb.Append(dblQuote);
                            sb.Append(",");
                            sb.Append(dblQuote);
                            sb.Append(dr.GetString(eepexAdr_city));
                            sb.Append(dblQuote);
                            sb.Append(",");
                            sb.Append(dblQuote);
                            sb.Append(dr.GetString(eepexAdr_state));
                            sb.Append(dblQuote);
                            sb.Append(",");
                            sb.Append(dblQuote);
                            sb.Append(dr.GetString(eepexAdr_zip_code));
                            sb.Append(dblQuote);
                            sb.Append(",");
                            sb.Append(dblQuote);
                            sb.Append(dr.GetString(eepexPayee_name));
                            sb.Append(dblQuote);
                            sb.Append(",");
                            sb.Append(dblQuote);
                            sb.Append(dr.GetDecimal(eepexPayment_amount).ToString("#0.00"));
                            sb.Append(dblQuote);
                            sb.Append("\n");

                            countExported += 1;
                        }
                    }
                }

                // ------------------------------------------------------------------------
                // We need BOTH the url path and file system path to the payment file.
                // ------------------------------------------------------------------------
                string paymentDesc = Common.UILib.GetListText(lstPaymentNumber, "");
                string fileName    = cropYear.ToString() + " Payment " + paymentDesc + ".csv";
                string urlPath     = WSCReportsExec.GetPDFFolderPath() + @"/" + fileName;

                // Convert to file system path
                string filePath = Page.MapPath(urlPath);

                using (System.IO.StreamWriter sw = new System.IO.StreamWriter(filePath, false)) {
                    sw.Write(sb.ToString());
                }

                txtSumExported.Text        = countExported.ToString("#,##0");
                lnkPaymentFile.Visible     = true;
                lnkPaymentFile.NavigateUrl = urlPath;
                lnkPaymentFile.Text        = "Click Here to Open Your Export Payment File";
                Common.AppHelper.ShowConfirmation((HtmlGenericControl)Master.FindControl("divWarning"), "Payment Export Complete!");
            }
            catch (Exception ex) {
                Common.CException wex = new Common.CException(MOD_NAME + METHOD_NAME, ex);
                throw (wex);
            }
        }
Esempio n. 17
0
        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();
                }
            }
        }