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); }