示例#1
0
        public bool ExportData()                                  //creates the export list from the Data2Export dataset
        {
            StringBuilder exportLineString = new StringBuilder(); //string builder used to create export text lines.
            string        palletnumber;                           //temp string for tag number creation
            string        tempString;                             //used for string manipulation
            string        tempRowID;                              //used to identify the rows to sort export data into Export sort order
            int           BoxCount      = 0;                      //boxcount variable used mainly for format manipulation
            int           TotalBoxCount = 0;                      //running total of boxes
            DateTime      Dt;                                     //used for date time manipulation

            RecordsToExport.Clear();                              //clear list incase this method has been run already.


            try
            {
                //Create boat information and first line to be exported, record ID = 0 item
                exportLineString = new StringBuilder();                                                                  //Start with as fresh stingbulder
                exportLineString.AppendFormat("{0,1}", "0");                                                             //Record ID = 0
                exportLineString.AppendFormat("{0,1}", "0");                                                             //File revision number
                exportLineString.AppendFormat("{0,-10}", TruncateString.Truncate2(exportStringList[11].ToString(), 10)); //Exporter
                Dt = DateTime.Parse(exportStringList[12], mFomatter);                                                    //format date to yyMMdd format
                exportLineString.AppendFormat("{0,-6}", Dt.ToString("yyMMdd"));                                          //Ship Date in form of YYMMDD
                exportLineString.AppendFormat("{0,-6}", TruncateString.Truncate2(exportStringList[13].ToString(), 6));   //Exporter's ship number
                exportLineString.AppendFormat("{0,-15}", TruncateString.Truncate2(exportStringList[14].ToString(), 15)); //Ship's name
                exportLineString.AppendFormat("{0,-15}", TruncateString.Truncate2(exportStringList[15].ToString(), 15)); //Destination

                RecordsToExport.Add(exportLineString.ToString());                                                        //add record to record list to send to file
            }

            catch (Exception e)
            {
                exported = false;
                MessageBox.Show("Export process for ship information had an error.  \nPlease note what was done and see administrator for help.  \n");
                Error_Logging el = new Error_Logging("Export (Adams) process for ship information had an error. \n" + e);
                return(false);
            }


            try
            {
                //Record ID = 1 items.  Puts them on the RecordsToExportOne list.           *******
                RecordsToExportIDOne.Clear();
                for (int ExportDataRow = 0; ExportDataRow < Data2Export.Tables[0].Rows.Count; ExportDataRow++)
                {
                    exportLineString = new StringBuilder();      //Start with as fresh stingbulder

                    exportLineString.AppendFormat("{0,1}", "1"); //Record ID = 1
                    //add prefix number to front of tag/pallet number.
                    if (ImportSettings.PalletPrefixColumn == ImportSettings.TagNumberColumn)
                    {
                        palletnumber = Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.TagNumberColumn].ToString().Trim();
                    }
                    else
                    {
                        palletnumber = exportStringList[10].ToString() +
                                       Convert.ToInt32(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.TagNumberColumn].ToString().Trim()).ToString("0000000");
                    }
                    exportLineString.AppendFormat("{0,-10}", TruncateString.Truncate2(palletnumber, 10));                                                                             //add pallet Number
                    exportLineString.AppendFormat("{0,-4}", TruncateString.Truncate2(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.VarietyColumn].ToString().Trim(), 4));  //add Variety ID
                    exportLineString.AppendFormat("{0,-3}", TruncateString.Truncate2(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.LabelColumn].ToString().Trim(), 3));    //add Label ID
                    exportLineString.AppendFormat("{0,-4}", TruncateString.Truncate2(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.PackCodeColumn].ToString().Trim(), 4)); //add Pack Code
                    if ((TruncateString.Truncate2(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.VarietyColumn].ToString().Trim(), 1) != "G") &
                        (Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.GradeColumn].ToString().Trim().Length < 4))
                    {                                                                                                                                                                 //Left justified if
                        exportLineString.AppendFormat("{0,4}", TruncateString.Truncate2(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.GradeColumn].ToString().Trim(), 4)); //add Grade ID
                    }
                    else
                    {
                        exportLineString.AppendFormat("{0,-4}", TruncateString.Truncate2(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.GradeColumn].ToString().Trim(), 4));  //add Grade ID
                    }
                    Dt = DateTime.Parse(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.FirstPackDateColumn].ToString(), mFomatter);
                    exportLineString.AppendFormat("{0,-6}", Dt.ToString("yyMMdd"));                                                                          //add Pack Date
                    exportLineString.AppendFormat("{0,-4}", Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.GrowerNumberColumn].ToString().Trim()); //add Grower ID
                    BoxCount = Convert.ToInt32(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.InventoryQuantityColumn].ToString().Trim());
                    exportLineString.AppendFormat("{0,-6}", BoxCount.ToString("000000"));                                                                    //add Inventory/box count

                    //RPC box type goes here!!!!!!!!!!!!!!!!!!!!!!!  tbd
                    exportLineString.AppendFormat("{0,-4}", "");  //add RPC Box


                    RecordsToExportIDOne.Add(exportLineString.ToString());  //add record to record list to send to file
                }
            }

            catch (Exception e)
            {
                exported = false;
                MessageBox.Show("Export process for record ID = 1 items had an error.  \nPlease note what was done and see administrator for help.  \n");
                Error_Logging el = new Error_Logging("Export (Adams) process for record ID = 1 items had an error. \n" + e);
                return(false);
            }

            //do combining here
            CombineMixedBoxesOnPallets CombinedBoxes = new CombineMixedBoxesOnPallets(Data2Export, ImportSettings, "Adams");

            CombinedBoxes.CombineMixedPallets();
            CombinedBoxes.ViewData();
            Data2Export = CombinedBoxes.CombinedData();


            try
            {
                //Record ID = 2 items.  Puts them on the RecordsToExportTwo list.   ***************
                RecordsToExportIDTwo.Clear();
                TotalBoxCount = 0;
                BoxCount      = 0;

                for (int ExportDataRow = 0; ExportDataRow < Data2Export.Tables[0].Rows.Count; ExportDataRow++)
                {
                    tempString       = "";
                    exportLineString = new StringBuilder();      //Start with as fresh stingbulder

                    exportLineString.AppendFormat("{0,1}", "2"); //Record ID = 2
                    //add prefix number to front of tag/pallet number.
                    if (ImportSettings.PalletPrefixColumn == ImportSettings.TagNumberColumn)
                    {
                        palletnumber = Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.TagNumberColumn].ToString().Trim();
                    }
                    else
                    {
                        palletnumber = exportStringList[10].ToString() +
                                       Convert.ToInt32(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.TagNumberColumn].ToString().Trim()).ToString("0000000");
                    }
                    exportLineString.AppendFormat("{0,-10}", palletnumber);                                                                                                           //add pallet Number
                    exportLineString.AppendFormat("{0,-4}", TruncateString.Truncate2(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.VarietyColumn].ToString().Trim(), 4));  //add Variety ID
                    exportLineString.AppendFormat("{0,-3}", TruncateString.Truncate2(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.LabelColumn].ToString().Trim(), 3));    //add Label ID
                    exportLineString.AppendFormat("{0,-4}", TruncateString.Truncate2(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.PackCodeColumn].ToString().Trim(), 4)); //add Pack Code
                    //exportLineString.AppendFormat("{0,-14}", "");  //Blank spaces   If spec is followed use this instead of the code below
                    //******added to match Export spreadsheet results
                    if ((TruncateString.Truncate2(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.VarietyColumn].ToString().Trim(), 1) != "G") &
                        (Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.GradeColumn].ToString().Trim().Length < 4))
                    {
                        exportLineString.AppendFormat("{0,4}", Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.GradeColumn].ToString().Trim());  //add Grade ID
                    }
                    else
                    {
                        exportLineString.AppendFormat("{0,-4}", Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.GradeColumn].ToString().Trim());  //add Grade ID
                    }
                    Dt = DateTime.Parse(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.FirstPackDateColumn].ToString(), mFomatter);
                    exportLineString.AppendFormat("{0,-6}", Dt.ToString("yyMMdd"));                                                                          //add Pack Date
                    exportLineString.AppendFormat("{0,-4}", Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.GrowerNumberColumn].ToString().Trim()); //add Grower ID
                    //*******

                    BoxCount = Convert.ToInt32(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.InventoryQuantityColumn].ToString().Trim());
                    exportLineString.AppendFormat("{0,-6}", BoxCount.ToString("000000"));  //Box Count
                    //keep running total
                    TotalBoxCount = TotalBoxCount + Convert.ToInt32(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.InventoryQuantityColumn]);

                    exportLineString.AppendFormat("{0,1}", TruncateString.Truncate2(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.HatchColumn].ToString().Trim(), 1));     //add Hatch
                    exportLineString.AppendFormat("{0,1}", "-");                                                                                                                      //add -
                    exportLineString.AppendFormat("{0,1}", TruncateString.Truncate2(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.DeckColumn].ToString().Trim(), 1));      //add Deck
                    exportLineString.AppendFormat("{0,-9}", "");                                                                                                                      //add blanks
                    exportLineString.AppendFormat("{0,1}", TruncateString.Truncate2(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.FumigatedColumn].ToString().Trim(), 1)); //Fumigation
                    exportLineString.AppendFormat("{0,-4}", TruncateString.Truncate2(Data2Export.Tables[0].Rows[ExportDataRow]
                                                                                     [ImportSettings.BillOfLadingColumn].ToString(), 4).Trim());                                      //add B/L Number
                    if (Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.PalletTypeColumn].ToString().Trim() == "Chep")
                    {
                        tempString = "C";
                    }
                    else
                    {
                        tempString = "";
                    }
                    exportLineString.AppendFormat("{0,1}", tempString);  //add pallet type, "C" for chep and blank otherwise
                    exportLineString.AppendFormat("{0,-10}", TruncateString.Truncate2(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.MemoColumn].ToString().Trim(), 10));


                    RecordsToExportIDTwo.Add(exportLineString.ToString());  //add record to record list to send to file
                }
            }

            catch (Exception e)
            {
                exported = false;
                MessageBox.Show("Export process for record ID = 2 items had an error.  \nPlease note what was done and see administrator for help.  \n");
                Error_Logging el = new Error_Logging("Export (Adams) process for record ID = 2 items had an error. \n" + e);

                return(false);
            }
            // **********

            try
            {
                //Merge RecordsToExportIDOne and RecordsToExportIDTwo in proper order for export file
                tempString = ""; //initialize tempString to blank/empty
                tempRowID  = ""; //set tempRowID to empty string as there have been no rows checked yet
                int lastsameItem  = 0;
                int lastsameItem2 = 0;

                for (int ItemOne = 0; ItemOne < RecordsToExportIDOne.Count; ItemOne++)
                {
                    if (string.IsNullOrEmpty(tempRowID) & !(string.IsNullOrEmpty(RecordsToExportIDOne[ItemOne])))   //add first record from RecordsToExportOne to
                    //records to export as this would be the next record and is a special case
                    {
                        RecordsToExport.Add(RecordsToExportIDOne[0]);
                        //record which should be in the list
                        tempRowID = RecordsToExportIDOne[ItemOne].Substring(1, 14);
                    }
                    for (int nextItem = lastsameItem; nextItem < RecordsToExportIDOne.Count; nextItem++)   //add item 1 records that have the same row ID
                    {
                        if ((RecordsToExportIDOne[nextItem].Substring(1, 14) == tempRowID) & nextItem != 0)
                        {
                            RecordsToExport.Add(RecordsToExportIDOne[nextItem]);
                            lastsameItem = nextItem;
                            tempRowID    = RecordsToExportIDOne[lastsameItem].Substring(1, 14);
                            ItemOne      = nextItem; //start at the next item in the list as others have now been checked
                        }
                    }

                    for (int nextItem2 = lastsameItem2; nextItem2 < RecordsToExportIDTwo.Count; nextItem2++)   //next add the item 2 record
                    {
                        if ((RecordsToExportIDTwo[nextItem2].Substring(1, 14) == tempRowID))
                        {
                            RecordsToExport.Add(RecordsToExportIDTwo[nextItem2]);
                            lastsameItem2 = nextItem2;   //fount the item on list and set it as the last found item
                        }
                    }
                    if (lastsameItem + 1 < RecordsToExportIDOne.Count)   //set the tempRowID to the next value unless it is the last item
                    {
                        tempRowID = RecordsToExportIDOne[lastsameItem + 1].Substring(1, 14);
                    }
                }
            }

            catch (Exception e)
            {
                exported = false;
                MessageBox.Show(" Error in ordering Export records for export.  \nPlease note what was done and see administrator for help. \n");
                Error_Logging el = new Error_Logging(" Error in ordering Export (Adams) records for export.  \n" + e);

                return(false);
            }


            try
            {
                //Record ID 3 item  Overall summary record
                exportLineString = new StringBuilder();
                exportLineString.AppendFormat("{0,1}", "3");                              //add Record ID
                exportLineString.AppendFormat("{0,-35}", "");                             //add blanks
                exportLineString.AppendFormat("{0,6}", TotalBoxCount.ToString("000000")); //add grand total count for boxes

                RecordsToExport.Add(exportLineString.ToString());                         //add record to record list to send to file
                exported = true;
            }

            catch (Exception e)
            {
                exported = false;
                MessageBox.Show("Export process for record ID = 3 item had an error.  \nPlease note what was done and see administrator for help.  \n");
                Error_Logging el = new Error_Logging("Export (Adams) process for record ID = 3 item had an error.  \n" + e);

                return(false);
            }


            return(exported);  //let progrom know it completed
        }
