public void Update_log(string lisatieto_loki) { // Loki taulun päivitys frm_Main_Window main_window = new frm_Main_Window(); SqlCommand database_query_loki = new SqlCommand("INSERT INTO [Loki] ([paivittaja], [lisatieto]) " + "VALUES(@paivittaja, @lisatieto_loki)"); database_query_loki.Connection = main_window.database_connection; main_window.database_connection.Open(); database_query_loki.Parameters.AddWithValue("@paivittaja", Properties.Settings.Default["user_name"].ToString()); database_query_loki.Parameters.AddWithValue("@lisatieto_loki", lisatieto_loki); database_query_loki.ExecuteNonQuery(); main_window.database_connection.Close(); }
public void Generate_invoice(string Varaus_id) { // Luodaan uusi lasku // Varaus ID saadaan joko uudesta varauksesta tai varaushistorian listasta. frm_Invoicing Invoice = new frm_Invoicing(); frm_Main_Window main_window = new frm_Main_Window(); // Varauksen keston haku DateTime Start = new DateTime(); DateTime End = new DateTime(); string reservation_asiakas_id = ""; SqlCommand database_query_Reservation_invoicing = new SqlCommand("SELECT asiakas_id, varattu_alkupvm, varattu_loppupvm FROM Varaus WHERE varaus_id = @varaus_id"); database_query_Reservation_invoicing.Connection = main_window.database_connection; main_window.database_connection.Open(); database_query_Reservation_invoicing.Parameters.AddWithValue("@varaus_id", Varaus_id); database_query_Reservation_invoicing.ExecuteNonQuery(); // Alustetaan tietojen lukija myReader = database_query_Reservation_invoicing.ExecuteReader(); while (myReader.Read()) { reservation_asiakas_id = (myReader["asiakas_id"].ToString()); DateTime.TryParse(myReader["varattu_alkupvm"].ToString(), out Start); DateTime.TryParse(myReader["varattu_loppupvm"].ToString(), out End); } main_window.database_connection.Close(); Invoice.start_end_date = Start.ToString("dd.MM.yyyy") + " - " + End.ToString("dd.MM.yyyy"); // Asiakkaan tietojen haku SqlCommand database_query_Customer_invoicing = new SqlCommand("SELECT kokonimi, email, lahiosoite, postinro, postitoimipaikka, asuinmaa FROM Asiakas WHERE asiakas_id = @asiakas_id"); database_query_Customer_invoicing.Connection = main_window.database_connection; main_window.database_connection.Open(); database_query_Customer_invoicing.Parameters.AddWithValue("@asiakas_id", reservation_asiakas_id); database_query_Customer_invoicing.ExecuteNonQuery(); myReader = database_query_Customer_invoicing.ExecuteReader(); while (myReader.Read()) { Invoice.customer_name = (myReader["kokonimi"].ToString()); Invoice.customer_email = (myReader["email"].ToString()); Invoice.customer_address = (myReader["lahiosoite"].ToString()); Invoice.customer_postal_code = (myReader["postinro"].ToString()); Invoice.customer_post_office = (myReader["postitoimipaikka"].ToString()); Invoice.customer_country = (myReader["asuinmaa"].ToString()); } main_window.database_connection.Close(); /* Haetaan mökin tiedot arr_cottageen. * /* 0 = Nimi * /* 1 = Aloituspäivä * /* 2 = Päättymispäivä * /* 3 = Hinta * /* 4 = Päivien määrä * /* 5 = Hinta x päivät */ string[] arr_cottage = new string[5]; var cottage_ids_and_quantities = new Dictionary <int, int>(); SqlCommand database_query_order_cottage_details = new SqlCommand("SELECT * FROM Varauksen_majoitus WHERE varaus_id = @varaus_id"); database_query_order_cottage_details.Connection = main_window.database_connection; main_window.database_connection.Open(); database_query_order_cottage_details.Parameters.AddWithValue("@varaus_id", Varaus_id); database_query_order_cottage_details.ExecuteNonQuery(); myReader = database_query_order_cottage_details.ExecuteReader(); while (myReader.Read()) { cottage_ids_and_quantities.Add(Convert.ToInt32((myReader["majoitus_id"])), Convert.ToInt32((myReader["majoittujien_maara"]))); } main_window.database_connection.Close(); // Lisätään varauksen mökit varaushistorian yhteenvetoon // Luodaan läpikäytävä lista cottage_ids_and_quantities taulusta. List <int> order_cottages = new List <int>(cottage_ids_and_quantities.Keys); // Käydään kaikki taulun arvot läpi. foreach (int cottage_id in order_cottages) { // Tietokantakomento on määriteltävä uudestaan jokaisessa silmukassa, muuten @majoitus_id ei ole uniikki ja johtaa virheeseen. SqlCommand database_query_order_cottage_text_details = new SqlCommand("SELECT Nimi, hinta FROM Majoitus WHERE majoitus_id = @majoitus_id"); database_query_order_cottage_text_details.Connection = main_window.database_connection; main_window.database_connection.Open(); // Haetaan majoitus_id:n perusteella majoituksen nimi. database_query_order_cottage_text_details.Parameters.AddWithValue("@majoitus_id", cottage_id); database_query_order_cottage_text_details.ExecuteNonQuery(); myReader = database_query_order_cottage_text_details.ExecuteReader(); while (myReader.Read()) { arr_cottage[0] = (myReader["nimi"]).ToString(); arr_cottage[1] = (myReader["hinta"]).ToString(); } // Suljetaan yhteys ja lisätään varauksen mökki listview näkymään. main_window.database_connection.Close(); // Montako päivää ollaan matkalla arr_cottage[3] = Properties.Settings.Default["default_cottage_alv"].ToString(); double days = (End - Start).TotalDays + 1; arr_cottage[2] = days.ToString(); // Päivähinta * päivät = hinta double first = double.Parse(arr_cottage[1]); int second = int.Parse(arr_cottage[2]); arr_cottage[4] = (first * second).ToString(".00"); if (days == 1) { arr_cottage[2] += " päivä"; } else { arr_cottage[2] += " päivää"; } ListViewItem itm_cottage; itm_cottage = new ListViewItem(arr_cottage); Invoice.lst_Invoicing.Items.Add(itm_cottage); } // Palveluiden haku string[] arr_service = new string[5]; var service_ids_and_quantities = new Dictionary <int, int>(); SqlCommand database_query_order_service_details = new SqlCommand("SELECT * FROM Varauksen_palvelut WHERE varaus_id = @varaus_id"); database_query_order_service_details.Connection = main_window.database_connection; main_window.database_connection.Open(); database_query_order_service_details.Parameters.AddWithValue("@varaus_id", Varaus_id); database_query_order_service_details.ExecuteNonQuery(); myReader = database_query_order_service_details.ExecuteReader(); while (myReader.Read()) { service_ids_and_quantities.Add(Convert.ToInt32((myReader["palvelu_id"])), Convert.ToInt32((myReader["lkm"]))); } main_window.database_connection.Close(); List <int> order_services = new List <int>(service_ids_and_quantities.Keys); // Lisätään varauksen palvelut varaushistorian yhteenvetoon foreach (int service_id in order_services) { arr_service[2] = service_ids_and_quantities[service_id].ToString(); // Tietokantakomento on määriteltävä uudestaan jokaisessa silmukassa, muuten @majoitus_id ei ole uniikki ja johtaa virheeseen. SqlCommand database_query_order_service_text_details = new SqlCommand("SELECT * FROM Palvelu WHERE palvelu_id = @palvelu_id"); database_query_order_service_text_details.Connection = main_window.database_connection; main_window.database_connection.Open(); database_query_order_service_text_details.Parameters.AddWithValue("@palvelu_id", service_id); database_query_order_service_text_details.ExecuteNonQuery(); myReader = database_query_order_service_text_details.ExecuteReader(); while (myReader.Read()) { arr_service[0] = (myReader["nimi"].ToString()); arr_service[1] = (myReader["hinta"].ToString()); arr_service[3] = (myReader["alv"]).ToString(); } main_window.database_connection.Close(); double sum = double.Parse(arr_service[1]) * double.Parse(arr_service[2]); arr_service[4] = sum.ToString(".00"); arr_service[2] += " kpl"; ListViewItem itm_service; itm_service = new ListViewItem(arr_service); Invoice.lst_Invoicing.Items.Add(itm_service); } // Viimeistellään laskun tiedot double total = 0; double no_alv = 0; foreach (ListViewItem item in Invoice.lst_Invoicing.Items) { total += double.Parse(item.SubItems[4].Text); no_alv += double.Parse(item.SubItems[4].Text) / ((double.Parse(item.SubItems[3].Text) / 100) + 1); } ListViewItem total_no_alv = new ListViewItem(); total_no_alv.SubItems[0].Text = "Arvolisäveroton hinta yhteensä"; total_no_alv.SubItems.Add(no_alv.ToString(".00")); ListViewItem alv = new ListViewItem(); alv.SubItems[0].Text = "Arvolisävero yhteensä"; alv.SubItems.Add((total - no_alv).ToString(".00")); Invoice.lst_Invoicing_2nd_Row_Alv.Items.Add(total_no_alv); Invoice.lst_Invoicing_2nd_Row_Alv.Items.Add(alv); ListViewItem total_row = new ListViewItem(); total_row.SubItems[0].Text = "Viitenumero: " + Varaus_id; total_row.SubItems[0].Font = new Font(FontFamily.GenericSansSerif, 12, FontStyle.Regular); total_row.SubItems.Add("Lasku yhteensä euroa"); total_row.SubItems.Add(total.ToString(".00")); Invoice.lsv_Invoicing_Details_Summary.Items.Add(total_row); Invoice.reference_number = Varaus_id; Invoice.total = total.ToString(".00"); Invoice.Show(); }
public void btn_Customer_Save_Click(object sender, EventArgs e) { // Muunnetaan textbox kenttien arvot tekstimuotoon ja asetetaan ne muuttujiin. string etunimi = txt_Customer_First_Name.Text; string sukunimi = txt_Customer_Surname.Text; string kokonimi = etunimi + " " + sukunimi; string email = txt_Customer_Email.Text; string puhelinnro = txt_Customer_Phone_Number.Text; string lahiosoite = txt_Customer_Adress.Text; string postinro = txt_Customer_Postal_Code.Text; string postitoimipaikka = txt_Customer_City.Text; string asuinmaa = txt_Customer_Country.Text; // Tietojen tarkastus if (string.IsNullOrWhiteSpace(etunimi)) { MessageBox.Show("Virhe! Etunimi ei voi olla tyhjä!"); return; } if (string.IsNullOrWhiteSpace(sukunimi)) { MessageBox.Show("Virhe! Sukunimi ei voi olla tyhjä!"); return; } // Sähköpostin tarkistus. // Jos sähköposti ei ole tyhjä. if (email.Length > 0) { // Sähköpostin oikeellisuus tarkistetaan Verify_email metodilla. if (common_methods.Is_email_valid(email) == false) { return; } } // Puhelinnumeron tarkistus if (puhelinnro.Length > 0) { if (common_methods.Is_phone_valid(puhelinnro) == false) { return; } } // Osoitteen tarkistus if (common_methods.Is_adress_valid(lahiosoite) == false) { return; } if (common_methods.Is_zip_code_valid(postinro) == false) { return; } // Postitoimipaikan tarkistus if (common_methods.Is_post_office_valid(postitoimipaikka) == false) { return; } // Määritellään tietokantayhteys. frm_Main_Window main_window = new frm_Main_Window(); SqlConnection database_connection = main_window.database_connection; // Määritellään tietokantakyselyt asiakkaiden lisäämiseksi ja muokkaamiseksi. SqlCommand database_query_new = new SqlCommand("INSERT INTO [Asiakas] ([etunimi], [sukunimi], [kokonimi], [lahiosoite], " + "[postitoimipaikka], [postinro], [asuinmaa], [email], [puhelinnro]) VALUES (@etunimi, @sukunimi, @kokonimi, @lahiosoite, " + "@postitoimipaikka, @postinro, @asuinmaa, @email, @puhelinnro)"); SqlCommand database_query_update = new SqlCommand("UPDATE Asiakas SET etunimi=@etunimi, sukunimi=@sukunimi, kokonimi=@kokonimi, " + "lahiosoite=@lahiosoite, postitoimipaikka=@postitoimipaikka, postinro=@postinro, asuinmaa=@asuinmaa, email=@email, " + "puhelinnro=@puhelinnro WHERE asiakas_id = @asiakas_id"); // Jos muokataan asiakasta. string lisatieto_loki = ""; if (this.is_customer_edited == true) { // Käytetään asiakkaan muokkauksen yhteyttä. database_query_update.Connection = main_window.database_connection; database_connection.Open(); database_query_update.Parameters.AddWithValue("@asiakas_id", Asiakas_id); database_query_update.Parameters.AddWithValue("@etunimi", etunimi); database_query_update.Parameters.AddWithValue("@sukunimi", sukunimi); database_query_update.Parameters.AddWithValue("@kokonimi", kokonimi); database_query_update.Parameters.AddWithValue("@lahiosoite", lahiosoite); database_query_update.Parameters.AddWithValue("@postitoimipaikka", postitoimipaikka); database_query_update.Parameters.AddWithValue("@postinro", postinro); database_query_update.Parameters.AddWithValue("@asuinmaa", asuinmaa); database_query_update.Parameters.AddWithValue("@email", email); database_query_update.Parameters.AddWithValue("@puhelinnro", puhelinnro); database_query_update.ExecuteNonQuery(); database_connection.Close(); lisatieto_loki = "Muokattiin asiakasta: " + kokonimi + " (asiakas nro.: " + Asiakas_id + ")"; } // Jos luodaan uusi asiakas. else { // Käytetään uuden asiakkaan luonnin yhteyttä. database_query_new.Connection = main_window.database_connection; database_connection.Open(); database_query_new.Parameters.AddWithValue("@etunimi", etunimi); database_query_new.Parameters.AddWithValue("@sukunimi", sukunimi); database_query_new.Parameters.AddWithValue("@kokonimi", kokonimi); database_query_new.Parameters.AddWithValue("@lahiosoite", lahiosoite); database_query_new.Parameters.AddWithValue("@postitoimipaikka", postitoimipaikka); database_query_new.Parameters.AddWithValue("@postinro", postinro); database_query_new.Parameters.AddWithValue("@asuinmaa", asuinmaa); database_query_new.Parameters.AddWithValue("@email", email); database_query_new.Parameters.AddWithValue("@puhelinnro", puhelinnro); database_query_new.ExecuteNonQuery(); database_connection.Close(); lisatieto_loki = "Luotiin asiakas: " + kokonimi; } // Loki taulun päivitys database.Update_log(lisatieto_loki); // Suljetaan formi. this.Close(); }
public frm_Customer_Popup(frm_Main_Window frm) { InitializeComponent(); }