private void MigrateUnprocessedCompaniesFromJDE(iDB2Command db2Command)
        {
            Dictionary <string, Company> jdeCompList = new Dictionary <string, Company>();

            st.insertLog("Migrating Companies", "Info", "NA", LogId);

            iDB2DataReader reader;

            using (iDB2Transaction db2Transaction = db2Command.Connection.BeginTransaction())
            {
                db2Command.Transaction = db2Transaction;

                db2Command.CommandText = string.Format("SELECT * FROM FSTCOMP WHERE SCSTAT != '{0}'", "P");

                reader = db2Command.ExecuteReader();

                while (reader.Read())
                {
                    Company temp = new Company();

                    temp.scan8 = (string)reader["SCAN8"];
                    temp.type  = Char.Parse((string)reader["SCACTN"]);
                    //Company Name
                    temp.name              = ((string)reader["SCNAME"]).Trim();
                    temp.addressStreet     = ((string)reader["SCADDR"]).Trim();
                    temp.addressCity       = ((string)reader["SCCITY"]).Trim();
                    temp.addressState      = ((string)reader["SCST"]).Trim();
                    temp.addressPostalCode = ((string)reader["SCZIP"]).Trim();
                    temp.customer          = Int32.Parse((string)reader["SCCUST"]) == 1 ? true : false;
                    temp.vendor            = Int32.Parse((string)reader["SCVEND"]) == 1 ? true : false;
                    temp.phoneNumber       = ((string)reader["SCPHON"]).Trim();
                    temp.status            = ((string)reader["SCSSTS"]).Trim();

                    jdeCompList.Add((string)reader["SCAN8"], temp);
                }

                reader.Close();
                db2Command.Transaction.Dispose();
            }

            if (jdeCompList.Count > 0)
            {
                st.insertLog(string.Format("Found {0} companies for update", jdeCompList.Count), "Info", "NA", HillerServiceDataMigrator.LogId);

                foreach (var jde in jdeCompList)
                {
                    st.insertLog("Migrating " + jde.Value.name, "Info", "NA", HillerServiceDataMigrator.LogId);

                    bool success = jde.Value.type == 'A' ? serviceTrade.AddCompany(jde.Value) : serviceTrade.UpdateCompany(jde.Value);
                    if (success)
                    {
                        // log.Debug("Updating Migrated Companies.");
                        using (iDB2Transaction db2Transaction = db2Command.Connection.BeginTransaction(IsolationLevel.Chaos))
                        {
                            db2Command.Transaction = db2Transaction;
                            db2Command.CommandText = "UPDATE FSTCOMP SET SCSTAT = @scstat WHERE SCAN8 = @key";
                            db2Command.DeriveParameters();
                            db2Command.Parameters["@scstat"].Value = 'P';
                            db2Command.Parameters["@key"].Value    = jde.Key;

                            // log.Debug(db2Command.CommandText);

                            try
                            {
                                db2Command.ExecuteNonQuery();
                            }
                            catch (Exception ex)
                            {
                                //  log.Error("Company update unsuccessful ", ex);
                            }

                            db2Command.Transaction.Dispose();
                        }
                    }
                }
            }
            else
            {
                // log.Info("No company found for processing.");
            }
        }