示例#2
0
        public bool ExportData()                                  //creates the export list from the Data2Export dataset
        {
            StringBuilder exportLineString = new StringBuilder(); //string builder used to create export text lines.
            string        tagnumber;                              //temp string for tag number creation
            string        LineNumberStringCheck     = "";         //Used to hold the concatenated string to check for changes to increment the line number
            string        TempLineNumberStringCheck = "";         //Temp string variable for the above
            int           LineNumber = 0;
            string        Tempgrade  = "";

            RecordsToExport.Clear();                                                                   //clear list in case this method has been run already.

            DataRow[] CommodityValidateRows = CommodityTable.Select("Data_Column_Name = 'Commodity'"); //get all rows for Commodity from validation table;


            //do combining of mixed pallets here and send name of export to use for title of window
            //Instantiate the box combining object for mixed pallets.
            CombineMixedBoxesOnPallets CombinedBoxes = new CombineMixedBoxesOnPallets(Data2Export, ImportSettings, "Famous");

            CombinedBoxes.CombineMixedPallets();
            CombinedBoxes.ViewData();
            Data2Export = CombinedBoxes.CombinedData();


            //Sort data before exporting  *********************************************************
            DataViewManager dvm = new DataViewManager();

            dvm.DataSet = Data2Export.Copy();
            //Name columns so they are always named the same for the sorting
            dvm.DataSet.Tables[0].Columns[ImportSettings.GradeColumn].ColumnName = "Grade Column";
            dvm.DataSet.Tables[0].Columns[1].ColumnName = "Grower Block Column";
            dvm.DataSet.Tables[0].Columns[ImportSettings.CommodityColumn].ColumnName = "Commodity Column";
            dvm.DataSet.Tables[0].Columns[ImportSettings.StyleColumn].ColumnName     = "Style Column";
            dvm.DataSet.Tables[0].Columns[ImportSettings.SizeColumn].ColumnName      = "PackSize Column";
            dvm.DataSet.Tables[0].Columns[ImportSettings.LabelColumn].ColumnName     = "Label Column";
            //sort
            dvm.DataViewSettings[0].Sort = "[[Grower Block Column], [Label Column], [Style Column], [PackSize Column], [Grade Column]";  //"[Label], [PackSize], [Style], [Grade], [Grower Block], [Commodity]";
            dvm.DataSet.AcceptChanges();
            //Fill the Datarow array with the sorted data
            DataRow[] rows = dvm.DataSet.Tables[0].Select(string.Empty, "[Grower Block Column], [Grade Column]");
            //*************************************************************************************

            //Code to check for exporter and vessel number in archive
            string connString = Properties.Settings.Default.ArchiveConnectionString;                                                               //get connection string from the application settings

            System.Data.SqlClient.SqlConnection conn      = new System.Data.SqlClient.SqlConnection(Properties.Settings.Default.ConnectionString); // Instantiate connection object
            SqlDataAdapter    ArchivedReceiptsDataAdaptor = null;                                                                                  //DataAdaptor for the Exporter-Vessel_Number, Receipt number table
            SqlCommandBuilder cmdBuilder;                                                                                                          //using sql command builder to create update command
            SqlCommand        QueryCommand = null;                                                                                                 //query string


            //get receipt numbers data from archive database
            DataSet dt = new DataSet();

            if (Properties.Settings.Default.Mode.ToString() == "Test")  //check for test mode and use test archive if test mode
            {
                QueryCommand = new SqlCommand("  Select DISTINCT [Exporter] + '-' + [Vessel_Number] AS EXNUM, [Receipt_Number] " +
                                              "FROM [ImportDataWarehouse].[dbo].[FAPI_Import_Data_Archive_Test]" +
                                              "ORDER BY EXNUM", conn);
            }
            else
            {
                QueryCommand = new SqlCommand("  Select DISTINCT [Exporter] + '-' + [Vessel_Number] AS EXNUM, [Receipt_Number] " +
                                              "FROM [ImportDataWarehouse].[dbo].[FAPI_Import_Data_Archive]" +
                                              "ORDER BY EXNUM", conn);
            }



            ArchivedReceiptsDataAdaptor = new SqlDataAdapter(QueryCommand);

            cmdBuilder = new SqlCommandBuilder(ArchivedReceiptsDataAdaptor);

            conn.Open();

            ArchivedReceiptsDataAdaptor.Fill(dt);

            conn.Close();

            //get data for exporter-vessel from archive.  if it exists popup get receipt number window to get receipt number
            string ExporterVessel = "'" + exportStringList[11].ToString() + "-" + exportStringList[13].ToString() + "'";

            DataRow[] ReceiptRows = dt.Tables[0].Select("EXNUM = " + ExporterVessel);

            if (ReceiptRows.Length == 0)  //No matches were found for the exporter and vessel number
            {
                IncrementReceiptNumber rn = new IncrementReceiptNumber();
                ReceiptNumber      = rn.GetNewReceiptNumber(); //get incremented receipt number
                ReUseReceiptNumber = 0;
            }
            else  //Matches found
            {
                //Open Select Receipt form
                Select_Receipt_Number Select_Receipt_Form = new Select_Receipt_Number(ReceiptRows);

                DialogResult result = Select_Receipt_Form.ShowDialog();

                if (result == DialogResult.OK)  //used clicked OK
                {
                    ReceiptNumber      = Select_Receipt_Form.GetReceiptNumber();
                    ReUseReceiptNumber = 1;  //Reused the receipt number
                }
                else  //Cancel or window closed
                {
                    IncrementReceiptNumber rn = new IncrementReceiptNumber();
                    ReceiptNumber      = rn.GetNewReceiptNumber();
                    ReUseReceiptNumber = 0;
                }

                Select_Receipt_Form.Dispose();
            }

            //get last line number used for this receipt number *****************************************
            LineNumber = CreateLineNumber.LastLineNumber(ReceiptNumber); //set the start point to the last line number for this receipt number
                                                                         //the number will be incremented by 1 before using.

            try                                                          //Begin creation of the export string list for export
            {
                for (int ExportDataRow = 0; ExportDataRow < rows.Length; ExportDataRow++)
                {
                    //used to check to see if any of the product defining variables have changed.
                    TempLineNumberStringCheck = rows[ExportDataRow][1].ToString().Trim()                                                                      //Exporter
                                                + rows[ExportDataRow][ImportSettings.CommodityColumn].ToString().Trim()                                       //Commodity
                                                + rows[ExportDataRow][ImportSettings.VarietyColumn].ToString().Trim()                                         //Variety
                                                + rows[ExportDataRow][ImportSettings.StyleColumn].ToString().Trim()                                           //Style
                                                + rows[ExportDataRow][ImportSettings.SizeColumn].ToString().Trim()                                            //Size
                                                + rows[ExportDataRow][ImportSettings.GradeColumn].ToString().Trim()                                           //Grade
                                                + rows[ExportDataRow][ImportSettings.LabelColumn].ToString().Trim();                                          //Label

                    exportLineString = new StringBuilder();                                                                                                   //Start with as fresh stingbuilder object to create the export text line

                    exportLineString.AppendFormat("{0,-9}", ReceiptNumber);                                                                                   //blank for Receipt/Entry number  Increment this number!!!!
                    exportLineString.AppendFormat("{0,1}", exportStringList[0]);                                                                              //add Transaction type
                    exportLineString.AppendFormat("{0,-10}", exportStringList[1].Split(' ')[0]);                                                              //add Receive/Packdate, splitting off date
                    exportLineString.AppendFormat("{0,1}", exportStringList[2]);                                                                              //add Bulk Flag
                    exportLineString.AppendFormat("{0,-40}", exportStringList[3]);                                                                            //add Warehouse
                    exportLineString.AppendFormat("{0,-12}", TruncateString.Truncate2(rows[ExportDataRow][ImportSettings.MemoColumn].ToString().Trim(), 12)); //add Memo values
                    exportLineString.AppendFormat("{0,-40}", "");                                                                                             //add blanks for Description field
                    exportLineString.AppendFormat("{0,-40}", "");                                                                                             //add blanks for Access Group field

                    //If product definition changes, increment the line number
                    if (LineNumberStringCheck != TempLineNumberStringCheck)
                    {
                        LineNumber++;
                    }
                    LineNumberStringCheck = TempLineNumberStringCheck;             //set old line identifier text to new one

                    exportLineString.AppendFormat("{0,5}", LineNumber.ToString()); //line number field

                    //add prefix number to front of tag number.
                    if ((ImportSettings.PalletPrefixColumn == ImportSettings.TagNumberColumn) || (exportStringList[10].ToString().Length < 1)) //special case for which has prefix as part of tag number already
                    {                                                                                                                          //and the import setting point to same column for both
                        tagnumber = rows[ExportDataRow][ImportSettings.TagNumberColumn].ToString().Trim();
                    }
                    else
                    {
                        tagnumber = rows[ExportDataRow][ImportSettings.TagNumberColumn].ToString().Trim();                                                     //set tag number to the data tag number
                        if (tagnumber.Length > 3)                                                                                                              //if is less than 4, it can not contain a prefix and a tag number in one
                        {
                            if (!(exportStringList[10].ToString() == (rows[ExportDataRow][ImportSettings.TagNumberColumn].ToString().Trim().Substring(0, 3)))) //Prefix not in Tag Number
                            {
                                tagnumber = exportStringList[10].ToString() + rows[ExportDataRow][ImportSettings.TagNumberColumn].ToString().Trim();           //append prefix code
                            }
                        }
                    }
                    exportLineString.AppendFormat("{0,-12}", tagnumber);                                                             //add Tag Number
                    exportLineString.AppendFormat("{0,-12}", rows[ExportDataRow][1].ToString().Trim());                              //add Grower Block ID, is always in column 1
                    exportLineString.AppendFormat("{0,-12}", "");                                                                    //add blank Pool ID field
                    exportLineString.AppendFormat("{0,1}", "");                                                                      //add blank for receipt# as lot id field
                    exportLineString.AppendFormat("{0,-12}", exportStringList[13].ToString().Trim());                                //add Lot ID/Vessel number field
                    exportLineString.AppendFormat("{0,-40}", "");                                                                    //add blanks for Lot Description field
                    exportLineString.AppendFormat("{0,-12}", "");                                                                    //add blanks for Product ID field
                    exportLineString.AppendFormat("{0,-10}", rows[ExportDataRow][ImportSettings.CommodityColumn].ToString().Trim()); //add commondity ID
                    exportLineString.AppendFormat("{0,-16}", rows[ExportDataRow][ImportSettings.VarietyColumn].ToString().Trim());   //add Variety ID
                    exportLineString.AppendFormat("{0,-10}", rows[ExportDataRow][ImportSettings.StyleColumn].ToString().Trim());     //add Style ID
                    exportLineString.AppendFormat("{0,-10}", rows[ExportDataRow][ImportSettings.SizeColumn].ToString().Trim());      //add Size ID

                    //Clear stone fruit Grade
                    Tempgrade = rows[ExportDataRow][ImportSettings.GradeColumn].ToString().Trim();  //add Grade ID
                    foreach (DataRow Commodityrow in CommodityValidateRows)
                    {
                        if (rows[ExportDataRow][ImportSettings.CommodityColumn].ToString() == Commodityrow[2].ToString() &&
                            Commodityrow[3].ToString() == "Stone Fruit")
                        {
                            Tempgrade = "";      //use blank for grade
                        }
                    }

                    exportLineString.AppendFormat("{0,-10}", Tempgrade);                                                                   //set grade

                    exportLineString.AppendFormat("{0,-16}", rows[ExportDataRow][ImportSettings.LabelColumn].ToString().Trim());           //add Label ID
                    exportLineString.AppendFormat("{0,-16}", exportStringList[6]);                                                         //add Region ID
                    exportLineString.AppendFormat("{0,-16}", exportStringList[7]);                                                         //add Method ID
                    exportLineString.AppendFormat("{0,-16}", exportStringList[8]);                                                         //add Storage ID
                    exportLineString.AppendFormat("{0,-16}", rows[ExportDataRow][ImportSettings.PalletTypeColumn].ToString().Trim());      //add Color ID/Pallet Type
                    exportLineString.AppendFormat("{0,-16}", "");                                                                          //add blanks for Quality
                    exportLineString.AppendFormat("{0,-16}", "");                                                                          //add blanks for Condition
                    exportLineString.AppendFormat("{0,1}", exportStringList[9]);                                                           //add Availabel Flag
                    exportLineString.AppendFormat("{0,8}", rows[ExportDataRow][ImportSettings.InventoryQuantityColumn].ToString().Trim()); //add Inventory/box count
                    exportLineString.AppendFormat("{0,-3}", "000");                                                                        //add 3 zeros for inventory quantity which has 3 implied decimal places
                    exportLineString.AppendFormat("{0,-11}", "");                                                                          //add blanks for Quantity field
                    exportLineString.AppendFormat("{0,-5}", "");                                                                           //add blanks for Unit of Measure field
                    exportLineString.AppendFormat("{0,-4}", "");                                                                           //add blanks for Units per Pallet field
                    exportLineString.AppendFormat("{0,-12}", "");                                                                          //add blanks for Room/Row ID field


                    exportLineString.AppendFormat("{0,-10}", DateTime.Parse(DateNumberToDateString.ConvertDateNumberToDateString(rows[ExportDataRow]
                                                                                                                                 [ImportSettings.FirstPackDateColumn].ToString().Trim()), mFomatter).ToString("MM/dd/yyyy")); //add First Pack Date
                    exportLineString.AppendFormat("{0,-14}", "");                                                                                                                                                             //add blanks for GTIN field
                    exportLineString.AppendFormat("{0,-20}", "");                                                                                                                                                             //add blanks for GS1Lot field
                    exportLineString.AppendFormat("{0,-10}", "");                                                                                                                                                             //add blanks for GS1 Date field



                    RecordsToExport.Add(exportLineString.ToString());  //add record to record list to send to file
                }

                CreateLineNumber.UpdateLineNumber(ReceiptNumber, LineNumber);

                exported = true;  //happy export :)
            }

            catch (Exception e)
            {
                exported = false;
                MessageBox.Show("Famous Export process failed.  \nPlease note what was done and see admin for help.  \n");
                Error_Logging el = new Error_Logging("Famous Export process had an error.  \n" + e);
            }

            return(exported);  //let progrom know it completed
        }
        public AdamsExportToExcel(DataSet ds, ImportTemplateSettings ImS, List <String> dl)
        {
            //set data
            Data2Export      = ds.Copy();
            ImportSettings   = ImS;
            exportStringList = dl;

            //do combining here
            CombineMixedBoxesOnPallets CombinedBoxes = new CombineMixedBoxesOnPallets(Data2Export, ImportSettings, "Adams");

            CombinedBoxes.CombineMixedPallets();
            CombinedBoxes.ViewData();
            Data2Export = CombinedBoxes.CombinedData();


            SaveFileDialog saveFileDialogSaveExportFile = new SaveFileDialog();
            object         misValue      = System.Reflection.Missing.Value;
            string         sExporter     = exportStringList[11].ToString();
            string         sVesselNumber = exportStringList[13].ToString();



            //Get export file name and path
            saveFileDialogSaveExportFile.InitialDirectory = Properties.Settings.Default.AdamsExportFilePath;  //get default path from settings
            saveFileDialogSaveExportFile.FileName         = saveFileDialogSaveExportFile.FileName = TruncateString.Truncate2(sExporter, 4) + "_"
                                                                                                    + sVesselNumber.ToString() + "_Export.xls";
            DialogResult result = saveFileDialogSaveExportFile.ShowDialog();


            if (saveFileDialogSaveExportFile.FileName != "")  //check if file name is blank
            {
                ExcelFileName = saveFileDialogSaveExportFile.FileName;
            }
            else  //use default path and name if one not selected
            {
                ExcelFileName = Properties.Settings.Default.AdamsExportFilePath + "\\Export_File.xls";
            }

            saveFileDialogSaveExportFile.Dispose();


            if (result == DialogResult.OK)  //only try to open excel file if open dialog <OK> button was clicked.
            {
                Excel.ApplicationClass excelapp = new Excel.ApplicationClass();
                excelapp.Visible       = true;
                excelapp.DisplayAlerts = false;      //don't display any dialog boxes or alerts from the excel app.


                Excel._Workbook  workbook  = (Excel._Workbook)(excelapp.Workbooks.Add(Type.Missing));
                Excel._Worksheet worksheet = (Excel._Worksheet)workbook.ActiveSheet;


                try
                {
                    //Write top section labels
                    worksheet.Cells[1, 1] = "Exporter:";
                    worksheet.Cells[2, 1] = "Port:";
                    worksheet.Cells[3, 1] = "Vessel Name:";
                    worksheet.Cells[4, 1] = "Pandol Lot Number:";

                    worksheet.Cells[1, 8] = "Total Box Count:";

                    //Set headers of data section
                    worksheet.Cells[5, 1]  = "\n\nPallet \nPrefix";
                    worksheet.Cells[5, 2]  = "\n\nPallet\nNumber";
                    worksheet.Cells[5, 3]  = "\n\n\nSpecies";
                    worksheet.Cells[5, 4]  = "\n\n\nVariety";
                    worksheet.Cells[5, 5]  = "\n\n\nLabel";
                    worksheet.Cells[5, 6]  = "\nPack\nDescription";
                    worksheet.Cells[5, 7]  = "Majority\nGrade\nSize";
                    worksheet.Cells[5, 8]  = "\nMajority\nPack Date";
                    worksheet.Cells[5, 9]  = "\nMajority\nProducer";
                    worksheet.Cells[5, 10] = "\nBox\nCount";
                    worksheet.Cells[5, 11] = "\n\n\nHatch";
                    worksheet.Cells[5, 12] = "\n\n\nDeck";
                    worksheet.Cells[5, 13] = "\nFumigation\nCode";
                    worksheet.Cells[5, 14] = "\n\n\nPallet Memo";
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error creating Excel workbook for Export. \nContact the adminstrator for help and note what you just did.  \n" +
                                    "See error log for more information.  \n");
                    Error_Logging el = new Error_Logging("Error creating Excel workbook for Export. \n" + ex);
                }

                try
                {
                    //Write exporter and shipping data in top section of spreadsheet
                    worksheet.Cells[1, 2] = exportStringList[11].ToString();  //Exporter Name
                    worksheet.Cells[2, 2] = exportStringList[15].ToString();  //Destination Port
                    worksheet.Cells[3, 2] = exportStringList[14].ToString();  //Vessel Name
                    worksheet.Cells[4, 2] = exportStringList[13].ToString();  //Pandol Lot Number
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error writing top section of Excel workbook for Export. \nContact the adminstrator for help and note what you just did.  \n" +
                                    "See error log for more information.  \n");
                    Error_Logging el = new Error_Logging("Error writing top section of Excel workbook for Export. \n" + ex);
                }


                //write pallet data
                try
                {
                    int tempdataRow = 0;
                    BoxCount = 0;

                    for (int ExportDataRow = 0; ExportDataRow < Data2Export.Tables[0].Rows.Count; ExportDataRow++)
                    {
                        tempdataRow = ExportDataRow + 6;                //start on row 6

                        if (exportStringList[10].ToString().Length < 1) //check to see if prefix is blank
                        {
                            worksheet.Cells[tempdataRow, 1] =
                                Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.TagNumberColumn].ToString().Trim().Substring(0, 3);
                        }
                        else
                        {
                            worksheet.Cells[tempdataRow, 1] = exportStringList[10].ToString();  //Pallet Prefix
                        }

                        if (ImportSettings.PalletPrefixColumn == ImportSettings.TagNumberColumn || exportStringList[10].ToString().Length < 1)
                        {
                            tempString = Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.TagNumberColumn].ToString().Trim();
                            worksheet.Cells[tempdataRow, 2] = tempString.Substring(3, tempString.Length - 3);  //Pallet Number
                        }
                        else
                        {
                            worksheet.Cells[tempdataRow, 2] = Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.TagNumberColumn].ToString();      //Pallet Number
                        }
                        worksheet.Cells[tempdataRow, 3] = Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.CommodityColumn].ToString();          //Species/Commodity
                        worksheet.Cells[tempdataRow, 4] = Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.VarietyColumn].ToString();            //Variety
                        worksheet.Cells[tempdataRow, 5] = Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.LabelColumn].ToString();              //Label
                        //Pack Description
                        worksheet.Cells[tempdataRow, 6] = Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.PackCodeColumn].ToString();           //Pack Code
                        worksheet.Cells[tempdataRow, 7] = Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.GradeColumn].ToString();              //Majority Grade
                        Dt = DateTime.Parse(DateNumberToDateString.ConvertDateNumberToDateString(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.FirstPackDateColumn].ToString()), mFomatter);
                        worksheet.Cells[tempdataRow, 8] = Dt.ToString("MM/dd/yyyy");                                                                     //Pack Date
                        worksheet.Cells[tempdataRow, 9] = Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.GrowerNumberColumn].ToString();       //Producer

                        worksheet.Cells[tempdataRow, 10] = Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.InventoryQuantityColumn].ToString(); //Box Count

                        if (Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.HatchColumn].ToString().Trim() ==
                            Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.DeckColumn].ToString().Trim() &
                            Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.DeckColumn].ToString().Trim().Split('-').Length == 2 &
                            Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.DeckColumn].ToString().Trim().Length < 4)
                        {
                            worksheet.Cells[tempdataRow, 11] = Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.HatchColumn].ToString().Trim().Split('-')[0]; //Hatch
                            worksheet.Cells[tempdataRow, 12] = Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.DeckColumn].ToString().Trim().Split('-')[1];  //Deck
                        }
                        else
                        {
                            worksheet.Cells[tempdataRow, 11] = Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.HatchColumn].ToString().Trim(); //Hatch
                            worksheet.Cells[tempdataRow, 12] = Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.DeckColumn].ToString().Trim();  //Deck
                        }
                        worksheet.Cells[tempdataRow, 13] = Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.FumigatedColumn].ToString();        //Fumigation
                        worksheet.Cells[tempdataRow, 14] = Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.MemoColumn].ToString();             //Memo

                        BoxCount = BoxCount + Convert.ToInt32(Data2Export.Tables[0].Rows[ExportDataRow][ImportSettings.InventoryQuantityColumn]);       //get running total of boxes
                    }

                    worksheet.Cells[1, 10] = BoxCount;



                    workbook.SaveAs(ExcelFileName, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, Excel.XlSaveConflictResolution.xlLocalSessionChanges, misValue, misValue, misValue, misValue);

                    excelapp.UserControl = true;
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error writing pallet data to Export Excel spreadsheet. \nContact the adminstrator for help and note what you just did.  \n" +
                                    "See error log for more information.  \n");
                    Error_Logging el = new Error_Logging("Error writing pallet data to Export Excel spreadsheet. \n" + ex);
                }

                workbook.Close(true, misValue, misValue);
                excelapp.Quit();

                releaseObject(worksheet);
                releaseObject(workbook);
                releaseObject(excelapp);

                exported = true;  //Happy export  :)
            }
        }
