Exemplo n.º 1
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            MainMenuUser mainMenuUser = new MainMenuUser();

            mainMenuUser.Show();
            this.Close();
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            StreamReader file  = new StreamReader("UserLogin.txt");
            string       login = file.ReadLine();

            file.Close();
            if (login == null)
            {
                Mainmenu mainmenu = new Mainmenu();
                mainmenu.Show();
                this.Close();
            }
            else
            {
                MainMenuUser mainMenuUser = new MainMenuUser();
                mainMenuUser.Show();
                this.Close();
            }
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (loginField.Text != CheckUser.CheckUserLogin(loginField.Text))
            {
                MessageBox.Show(CheckUser.CheckUserLogin(loginField.Text));
                return;
            }

            if (passwordField.Password.ToString() != CheckUser.CheckUserPassword(passwordField.Password.ToString()))
            {
                MessageBox.Show(CheckUser.CheckUserPassword(passwordField.Password.ToString()));
                return;
            }

            string userLogin    = loginField.Text;
            string userPassword = passwordField.Password.ToString();

            string myConnectionString = @"Data Source=(local)\SQLEXPRESS; Initial Catalog=StockRoom; Integrated Security=True";
            string mySelectQuery      = "SELECT * FROM Users WHERE [UserLogin] = '" + userLogin + "'and [UserPassword]='" + userPassword + "' and [AdministratorState] = 'false'";

            using (SqlDataAdapter dataAdapter = new SqlDataAdapter(mySelectQuery, myConnectionString)) // проверка введенных данных
            {
                DataTable table = new DataTable();
                dataAdapter.Fill(table);
                if (table.Rows.Count > 0)
                {
                    StreamWriter loginFile = new StreamWriter("UserLogin.txt");
                    loginFile.Write(userLogin);
                    loginFile.Close();
                    MainMenuUser mainMenu = new MainMenuUser();
                    mainMenu.Show();
                    this.Close();
                }
                else if (table.Rows.Count == 0)
                {
                    MessageBox.Show("Неверный логин или пароль");
                    return;
                }
            }
        }
        private void Info_Click(object sender, RoutedEventArgs e)
        {
            StreamReader file  = new StreamReader("UserLogin.txt");
            string       login = file.ReadLine();

            file.Close();
            if (login == null)
            {
                Mainmenu mainmenu = new Mainmenu();
                mainmenu.Show();
                this.Close();
                System.Windows.Forms.HelpNavigator navigator = System.Windows.Forms.HelpNavigator.Topic;
                System.Windows.Forms.Help.ShowHelp(null, "help.chm", navigator, "vyvod_informatsii_ob_avtozapchastyakh_2.htm");
            }
            else
            {
                MainMenuUser mainMenuUser = new MainMenuUser();
                mainMenuUser.Show();
                this.Close();
                System.Windows.Forms.HelpNavigator navigator = System.Windows.Forms.HelpNavigator.Topic;
                System.Windows.Forms.Help.ShowHelp(null, "help.chm", navigator, "vyvod_informatsii_ob_avtozapchastyakh_1.htm");
            }
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            StreamReader readLogin        = new StreamReader("UserLogin.txt");
            string       currentUserLogin = readLogin.ReadLine();

            readLogin.Close();

            string connectionString = @"Data Source=(local)\SQLEXPRESS; Initial Catalog=StockRoom; Integrated Security=True";

            if (loginField.Text != "") //проверка логина на соответствие
            {
                if (loginField.Text.Length > 2 && loginField.Text.Length <= 20)
                {
                    char[] loginArray = loginField.Text.ToCharArray();
                    for (int i = 0; i < loginArray.Length; i++)
                    {
                        if (!char.IsLetter(loginArray[i]) && !char.IsDigit(loginArray[i]) && loginArray[i] != '_')
                        {
                            MessageBox.Show("Вы указали в логине недопустимые символы.");
                            return;
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Допустимая длина логина 3-20 символов.");
                    return;
                }

                using (SqlConnection changeLogin = new SqlConnection(connectionString))
                    using (SqlCommand command = changeLogin.CreateCommand()) // обновляем логин пользователя
                    {
                        StreamWriter writeLogin = new StreamWriter("UserLogin.txt");
                        writeLogin.Write(loginField.Text);
                        writeLogin.Close();
                        command.CommandText = "UPDATE Users SET UserLogin = '******' WHERE UserLogin = '******'";
                        changeLogin.Open();
                        command.ExecuteNonQuery();
                        changeLogin.Close();
                        currentUserLogin = loginField.Text;
                    }
            }

            if (passwordField.Password.ToString() != "") //проверка пароля на соответствие
            {
                if (passwordField.Password.ToString().Length > 2 && passwordField.Password.ToString().Length <= 20)
                {
                    char[] passwordArray = passwordField.Password.ToString().ToCharArray();
                    for (int i = 0; i < passwordArray.Length; i++)
                    {
                        if (!char.IsLetter(passwordArray[i]) && !char.IsDigit(passwordArray[i]) && passwordArray[i] != '_' && passwordArray[i] != '*')
                        {
                            MessageBox.Show("Вы указали в пароле недопустимые символы.");
                            return;
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Допустимая длина пароля 3-20 символов.");
                    return;
                }

                using (SqlConnection changePassword = new SqlConnection(connectionString))
                    using (SqlCommand command = changePassword.CreateCommand()) // обновляем пароль пользователя
                    {
                        command.CommandText = "UPDATE Users SET UserPassword = '******' WHERE UserLogin = '******'";
                        changePassword.Open();
                        command.ExecuteNonQuery();
                        changePassword.Close();
                    }
            }

            if (nameField.Text != "")  //проверка имени на соответствие
            {
                if (nameField.Text.Length > 2 && nameField.Text.Length <= 20)
                {
                    char[] nameArray = nameField.Text.ToCharArray();
                    for (int i = 0; i < nameArray.Length; i++)
                    {
                        if (!char.IsLetter(nameArray[i]) && nameArray[i] != '-')
                        {
                            MessageBox.Show("Вы указали в имени недопустимые символы.");
                            return;
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Допустимая длина имени 3-20 символов.");
                    return;
                }

                using (SqlConnection changeName = new SqlConnection(connectionString))
                    using (SqlCommand command = changeName.CreateCommand()) // обновляем имя пользователя
                    {
                        command.CommandText = "UPDATE Users SET UserName = '******' WHERE UserLogin = '******'";
                        changeName.Open();
                        command.ExecuteNonQuery();
                        changeName.Close();
                    }
            }

            if (surnamField.Text != "") //проверка фамилии на соответствие
            {
                if (surnamField.Text.Length > 2 && surnamField.Text.Length <= 20)
                {
                    char[] surnameArray = surnamField.Text.ToCharArray();
                    for (int i = 0; i < surnameArray.Length; i++)
                    {
                        if (!char.IsLetter(surnameArray[i]) && surnameArray[i] != '-')
                        {
                            MessageBox.Show("Вы указали в фамилии недопустимые символы.");
                            return;
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Допустимая длина фамилии 3-20 символов.");
                    return;
                }

                using (SqlConnection changeSurname = new SqlConnection(connectionString))
                    using (SqlCommand command = changeSurname.CreateCommand()) //обновляем фамилию пользователя
                    {
                        command.CommandText = "UPDATE Users SET UserSurname = '" + surnamField.Text + "' WHERE UserLogin = '******'";
                        changeSurname.Open();
                        command.ExecuteNonQuery();
                        changeSurname.Close();
                    }
            }
            MessageBoxResult mboxResult = MessageBox.Show("Изменения сохранены. Желаете изменить что-нибудь еще?", "Предупреждение", MessageBoxButton.YesNo);

            if (mboxResult == MessageBoxResult.No)
            {
                MainMenuUser mainMenuUser = new MainMenuUser();
                mainMenuUser.Show();
                this.Close();
            }
        }
Exemplo n.º 6
0
        private void MakeOrder_Click(object sender, RoutedEventArgs e)
        {
            if (SparePartName.Text != CheckSparePart.CheckSparePartName(SparePartName.Text))
            {
                MessageBox.Show(CheckSparePart.CheckSparePartName(SparePartName.Text));
                return;
            }

            if (CarName.Text != CheckSparePart.CheckCarName(CarName.Text))
            {
                MessageBox.Show(CheckSparePart.CheckCarName(CarName.Text));
                return;
            }

            if (SparePartCount.Text != CheckSparePart.CheckSparePartCount(SparePartCount.Text))
            {
                MessageBox.Show(CheckSparePart.CheckSparePartCount(SparePartCount.Text));
                return;
            }

            int sparePartID = 0;
            int carModelID  = 0;

            string        myConnectionString = @"Data Source=(local)\SQLEXPRESS; Initial Catalog=StockRoom; Integrated Security=True";
            SqlConnection connection         = new SqlConnection(myConnectionString);

            connection.Open();
            string        findOrderSparePartName = "SELECT IDSparePartN FROM SparePartName WHERE SparePartN = '" + SparePartName.Text + "'";
            SqlCommand    findSparePartName      = new SqlCommand(findOrderSparePartName, connection);
            SqlDataReader sparePartNameReader    = findSparePartName.ExecuteReader();

            if (sparePartNameReader.Read()) // ищем id-шник названия запчасти в базе
            {
                sparePartID = Convert.ToInt32(sparePartNameReader[0].ToString());
                sparePartNameReader.Close();
            }
            else
            {
                MessageBox.Show("Такой автозапчасти нет на складе.");
                return;
            }
            sparePartNameReader.Close();

            string        findOrderCarName   = "SELECT IDCarModel FROM CarModel WHERE CarModelName = '" + CarName.Text + "'";
            SqlCommand    findCarNameCommand = new SqlCommand(findOrderCarName, connection);
            SqlDataReader carNameReader      = findCarNameCommand.ExecuteReader();

            if (carNameReader.Read()) // ищем id-шник названия автомобиля в базе
            {
                carModelID = Convert.ToInt32(carNameReader[0].ToString());
                carNameReader.Close();
            }
            else
            {
                MessageBox.Show("Автозапчасти для такой марки автомобиля нет.");
                return;
            }

            StreamReader file  = new StreamReader("UserLogin.txt");
            string       login = file.ReadLine();

            file.Close();

            int           userCode     = 0;
            string        findUserCode = "SELECT UserCode FROM Users WHERE UserLogin = '******'";
            SqlCommand    findUC       = new SqlCommand(findUserCode, connection);
            SqlDataReader UCReader     = findUC.ExecuteReader();

            if (UCReader.HasRows)  // получаем id-шник пользователя
            {
                while (UCReader.Read())
                {
                    userCode = Convert.ToInt32(UCReader[0].ToString());
                }
            }
            UCReader.Close();

            double        sparePartCost   = 0;
            int           currentCount    = 0;
            int           sparePartNumber = 0;
            string        findOrderData   = "SELECT SparePartNumber, SparePartCount, SparePartCost FROM SparePart WHERE IDSparePartN = " + sparePartID + " AND IDCarModel = " + carModelID + "";
            SqlCommand    findData        = new SqlCommand(findOrderData, connection);
            SqlDataReader dataReader      = findData.ExecuteReader();

            if (dataReader.HasRows)
            {
                while (dataReader.Read()) // берем данные запчасти со склада: номер, кол-во, стоимость
                {
                    sparePartNumber = Convert.ToInt32(dataReader[0].ToString());
                    currentCount    = Convert.ToInt32(dataReader[1].ToString());
                    sparePartCost   = Convert.ToDouble(dataReader[2].ToString());
                }

                if (currentCount < Convert.ToInt32(SparePartCount.Text)) // если кол-во запчастей на складе меньше кол-ва запчастей в заказе
                {
                    MessageBox.Show("Такого количества указанной автозапчасти на складе нет.");
                    return;
                }
                else if (currentCount > Convert.ToInt32(SparePartCount.Text)) // если кол-во запчастей на складе больше кол-ва запчастей в заказе
                {
                    using (SqlConnection changeCount = new SqlConnection(myConnectionString))
                        using (SqlCommand lastCommnd = changeCount.CreateCommand()) // уменьшаем кол-во запчастей на складе
                        {
                            lastCommnd.CommandText = "UPDATE SparePart SET SparePartCount = SparePartCount - @count WHERE SparePartNumber = " + sparePartNumber + "";
                            lastCommnd.Parameters.AddWithValue("@count", Convert.ToInt32(SparePartCount.Text));

                            changeCount.Open();
                            lastCommnd.ExecuteNonQuery();
                            changeCount.Close();
                        }

                    using (SqlConnection insertOrderData = new SqlConnection(myConnectionString))
                        using (SqlCommand lastCommnd = insertOrderData.CreateCommand()) // записываем данные заказа в базу данных
                        {
                            lastCommnd.CommandText = "INSERT SparePartOrder (UserCode, SparePartNumber, SparePartCount, GeneralSum) VALUES (@UC, @sprptNum, @count, @sum)";
                            lastCommnd.Parameters.AddWithValue("@UC", userCode);
                            lastCommnd.Parameters.AddWithValue("@sprptNum", sparePartNumber);
                            lastCommnd.Parameters.AddWithValue("@count", Convert.ToInt32(SparePartCount.Text));
                            lastCommnd.Parameters.AddWithValue("@sum", Convert.ToDouble(SparePartCount.Text) * sparePartCost);

                            insertOrderData.Open();
                            lastCommnd.ExecuteNonQuery();
                            insertOrderData.Close();
                        }
                }
                else if (currentCount == Convert.ToInt32(SparePartCount.Text)) // если кол-во запчастей на складе равно кол-ву запчастей в заказе
                {
                    using (SqlConnection changeCount = new SqlConnection(myConnectionString))
                        using (SqlCommand lastCommnd = changeCount.CreateCommand())
                        {
                            lastCommnd.CommandText = "UPDATE SparePart SET SparePartCount = SparePartCount - @count, IDStatus = (SELECT IDStatus FROM SparePartStatus WHERE StateName = @status) WHERE SparePartNumber = " + sparePartNumber + "";
                            lastCommnd.Parameters.AddWithValue("@count", Convert.ToInt32(SparePartCount.Text));
                            lastCommnd.Parameters.AddWithValue("@status", "Нет в наличии");

                            changeCount.Open();
                            lastCommnd.ExecuteNonQuery();
                            changeCount.Close();
                        }

                    using (SqlConnection insertOrderData = new SqlConnection(myConnectionString))
                        using (SqlCommand lastCommnd = insertOrderData.CreateCommand()) // записываем данные заказа в базу данных
                        {
                            lastCommnd.CommandText = "INSERT SparePartOrder (UserCode, SparePartNumber, SparePartCount, GeneralSum) VALUES (@UC, @sprptNum, @count, @sum)";
                            lastCommnd.Parameters.AddWithValue("@UC", userCode);
                            lastCommnd.Parameters.AddWithValue("@sprptNum", sparePartNumber);
                            lastCommnd.Parameters.AddWithValue("@count", Convert.ToInt32(SparePartCount.Text));
                            lastCommnd.Parameters.AddWithValue("@sum", Convert.ToDouble(SparePartCount.Text) * sparePartCost);

                            insertOrderData.Open();
                            lastCommnd.ExecuteNonQuery();
                            insertOrderData.Close();
                        }
                }
            }
            else
            {
                MessageBox.Show("Нет подходящей автозапчасти для указанного автомобиля.");
                return;
            }
            dataReader.Close();
            string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

            Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application(); // открываем Word
            try
            {
                Document doc = app.Documents.Open(System.IO.Path.GetFullPath(@"ШаблонЗаказ.docx")); // открыаем шаблон
                ReplaseWord("{OrderDate}", DateTime.Now.ToShortDateString(), doc);                  // записываем в метку дату заказа
                string        query         = "SELECT OrderNumber, CarModelName, SparePartN, SparePartCost, SparePartOrder.SparePartCount, UserName, UserSurname, UserLogin, GeneralSum FROM SparePartOrder, CarModel, SparePartName, SparePart, Users WHERE SparePartOrder.UserCode = Users.UserCode AND SparePartOrder.UserCode = " + userCode + " AND SparePartOrder.SparePartNumber = SparePart.SparePartNumber AND SparePartOrder.SparePartNumber = " + sparePartNumber + " AND SparePart.IDCarModel = CarModel.IDCarModel AND SparePart.IDSparePartN = SparePartName.IDSparePartN AND SparePartOrder.SparePartCount = " + Convert.ToInt32(SparePartCount.Text) + "";
                SqlCommand    sqlCommand    = new SqlCommand(query, connection);
                SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();
                if (sqlDataReader.HasRows) // записываем в метки данные заказа
                {
                    while (sqlDataReader.Read())
                    {
                        ReplaseWord("{OrderNumber}", sqlDataReader[0].ToString() + "\n", doc);
                        ReplaseWord("{SparePartN}", sqlDataReader[2].ToString() + "\n", doc);
                        ReplaseWord("{CarModelName}", sqlDataReader[1].ToString() + "\n", doc);
                        ReplaseWord("{SparePartCost}", sqlDataReader[3].ToString() + "\n", doc);
                        ReplaseWord("{SparePartCount}", sqlDataReader[4].ToString() + "\n", doc);
                        ReplaseWord("{UserName}", sqlDataReader[5].ToString() + "\n", doc);
                        ReplaseWord("{UserSurname}", sqlDataReader[6].ToString() + "\n", doc);
                        ReplaseWord("{UserLogin}", sqlDataReader[7].ToString() + "\n", doc);
                        ReplaseWord("{GeneralSum}", sqlDataReader[8].ToString() + "\n", doc);
                        path += @"\Отчет по заказу № " + sqlDataReader[0].ToString() + ".docx";
                    }
                }
                doc.SaveAs2(path);
                sqlDataReader.Close();
                doc.Close();
                connection.Close();
            }
            catch (Exception q)
            {
                app.Quit();
                MessageBox.Show(q.Message);
            }
            finally
            {
                app.Quit();
            }

            MessageBoxResult mboxResult = MessageBox.Show("Заказ успешно выполнен. Желаете заказать что-нибудь еще?", "Предупреждение", MessageBoxButton.YesNo);

            if (mboxResult == MessageBoxResult.No)
            {
                MainMenuUser mainMenuUser = new MainMenuUser();
                mainMenuUser.Show();
                this.Close();
            }
            connection.Close();
        }