示例#1
0
        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();
        }
示例#2
0
        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();
        }
示例#3
0
        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();
        }
示例#4
0
 public frm_Customer_Popup(frm_Main_Window frm)
 {
     InitializeComponent();
 }