Пример #1
0
        public List <String> getLastHarmonogram(bool pokazSzczegoly)
        {
            List <String> resultList = new List <String>();
            String        result     = "";

            MainWindow.connection.Open();
            string query = "SELECT MAX(idharmonogram) FROM harmonogram";

            sql        = new MySqlCommand(query, MainWindow.connection);
            datareader = sql.ExecuteReader();
            int maxid = 0;

            if (datareader.Read() && datareader.HasRows)
            {
                maxid = int.Parse(datareader.GetString(0));
            }
            Harmonogram h = new Harmonogram();

            h.idHarmonogram = maxid;

            datareader.Close();
            query      = "SELECT * FROM harmonogram WHERE idharmonogram='" + maxid + "'";
            sql        = new MySqlCommand(query, MainWindow.connection);
            datareader = sql.ExecuteReader();
            if (datareader.HasRows)
            {
                while (datareader.Read())
                {
                    h.idZlecenia.Add(int.Parse(datareader[2].ToString()));
                    h.idPracownika.Add(int.Parse(datareader[3].ToString()));
                    h.kolejnosc.Add(int.Parse(datareader[4].ToString()));
                    h.czas.Add(datareader[5].ToString());
                }
            }
            else
            {
                return(resultList);
            }
            datareader.Close();
            foreach (int x in h.idPracownika)
            {
                query      = "SELECT * FROM pracownicy WHERE idPracownicy='" + x + "'";
                sql        = new MySqlCommand(query, MainWindow.connection);
                datareader = sql.ExecuteReader();
                if (datareader.HasRows)
                {
                    if (datareader.Read())
                    {
                        h.pracownik.Add(datareader[1].ToString());
                    }
                }
                datareader.Close();
            }
            foreach (int x in h.idZlecenia)
            {
                query = "SELECT * FROM zlecenia WHERE idzlecenia='" + x + "'";
                sql   = new MySqlCommand(query, MainWindow.connection);

                datareader = sql.ExecuteReader();
                if (datareader.HasRows)
                {
                    if (datareader.Read())
                    {
                        h.nazwaSprzetu.Add(datareader[1].ToString());
                        h.nazwaUslugi.Add(datareader[2].ToString());
                        h.idKlienta.Add(int.Parse(datareader[3].ToString()));
                        h.czasWykonania.Add(int.Parse(datareader[4].ToString()));
                    }
                }
                datareader.Close();
            }
            foreach (int x in h.idKlienta)
            {
                query = "SELECT * FROM klienci WHERE NIP='" + x + "'";
                sql   = new MySqlCommand(query, MainWindow.connection);

                datareader = sql.ExecuteReader();
                if (datareader.HasRows)
                {
                    if (datareader.Read())
                    {
                        h.nazwaFirmy.Add(datareader[1].ToString());
                        h.adresFirmy.Add(datareader[2].ToString());
                    }
                }
                datareader.Close();
            }
            foreach (String x in h.adresFirmy)
            {
                query = "SELECT szerokosc,dlugosc FROM miejscowosci WHERE nazwa='" + x + "'";
                sql   = new MySqlCommand(query, MainWindow.connection);

                datareader = sql.ExecuteReader();
                if (datareader.HasRows)
                {
                    if (datareader.Read())
                    {
                        double x1        = Convert.ToDouble(datareader[0]);
                        double dlugosc   = Math.Floor(x1) + (x1 - Math.Floor(x1)) * 100 / 60;
                        double y1        = Convert.ToDouble(datareader[1]);
                        double szerokosc = Math.Floor(y1) + (y1 - Math.Floor(y1)) * 100 / 60;

                        Wspolrzedne lokalizacja = new Wspolrzedne(dlugosc, szerokosc);
                        h.lokalizacja.Add(lokalizacja);
                    }
                }
                datareader.Close();
            }
            for (int i = 0; i < h.nazwaFirmy.Count; i++)
            {
                DataRow row = h.dt.NewRow();
                row[0]  = h.idZlecenia[i];
                row[1]  = h.idPracownika[i];
                row[2]  = h.kolejnosc[i];
                row[3]  = h.czas[i];
                row[4]  = h.nazwaSprzetu[i];
                row[5]  = h.nazwaUslugi[i];
                row[6]  = h.idKlienta[i];
                row[7]  = h.czasWykonania[i];
                row[8]  = h.nazwaFirmy[i];
                row[9]  = h.adresFirmy[i];
                row[10] = h.pracownik[i];
                row[11] = h.lokalizacja[i].dlugosc;
                row[12] = h.lokalizacja[i].szerokosc;
                h.dt.Rows.Add(row);
            }
            DataRow[]   sortedrows  = h.dt.Select("", "idPracownika, kolejnosc");
            int         tmp         = -1;
            int         it          = 1;
            String      res         = "";
            double      cserwisanta = 0;
            Wspolrzedne lastCity    = new Wspolrzedne(19.47, 51.78);

            foreach (DataRow r in sortedrows)
            {
                if (tmp != int.Parse(r[1].ToString()))
                {
                    if (res.Length > 0)
                    {
                        Wspolrzedne newcity = new Wspolrzedne(19.47, 51.78);
                        cserwisanta += lastCity.getDistance(newcity) / 90.0;
                        lastCity     = newcity;
                        res         += "+to:51.78+N,+19.47+E&ll=51.930718,20.720215&spn=6.057099,19.138184&t=m&z=6";
                        resultList.Add(res);
                        result      = "c serwisanta = " + cserwisanta.ToString("f") + "\n" + result;
                        cserwisanta = 0;
                        result     += "------------------------\n";
                        resultList.Add(result);
                        result = "";


                        //result += "\nLink do mapy google: ";
                        //result += res;
                        //result += "\n";
                    }
                    res     = "https://maps.google.com/maps?saddr=51.78+N,+19.47+E";
                    result += r[10];
                    result += ":\n";
                    tmp     = int.Parse(r[1].ToString());
                    it      = 1;
                }
                res += "+to:";
                double sz = double.Parse(r[11].ToString());
                res += sz.ToString("f", CultureInfo.InvariantCulture);
                res += "+N,+";
                double dl = double.Parse(r[12].ToString());
                res += dl.ToString("f", CultureInfo.InvariantCulture);
                res += "+E";
                Wspolrzedne city = new Wspolrzedne(dl, sz);
                cserwisanta += lastCity.getDistance(city) / 90.0;
                lastCity     = city;
                cserwisanta += double.Parse(r[7].ToString());
                result      += it;
                result      += ". Firma ";
                result      += r[8];
                result      += " z siedzibą w miejscowości ";
                result      += r[9];
                if (pokazSzczegoly)
                {
                    result += "\n\tSprzęt: ";
                    result += r[4];
                    result += "\n\tOpis problemu: ";
                    result += r[5];
                    result += "\n\tEstymowany czas: ";
                    result += r[7];
                }
                result += "\n";
                it++;
            }
            MainWindow.connection.Close();
            if (res.Length > 0)
            {
                Wspolrzedne newcity = new Wspolrzedne(19.47, 51.78);
                cserwisanta += lastCity.getDistance(newcity) / 90.0;
                lastCity     = newcity;
                res         += "+to:51.78+N,+19.47+E&ll=51.930718,20.720215&spn=6.057099,19.138184&t=m&z=6";
                resultList.Add(res);
                result = "c serwisanta = " + cserwisanta.ToString("f") + "\n" + result;
                resultList.Add(result);
            }
            return(resultList);
        }