Esempio n. 1
0
        // Вызов сохранения и прогон по всей логике
        public bool Save(MySqlConnection connection, WaysToOpenForm.WaysToOpen way)
        {
            string warning = CheckData();

            if (warning == "")
            {
                //FillEmptyTextBoxes();
                MySqlTransaction transaction;

                connection.Open();
                transaction = connection.BeginTransaction();

                // Расчет зп
                if (statusName == "Готов" || statusName == "Отправлен" || statusName == "Сдан")
                {
                    salaryToExecutor = CalculateSalary(connection);
                }
                else
                {
                    salaryToExecutor = 0;
                }

                //Создать/изменить запись в таблице Заказы
                MySqlCommand command = SaveInDB(connection, transaction, way);

                // !!! ИЗМЕНЕНИЕ БАЛАНСА КЛИЕНТА !!!
                MySqlCommand commandSetBalance = EditCustomerBalance(connection, transaction, way);
                // !!! КОНЕЦ ИЗМЕНЕНИЯ БАЛАНСА КЛИЕНТА !!!

                // !!! НАЧИСЛЕНИЕ ЗП !!!
                MySqlCommand commandSetSalary = EditEmployeeSalary(connection, transaction);
                // !!! КОНЕЦ НАЧИСЛЕНИЯ ЗП !!!

                try
                {
                    command.ExecuteNonQuery();
                    commandSetBalance.ExecuteNonQuery();
                    if (commandSetSalary != null)
                    {
                        commandSetSalary.ExecuteNonQuery();
                    }
                    transaction.Commit();
                    return(true);
                }
                catch
                {
                    transaction.Rollback();
                    MessageBox.Show("Ошибка сохранения!", "Ошибка внутри транзакции", MessageBoxButton.OK, MessageBoxImage.Error);
                }

                connection.Close();
            }
            else
            {
                MessageBox.Show(warning, "Не заполнены обязательные поля", MessageBoxButton.OK, MessageBoxImage.Error);
            }

            return(false);
        }
 public IncomeRecordWindow(WaysToOpenForm.WaysToOpen waysToOpen)
 {
     InitializeComponent();
     way        = waysToOpen;
     connection = new MySqlConnection(connectionString);
     setNewTitle();
     FillComboBoxes();
 }
Esempio n. 3
0
        public ProductRecordWindow(WaysToOpenForm.WaysToOpen waysToOpen, int id_Product = -1)
        {
            InitializeComponent();
            way        = waysToOpen;
            connection = new MySqlConnection(connectionString);
            setNewTitle();

            if (id_Product != -1)
            {
                old_id_Product = id_Product;
                FillFields(id_Product);
            }
        }
Esempio n. 4
0
        public ConsumptionCategoriesRecordWindow(WaysToOpenForm.WaysToOpen waysToOpen, int id = -1)
        {
            InitializeComponent();
            way        = waysToOpen;
            connection = new MySqlConnection(connectionString);
            setNewTitle();

            if (id != -1)
            {
                old_id = id;
                FillFields(id);
            }
            textBoxName.Focus();
        }
        public ReceiptOfMaterialsRecordWindow(WaysToOpenForm.WaysToOpen waysToOpen, int id_Document_Of_Receipt = -1)
        {
            InitializeComponent();
            way        = waysToOpen;
            connection = new MySqlConnection(connectionString);
            setNewTitle();
            FillComboBoxes();

            if (id_Document_Of_Receipt != -1)
            {
                old_id_Document_Of_Receipt = id_Document_Of_Receipt;
                FillFields(id_Document_Of_Receipt);
            }
        }
Esempio n. 6
0
        public CostsRecordWindow(WaysToOpenForm.WaysToOpen waysToOpen, int login = -1)
        {
            InitializeComponent();
            way        = waysToOpen;
            connection = new MySqlConnection(connectionString);
            setNewTitle();
            FillComboBoxes();

            if (login != -1)
            {
                old_login = login;
                FillFields(login);
            }
        }
