using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace BrMerger
{
    public partial class Form1 : Form
    {
        private int m_waitProgressMax;

        public Form1()
        {
            InitializeComponent();

            m_waitProgressMax = 0;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            button1.Enabled = false;
            backgroundWorker1.RunWorkerAsync();
        }

        private void RunProcess()
        {
            //SqlTransaction tr1 = null;

            SqlConnection conn1 = null;
            SqlConnection conn2 = null;
            SqlConnection conn3 = null;
            Stopwatch stopwatch = new Stopwatch();

            try
            {
                stopwatch.Start();
                string connectionString = ConfigurationManager.AppSettings["BazaReklam.ConnectionString"];

                conn1 = new SqlConnection(connectionString);
                conn1.Open();
                conn2 = new SqlConnection(connectionString);
                conn2.Open();
                conn3 = new SqlConnection(connectionString);
                conn3.Open();

                //są klienci którzy mają różnych agentów w różnych bazach

                // czynnosci wstępne: tytuły, grzbiety ... dane słownikowe
                // prościej chyba w SQLu, np. jakąś procedurę utworzyć.

                SqlCommand cmd1 = conn1.CreateCommand();
                SqlCommand cmd2 = conn2.CreateCommand();
                SqlCommand cmd3 = conn3.CreateCommand();

                string bazaReklamDbName = ConfigurationManager.AppSettings["BazaReklam.DbName"];
                string truckExpoDbName = ConfigurationManager.AppSettings["TruckExpo.DbName"];

                m_waitProgressMax = 0;

                cmd1.CommandText = "SELECT COUNT(*) " +
                       "FROM " + truckExpoDbName + ".dbo.Klienci " +
                       "WHERE CustomerID > 56710 ";

                m_waitProgressMax = (int)cmd1.ExecuteScalar();

                cmd1.CommandText = "SELECT CustomerID, FirstName, LastName, OrganizationName, Address, City, State, PostalCode, Country, Nip, ContactName, PhoneNumber, FaxNumber, " +
                       "Note, data, osw_nr, osw_wazne_do, Adres_Fkatura, Old_ID, Adres_Kor, Platnik_VAT, Aktywny, Email, UserName, Last_Modify, Modify_User, http, VIES, regon, krs, nipKraj " +
                       "FROM " + truckExpoDbName + ".dbo.Klienci " +
                       "WHERE CustomerID > 56710 " +
                       "ORDER BY CustomerID";

                SqlDataReader rdrCustomer, rdrReklama, rdrKontakt;

                int idCustomer, idReklama, idFaktura, idKontakt, n;
                int nKlienci, nKlienci_Osoby_Do_Kontaktu, nFAKTURY, nReklama, nFAKTURA_DETAILS, nPlatnosciEcard, nUKAzeSie, nProdukcja, nReklama_Info_Dod,
                    nKontakty, nKONTAKTY_Log, nKLIENCI_Log, nKlienci_Tytul, nOferty_Main, nSheduler, nKl_Klienci;
                nKlienci = nKlienci_Osoby_Do_Kontaktu = nFAKTURY = nReklama = nFAKTURA_DETAILS = nPlatnosciEcard = nUKAzeSie = nProdukcja = nReklama_Info_Dod
                        = nKontakty = nKONTAKTY_Log = nKLIENCI_Log = nKlienci_Tytul = nOferty_Main = nSheduler = nKl_Klienci = 0;

                //tr1 = conn3.BeginTransaction();
                //cmd3.Transaction = tr1;

                int nRead = 0;
                object obj1;

                rdrCustomer = cmd1.ExecuteReader();
                while (rdrCustomer.Read())
                {
                    if (backgroundWorker1.IsBusy)
                        backgroundWorker1.ReportProgress(nRead);

                    ++nRead;

                    SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM dbo.CustomerMap WHERE TruckExpoId=" + rdrCustomer["CustomerID"], conn2);

                    if ((int)cmd.ExecuteScalar() == 0)
                    {
                        //insert customer
                        cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.Klienci " +
                            "(FirstName, LastName, OrganizationName, Address, City, State, PostalCode, Country, Nip, ContactName, PhoneNumber, FaxNumber, Note, data, osw_nr, " +
                            "osw_wazne_do, Adres_Fkatura, Old_ID, Adres_Kor, Platnik_VAT, Aktywny, Email, UserName, Last_Modify, Modify_User, http, VIES, regon, krs, nipKraj, AgentExpo) " +
                            "SELECT FirstName, LastName, OrganizationName, Address, City, State, PostalCode, Country, Nip, ContactName, PhoneNumber, FaxNumber, Note, data, osw_nr, " +
                            "osw_wazne_do, Adres_Fkatura, Old_ID, Adres_Kor, Platnik_VAT, Aktywny, Email, UserName, Last_Modify, Modify_User, http, VIES, regon, krs, nipKraj, UserName " +
                            "FROM " + truckExpoDbName + ".dbo.Klienci WHERE CustomerID=" + rdrCustomer["CustomerID"];
                        n = cmd3.ExecuteNonQuery();

                        nKlienci += n;

                        cmd3.CommandText = "SELECT SCOPE_IDENTITY()";
                        obj1 = cmd3.ExecuteScalar();
                        idCustomer = Convert.ToInt32(obj1);

                    }
                    else
                    {
                        cmd3.CommandText = "SELECT BazaReklamId FROM CustomerMap WHERE TruckExpoId=" + rdrCustomer["CustomerID"];
                        idCustomer = (int)cmd3.ExecuteScalar();
                        cmd3.CommandText = "SELECT Akcja FROM CustomerMap WHERE TruckExpoId=" + rdrCustomer["CustomerID"];
                        int akcja = (int)cmd3.ExecuteScalar();

                        //jesli akcja>0 to trzeba uaktualnic wszystkie dane klienta z Bazy Reklam (CustomerID=idCustomer) danymi z bazy Truck_Expo
                        if (akcja > 0)
                        {
                            cmd3.CommandText = "UPDATE " + bazaReklamDbName + ".dbo.Klienci SET "
                                + bazaReklamDbName + ".dbo.Klienci.FirstName=E.FirstName,"
                                + bazaReklamDbName + ".dbo.Klienci.LastName=E.LastName,"
                                + bazaReklamDbName + ".dbo.Klienci.OrganizationName=E.OrganizationName,"
                                + bazaReklamDbName + ".dbo.Klienci.Address=E.Address,"
                                + bazaReklamDbName + ".dbo.Klienci.City=E.City,"
                                + bazaReklamDbName + ".dbo.Klienci.State=E.State,"
                                + bazaReklamDbName + ".dbo.Klienci.PostalCode=E.PostalCode,"
                                + bazaReklamDbName + ".dbo.Klienci.Country=E.Country,"
                                + bazaReklamDbName + ".dbo.Klienci.Nip=E.Nip,"
                                + bazaReklamDbName + ".dbo.Klienci.ContactName=E.ContactName,"
                                + bazaReklamDbName + ".dbo.Klienci.PhoneNumber=E.PhoneNumber,"
                                + bazaReklamDbName + ".dbo.Klienci.FaxNumber=E.FaxNumber,"
                                + bazaReklamDbName + ".dbo.Klienci.Note=E.Note,"
                                + bazaReklamDbName + ".dbo.Klienci.data=E.data,"
                                + bazaReklamDbName + ".dbo.Klienci.osw_nr=E.osw_nr,"
                                + bazaReklamDbName + ".dbo.Klienci.osw_wazne_do=E.osw_wazne_do,"
                                + bazaReklamDbName + ".dbo.Klienci.Adres_Fkatura=E.Adres_Fkatura,"
                                + bazaReklamDbName + ".dbo.Klienci.Old_ID=E.Old_ID,"
                                + bazaReklamDbName + ".dbo.Klienci.Adres_Kor=E.Adres_Kor,"
                                + bazaReklamDbName + ".dbo.Klienci.Platnik_VAT=E.Platnik_VAT,"
                                + bazaReklamDbName + ".dbo.Klienci.Aktywny=E.Aktywny,"
                                + bazaReklamDbName + ".dbo.Klienci.Email=E.Email,"
                                //+ bazaReklamDbName + ".dbo.Klienci.UserName=E.UserName,"
                                + bazaReklamDbName + ".dbo.Klienci.AgentExpo=E.UserName,"
                                + bazaReklamDbName + ".dbo.Klienci.Last_Modify=E.Last_Modify,"
                                + bazaReklamDbName + ".dbo.Klienci.Modify_User=E.Modify_User,"
                                + bazaReklamDbName + ".dbo.Klienci.http=E.http,"
                                + bazaReklamDbName + ".dbo.Klienci.VIES=E.VIES,"
                                + bazaReklamDbName + ".dbo.Klienci.regon=E.regon,"
                                + bazaReklamDbName + ".dbo.Klienci.krs=E.krs,"
                                + bazaReklamDbName + ".dbo.Klienci.nipKraj=E.nipKraj"
                                + " FROM "
                                + " (SELECT * FROM " + truckExpoDbName + ".dbo.Klienci "
                                + " WHERE CustomerID=" + rdrCustomer["CustomerID"] + ") E "
                                + " WHERE " + bazaReklamDbName + ".dbo.Klienci.CustomerID=" + idCustomer;
                            cmd3.ExecuteNonQuery();
                        }
                    }

                    cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.Klienci_Osoby_Do_Kontaktu " +
                           "(customerid, Imie_Nazwisko, stanowisko, Tel, email, opis) " +
                           "SELECT " + idCustomer + ", Imie_Nazwisko, stanowisko, Tel, email, opis " +
                           "FROM " + truckExpoDbName + ".dbo.Klienci_Osoby_Do_Kontaktu " +
                           "WHERE CustomerID=" + rdrCustomer["CustomerID"];
                    n = cmd3.ExecuteNonQuery();
                    nKlienci_Osoby_Do_Kontaktu += n;


                    //Reklamy Truck_Expo
                    cmd2.CommandText = "SELECT ReklamaID, CustomerID, [SYMBOL AKWIZYTORA], TYTUŁ, TYP, [ID REKLAMY], [NICK NAME], [DATA ZAMÓWIENIA], SZER, WYS, MOD_TYP, STRONA, [STR NR WT], " +
                            "[STR NR PT], KROTNOŚĆ, ODSTĘP, KOLOR, [WSKAZANIE MIEJSCA], RABAT, [RABAT WARTOŚĆ], ZAPŁACONO, [ZATWIERDZONO DO DRUKU], [DATA ZAPŁATY], " +
                            "[SYMBOL POTWIERDZENIA], [RODZAJ POTWIERDZENIA], [CENA JEDN], NETTO, VAT, PVAT, BRUTTO, [PROCENT PROWIZJI], PROWIZJA, INFO, [FAKTURA NUMER], " +
                            "[FAKTURA ID KONTA], [FAKTURA DATA WYSTAWIENIA], [FAKTURA DATA SPRZEDAŻY], [FAKTURA TERMIN ZAPŁATY], [FAKTURA FORMA PŁATNOŚCI], " +
                            "[FAKTURA WYSTAWIONO], [FAKTURA RODZAJ], USERID, [DATA OSTATNIEJ MODYFIKACJI], [FK-TR], F_NR, F_NR_ROZ, F_NR_ROK, ID_FAKTURY, PROMOCJA, " +
                            "GRZBIET, customerId_Sub, kier_notatka, kier_zatwierdzil, zam_notatka, zablokuj_prowizje, Brutto_Euro, Zaliczka_Brutto, Zaliczka_Data, Brutto_Euro_Miano, " +
                            "waluta_kurs_z_dnia, waluta_kurs, waluta_Przelicznik, waluta_tabela_nr, wyroznienie_procent, wyroznienie_kwota, wyroznienie, wyroznienie_exported, logo, logoID, " +
                            "ogl_dzial, ogl_rozdzial " +
                            "FROM " + truckExpoDbName + ".dbo.Reklama " +
                            "WHERE [TYTUŁ]='EXPO' AND [ID REKLAMY] LIKE 'X%' AND CustomerID=" + rdrCustomer["CustomerID"];


                    rdrReklama = cmd2.ExecuteReader();
                    while (rdrReklama.Read())
                    {
                        obj1 = rdrReklama["ID_FAKTURY"];

                        if (obj1.GetType() != typeof(System.DBNull))
                        {
                            //Faktury wystawione dla Truck_Expo
                            cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.FAKTURY " +
                                    "(NUMER, NUMER_ROZ, NUMER_ROK, DATA_WYSTAWIENIA, MIEJSCOWOSC_WYSTAWIENIA, ID_SPRZEDAWCY, ID_NABYWCY, DATA_SPRZEDAZY, " +
                                    "PODPIS_WYSTAWIL, PODPIS_ODEBRAL, opis, SPOSOB_ZAPLATY, TERMIN_ZAPLATY, ZAPLACONO, BYL_WYDRUK, NABYWCA_ADRES, SPRZEDAWCA_ADRES, " +
                                    "SPRZEDAWCA_NIP, NABYWCA_NIP, FAKTURA_TYP, FAKTURA_PODTYP, ID_KONTA, EKSPORT, EXPORTED, ID_TYTUL, EXPORTED_DATA, suma_zaplat, ID_FK_KOR, " +
                                    "KOREKTA, zaplata_data, zaplata_opis, Zaliczka_Brutto, Zaliczka_Data, waluta_brutto, waluta_miano, waluta_kurs, waluta_przelicznik, waluta_kurs_z_dnia, " +
                                    "waluta_tabela_nr, SystemKsiegowyId) " +
                                    "SELECT NUMER, NUMER_ROZ, NUMER_ROK, DATA_WYSTAWIENIA, MIEJSCOWOSC_WYSTAWIENIA, ID_SPRZEDAWCY, " + idCustomer + ", DATA_SPRZEDAZY, " +
                                    "PODPIS_WYSTAWIL, PODPIS_ODEBRAL, opis, SPOSOB_ZAPLATY, TERMIN_ZAPLATY, ZAPLACONO, BYL_WYDRUK, NABYWCA_ADRES, SPRZEDAWCA_ADRES, " +
                                    "SPRZEDAWCA_NIP, NABYWCA_NIP, FAKTURA_TYP, FAKTURA_PODTYP, ID_KONTA, EKSPORT, EXPORTED, ID_TYTUL, EXPORTED_DATA, suma_zaplat, ID_FK_KOR, " +
                                    "KOREKTA, zaplata_data, zaplata_opis, Zaliczka_Brutto, Zaliczka_Data, waluta_brutto, waluta_miano, waluta_kurs, waluta_przelicznik, waluta_kurs_z_dnia, " +
                                    "waluta_tabela_nr, 2 " +
                                    "FROM " + truckExpoDbName + ".dbo.FAKTURY " +
                                    "WHERE ID_FAKTURY = " + obj1;
                            n = cmd3.ExecuteNonQuery();
                            nFAKTURY += n;
                        }
                        else
                            n = 0;

                        if (n > 0)
                        {
                            cmd3.CommandText = "SELECT SCOPE_IDENTITY()";
                            obj1 = cmd3.ExecuteScalar();
                            idFaktura = Convert.ToInt32(obj1);

                            cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.Reklama " +
                                    "(CustomerID, [SYMBOL AKWIZYTORA], TYTUŁ, TYP, [ID REKLAMY], [NICK NAME], [DATA ZAMÓWIENIA], SZER, WYS, MOD_TYP, STRONA, [STR NR WT], " +
                                    "[STR NR PT], KROTNOŚĆ, ODSTĘP, KOLOR, [WSKAZANIE MIEJSCA], RABAT, [RABAT WARTOŚĆ], ZAPŁACONO, [ZATWIERDZONO DO DRUKU], [DATA ZAPŁATY], " +
                                    "[SYMBOL POTWIERDZENIA], [RODZAJ POTWIERDZENIA], [CENA JEDN], NETTO, VAT, PVAT, BRUTTO, [PROCENT PROWIZJI], PROWIZJA, INFO, [FAKTURA NUMER], " +
                                    "[FAKTURA ID KONTA], [FAKTURA DATA WYSTAWIENIA], [FAKTURA DATA SPRZEDAŻY], [FAKTURA TERMIN ZAPŁATY], [FAKTURA FORMA PŁATNOŚCI], " +
                                    "[FAKTURA WYSTAWIONO], [FAKTURA RODZAJ], USERID, [DATA OSTATNIEJ MODYFIKACJI], [FK-TR], F_NR, F_NR_ROZ, F_NR_ROK, ID_FAKTURY, PROMOCJA, " +
                                    "GRZBIET, customerId_Sub, kier_notatka, kier_zatwierdzil, zam_notatka, zablokuj_prowizje, Brutto_Euro, Zaliczka_Brutto, Zaliczka_Data, Brutto_Euro_Miano, " +
                                    "waluta_kurs_z_dnia, waluta_kurs, waluta_Przelicznik, waluta_tabela_nr, wyroznienie_procent, wyroznienie_kwota, wyroznienie, wyroznienie_exported, logo, logoID, " +
                                    "ogl_dzial, ogl_rozdzial) " +
                                    "SELECT " + idCustomer + ", [SYMBOL AKWIZYTORA], TYTUŁ, TYP, [ID REKLAMY], [NICK NAME], [DATA ZAMÓWIENIA], SZER, WYS, MOD_TYP, STRONA, [STR NR WT], " +
                                    "[STR NR PT], KROTNOŚĆ, ODSTĘP, KOLOR, [WSKAZANIE MIEJSCA], RABAT, [RABAT WARTOŚĆ], ZAPŁACONO, [ZATWIERDZONO DO DRUKU], [DATA ZAPŁATY], " +
                                    "[SYMBOL POTWIERDZENIA], [RODZAJ POTWIERDZENIA], [CENA JEDN], NETTO, VAT, PVAT, BRUTTO, [PROCENT PROWIZJI], PROWIZJA, INFO, [FAKTURA NUMER], " +
                                    "[FAKTURA ID KONTA], [FAKTURA DATA WYSTAWIENIA], [FAKTURA DATA SPRZEDAŻY], [FAKTURA TERMIN ZAPŁATY], [FAKTURA FORMA PŁATNOŚCI], " +
                                    "[FAKTURA WYSTAWIONO], [FAKTURA RODZAJ], USERID, [DATA OSTATNIEJ MODYFIKACJI], [FK-TR], F_NR, F_NR_ROZ, F_NR_ROK, " + idFaktura + ", PROMOCJA, " +
                                    "GRZBIET, customerId_Sub, kier_notatka, kier_zatwierdzil, zam_notatka, zablokuj_prowizje, Brutto_Euro, Zaliczka_Brutto, Zaliczka_Data, Brutto_Euro_Miano, " +
                                    "waluta_kurs_z_dnia, waluta_kurs, waluta_Przelicznik, waluta_tabela_nr, wyroznienie_procent, wyroznienie_kwota, wyroznienie, wyroznienie_exported, logo, logoID, " +
                                    "ogl_dzial, ogl_rozdzial " +
                                    "FROM " + truckExpoDbName + ".dbo.Reklama " +
                                    "WHERE ReklamaID=" + rdrReklama["ReklamaID"];
                            n = cmd3.ExecuteNonQuery();
                            nReklama += n;
                            cmd3.CommandText = "SELECT SCOPE_IDENTITY()";
                            obj1 = cmd3.ExecuteScalar();
                            idReklama = Convert.ToInt32(obj1);

                            cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.FAKTURA_DETAILS " +
                                        "(ID_FAKTURY, ROK, MIESIAC, NAZWA_USLUGI, SYMBOL_SWW, JM, ILOSC, CENA_JEDN, UPUST_PR, UPUST_NETTO, NETTO, " +
                                        "S_VAT, VAT, BRUTTO, TYTUL, NR_WYDANIA, TYP, PODTYP) " +
                                        "SELECT " + idFaktura + ", ROK, MIESIAC, NAZWA_USLUGI, SYMBOL_SWW, JM, ILOSC, CENA_JEDN, UPUST_PR, UPUST_NETTO, NETTO, " +
                                        "S_VAT, VAT, BRUTTO, TYTUL, NR_WYDANIA, TYP, PODTYP " +
                                        "FROM " + truckExpoDbName + ".dbo.FAKTURA_DETAILS " +
                                        "WHERE ID_FAKTURY=" + rdrReklama["ID_FAKTURY"];
                            n = cmd3.ExecuteNonQuery();
                            nFAKTURA_DETAILS += n;

                            cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.PlatnosciEcard " +
                                        "(IDFaktury, ORDERDESCRIPTION, nip, nrZlecenia, AMOUNT, CURRENCY, SESSIONID, NAME, SURNAME, AUTODEPOSIT, " +
                                        "LANGUAGE, CHARSET, COUNTRY, JS, PAYMENTTYPE, Data, Status, Status_data) " +
                                        "SELECT " + idFaktura + ", ORDERDESCRIPTION, nip, nrZlecenia, AMOUNT, CURRENCY, SESSIONID, NAME, SURNAME, AUTODEPOSIT, " +
                                        "LANGUAGE, CHARSET, COUNTRY, JS, PAYMENTTYPE, Data, Status, Status_data " +
                                        "FROM " + truckExpoDbName + ".dbo.PlatnosciEcard " +
                                        "WHERE IDFaktury=" + rdrReklama["ID_FAKTURY"];
                            n = cmd3.ExecuteNonQuery();
                            if (n > 0)
                            {
                                int a = 0;
                                ++a;
                            }
                            nPlatnosciEcard += n;


                            //PotwierdzeniaEcard
                            //pusta
                        }
                        else
                        {
                            cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.Reklama " +
                                    "(CustomerID, [SYMBOL AKWIZYTORA], TYTUŁ, TYP, [ID REKLAMY], [NICK NAME], [DATA ZAMÓWIENIA], SZER, WYS, MOD_TYP, STRONA, [STR NR WT], " +
                                    "[STR NR PT], KROTNOŚĆ, ODSTĘP, KOLOR, [WSKAZANIE MIEJSCA], RABAT, [RABAT WARTOŚĆ], ZAPŁACONO, [ZATWIERDZONO DO DRUKU], [DATA ZAPŁATY], " +
                                    "[SYMBOL POTWIERDZENIA], [RODZAJ POTWIERDZENIA], [CENA JEDN], NETTO, VAT, PVAT, BRUTTO, [PROCENT PROWIZJI], PROWIZJA, INFO, [FAKTURA NUMER], " +
                                    "[FAKTURA ID KONTA], [FAKTURA DATA WYSTAWIENIA], [FAKTURA DATA SPRZEDAŻY], [FAKTURA TERMIN ZAPŁATY], [FAKTURA FORMA PŁATNOŚCI], " +
                                    "[FAKTURA WYSTAWIONO], [FAKTURA RODZAJ], USERID, [DATA OSTATNIEJ MODYFIKACJI], [FK-TR], F_NR, F_NR_ROZ, F_NR_ROK, ID_FAKTURY, PROMOCJA, " +
                                    "GRZBIET, customerId_Sub, kier_notatka, kier_zatwierdzil, zam_notatka, zablokuj_prowizje, Brutto_Euro, Zaliczka_Brutto, Zaliczka_Data, Brutto_Euro_Miano, " +
                                    "waluta_kurs_z_dnia, waluta_kurs, waluta_Przelicznik, waluta_tabela_nr, wyroznienie_procent, wyroznienie_kwota, wyroznienie, wyroznienie_exported, logo, logoID, " +
                                    "ogl_dzial, ogl_rozdzial) " +
                                    "SELECT " + idCustomer + ", [SYMBOL AKWIZYTORA], TYTUŁ, TYP, [ID REKLAMY], [NICK NAME], [DATA ZAMÓWIENIA], SZER, WYS, MOD_TYP, STRONA, [STR NR WT], " +
                                    "[STR NR PT], KROTNOŚĆ, ODSTĘP, KOLOR, [WSKAZANIE MIEJSCA], RABAT, [RABAT WARTOŚĆ], ZAPŁACONO, [ZATWIERDZONO DO DRUKU], [DATA ZAPŁATY], " +
                                    "[SYMBOL POTWIERDZENIA], [RODZAJ POTWIERDZENIA], [CENA JEDN], NETTO, VAT, PVAT, BRUTTO, [PROCENT PROWIZJI], PROWIZJA, INFO, [FAKTURA NUMER], " +
                                    "[FAKTURA ID KONTA], [FAKTURA DATA WYSTAWIENIA], [FAKTURA DATA SPRZEDAŻY], [FAKTURA TERMIN ZAPŁATY], [FAKTURA FORMA PŁATNOŚCI], " +
                                    "[FAKTURA WYSTAWIONO], [FAKTURA RODZAJ], USERID, [DATA OSTATNIEJ MODYFIKACJI], [FK-TR], F_NR, F_NR_ROZ, F_NR_ROK, ID_FAKTURY, PROMOCJA, " +
                                    "GRZBIET, customerId_Sub, kier_notatka, kier_zatwierdzil, zam_notatka, zablokuj_prowizje, Brutto_Euro, Zaliczka_Brutto, Zaliczka_Data, Brutto_Euro_Miano, " +
                                    "waluta_kurs_z_dnia, waluta_kurs, waluta_Przelicznik, waluta_tabela_nr, wyroznienie_procent, wyroznienie_kwota, wyroznienie, wyroznienie_exported, logo, logoID, " +
                                    "ogl_dzial, ogl_rozdzial " +
                                    "FROM " + truckExpoDbName + ".dbo.Reklama " +
                                    "WHERE ReklamaID=" + rdrReklama["ReklamaID"];

                            n = cmd3.ExecuteNonQuery();
                            nReklama += n;
                            cmd3.CommandText = "SELECT SCOPE_IDENTITY()";
                            obj1 = cmd3.ExecuteScalar();
                            idReklama = Convert.ToInt32(obj1);

                        }


                        //wstaw IdFaktury oraz cene netto emisji, jesli zafakturowana reklama
                        int idFaktury = rdrReklama["ID_Faktury"] is DBNull ? 0 : (int)rdrReklama["ID_Faktury"];
                        decimal netto = decimal.MinValue;
                        if (idFaktury > 0)
                            netto = Convert.ToDecimal(rdrReklama["Netto"]) / Convert.ToInt32(rdrReklama["Krotność"]);

                        cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.[UKAŻE SIĘ W NR] (ReklamaId, [Nr Wydania], status, zafakturowana, idFaktury, dataDodania, dataAnulowania, netto) " +
                            "SELECT " + idReklama + ", [Nr Wydania], 0, " + (idFaktury > 0 ? 1 : 0).ToString() + ", " + (idFaktury > 0 ? idFaktury.ToString() : "NULL").ToString() + ", NULL, NULL, " + (idFaktury > 0 ? Math.Round(netto, 2).ToString() : "NULL").ToString().Replace(",", ".") + " " +
                            "FROM " + truckExpoDbName + ".dbo.[UKAŻE SIĘ W NR] " +
                            "WHERE ReklamaId=" + rdrReklama["ReklamaID"];
                        n = cmd3.ExecuteNonQuery();
                        nUKAzeSie += n;


                        //Produkcja Truck_Expo
                        cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.Produkcja (ReklamaId, TYP_PROJEKTU, NAZWA_ZAMOWIENIA, STAN, AGENT, DATA_AGENT, ZAMAWIAM_NA, " +
                            "PRIORYTET, PRODUKCJA, DATA_PRODUKCJA, DTP, DATA_DTP, KOREKTA, DATA_KOREKTA, DTP_PO_KOR, DATA_DTP_PO_KOR, DATA_AKCEPTACJI, OCENA, OPIS, PLIK, " +
                            "uwagi, DataEmisji, Moduł, szer, wys, lokalizacja, kolor, szkic, kurier, path_to_material) " +
                            "SELECT " + idReklama + ", TYP_PROJEKTU, NAZWA_ZAMOWIENIA, STAN, AGENT, DATA_AGENT, ZAMAWIAM_NA, PRIORYTET, PRODUKCJA, DATA_PRODUKCJA, DTP, DATA_DTP, " +
                            "KOREKTA, DATA_KOREKTA, DTP_PO_KOR, DATA_DTP_PO_KOR, DATA_AKCEPTACJI, OCENA, OPIS, PLIK, uwagi, DataEmisji, Moduł, szer, wys, lokalizacja, " +
                            "kolor, szkic, kurier, path_to_material " +
                            "FROM " + truckExpoDbName + ".dbo.Produkcja WHERE ReklamaID=" + rdrReklama["ReklamaID"];
                        n = cmd3.ExecuteNonQuery();
                        nProdukcja += n;


                        cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.Reklama_Info_Dod " +
                            "(ReklamaId, Data, Reklama_Info_Dod) " +
                            "SELECT " + idReklama + ", Data, Reklama_Info_Dod " +
                            "FROM " + truckExpoDbName + ".dbo.Reklama_Info_Dod WHERE ReklamaId=" + rdrReklama["ReklamaID"];
                        n = cmd3.ExecuteNonQuery();
                        if (n > 0)
                        {
                            int a = 0;
                            ++a;
                        }
                        nReklama_Info_Dod += n;



                        //AdmotoBanners
                        //pusta
                    }
                    rdrReklama.Close();


                    cmd2.CommandText = "SELECT Id_kontaktu, customerId, symbol_agenta, data, rodzaj, opis " +
                            "FROM " + truckExpoDbName + ".dbo.KONTAKTY " +
                            "WHERE data > '2008-03-11' AND CustomerID=" + rdrCustomer["CustomerID"];

                    rdrKontakt = cmd2.ExecuteReader();
                    while (rdrKontakt.Read())
                    {
                        //ustawić nową flagę wyróżniającą Kontakty TruckExpo

                        cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.Kontakty " +
                            "(customerId, symbol_agenta, data, rodzaj, opis, KontaktTypId) " +
                            "SELECT " + idCustomer + ", symbol_agenta, data, rodzaj, opis, 2 " +
                            "FROM " + truckExpoDbName + ".dbo.Kontakty " +
                            "WHERE Id_kontaktu=" + rdrKontakt["Id_kontaktu"];
                        n = cmd3.ExecuteNonQuery();
                        nKontakty += n;

                        if (n > 0)
                        {
                            cmd3.CommandText = "SELECT SCOPE_IDENTITY()";
                            obj1 = cmd3.ExecuteScalar();
                            idKontakt = Convert.ToInt32(obj1);


                            cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.KONTAKTY_Log " +
                                "(TRI_Data, TRI_Login, TRI_Operacja, Id_kontaktu, customerId, symbol_agenta, data, rodzaj, opis) " +
                                "SELECT TRI_Data, TRI_Login, TRI_Operacja, " + idKontakt + ", " + idCustomer + ", symbol_agenta, data, rodzaj, opis " +
                                "FROM " + truckExpoDbName + ".dbo.KONTAKTY_Log " +
                                "WHERE Id_kontaktu=" + rdrKontakt["Id_kontaktu"];
                            n = cmd3.ExecuteNonQuery();
                            nKONTAKTY_Log += n;
                        }
                    }
                    rdrKontakt.Close();


                    cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.KLIENCI_Log " +
                        "(TRI_Data, TRI_Login, TRI_Operacja, CustomerID, FirstName, LastName, OrganizationName, Address, City, State, " +
                        "PostalCode, Country, Nip, ContactName, PhoneNumber, FaxNumber, Note, data, osw_nr, osw_wazne_do, Adres_Fkatura, " +
                        "Old_ID, Adres_Kor, Platnik_VAT, Aktywny, Email, UserName, Last_Modify, Modify_User, http, VIES, regon, krs) " +
                        "SELECT TRI_Data, TRI_Login, TRI_Operacja, " + idCustomer + ", FirstName, LastName, OrganizationName, Address, City, State, " +
                        "PostalCode, Country, Nip, ContactName, PhoneNumber, FaxNumber, Note, data, osw_nr, osw_wazne_do, Adres_Fkatura, " +
                        "Old_ID, Adres_Kor, Platnik_VAT, Aktywny, Email, UserName, Last_Modify, Modify_User, http, VIES, regon, krs " +
                        "FROM " + truckExpoDbName + ".dbo.KLIENCI_Log " +
                        "WHERE CustomerID=" + rdrCustomer["CustomerID"];
                    n = cmd3.ExecuteNonQuery();
                    nKLIENCI_Log += n;


                    //Klienci_Internet_Logo
                    //pusta

                    cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.Klienci_Tytul " +
                        "(TYTUL, Customerid, username, data) " +
                        "SELECT TYTUL, " + idCustomer + ", username, data " +
                        "FROM " + truckExpoDbName + ".dbo.Klienci_Tytul " +
                        "WHERE CustomerID=" + rdrCustomer["CustomerID"];
                    n = cmd3.ExecuteNonQuery();
                    if (n > 0)
                    {
                        int a = 0;
                        ++a;
                    }
                    nKlienci_Tytul += n;


                    cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.Oferty_Main " +
                        "(Stan_Oferty, Id_Wersje_Oferty, CUSTOMER_ID, id_klienci_os_kontakt, id_tytul, AGENT, JEZYK, Data_Oferty, " +
                        "Opis_Dol, Data_Wyslania, Data_Modyfikacji, Zmodyfikowal_User, zapisana, ReklamaID, ProjektID) " +
                        "SELECT Stan_Oferty, Id_Wersje_Oferty, " + idCustomer + ", id_klienci_os_kontakt, id_tytul, AGENT, JEZYK, Data_Oferty, " +
                        "Opis_Dol, Data_Wyslania, Data_Modyfikacji, Zmodyfikowal_User, zapisana, ReklamaID, ProjektID " +
                        "FROM " + truckExpoDbName + ".dbo.Oferty_Main " +
                        "WHERE Customer_ID=" + rdrCustomer["CustomerID"];
                    n = cmd3.ExecuteNonQuery();
                    nOferty_Main += n;


                    cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.Sheduler " +
                        "(CustomerId, CustomerName, Akwizytor, DataWprowadzenia, DataPrzypomnienia, Opis, zalatwione) " +
                        "SELECT " + idCustomer + ", CustomerName, Akwizytor, DataWprowadzenia, DataPrzypomnienia, Opis, zalatwione " +
                        "FROM " + truckExpoDbName + ".dbo.Sheduler " +
                        "WHERE CustomerID=" + rdrCustomer["CustomerID"];
                    n = cmd3.ExecuteNonQuery();
                    nSheduler += n;


                    //Kl_Klienci
                    cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.KL_KLIENCI " +
                        "(ID_KL_1, ID_KL_2, ID_KL_3, Customerid, username, data) " +
                        "SELECT ID_KL_1, ID_KL_2, ID_KL_3, " + idCustomer + ", username, data " +
                        "FROM " + truckExpoDbName + ".dbo.KL_KLIENCI " +
                        "WHERE Customerid=" + rdrCustomer["CustomerID"];
                    n = cmd3.ExecuteNonQuery();
                    nKl_Klienci += n;


                    // dla testów
                    //if (nRead > 100)
                    //    break;
                }
                rdrCustomer.Close();
                rdrCustomer = null;

                
                
                
                // ============ dane starych klientów 

                cmd1.CommandText = "SELECT COUNT(*) " +
                    "FROM " + truckExpoDbName + ".dbo.Reklama " +
                    "WHERE [TYTUŁ]='EXPO' AND [ID REKLAMY] LIKE 'X%' AND CustomerID <= 56710";
                m_waitProgressMax = (int)cmd1.ExecuteScalar();


                //Reklamy Truck_Expo
                cmd2.CommandText = "SELECT ReklamaID, CustomerID, [SYMBOL AKWIZYTORA], TYTUŁ, TYP, [ID REKLAMY], [NICK NAME], [DATA ZAMÓWIENIA], SZER, WYS, MOD_TYP, STRONA, [STR NR WT], " +
                        "[STR NR PT], KROTNOŚĆ, ODSTĘP, KOLOR, [WSKAZANIE MIEJSCA], RABAT, [RABAT WARTOŚĆ], ZAPŁACONO, [ZATWIERDZONO DO DRUKU], [DATA ZAPŁATY], " +
                        "[SYMBOL POTWIERDZENIA], [RODZAJ POTWIERDZENIA], [CENA JEDN], NETTO, VAT, PVAT, BRUTTO, [PROCENT PROWIZJI], PROWIZJA, INFO, [FAKTURA NUMER], " +
                        "[FAKTURA ID KONTA], [FAKTURA DATA WYSTAWIENIA], [FAKTURA DATA SPRZEDAŻY], [FAKTURA TERMIN ZAPŁATY], [FAKTURA FORMA PŁATNOŚCI], " +
                        "[FAKTURA WYSTAWIONO], [FAKTURA RODZAJ], USERID, [DATA OSTATNIEJ MODYFIKACJI], [FK-TR], F_NR, F_NR_ROZ, F_NR_ROK, ID_FAKTURY, PROMOCJA, " +
                        "GRZBIET, customerId_Sub, kier_notatka, kier_zatwierdzil, zam_notatka, zablokuj_prowizje, Brutto_Euro, Zaliczka_Brutto, Zaliczka_Data, Brutto_Euro_Miano, " +
                        "waluta_kurs_z_dnia, waluta_kurs, waluta_Przelicznik, waluta_tabela_nr, wyroznienie_procent, wyroznienie_kwota, wyroznienie, wyroznienie_exported, logo, logoID, " +
                        "ogl_dzial, ogl_rozdzial " +
                        "FROM " + truckExpoDbName + ".dbo.Reklama " +
                        "WHERE [TYTUŁ]='EXPO' AND [ID REKLAMY] LIKE 'X%' AND CustomerID <= 56710";

                nRead = 0;

                rdrReklama = cmd2.ExecuteReader();
                while (rdrReklama.Read())
                {
                    if (backgroundWorker1.IsBusy)
                        backgroundWorker1.ReportProgress(nRead);

                    ++nRead;

                    obj1 = rdrReklama["ID_FAKTURY"];

                    if (obj1.GetType() != typeof(System.DBNull))
                    {
                        //Faktury wystawione dla Truck_Expo
                        cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.FAKTURY " +
                                "(NUMER, NUMER_ROZ, NUMER_ROK, DATA_WYSTAWIENIA, MIEJSCOWOSC_WYSTAWIENIA, ID_SPRZEDAWCY, ID_NABYWCY, DATA_SPRZEDAZY, " +
                                "PODPIS_WYSTAWIL, PODPIS_ODEBRAL, opis, SPOSOB_ZAPLATY, TERMIN_ZAPLATY, ZAPLACONO, BYL_WYDRUK, NABYWCA_ADRES, SPRZEDAWCA_ADRES, " +
                                "SPRZEDAWCA_NIP, NABYWCA_NIP, FAKTURA_TYP, FAKTURA_PODTYP, ID_KONTA, EKSPORT, EXPORTED, ID_TYTUL, EXPORTED_DATA, suma_zaplat, ID_FK_KOR, " +
                                "KOREKTA, zaplata_data, zaplata_opis, Zaliczka_Brutto, Zaliczka_Data, waluta_brutto, waluta_miano, waluta_kurs, waluta_przelicznik, waluta_kurs_z_dnia, " +
                                "waluta_tabela_nr, SystemKsiegowyId) " +
                                "SELECT NUMER, NUMER_ROZ, NUMER_ROK, DATA_WYSTAWIENIA, MIEJSCOWOSC_WYSTAWIENIA, " + "ID_SPRZEDAWCY" + ", ID_NABYWCY, DATA_SPRZEDAZY, " +
                                "PODPIS_WYSTAWIL, PODPIS_ODEBRAL, opis, SPOSOB_ZAPLATY, TERMIN_ZAPLATY, ZAPLACONO, BYL_WYDRUK, NABYWCA_ADRES, SPRZEDAWCA_ADRES, " +
                                "SPRZEDAWCA_NIP, NABYWCA_NIP, FAKTURA_TYP, FAKTURA_PODTYP, ID_KONTA, EKSPORT, EXPORTED, ID_TYTUL, EXPORTED_DATA, suma_zaplat, ID_FK_KOR, " +
                                "KOREKTA, zaplata_data, zaplata_opis, Zaliczka_Brutto, Zaliczka_Data, waluta_brutto, waluta_miano, waluta_kurs, waluta_przelicznik, waluta_kurs_z_dnia, " +
                                "waluta_tabela_nr, 2 " +
                                "FROM " + truckExpoDbName + ".dbo.FAKTURY " +
                                "WHERE ID_FAKTURY = " + obj1;
                        n = cmd3.ExecuteNonQuery();
                        nFAKTURY += n;
                    }
                    else
                        n = 0;


                    if (n > 0)
                    {
                        cmd3.CommandText = "SELECT SCOPE_IDENTITY()";
                        obj1 = cmd3.ExecuteScalar();
                        idFaktura = Convert.ToInt32(obj1);

                        cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.Reklama " +
                                "(CustomerID, [SYMBOL AKWIZYTORA], TYTUŁ, TYP, [ID REKLAMY], [NICK NAME], [DATA ZAMÓWIENIA], SZER, WYS, MOD_TYP, STRONA, [STR NR WT], " +
                                "[STR NR PT], KROTNOŚĆ, ODSTĘP, KOLOR, [WSKAZANIE MIEJSCA], RABAT, [RABAT WARTOŚĆ], ZAPŁACONO, [ZATWIERDZONO DO DRUKU], [DATA ZAPŁATY], " +
                                "[SYMBOL POTWIERDZENIA], [RODZAJ POTWIERDZENIA], [CENA JEDN], NETTO, VAT, PVAT, BRUTTO, [PROCENT PROWIZJI], PROWIZJA, INFO, [FAKTURA NUMER], " +
                                "[FAKTURA ID KONTA], [FAKTURA DATA WYSTAWIENIA], [FAKTURA DATA SPRZEDAŻY], [FAKTURA TERMIN ZAPŁATY], [FAKTURA FORMA PŁATNOŚCI], " +
                                "[FAKTURA WYSTAWIONO], [FAKTURA RODZAJ], USERID, [DATA OSTATNIEJ MODYFIKACJI], [FK-TR], F_NR, F_NR_ROZ, F_NR_ROK, ID_FAKTURY, PROMOCJA, " +
                                "GRZBIET, customerId_Sub, kier_notatka, kier_zatwierdzil, zam_notatka, zablokuj_prowizje, Brutto_Euro, Zaliczka_Brutto, Zaliczka_Data, Brutto_Euro_Miano, " +
                                "waluta_kurs_z_dnia, waluta_kurs, waluta_Przelicznik, waluta_tabela_nr, wyroznienie_procent, wyroznienie_kwota, wyroznienie, wyroznienie_exported, logo, logoID, " +
                                "ogl_dzial, ogl_rozdzial) " +
                                "SELECT CustomerID, [SYMBOL AKWIZYTORA], TYTUŁ, TYP, [ID REKLAMY], [NICK NAME], [DATA ZAMÓWIENIA], SZER, WYS, MOD_TYP, STRONA, [STR NR WT], " +
                                "[STR NR PT], KROTNOŚĆ, ODSTĘP, KOLOR, [WSKAZANIE MIEJSCA], RABAT, [RABAT WARTOŚĆ], ZAPŁACONO, [ZATWIERDZONO DO DRUKU], [DATA ZAPŁATY], " +
                                "[SYMBOL POTWIERDZENIA], [RODZAJ POTWIERDZENIA], [CENA JEDN], NETTO, VAT, PVAT, BRUTTO, [PROCENT PROWIZJI], PROWIZJA, INFO, [FAKTURA NUMER], " +
                                "[FAKTURA ID KONTA], [FAKTURA DATA WYSTAWIENIA], [FAKTURA DATA SPRZEDAŻY], [FAKTURA TERMIN ZAPŁATY], [FAKTURA FORMA PŁATNOŚCI], " +
                                "[FAKTURA WYSTAWIONO], [FAKTURA RODZAJ], USERID, [DATA OSTATNIEJ MODYFIKACJI], [FK-TR], F_NR, F_NR_ROZ, F_NR_ROK, " + idFaktura + ", PROMOCJA, " +
                                "GRZBIET, customerId_Sub, kier_notatka, kier_zatwierdzil, zam_notatka, zablokuj_prowizje, Brutto_Euro, Zaliczka_Brutto, Zaliczka_Data, Brutto_Euro_Miano, " +
                                "waluta_kurs_z_dnia, waluta_kurs, waluta_Przelicznik, waluta_tabela_nr, wyroznienie_procent, wyroznienie_kwota, wyroznienie, wyroznienie_exported, logo, logoID, " +
                                "ogl_dzial, ogl_rozdzial " +
                                "FROM " + truckExpoDbName + ".dbo.Reklama " +
                                "WHERE ReklamaID=" + rdrReklama["ReklamaID"];
                        n = cmd3.ExecuteNonQuery();
                        nReklama += n;
                        cmd3.CommandText = "SELECT SCOPE_IDENTITY()";
                        obj1 = cmd3.ExecuteScalar();
                        idReklama = Convert.ToInt32(obj1);

                        cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.FAKTURA_DETAILS " +
                                    "(ID_FAKTURY, ROK, MIESIAC, NAZWA_USLUGI, SYMBOL_SWW, JM, ILOSC, CENA_JEDN, UPUST_PR, UPUST_NETTO, NETTO, " +
                                    "S_VAT, VAT, BRUTTO, TYTUL, NR_WYDANIA, TYP, PODTYP) " +
                                    "SELECT " + idFaktura + ", ROK, MIESIAC, NAZWA_USLUGI, SYMBOL_SWW, JM, ILOSC, CENA_JEDN, UPUST_PR, UPUST_NETTO, NETTO, " +
                                    "S_VAT, VAT, BRUTTO, TYTUL, NR_WYDANIA, TYP, PODTYP " +
                                    "FROM " + truckExpoDbName + ".dbo.FAKTURA_DETAILS " +
                                    "WHERE ID_FAKTURY=" + rdrReklama["ID_FAKTURY"];
                        n = cmd3.ExecuteNonQuery();
                        nFAKTURA_DETAILS += n;

                        cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.PlatnosciEcard " +
                                    "(IDFaktury, ORDERDESCRIPTION, nip, nrZlecenia, AMOUNT, CURRENCY, SESSIONID, NAME, SURNAME, AUTODEPOSIT, " +
                                    "LANGUAGE, CHARSET, COUNTRY, JS, PAYMENTTYPE, Data, Status, Status_data) " +
                                    "SELECT " + idFaktura + ", ORDERDESCRIPTION, nip, nrZlecenia, AMOUNT, CURRENCY, SESSIONID, NAME, SURNAME, AUTODEPOSIT, " +
                                    "LANGUAGE, CHARSET, COUNTRY, JS, PAYMENTTYPE, Data, Status, Status_data " +
                                    "FROM " + truckExpoDbName + ".dbo.PlatnosciEcard " +
                                    "WHERE IDFaktury=" + rdrReklama["ID_FAKTURY"];
                        n = cmd3.ExecuteNonQuery();
                        if (n > 0)
                        {
                            int a = 0;
                            ++a;
                        }
                        nPlatnosciEcard += n;
                    }
                    else
                    {
                        cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.Reklama " +
                                "(CustomerID, [SYMBOL AKWIZYTORA], TYTUŁ, TYP, [ID REKLAMY], [NICK NAME], [DATA ZAMÓWIENIA], SZER, WYS, MOD_TYP, STRONA, [STR NR WT], " +
                                "[STR NR PT], KROTNOŚĆ, ODSTĘP, KOLOR, [WSKAZANIE MIEJSCA], RABAT, [RABAT WARTOŚĆ], ZAPŁACONO, [ZATWIERDZONO DO DRUKU], [DATA ZAPŁATY], " +
                                "[SYMBOL POTWIERDZENIA], [RODZAJ POTWIERDZENIA], [CENA JEDN], NETTO, VAT, PVAT, BRUTTO, [PROCENT PROWIZJI], PROWIZJA, INFO, [FAKTURA NUMER], " +
                                "[FAKTURA ID KONTA], [FAKTURA DATA WYSTAWIENIA], [FAKTURA DATA SPRZEDAŻY], [FAKTURA TERMIN ZAPŁATY], [FAKTURA FORMA PŁATNOŚCI], " +
                                "[FAKTURA WYSTAWIONO], [FAKTURA RODZAJ], USERID, [DATA OSTATNIEJ MODYFIKACJI], [FK-TR], F_NR, F_NR_ROZ, F_NR_ROK, ID_FAKTURY, PROMOCJA, " +
                                "GRZBIET, customerId_Sub, kier_notatka, kier_zatwierdzil, zam_notatka, zablokuj_prowizje, Brutto_Euro, Zaliczka_Brutto, Zaliczka_Data, Brutto_Euro_Miano, " +
                                "waluta_kurs_z_dnia, waluta_kurs, waluta_Przelicznik, waluta_tabela_nr, wyroznienie_procent, wyroznienie_kwota, wyroznienie, wyroznienie_exported, logo, logoID, " +
                                "ogl_dzial, ogl_rozdzial) " +
                                "SELECT CustomerID, [SYMBOL AKWIZYTORA], TYTUŁ, TYP, [ID REKLAMY], [NICK NAME], [DATA ZAMÓWIENIA], SZER, WYS, MOD_TYP, STRONA, [STR NR WT], " +
                                "[STR NR PT], KROTNOŚĆ, ODSTĘP, KOLOR, [WSKAZANIE MIEJSCA], RABAT, [RABAT WARTOŚĆ], ZAPŁACONO, [ZATWIERDZONO DO DRUKU], [DATA ZAPŁATY], " +
                                "[SYMBOL POTWIERDZENIA], [RODZAJ POTWIERDZENIA], [CENA JEDN], NETTO, VAT, PVAT, BRUTTO, [PROCENT PROWIZJI], PROWIZJA, INFO, [FAKTURA NUMER], " +
                                "[FAKTURA ID KONTA], [FAKTURA DATA WYSTAWIENIA], [FAKTURA DATA SPRZEDAŻY], [FAKTURA TERMIN ZAPŁATY], [FAKTURA FORMA PŁATNOŚCI], " +
                                "[FAKTURA WYSTAWIONO], [FAKTURA RODZAJ], USERID, [DATA OSTATNIEJ MODYFIKACJI], [FK-TR], F_NR, F_NR_ROZ, F_NR_ROK, ID_FAKTURY, PROMOCJA, " +
                                "GRZBIET, customerId_Sub, kier_notatka, kier_zatwierdzil, zam_notatka, zablokuj_prowizje, Brutto_Euro, Zaliczka_Brutto, Zaliczka_Data, Brutto_Euro_Miano, " +
                                "waluta_kurs_z_dnia, waluta_kurs, waluta_Przelicznik, waluta_tabela_nr, wyroznienie_procent, wyroznienie_kwota, wyroznienie, wyroznienie_exported, logo, logoID, " +
                                "ogl_dzial, ogl_rozdzial " +
                                "FROM " + truckExpoDbName + ".dbo.Reklama " +
                                "WHERE ReklamaID=" + rdrReklama["ReklamaID"];

                        n = cmd3.ExecuteNonQuery();
                        nReklama += n;
                        cmd3.CommandText = "SELECT SCOPE_IDENTITY()";
                        obj1 = cmd3.ExecuteScalar();
                        idReklama = Convert.ToInt32(obj1);
                    }


                    cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.[UKAŻE SIĘ W NR] (ReklamaId, [Nr Wydania]) " +
                            "SELECT " + idReklama + ", [Nr Wydania] " +
                            "FROM " + truckExpoDbName + ".dbo.[UKAŻE SIĘ W NR] " +
                            "WHERE ReklamaId=" + rdrReklama["ReklamaID"];
                    n = cmd3.ExecuteNonQuery();
                    nUKAzeSie += n;


                    //Produkcja Truck_Expo
                    cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.Produkcja (ReklamaId, TYP_PROJEKTU, NAZWA_ZAMOWIENIA, STAN, AGENT, DATA_AGENT, ZAMAWIAM_NA, " +
                        "PRIORYTET, PRODUKCJA, DATA_PRODUKCJA, DTP, DATA_DTP, KOREKTA, DATA_KOREKTA, DTP_PO_KOR, DATA_DTP_PO_KOR, DATA_AKCEPTACJI, OCENA, OPIS, PLIK, " +
                        "uwagi, DataEmisji, Moduł, szer, wys, lokalizacja, kolor, szkic, kurier, path_to_material) " +
                        "SELECT " + idReklama + ", TYP_PROJEKTU, NAZWA_ZAMOWIENIA, STAN, AGENT, DATA_AGENT, ZAMAWIAM_NA, PRIORYTET, PRODUKCJA, DATA_PRODUKCJA, DTP, DATA_DTP, " +
                        "KOREKTA, DATA_KOREKTA, DTP_PO_KOR, DATA_DTP_PO_KOR, DATA_AKCEPTACJI, OCENA, OPIS, PLIK, uwagi, DataEmisji, Moduł, szer, wys, lokalizacja, " +
                        "kolor, szkic, kurier, path_to_material " +
                        "FROM " + truckExpoDbName + ".dbo.Produkcja WHERE ReklamaID=" + rdrReklama["ReklamaID"];
                    n = cmd3.ExecuteNonQuery();
                    nProdukcja += n;


                    cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.Reklama_Info_Dod " +
                        "(ReklamaId, Data, Reklama_Info_Dod) " +
                        "SELECT " + idReklama + ", Data, Reklama_Info_Dod " +
                        "FROM " + truckExpoDbName + ".dbo.Reklama_Info_Dod WHERE ReklamaId=" + rdrReklama["ReklamaID"];
                    n = cmd3.ExecuteNonQuery();
                    if (n > 0)
                    {
                        int a = 0;
                        ++a;
                    }
                    nReklama_Info_Dod += n;


                    //AdmotoBanners
                    //pusta
                }
                rdrReklama.Close();
                rdrReklama = null;


                cmd2.CommandText = "SELECT Id_kontaktu, customerId, symbol_agenta, data, rodzaj, opis " +
                        "FROM " + truckExpoDbName + ".dbo.KONTAKTY " +
                        "WHERE data > '2008-03-11' AND CustomerID <= 56710";

                rdrKontakt = cmd2.ExecuteReader();
                while (rdrKontakt.Read())
                {
                    //ustawić nową flagę wyróżniającą Kontakty TruckExpo

                    cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.Kontakty " +
                        "(customerId, symbol_agenta, data, rodzaj, opis, KontaktTypId) " +
                        "SELECT customerId, symbol_agenta, data, rodzaj, opis, 2 " +
                        "FROM " + truckExpoDbName + ".dbo.Kontakty " +
                        "WHERE Id_kontaktu=" + rdrKontakt["Id_kontaktu"];
                    n = cmd3.ExecuteNonQuery();
                    nKontakty += n;

                    if (n > 0)
                    {
                        cmd3.CommandText = "SELECT SCOPE_IDENTITY()";
                        obj1 = cmd3.ExecuteScalar();
                        idKontakt = Convert.ToInt32(obj1);


                        cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.KONTAKTY_Log " +
                            "(TRI_Data, TRI_Login, TRI_Operacja, Id_kontaktu, customerId, symbol_agenta, data, rodzaj, opis) " +
                            "SELECT TRI_Data, TRI_Login, TRI_Operacja, " + idKontakt + ", customerId, symbol_agenta, data, rodzaj, opis " +
                            "FROM " + truckExpoDbName + ".dbo.KONTAKTY_Log " +
                            "WHERE Id_kontaktu=" + rdrKontakt["Id_kontaktu"];
                        n = cmd3.ExecuteNonQuery();
                        nKONTAKTY_Log += n;
                    }
                }
                rdrKontakt.Close();


                cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.KLIENCI_Log " +
                    "(TRI_Data, TRI_Login, TRI_Operacja, CustomerID, FirstName, LastName, OrganizationName, Address, City, State, " +
                    "PostalCode, Country, Nip, ContactName, PhoneNumber, FaxNumber, Note, data, osw_nr, osw_wazne_do, Adres_Fkatura, " +
                    "Old_ID, Adres_Kor, Platnik_VAT, Aktywny, Email, UserName, Last_Modify, Modify_User, http, VIES, regon, krs) " +
                    "SELECT TRI_Data, TRI_Login, TRI_Operacja, CustomerID, FirstName, LastName, OrganizationName, Address, City, State, " +
                    "PostalCode, Country, Nip, ContactName, PhoneNumber, FaxNumber, Note, data, osw_nr, osw_wazne_do, Adres_Fkatura, " +
                    "Old_ID, Adres_Kor, Platnik_VAT, Aktywny, Email, UserName, Last_Modify, Modify_User, http, VIES, regon, krs " +
                    "FROM " + truckExpoDbName + ".dbo.KLIENCI_Log " +
                    "WHERE CustomerID <= 56710 AND TRI_Data > '2008-03-11'";
                n = cmd3.ExecuteNonQuery();
                nKLIENCI_Log += n;


                //Klienci_Internet_Logo
                //pusta
                cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.Klienci_Tytul " +
                    "(TYTUL, Customerid, username, data) " +
                    "SELECT TYTUL, Customerid, username, data " +
                    "FROM " + truckExpoDbName + ".dbo.Klienci_Tytul " +
                    "WHERE CustomerID <= 56710 AND TYTUL='EXPO'";
                n = cmd3.ExecuteNonQuery();
                if (n > 0)
                {
                    int a = 0;
                    ++a;
                }
                nKlienci_Tytul += n;


                cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.Oferty_Main " +
                    "(Stan_Oferty, Id_Wersje_Oferty, CUSTOMER_ID, id_klienci_os_kontakt, id_tytul, AGENT, JEZYK, Data_Oferty, " +
                    "Opis_Dol, Data_Wyslania, Data_Modyfikacji, Zmodyfikowal_User, zapisana, ReklamaID, ProjektID) " +
                    "SELECT Stan_Oferty, Id_Wersje_Oferty, CUSTOMER_ID, id_klienci_os_kontakt, id_tytul, AGENT, JEZYK, Data_Oferty, " +
                    "Opis_Dol, Data_Wyslania, Data_Modyfikacji, Zmodyfikowal_User, zapisana, ReklamaID, ProjektID " +
                    "FROM " + truckExpoDbName + ".dbo.Oferty_Main " +
                    "WHERE Customer_ID <= 56710 AND data_modyfikacji > '2008-03-11'";
                n = cmd3.ExecuteNonQuery();
                nOferty_Main += n;


                cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.Sheduler " +
                    "(CustomerId, CustomerName, Akwizytor, DataWprowadzenia, DataPrzypomnienia, Opis, zalatwione) " +
                    "SELECT CustomerId, CustomerName, Akwizytor, DataWprowadzenia, DataPrzypomnienia, Opis, zalatwione " +
                    "FROM " + truckExpoDbName + ".dbo.Sheduler " +
                    "WHERE CustomerID <= 56710 AND DataWprowadzenia > '2008-03-11'";
                n = cmd3.ExecuteNonQuery();
                nSheduler += n;

                cmd3.CommandText = "INSERT INTO " + bazaReklamDbName + ".dbo.KL_KLIENCI " +
                    "(ID_KL_1, ID_KL_2, ID_KL_3, Customerid, username, data) " +
                    "SELECT ID_KL_1, ID_KL_2, ID_KL_3, Customerid, username, data " +
                    "FROM " + truckExpoDbName + ".dbo.KL_KLIENCI " +
                    "WHERE Customerid <= 56710 AND data > '2008-03-11'";
                n = cmd3.ExecuteNonQuery();
                nKl_Klienci += n;



                //test: anulujemy operację
                //tr1.Rollback();
                //tr1.Commit();
                //tr1 = null;

                conn1.Close();
                conn2.Close();
                conn3.Close();

                stopwatch.Stop();

                MessageBox.Show("Zakończono łączenie danych.\n" +
                    " - czas: " + stopwatch.Elapsed.Minutes + " minut, " + stopwatch.Elapsed.Seconds + " sekund" + "\n" +
                    " - klienci: " + nKlienci + "\n" +
                    " - klienci, osoby do kontaktu: " + nKlienci_Osoby_Do_Kontaktu + "\n" +
                    " - reklamy: " + nReklama + "\n" +
                    " - reklamy, info dod.: " + nReklama_Info_Dod + "\n" +
                    " - faktury: " + nFAKTURY + "\n" +
                    " - faktury, szczegóły: " + nFAKTURA_DETAILS + "\n" +
                    " - eCard: " + nPlatnosciEcard + "\n" +
                    " - ukaże się w ...: " + nUKAzeSie + "\n" +
                    " - produkcja: " + nProdukcja + "\n" +
                    " - kontakty: " + nKontakty + "\n" +
                    " - kontakty log: " + nKONTAKTY_Log + "\n" +
                    " - klienci log: " + nKLIENCI_Log + "\n" +
                    " - klienci tytuł: " + nKlienci_Tytul + "\n" +
                    " - oferty main: " + nOferty_Main + "\n" +
                    " - sheduler: " + nSheduler + "\n" +
                    " - Kl_Klienci: " + nKl_Klienci, "Baza reklam", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                //if (tr1 != null)
                //{
                //    tr1.Rollback();
                //    tr1 = null;
                //}

                MessageBox.Show(ex.ToString());
            }
            finally
            {
                if (conn1 != null && conn1.State == ConnectionState.Open) conn1.Close();
                if (conn2 != null && conn2.State == ConnectionState.Open) conn2.Close();
                if (conn3 != null && conn3.State == ConnectionState.Open) conn3.Close();
            }
        }

        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            RunProcess();
        }

        private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            if (!this.Visible ||
                this.WindowState != FormWindowState.Normal)
                return;

            //if (progressBar1.Maximum == 1 && m_waitProgressMax > 0) progressBar1.Maximum = m_waitProgressMax;
            if (progressBar1.Maximum != m_waitProgressMax)
                progressBar1.Maximum = m_waitProgressMax;

            if (e.ProgressPercentage < progressBar1.Maximum)
            {
                progressBar1.Value = e.ProgressPercentage;
                labelInfo1.Text = progressBar1.Value.ToString() + "/" + m_waitProgressMax.ToString();
            }
        }

        private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            button1.Enabled = true;
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (backgroundWorker1.IsBusy)
                e.Cancel = true;
        }
    }
}