示例#4
0
        public bool ExportData()                                  //creates the export list from the Data2Export dataset
        {
            StringBuilder exportLineString = new StringBuilder(); //string builder used to create export text lines.
            DataSet       TempDataSet      = new DataSet();       //dataset for summing the box count for each grower block
            string        tagnumber;                              //temp string for tag number creation
            string        ProductCheck     = "";                  //Used to hold the concatenated string to check for changes to increment the line number
            string        TempProductCheck = "";                  //Temp string variable for the above
            //string TempGrowerBlockID = "";  //Temp string for holding grower block ID to detect when it changes
            int    LineNumber         = 0;
            string Tempgrade          = "";
            int    TempGrowerBoxCount = 0;
            string TempGrowerBlock;
            string TempCommodity;
            string TempVariety;
            string TempStyle;
            string TempSize;
            string TempGrade2;
            string TempLabel;
            bool   FirstProductBlock = true;

            RecordsToExport.Clear();  //clear list in case this method has been run already.

            // DataRow[] StoneFruitRows = StoneFruitTable.Select("[Commodity] = *");  //get all rows for stone fruit commodities;


            //do combining of mixed pallets here and send name of export to use for title of window
            //Instantiate the box combining object for mixed pallets.
            CombineMixedBoxesOnPallets CombinedBoxes = new CombineMixedBoxesOnPallets(Data2Export, ImportSettings, "Famous");

            CombinedBoxes.CombineMixedPallets();
            CombinedBoxes.ViewData();
            Data2Export = CombinedBoxes.CombinedData();


            //Sort data before exporting  *********************************************************
            DataViewManager dvm = new DataViewManager();

            dvm.DataSet = Data2Export.Copy();
            DataTable dt1 = new DataTable();


            //Name columns so they are always named the same for the sorting
            dvm.DataSet.Tables[0].Columns[ImportSettings.GradeColumn].ColumnName = "GradeColumn";
            dvm.DataSet.Tables[0].Columns[1].ColumnName = "GrowerBlockColumn";
            dvm.DataSet.Tables[0].Columns[ImportSettings.CommodityColumn].ColumnName = "CommodityColumn";
            dvm.DataSet.Tables[0].Columns[ImportSettings.StyleColumn].ColumnName     = "StyleColumn";
            dvm.DataSet.Tables[0].Columns[ImportSettings.SizeColumn].ColumnName      = "PackSizeColumn";
            dvm.DataSet.Tables[0].Columns[ImportSettings.LabelColumn].ColumnName     = "LabelColumn";
            dvm.DataSet.Tables[0].Columns[ImportSettings.PackCodeColumn].ColumnName  = "PackCode";
            //sort
            // dvm.DataViewSettings[0].Sort = "GrowerBlockColumn, LabelColumn, PackCode, PackSizeColumn, StyleColumn, GradeColumn";  //"[Label], [PackSize], [Style], [Grade], [Grower Block], [Commodity]";

            dvm.DataSet.AcceptChanges();


            //Fill the Datarow array with the sorted data
            DataRow[] rows = dvm.DataSet.Tables[0].Select(string.Empty, "GrowerBlockColumn, LabelColumn, PackCode, PackSizeColumn, StyleColumn, GradeColumn", DataViewRowState.CurrentRows);

            //*************************************************************************************

            //Code to check for exporter and vessel number in archive
            string connString = Properties.Settings.Default.ArchiveConnectionString;                                                            //get connection string from the application settings

            System.Data.SqlClient.SqlConnection conn   = new System.Data.SqlClient.SqlConnection(Properties.Settings.Default.ConnectionString); // Instantiate connection object
            SqlDataAdapter ArchivedReceiptsDataAdaptor = null;                                                                                  //DataAdaptor for the Exporter-Vessel_Number, Receipt number table
            // SqlDataAdapter ArchivedReceiptsDataAdaptor2 = null;  //DataAdaptor for the Exporter_Name-Vessel_Number, Receipt number table
            SqlCommandBuilder cmdBuilder;                                                                                                       //using sql command builder to create update command
            //SqlCommandBuilder cmdBuilder2; //using sql command builder to create update command
            SqlCommand QueryCommand = null;                                                                                                     //query string
            //SqlCommand QueryCommand2 = null;  //query string


            //get receipt numbers data from archive database for Exporter
            DataSet dt = new DataSet();

            if (Properties.Settings.Default.Mode.ToString() == "Test")  //check for test mode and use test archive if test mode
            {
                QueryCommand = new SqlCommand("  Select DISTINCT [Exporter_Name] + '-' + [Vessel_Number] AS EXNUM, [Receipt_Number] " +
                                              "FROM [ImportDataWarehouse].[dbo].[FAPI_Import_Data_Archive_Test]" +
                                              "ORDER BY EXNUM", conn);
            }
            else
            {
                QueryCommand = new SqlCommand("  Select DISTINCT [Exporter_Name] + '-' + [Vessel_Number] AS EXNUM, [Receipt_Number] " +
                                              "FROM [ImportDataWarehouse].[dbo].[FAPI_Import_Data_Archive]" +
                                              "ORDER BY EXNUM", conn);
            }



            ArchivedReceiptsDataAdaptor = new SqlDataAdapter(QueryCommand);

            cmdBuilder = new SqlCommandBuilder(ArchivedReceiptsDataAdaptor);

            conn.Open();

            ArchivedReceiptsDataAdaptor.Fill(dt);

            conn.Close();



            //get data for exporter-vessel from archive.  if it exists popup get receipt number window to get receipt number
            string ExporterVessel = "'" + exportStringList[11].ToString().Trim() + "-" + exportStringList[13].ToString().Trim() + "'";

            DataRow[] ReceiptRows = dt.Tables[0].Select("EXNUM = " + ExporterVessel);



            if (ReceiptRows.Length == 0)  //No matches were found for the exporter and vessel number
            {
                IncrementReceiptNumber rn = new IncrementReceiptNumber();
                ReceiptNumber      = rn.GetNewReceiptNumber(); //get incremented receipt number
                ReUseReceiptNumber = 0;
                CrudType           = "Create";
            }
            else  //Matches found
            {
                //Open Select Receipt form
                Select_Receipt_Number Select_Receipt_Form = new Select_Receipt_Number(ReceiptRows);

                DialogResult result = Select_Receipt_Form.ShowDialog();

                if (result == DialogResult.OK)  //used clicked OK
                {
                    ReceiptNumber      = Select_Receipt_Form.GetReceiptNumber();
                    ReUseReceiptNumber = 1;  //Reused the receipt number
                    CrudType           = "Update";
                }
                else  //Cancel or window closed
                {
                    IncrementReceiptNumber rn = new IncrementReceiptNumber();
                    ReceiptNumber      = rn.GetNewReceiptNumber();
                    ReUseReceiptNumber = 0;
                    CrudType           = "Create";
                }

                Select_Receipt_Form.Dispose();
            }

            //get last line number used for this receipt number *****************************************
            LineNumber = CreateLineNumber.LastLineNumber(ReceiptNumber);  //set the start point to the last line number for this receipt number
            //the number will be incremented by 1 before using.

            try  //Begin creation of the export string list for export
            {
                string tempString;
                //Add Header info
                exportLineString.AppendLine("<InventoryTransaction>");
                exportLineString.AppendLine("  <CRUDType>" + CrudType + "</CRUDType>");
                if (exportStringList[0] == "1")  //convert transaction type code to text
                {
                    tempString = "Receive";
                }
                else if (exportStringList[0] == "2")
                {
                    tempString = "Pack";
                }
                else
                {
                    tempString = "repack";
                }
                exportLineString.AppendLine("  <TransactionType>" + tempString + "</TransactionType>");
                exportLineString.AppendLine("  <ProductType>Grower</ProductType>");
                exportLineString.AppendLine("  <ReceivingEntryNumber>" + ReceiptNumber.ToString() + "</ReceivingEntryNumber>");
                exportLineString.AppendLine("  <TransactionDate>" +
                                            DateTime.Parse(DateNumberToDateString.ConvertDateNumberToDateString(exportStringList[1].Split(' ')[0]), mFomatter).ToString("yyyy-MM-dd")
                                            + "</TransactionDate>");

                //exportStringList[1].Split(' ')[0] + "</TransactionDate>");
                exportLineString.AppendLine("  <BulkFlag>" + exportStringList[2].ToString() + "</BulkFlag>");
                // exportLineString.AppendLine("  <FirstReceiveDate>2011-05-02</FirstReceiveDate>");  //Optional
                exportLineString.AppendLine("  <Warehouse>" + exportStringList[3] + "</Warehouse>");
                exportLineString.AppendLine("  <LotId>" + exportStringList[13].ToString().Trim() + "</LotId>");  //Vessel Number/Lot ID

                exportLineString.AppendLine("  <ProductLines>");

                RecordsToExport.Add(exportLineString.ToString());  //add record to record list to send to file

                //Add imported data to export
                for (int ExportDataRow = 0; ExportDataRow < rows.Length; ExportDataRow++)
                {
                    exportLineString = new StringBuilder();

                    /*
                     * if (TempGrowerBlockID != rows[ExportDataRow][1].ToString().Trim())  //Look for changed blockID
                     * {
                     *
                     *    exportLineString.AppendLine("    <ProductLine>");
                     *    exportLineString.AppendLine("      <CRUDType>Create</CRUDType>");
                     *
                     *    LineNumber++;  //Line number starts from zero so increment even the first time through
                     *
                     *    exportLineString.AppendLine("      <LineNumber>" + LineNumber.ToString() + "</LineNumber>");
                     *    exportLineString.AppendLine("      <BlockId>" + rows[ExportDataRow][1].ToString().Trim() + "</BlockId>");
                     *
                     *
                     *
                     *    //add code to get inventory quantity for block ID  *********************************************************
                     *    DataViewManager Gdvm = new DataViewManager();
                     *    Gdvm.DataSet = Data2Export.Copy();
                     *    TempGrowerBlock = rows[ExportDataRow][1].ToString().Trim();
                     *    Gdvm.DataSet.Tables[0].Columns[1].ColumnName = "Grower_Block_Column";
                     *    DataRow[] GrowerBlockrows = Gdvm.DataSet.Tables[0].Select("Grower_Block_Column = '" + TempGrowerBlock + "'");
                     *
                     *    TempGrowerBoxCount = 0;
                     *    foreach (DataRow Growerrow in GrowerBlockrows)  // Sum up the total inventory quantity for the grower block
                     *    {
                     *        TempGrowerBoxCount = TempGrowerBoxCount + Convert.ToInt32(Growerrow[ImportSettings.InventoryQuantityColumn]);
                     *
                     *    }
                     *
                     *     exportLineString.AppendLine("      <InventoryQuantity>" +
                     *                  TempGrowerBoxCount + "</InventoryQuantity>");
                     *
                     *    exportLineString.AppendLine("      <AvailableFlag>" + exportStringList[9] + "</AvailableFlag>");
                     *    //exportLineString.AppendLine("      <CompletedFlag>" + exportStringList[9] + "</CompletedFlag>");  //Optional
                     *
                     * }
                     */

                    //  TempGrowerBlockID = rows[ExportDataRow][1].ToString().Trim();  //set old BlockID identifier text to new one


                    //used to check to see if any of the product defining variables have changed.
                    TempProductCheck = rows[ExportDataRow][1].ToString().Trim()                                //Grower block
                                       + rows[ExportDataRow][ImportSettings.CommodityColumn].ToString().Trim() //Commodity
                                       + rows[ExportDataRow][ImportSettings.VarietyColumn].ToString().Trim()   //Variety
                                       + rows[ExportDataRow][ImportSettings.StyleColumn].ToString().Trim()     //Style
                                       + rows[ExportDataRow][ImportSettings.SizeColumn].ToString().Trim()      //Size
                                       + rows[ExportDataRow][ImportSettings.GradeColumn].ToString().Trim()     //Grade
                                       + rows[ExportDataRow][ImportSettings.LabelColumn].ToString().Trim();    //Label

                    // exportLineString = new StringBuilder();  //Start with as fresh stingbuilder object to create the export text line

                    //details


                    //If product definition changes, increment the line number
                    if (ProductCheck != TempProductCheck)
                    {
                        //****************
                        if (!(FirstProductBlock))      //skip the first time through
                        {
                            exportLineString.AppendLine("      </InventoryTags>");
                            exportLineString.AppendLine("    </ProductLine>");
                        }
                        FirstProductBlock = false;      // set to false after first pass

                        exportLineString.AppendLine("    <ProductLine>");
                        exportLineString.AppendLine("      <CRUDType>Create</CRUDType>"); //" + CrudType + "</CRUDType>");

                        LineNumber++;                                                     //Line number starts from zero so increment even the first time through

                        exportLineString.AppendLine("      <LineNumber>" + LineNumber.ToString() + "</LineNumber>");
                        exportLineString.AppendLine("      <BlockId>" + rows[ExportDataRow][1].ToString().Trim() + "</BlockId>");



                        //add code to get inventory quantity for block ID  *********************************************************
                        DataViewManager Gdvm = new DataViewManager();
                        Gdvm.DataSet    = Data2Export.Copy();
                        TempGrowerBlock = rows[ExportDataRow][1].ToString().Trim();
                        TempCommodity   = rows[ExportDataRow][ImportSettings.CommodityColumn].ToString().Trim();
                        TempVariety     = rows[ExportDataRow][ImportSettings.VarietyColumn].ToString().Trim();
                        TempStyle       = rows[ExportDataRow][ImportSettings.StyleColumn].ToString().Trim();
                        TempSize        = rows[ExportDataRow][ImportSettings.SizeColumn].ToString().Trim();
                        TempGrade2      = rows[ExportDataRow][ImportSettings.GradeColumn].ToString().Trim();
                        TempLabel       = rows[ExportDataRow][ImportSettings.LabelColumn].ToString().Replace("'", "''").Trim();

                        Gdvm.DataSet.Tables[0].Columns[1].ColumnName = "TempGrower_Block_Column";
                        Gdvm.DataSet.Tables[0].Columns[ImportSettings.CommodityColumn].ColumnName = "TempCommodity";
                        Gdvm.DataSet.Tables[0].Columns[ImportSettings.VarietyColumn].ColumnName   = "TempVariety";
                        Gdvm.DataSet.Tables[0].Columns[ImportSettings.StyleColumn].ColumnName     = "TempStyle";
                        Gdvm.DataSet.Tables[0].Columns[ImportSettings.SizeColumn].ColumnName      = "TempSize";
                        Gdvm.DataSet.Tables[0].Columns[ImportSettings.GradeColumn].ColumnName     = "TempGrade";
                        Gdvm.DataSet.Tables[0].Columns[ImportSettings.LabelColumn].ColumnName     = "TempLabel";



                        // DataRow[] GrowerBlockrows = Gdvm.DataSet.Tables[0].Select("Grower_Block_Column = '" + TempGrowerBlock + "'");
                        DataRow[] GrowerBlockrows;      //Don't use Grade if it is blank.
                        if (TempGrade2.Length > 0)
                        {
                            GrowerBlockrows = Gdvm.DataSet.Tables[0].Select("TempGrower_Block_Column = '" + TempGrowerBlock +
                                                                            "' AND TempCommodity = '" + TempCommodity + "' AND TempVariety = '" + TempVariety + "' AND TempStyle = '" +
                                                                            TempStyle + "' AND TempSize = '" + TempSize + "' AND TempGrade = '" + TempGrade2 +
                                                                            "' AND TempLabel = '" + TempLabel + "'");
                        }
                        else
                        {
                            GrowerBlockrows = Gdvm.DataSet.Tables[0].Select("TempGrower_Block_Column = '" + TempGrowerBlock +
                                                                            "' AND TempCommodity = '" + TempCommodity + "' AND TempVariety = '" + TempVariety + "' AND TempStyle = '" +
                                                                            TempStyle + "' AND TempSize = '" + TempSize + "' AND TempLabel = '" + TempLabel + "'");
                        }



                        TempGrowerBoxCount = 0;
                        foreach (DataRow Growerrow in GrowerBlockrows)      // Sum up the total inventory quantity for the grower block
                        {
                            TempGrowerBoxCount = TempGrowerBoxCount + Convert.ToInt32(Growerrow[ImportSettings.InventoryQuantityColumn]);
                        }

                        exportLineString.AppendLine("      <InventoryQuantity>" +
                                                    TempGrowerBoxCount + "</InventoryQuantity>");

                        exportLineString.AppendLine("      <AvailableFlag>" + exportStringList[9] + "</AvailableFlag>");

                        //*************

                        exportLineString.AppendLine("      <Product>");
                        exportLineString.AppendLine("        <CommodityId>" + rows[ExportDataRow][ImportSettings.CommodityColumn].ToString().Trim()
                                                    + "</CommodityId>");
                        exportLineString.AppendLine("        <VarietyId>" + rows[ExportDataRow][ImportSettings.VarietyColumn].ToString().Trim()
                                                    + "</VarietyId>");
                        exportLineString.AppendLine("        <StyleId>" + rows[ExportDataRow][ImportSettings.StyleColumn].ToString().Trim()
                                                    + "</StyleId>");
                        exportLineString.AppendLine("        <SizeId>" + rows[ExportDataRow][ImportSettings.SizeColumn].ToString().Trim()
                                                    + "</SizeId>");

                        //Check to see if it is a stone fruit. then use size for Grade otherwise use the grade
                        Tempgrade = rows[ExportDataRow][ImportSettings.GradeColumn].ToString().Trim();      //add Grade ID
                        //foreach (DataRow StoneFruitRow in StoneFruitTable.Rows) //check all listed change if it is a stone fruit
                        // {
                        //  if (rows[ExportDataRow][ImportSettings.CommodityColumn].ToString() == StoneFruitRow[0].ToString())
                        //  {
                        //     Tempgrade = rows[ExportDataRow][ImportSettings.SizeColumn].ToString().Trim();  //use size for grade
                        // }
                        // }

                        if (Tempgrade.Length > 0)     // export grade only if it has a value
                        {
                            exportLineString.AppendLine("        <GradeId>" + Tempgrade + "</GradeId>");
                        }

                        exportLineString.AppendLine("        <LabelId>" + rows[ExportDataRow][ImportSettings.LabelColumn].ToString().Trim()
                                                    + "</LabelId>");
                        //exportLineString.AppendLine("        <MethodId>" + exportStringList[7]
                        //+ "</MethodId>");
                        exportLineString.AppendLine("        <RegionId>" + exportStringList[6]
                                                    + "</RegionId>");
                        exportLineString.AppendLine("        <StorageId>" + exportStringList[8]
                                                    + "</StorageId>");
                        exportLineString.AppendLine("        <ColorId>" + rows[ExportDataRow][ImportSettings.PalletTypeColumn].ToString().Trim()
                                                    + "</ColorId>"); //Used for Pallet code

                        exportLineString.AppendLine("      </Product>");
                        exportLineString.AppendLine("      <InventoryTags>");
                    }
                    ProductCheck = TempProductCheck;      // Set the product check variable to current

                    //Inventory tag section
                    exportLineString.AppendLine("        <InventoryTag>");

                    if ((ImportSettings.PalletPrefixColumn == ImportSettings.TagNumberColumn) || (exportStringList[10].ToString().Length < 1)) //special case for which has prefix as part of tag number already
                    {                                                                                                                          //and the import setting point to same column for both
                        tagnumber = rows[ExportDataRow][ImportSettings.TagNumberColumn].ToString().Trim();
                    }
                    else
                    {
                        tagnumber = rows[ExportDataRow][ImportSettings.TagNumberColumn].ToString().Trim();                                                     //set tag number to the data tag number
                        if (tagnumber.Length > 3)                                                                                                              //if is less than 4, it can not contain a prefix and a tag number in one
                        {
                            if (!(exportStringList[10].ToString() == (rows[ExportDataRow][ImportSettings.TagNumberColumn].ToString().Trim().Substring(0, 3)))) //Prefix not in Tag Number
                            {
                                tagnumber = exportStringList[10].ToString() + rows[ExportDataRow][ImportSettings.TagNumberColumn].ToString().Trim();           //append prefix code
                            }
                        }
                    }
                    exportLineString.AppendLine("        <TagId>" + tagnumber + "</TagId>");

                    //Total quantity
                    exportLineString.AppendLine("        <InventoryQuantity>" +
                                                rows[ExportDataRow][ImportSettings.InventoryQuantityColumn].ToString().Trim() + "</InventoryQuantity>");
                    exportLineString.AppendLine("        <Quantity>" + rows[ExportDataRow][ImportSettings.InventoryQuantityColumn].ToString().Trim() +
                                                "</Quantity>");

                    exportLineString.AppendLine("        <AvailableFlag>" + exportStringList[9] + "</AvailableFlag>");

                    // exportLineString.AppendLine("        <GS1Date>" + DateTime.Parse(DateNumberToDateString.ConvertDateNumberToDateString(rows[ExportDataRow]
                    //         [ImportSettings.FirstPackDateColumn].ToString().Trim()), mFomatter).ToString("yyyy-MM-dd") +
                    //  "</GS1Date>");  //First Pack Date
                    exportLineString.AppendLine("        </InventoryTag>");

                    RecordsToExport.Add(exportLineString.ToString());  //add record to record list to send to file
                }

                exportLineString = new StringBuilder();

                exportLineString.AppendLine("      </InventoryTags>");
                exportLineString.AppendLine("    </ProductLine>");
                exportLineString.AppendLine("  </ProductLines>");
                exportLineString.AppendLine("</InventoryTransaction>");  //add final tags
                RecordsToExport.Add(exportLineString.ToString());

                CreateLineNumber.UpdateLineNumber(ReceiptNumber, LineNumber);

                exported = true;  //happy export :)
            }

            catch (Exception e)
            {
                exported = false;
                MessageBox.Show("Famous Export process failed.  \nPlease note what was done and see admin for help.  \n");
                Error_Logging el = new Error_Logging("Famous Export process had an error.  \n" + e);
            }

            return(exported);  //let program know it completed
        }