Esempio n. 7
0
        public EmployeeRecordWindow(WaysToOpenForm.WaysToOpen waysToOpen, string login = "")
        {
            InitializeComponent();
            way        = waysToOpen;
            connection = new MySqlConnection(connectionString);
            setNewTitle();
            ShowPassword(false);
            FillComboBoxes();

            if (login != "")
            {
                old_login = login;
                FillFields(login);
            }
        }
        public static string setNewTitle(WaysToOpenForm.WaysToOpen way, string Title)
        {
            switch (way)
            {
            case WaysToOpenForm.WaysToOpen.create:
                Title = "Создание " + Title.ToLower() + "а";
                break;

            case WaysToOpenForm.WaysToOpen.edit:
                Title = "Изменение " + Title.ToLower() + "а";
                break;
            }

            return(Title);
        }
Esempio n. 9
0
        public FittingRecordWindow(WaysToOpenForm.WaysToOpen waysToOpen, int idOrder = -1, string nickname = null)
        {
            InitializeComponent();
            way           = waysToOpen;
            this.idOrder  = idOrder;
            this.nickname = nickname;
            connection    = new MySqlConnection(connectionString);
            setNewTitle();
            FillComboBoxes();

            if (idOrder != -1 && nickname != null)
            {
                FillFields(idOrder, nickname);
            }
        }
        public PayrollRecordWindow(WaysToOpenForm.WaysToOpen waysToOpen, string login = "", string period = null)
        {
            InitializeComponent();
            way        = waysToOpen;
            connection = new MySqlConnection(connectionString);
            setNewTitle();
            FillComboBoxes();

            if (login != "")
            {
                old_login  = login;
                old_period = period;
                FillFields(login, old_period);
            }
        }
 public DictionaryRecordWindow(WaysToOpenForm.WaysToOpen waysToOpen, string ID = "", string name = "", string dir = "", int id = -1)
 {
     InitializeComponent();
     way        = waysToOpen;
     connection = new MySqlConnection(connectionString);
     setNewTitle();
     Dir  = dir;
     Name = name;
     Id   = ID;
     if (id != -1)
     {
         old_id = id;
         FillFields(id);
     }
     textBoxName.Focus();
 }
        public MaterialRecordWindow(WaysToOpenForm.WaysToOpen waysToOpen, string vendorCode = "")
        {
            material = new Material();
            InitializeComponent();
            way              = waysToOpen;
            connection       = new MySqlConnection(connectionString);
            vendorCodeRecord = vendorCode;

            // Заполнение шапки, полей
            Title = FormLoader.setNewTitle(way, Title);

            FillComboBoxes();

            if (vendorCodeRecord != "")
            {
                material          = new Material(vendorCodeRecord, connection);
                Border.Visibility = (material.photo != null) ? Visibility.Hidden : Visibility.Visible;
                FillFields();
            }
        }
Esempio n. 13
0
        public CustomersRecordWindow(WaysToOpenForm.WaysToOpen waysToOpen, int id = -1)
        {
            customer = new Customer();
            InitializeComponent();
            way        = waysToOpen;
            connection = new MySqlConnection(connectionString);
            idRecord   = id;

            // Заполнение шапки, полей даты
            Title = FormLoader.setNewTitle(way, Title);
            datePickerBirthday.Text = DateTime.Now.ToLongDateString();

            FillComboBoxes();

            if (idRecord != -1)
            {
                customer          = new Customer(idRecord, connection);
                Border.Visibility = (customer.photo != null) ? Visibility.Hidden : Visibility.Visible;
                FillFields();
            }
        }
        public HolidaysRecordWindow(WaysToOpenForm.WaysToOpen waysToOpen, string login = "")
        {
            InitializeComponent();
            way        = waysToOpen;
            connection = new MySqlConnection(connectionString);
            setNewTitle();
            if (WaysToOpenForm.WaysToOpen.edit != way)
            {
                FillComboBoxes();
            }
            else
            {
                comboBoxLogin.Items.Add(login);
            }

            if (login != "")
            {
                old_login = login;
                FillFields(login);
            }
        }
Esempio n. 15
0
        public OrderRecordWindow(WaysToOpenForm.WaysToOpen waysToOpen, int id = -1)
        {
            order = new Order();
            InitializeComponent();
            way        = waysToOpen;
            connection = new MySqlConnection(connectionString);
            idRecord   = id;

            // При создании они не могут накинуть сразу и список изделий в заказ
            buttonListProducts.Visibility = (way == WaysToOpenForm.WaysToOpen.create) ? Visibility.Hidden : Visibility.Visible;

            // Заполнение шапки, полей даты
            Title = FormLoader.setNewTitle(way, Title);
            datePickerDateOfDelievery.Text = DateTime.Now.ToLongDateString();
            datePickerDateOfOrder.Text     = DateTime.Now.ToLongDateString();

            FillComboBoxes();

            if (idRecord != -1)
            {
                order = new Order(idRecord, connection);
                FillFields();
            }
        }
Esempio n. 16
0
        // Вызов сохранения и прогон по всей логике
        public bool Save(MySqlConnection connection, WaysToOpenForm.WaysToOpen way, string vendorCodeRecord)
        {
            string warning = CheckData();

            if (warning == "")
            {
                MySqlTransaction transaction;

                connection.Open();
                transaction = connection.BeginTransaction();

                //Создать/изменить запись в таблице Материалы
                MySqlCommand command       = SaveInDB(connection, transaction, way, vendorCodeRecord);
                MySqlCommand commandStrore = SaveInStore(connection, transaction, way, vendorCodeRecord);

                try
                {
                    command.ExecuteNonQuery();
                    commandStrore.ExecuteNonQuery();
                    transaction.Commit();
                    return(true);
                }
                catch
                {
                    transaction.Rollback();
                    MessageBox.Show("Ошибка сохранения!", "Ошибка внутри транзакции", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                connection.Close();
            }
            else
            {
                MessageBox.Show(warning, "Не заполнены обязательные поля", MessageBoxButton.OK, MessageBoxImage.Error);
            }

            return(false);
        }
Esempio n. 17
0
        // Вызов сохранения и прогон по всей логике
        public bool Save(MySqlConnection connection, WaysToOpenForm.WaysToOpen way)
        {
            string warning = CheckData();

            if (warning == "")
            {
                connection.Open();
                MySqlTransaction transaction = connection.BeginTransaction();

                // Создать/изменить запись в таблице Клиенты
                MySqlCommand command = SaveInDB(connection, transaction, way);

                try
                {
                    command.ExecuteNonQuery();
                }
                catch
                {
                    transaction.Rollback();
                    System.Windows.MessageBox.Show("Ошибка сохранения клиента в базе!", "Ошибка сохранения", MessageBoxButton.OK, MessageBoxImage.Error);
                    return(false);
                }

                if (way == WaysToOpenForm.WaysToOpen.create)
                {
                    // Если создаем клиента, то добавляем его в таблицу Балансы клиентов
                    string       queryMaxId    = "SELECT max(customers.id_Customer) FROM main_database.customers";
                    MySqlCommand commandFindId = new MySqlCommand(queryMaxId, connection, transaction);
                    int          findId        = -1;

                    using (DbDataReader reader = commandFindId.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            findId = reader.GetInt32(0);
                        }
                    }

                    // Мы сначала создали клиента, берем его id, и с таким же id добавляем в эту таблицу.
                    // Написал настолько непонятно, что аж сам запутался
                    string       queryBalance       = "Insert into customers_balance (Customers_id_Customer, Accured, Paid, Debt) values (@id, 0, 0, 0)";
                    MySqlCommand commandFillBalance = new MySqlCommand(queryBalance, connection, transaction);
                    commandFillBalance.Parameters.AddWithValue("@id", findId);
                    // Конец блока, дальше само выполнение sql комманд

                    try
                    {
                        commandFillBalance.ExecuteNonQuery();
                        transaction.Commit();
                        return(true);
                    }
                    catch
                    {
                        transaction.Rollback();
                        System.Windows.MessageBox.Show("Ошибка сохранения баланса клиента в базе", "Ошибка сохранения!", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }
                else
                {
                    transaction.Commit();
                    return(true);
                }

                connection.Close();
            }
            else
            {
                System.Windows.MessageBox.Show(warning, "Не заполнены обязательные поля", MessageBoxButton.OK, MessageBoxImage.Error);
            }

            return(false);
        }
Esempio n. 18
0
        // Генерация команды сохранения в БД
        private MySqlCommand SaveInDB(MySqlConnection connection, MySqlTransaction transaction, WaysToOpenForm.WaysToOpen way)
        {
            string query = "";

            if (way == WaysToOpenForm.WaysToOpen.create)
            {
                query = "INSERT INTO customers " +
                        "(Name, Lastname, Patronymic, Address, Phone_Number, Nickname," +
                        " Birthday, Passport_Data, Size, Parameters, Notes, Customer_Statuses_id_Status, Order_Channels_id_Channel, Employees_Login, Photo)" +
                        " VALUES (@name, @lastname, @patronymic, @address, @phone, @nickname, @birthday, @passport, @size, @parameters, @notes," +
                        "         @status, @channel, @login, @image);";
            }
            if (way == WaysToOpenForm.WaysToOpen.edit)
            {
                query = "Update customers set Name = @name, Lastname = @lastname, Patronymic = @patronymic, Address = @address, Phone_Number = @phone, Nickname = @nickname, " +
                        "Birthday = @birthday, Passport_Data = @passport, Size = @size, Parameters = @parameters, Notes = @notes, Customer_Statuses_id_Status = @status, " +
                        "Order_Channels_id_Channel = @channel, Employees_Login = @login, Photo = @image" +
                        " where id_Customer = @id;";
            }

            MySqlCommand command = new MySqlCommand(query, connection, transaction);

            command.Parameters.AddWithValue("@name", name);
            command.Parameters.AddWithValue("@lastname", lastname);
            command.Parameters.AddWithValue("@patronymic", patronymic);
            command.Parameters.AddWithValue("@address", address);
            command.Parameters.AddWithValue("@phone", phoneNumber);
            command.Parameters.AddWithValue("@nickname", nickname);
            command.Parameters.AddWithValue("@birthday", birthday);
            command.Parameters.AddWithValue("@passport", passportData);
            command.Parameters.AddWithValue("@size", size);
            command.Parameters.AddWithValue("@parameters", parameters);
            command.Parameters.AddWithValue("@notes", notes);

            // ГОВНОКОД НАЧАЛО
            MySqlCommand commandStatus = new MySqlCommand("select id_Status from customer_statuses where name_of_status = @status", connection);

            commandStatus.Parameters.AddWithValue("status", statusName);
            int id_status = -1;

            using (DbDataReader reader = commandStatus.ExecuteReader())
            {
                while (reader.Read())
                {
                    id_status = reader.GetInt32(0);
                }
            }

            MySqlCommand commandChannel = new MySqlCommand("select id_Channel from order_channels where name_of_channel = @channel", connection);

            commandChannel.Parameters.AddWithValue("channel", channelName);
            int id_channel = -1;

            using (DbDataReader reader = commandChannel.ExecuteReader())
            {
                while (reader.Read())
                {
                    id_channel = reader.GetInt32(0);
                }
            }

            command.Parameters.AddWithValue("@status", id_status);
            command.Parameters.AddWithValue("@channel", id_channel);
            command.Parameters.AddWithValue("@login", employeeLogin);
            // ГОВНОКОД КОНЕЦ

            // Обработка фото
            command.Parameters.AddWithValue("@image", photo);

            if (way == WaysToOpenForm.WaysToOpen.edit)
            {
                command.Parameters.AddWithValue("@id", id);
            }

            return(command);
        }
Esempio n. 19
0
        // Обновление состояние общего баланса клиента после движений над заказом
        private MySqlCommand EditCustomerBalance(MySqlConnection connection, MySqlTransaction transaction, WaysToOpenForm.WaysToOpen way)
        {
            // Получение данных о балансе клиента
            string queryCheckBalance = "select Accured, Paid, Debt, customers_id_customer " +
                                       "from customers_balance " +
                                       "join customers on customers_balance.customers_id_customer = customers.id_customer " +
                                       "where customers.nickname = @nickname";
            MySqlCommand commandCheckBalance = new MySqlCommand(queryCheckBalance, connection);

            commandCheckBalance.Parameters.AddWithValue("@nickname", customerLogin);

            // Состояние общего баланса клиента на текущий момент
            (float accured, float paid, float debt, int id)result = (0, 0, 0, -1);
            using (DbDataReader reader = commandCheckBalance.ExecuteReader())
            {
                while (reader.Read())
                {
                    result = (accured : reader.GetFloat(0), paid : reader.GetFloat(1), debt : reader.GetFloat(2), id : reader.GetInt32(3));
                }
            }
            //

            MySqlCommand commandSetBalance;

            // Если мы создаем заказ, то у нас в балансе он еще не учитывается и надо бы записать это дело
            // Иначе мы для начала должны вычесть то, что имеем на текущий момент и прибавить новые значения
            if (way == WaysToOpenForm.WaysToOpen.edit)
            {
                string       selectQuery = "select Paid, Debt, Total_Price from orders where id_order = @idOrder";
                MySqlCommand commandSelectCurrentOrder = new MySqlCommand(selectQuery, connection);
                commandSelectCurrentOrder.Parameters.AddWithValue("@idOrder", id);

                // Состояние баланса клиента по текущему заказу на текущий момент
                (float currentPaid, float currentDebt, float currentTotalPrice)current = (0, 0, 0);
                using (DbDataReader reader = commandSelectCurrentOrder.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        current = (currentPaid : reader.GetFloat(0), currentDebt : reader.GetFloat(1), currentTotalPrice : reader.GetFloat(2));
                    }
                }

                result.paid    -= current.currentPaid;
                result.debt    -= current.currentDebt;
                result.accured -= current.currentTotalPrice;
            }

            // Новые значения баланса клиента
            result.paid    += this.paid;
            result.debt    += this.debt;
            result.accured += this.totalPrice;


            string querySetBalance = "update customers_balance set Accured = @accured, Paid = @paid, Debt = @debt " +
                                     "where customers_balance.customers_id_customer = @id";

            commandSetBalance = new MySqlCommand(querySetBalance, connection, transaction);
            commandSetBalance.Parameters.AddWithValue("@id", id);
            commandSetBalance.Parameters.AddWithValue("@accured", result.accured);
            commandSetBalance.Parameters.AddWithValue("@paid", result.paid);
            commandSetBalance.Parameters.AddWithValue("@debt", result.debt);

            return(commandSetBalance);
        }
Esempio n. 20
0
        // Генерация команды сохранения в БД
        private MySqlCommand SaveInDB(MySqlConnection connection, MySqlTransaction transaction, WaysToOpenForm.WaysToOpen way)
        {
            string query = "";

            if (way == WaysToOpenForm.WaysToOpen.create)
            {
                query = "INSERT INTO orders " +
                        "(Date_Of_Order, Discount_Per_Cent, Total_Price, Paid, Debt, Date_Of_Delievery, Added_Price_For_Complexity, Notes, " +
                        " Types_Of_Order_id_Type_Of_Order, Statuses_Of_Order_id_Status_Of_Order, Customers_id_Customer, Responsible, Executor, SalaryToExecutor)" +
                        " VALUES (@dateOrder, @discount, @totalPrice, @paid, @debt, @dateDelievery, @addedPrice, @notes, @typeOrder, @statusOrder, @customer, @responsible, @executor, @salary);";
            }
            if (way == WaysToOpenForm.WaysToOpen.edit)
            {
                query = "Update orders set Date_of_Order = @dateOrder, Discount_Per_Cent = @discount, Total_Price = @totalPrice, Paid = @paid, Debt = @debt," +
                        " Date_Of_Delievery = @dateDelievery, Added_Price_For_Complexity = @addedPrice, Notes = @notes, Types_Of_Order_id_Type_Of_Order = @typeOrder, " +
                        " Statuses_Of_Order_id_Status_Of_Order = @statusOrder," +
                        " Customers_id_Customer = @customer, Responsible = @responsible, Executor = @executor, SalaryToExecutor = @salary " +
                        " where id_order = @idOrder;";
            }

            MySqlCommand command = new MySqlCommand(query, connection, transaction);

            command.Parameters.AddWithValue("@dateOrder", dateOfOrder);
            command.Parameters.AddWithValue("@discount", discountPerCent);
            command.Parameters.AddWithValue("@totalPrice", totalPrice);
            command.Parameters.AddWithValue("@paid", paid);
            command.Parameters.AddWithValue("@debt", debt);
            command.Parameters.AddWithValue("@dateDelievery", dateOfDelievery);
            command.Parameters.AddWithValue("@notes", notes);
            command.Parameters.AddWithValue("@salary", salaryToExecutor);
            command.Parameters.AddWithValue("@addedPrice", addedPriceForComplexity);

            // ГОВНОКОД НАЧАЛО
            MySqlCommand commandType = new MySqlCommand("select id_Type_Of_Order from types_of_order where Name_Of_Type = @type", connection);

            commandType.Parameters.AddWithValue("@type", typeOfOrderName);
            int id_type = -1;

            using (DbDataReader reader = commandType.ExecuteReader())
            {
                while (reader.Read())
                {
                    id_type = reader.GetInt32(0);
                }
            }

            MySqlCommand commandStatus = new MySqlCommand("select id_Status_Of_Order from statuses_of_order where Name_Of_Status = @status", connection);

            commandStatus.Parameters.AddWithValue("@status", statusName);
            int id_status = -1;

            using (DbDataReader reader = commandStatus.ExecuteReader())
            {
                while (reader.Read())
                {
                    id_status = reader.GetInt32(0);
                }
            }

            MySqlCommand commandCustomer = new MySqlCommand("select id_Customer from customers where nickname = @nickname", connection);

            commandCustomer.Parameters.AddWithValue("@nickname", customerLogin);
            int id_customer = -1;

            using (DbDataReader reader = commandCustomer.ExecuteReader())
            {
                while (reader.Read())
                {
                    id_customer = reader.GetInt32(0);
                }
            }

            command.Parameters.AddWithValue("@typeOrder", id_type);
            command.Parameters.AddWithValue("@statusOrder", id_status);
            command.Parameters.AddWithValue("@customer", id_customer);
            command.Parameters.AddWithValue("@responsible", responsible);
            command.Parameters.AddWithValue("@executor", executor);
            // ГОВНОКОД КОНЕЦ

            if (way == WaysToOpenForm.WaysToOpen.edit)
            {
                command.Parameters.AddWithValue("@idOrder", id);
            }

            return(command);
        }
Esempio n. 21
0
        // Обновление данных на складе
        private MySqlCommand SaveInStore(MySqlConnection connection, MySqlTransaction transaction, WaysToOpenForm.WaysToOpen way, string vendorCodeRecord)
        {
            string queryStore = "";

            if (way == WaysToOpenForm.WaysToOpen.create)
            {
                queryStore = "INSERT INTO store (Materials_Vendor_Code, Count)" +
                             " VALUES(@vendor_code,0);";
            }
            if (way == WaysToOpenForm.WaysToOpen.edit)
            {
                queryStore = "Update store set Materials_Vendor_Code = @vendor_code" +
                             " where Materials_Vendor_Code = @oldvendor_code;";
            }

            MySqlCommand command = new MySqlCommand(queryStore, connection, transaction);

            command.Parameters.AddWithValue("@vendor_code", vendorCode);

            if (way == WaysToOpenForm.WaysToOpen.edit)
            {
                command.Parameters.AddWithValue("@oldvendor_code", vendorCodeRecord);
            }

            return(command);
        }
Esempio n. 22
0
        // Генерация команды сохранения в БД
        private MySqlCommand SaveInDB(MySqlConnection connection, MySqlTransaction transaction, WaysToOpenForm.WaysToOpen way, string vendorCodeRecord)
        {
            string query = "";

            if (way == WaysToOpenForm.WaysToOpen.create)
            {
                query = "INSERT INTO materials " +
                        "(Vendor_Code, Name_Of_Material, Cost_Of_Material, Notes," +
                        " Units_id_Unit, Groups_Of_Material_id_Group_Of_Material,Types_Of_Material_id_Type_Of_Material,Countries_id_Country, Photo)" +
                        " VALUES (@vendor_code, @name_of_material, @cost_of_material, @notes, @unit, @group, @type, @country, @image);";
            }
            if (way == WaysToOpenForm.WaysToOpen.edit)
            {
                query = "Update materials set Vendor_Code = @vendor_code, Name_Of_Material = @name_of_material, Cost_Of_Material = @cost_of_material," +
                        "Notes = @notes," +
                        "Units_id_Unit = @unit, Groups_Of_Material_id_Group_Of_Material = @group, Types_Of_Material_id_Type_Of_Material = @type, Countries_id_Country = @country, Photo = @image" +
                        " where Vendor_Code = @oldvendor_code;";
            }

            MySqlCommand command = new MySqlCommand(query, connection, transaction);

            command.Parameters.AddWithValue("@vendor_code", vendorCode);
            command.Parameters.AddWithValue("@name_of_material", name);
            command.Parameters.AddWithValue("@cost_of_material", cost);
            command.Parameters.AddWithValue("@notes", notes);

            // ГОВНОКОД НАЧАЛО
            MySqlCommand commandUnit = new MySqlCommand("select id_Unit from units where Name_Of_Unit = @unit", connection);

            commandUnit.Parameters.AddWithValue("unit", unitName);
            int id_unit = -1;

            using (DbDataReader reader = commandUnit.ExecuteReader())
            {
                while (reader.Read())
                {
                    id_unit = reader.GetInt32(0);
                }
            }

            MySqlCommand commandGroup = new MySqlCommand("select id_Group_Of_Material from groups_of_material where Name_Of_Group = @group", connection);

            commandGroup.Parameters.AddWithValue("group", groupOfMaterialName);
            int id_group = -1;

            using (DbDataReader reader = commandGroup.ExecuteReader())
            {
                while (reader.Read())
                {
                    id_group = reader.GetInt32(0);
                }
            }

            MySqlCommand commandType = new MySqlCommand("select id_Type_Of_Material from types_of_material where Name_Of_Type = @type", connection);

            commandType.Parameters.AddWithValue("@type", typeOfMaterialName);
            int id_type = -1;

            using (DbDataReader reader = commandType.ExecuteReader())
            {
                while (reader.Read())
                {
                    id_type = reader.GetInt32(0);
                }
            }

            MySqlCommand commandCountry = new MySqlCommand("select id_Country from countries where Name_Of_Country = @country", connection);

            commandCountry.Parameters.AddWithValue("@country", countryName);
            int id_country = -1;

            using (DbDataReader reader = commandCountry.ExecuteReader())
            {
                while (reader.Read())
                {
                    id_country = reader.GetInt32(0);
                }
            }

            command.Parameters.AddWithValue("@unit", id_unit);
            command.Parameters.AddWithValue("@group", id_group);
            command.Parameters.AddWithValue("@type", id_type);
            command.Parameters.AddWithValue("@country", id_country);
            // ГОВНОКОД КОНЕЦ

            // Обработка фото
            command.Parameters.AddWithValue("@image", photo);

            if (way == WaysToOpenForm.WaysToOpen.edit)
            {
                command.Parameters.AddWithValue("@oldvendor_code", vendorCodeRecord);
            }

            return(command);
        }