コード例 #1
0
        public WindowUsers(QueryMode mode, MainWindow parent, string primary_key_value = "")
        {
            InitializeComponent();
            this.mode              = mode;
            this.parent            = parent;
            this.primary_key_value = primary_key_value;

            ComboBox_role.ItemsSource   = Shortcuts.get_full_column_from("roles", "role", connection);
            ComboBox_gender.ItemsSource = Shortcuts.get_full_column_from("genders", "gender", connection);

            if (mode == QueryMode.add)
            {
                Button_reset.Visibility = Visibility.Collapsed;
                Button_accept.Content   = "Добавить";
            }
            else
            {
                Button_accept.Content = "Изменить";
                byte[] image_bytes = Shortcuts.get_image("users", "mail", primary_key_value, connection);
                new_image = image_bytes;
                Shortcuts.set_image(Image, image_bytes);
                try
                {
                    connection.Open();
                    MySqlCommand    comm = new MySqlCommand($"SELECT * FROM `users` WHERE `mail` = '{primary_key_value}'", connection);
                    MySqlDataReader data = comm.ExecuteReader();
                    data.Read();
                    TextBox_mail.Text        = primary_key_value;
                    TextBox_password.Text    = data[1].ToString();
                    TextBox_surname.Text     = data[2].ToString();
                    TextBox_first_name.Text  = data[3].ToString();
                    TextBox_second_name.Text = data[4].ToString();
                    TextBox_phone.Text       = data[5].ToString();
                    ComboBox_role.Text       = data[6].ToString();
                    ComboBox_gender.Text     = data[7].ToString();
                    old_values = new object[9] {
                        primary_key_value,
                        data[1].ToString(),
                        data[2].ToString(),
                        data[3].ToString(),
                        data[4].ToString(),
                        data[5].ToString(),
                        data[6].ToString(),
                        data[7].ToString(),
                        image_bytes
                    };
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    connection.Close();
                }
            }
        }
コード例 #2
0
        public WindowStorage(QueryMode mode, Window parent, string primary_key_value = "")
        {
            InitializeComponent();
            this.mode              = mode;
            this.parent            = parent;
            this.primary_key_value = primary_key_value;

            ComboBox_product_name.ItemsSource = Shortcuts.get_full_column_from("products", "name", connection);
            ComboBox_supplier.ItemsSource     = Shortcuts.get_full_column_from("suppliers", "name", connection);


            if (mode == QueryMode.add)
            {
                Button_reset.Visibility = Visibility.Collapsed;
                Button_accept.Content   = "Добавить";
            }
            else
            {
                Button_accept.Content = "Изменить";
                try
                {
                    connection.Open();
                    MySqlCommand comm = new MySqlCommand($"SELECT * FROM `storage` " +
                                                         $"WHERE `id` = '{primary_key_value}';", connection);
                    MySqlDataReader data = comm.ExecuteReader();
                    data.Read();
                    ComboBox_product_name.Text          = data[1].ToString();
                    TextBox_product_amount.Text         = float.Parse(data[2].ToString()).ToString();
                    TextBox_product_amount.Text         = TextBox_product_amount.Text.Replace(",", ".");
                    ComboBox_supplier.Text              = data[4].ToString();
                    TextBox_average_purchase_price.Text = float.Parse(data[5].ToString()).ToString();
                    TextBox_average_purchase_price.Text = TextBox_average_purchase_price.Text.Replace(",", ".");
                    old_values = new string[4] {
                        data[1].ToString(),
                        data[2].ToString(),
                        data[4].ToString(),
                        data[5].ToString()
                    };
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    connection.Close();
                }
            }
        }
コード例 #3
0
        public WindowCars(QueryMode mode, Window parent, string primary_key_value = "")
        {
            InitializeComponent();
            this.mode              = mode;
            this.parent            = parent;
            this.primary_key_value = primary_key_value;

            List <string> mails = Shortcuts.get_full_column_from("clients", "mail", connection);

            ComboBox_owner_mail.ItemsSource = mails;

            if (mode == QueryMode.add)
            {
                Button_reset.Visibility = Visibility.Collapsed;
                Button_accept.Content   = "Добавить";
            }
            else
            {
                Button_accept.Content = "Изменить";
                try
                {
                    connection.Open();
                    MySqlCommand comm = new MySqlCommand($"SELECT * FROM `cars` " +
                                                         $"WHERE `vin` = '{primary_key_value}';", connection);
                    MySqlDataReader data = comm.ExecuteReader();
                    data.Read();
                    TextBox_vin.Text         = primary_key_value;
                    TextBox_number.Text      = data[1].ToString();
                    ComboBox_owner_mail.Text = data[2].ToString();
                    TextBox_color.Text       = data[3].ToString();
                    TextBox_model.Text       = data[4].ToString();
                    old_values = new string[5] {
                        data[0].ToString(),
                        data[1].ToString(),
                        data[2].ToString(),
                        data[3].ToString(),
                        data[4].ToString()
                    };
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    connection.Close();
                }
            }
        }
コード例 #4
0
        public WindowClients(QueryMode mode, Window parent, string primary_key_value = "")
        {
            InitializeComponent();
            this.mode              = mode;
            this.parent            = parent;
            this.primary_key_value = primary_key_value;

            ComboBox_gender.ItemsSource = Shortcuts.get_full_column_from("genders", "gender", connection);

            if (mode == QueryMode.add)
            {
                Button_reset.Visibility = Visibility.Collapsed;
                Button_accept.Content   = "Добавить";
            }
            else
            {
                Button_accept.Content = "Изменить";
                try
                {
                    connection.Open();
                    MySqlCommand comm = new MySqlCommand($"SELECT * FROM `clients` " +
                                                         $"WHERE `mail` = '{primary_key_value}';", connection);
                    MySqlDataReader data = comm.ExecuteReader();
                    data.Read();
                    TextBox_mail.Text        = primary_key_value;
                    TextBox_phone.Text       = data[1].ToString();
                    TextBox_surname.Text     = data[2].ToString();
                    TextBox_first_name.Text  = data[3].ToString();
                    TextBox_second_name.Text = data[4].ToString();
                    ComboBox_gender.Text     = data[5].ToString();
                    old_values = new string[6] {
                        data[0].ToString(),
                        data[1].ToString(),
                        data[2].ToString(),
                        data[3].ToString(),
                        data[4].ToString(),
                        data[5].ToString()
                    };
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    connection.Close();
                }
            }
        }
コード例 #5
0
        private void button_write_check_Click(object sender, RoutedEventArgs e)
        {
            if (DataGrid.SelectedItem == null)
            {
                MessageBox.Show("Выберите мышью запись перед созданием чека!");
                return;
            }
            else if (((Request)DataGrid.SelectedItem).paint_date == "")
            {
                MessageBox.Show("Нельзя выписать чек необработанной заявки!");
                return;
            }

            SaveFileDialog SFDialog = new SaveFileDialog();

            SFDialog.Filter = "Microsoft Word Document (*.docx)|*.docx";
            if (SFDialog.ShowDialog() == true)
            {
                Request req            = (Request)DataGrid.SelectedItem;
                string  cashier_name   = current_user.surname + " " + current_user.first_name[0] + ". " + current_user.second_name[0] + ".";
                string  parts_to_paint = "";
                decimal price          = 0;
                //Определение цены услуги и списка покрашенных деталей
                if (req.parts_to_paint == 8191)
                {
                    parts_to_paint = "Полностью";
                    //количество краски на всю машину
                    decimal paint_amount = decimal.Parse(Shortcuts.get_one_string_data_from("SELECT SUM(surface_size) FROM `car_parts`;", connection)) / 1000;

                    if (req.product_name == "")
                    {
                        //стоимость за аэрографию
                        price = decimal.Parse(Shortcuts.get_one_string_data_from("SELECT `price` " +
                                                                                 $"FROM `pictures` WHERE `name` = '{req.picture_name}';", connection));
                    }
                    else
                    {
                        try
                        {
                            //стоимость покраски всей машины без учёта краски
                            price = decimal.Parse(Shortcuts.get_one_string_data_from("SELECT SUM(cost) FROM `car_parts`;", connection));
                            //стоимость использованной краски
                            decimal paint_price = decimal.Parse(Shortcuts.get_one_string_data_from("SELECT `average_purchase_price` " +
                                                                                                   $"FROM `storage` WHERE `supplier` = '{req.supplier}' AND `product_name` = '{req.product_name}';", connection));
                            //надбавка цены на краску
                            price = price + paint_price * paint_amount;
                        }
                        catch
                        {
                            MessageBox.Show("Невозможно оформить чек. Отсутствуют данные о цене краски.");
                            return;
                        }
                    }
                }
                else                //детальная покраска
                {
                    //перечисление частей на покраску
                    List <string> parts = Shortcuts.get_full_column_from("car_parts", "name", $"`id` & {req.parts_to_paint}", connection);
                    for (int i = 0; i < parts.Count; i++)
                    {
                        parts_to_paint += parts[i];
                        if (i != parts.Count - 1)
                        {
                            parts_to_paint += "; ";
                        }
                        else
                        {
                            parts_to_paint += ".";
                        }
                    }
                    try
                    {
                        //стоимость за покраску частей без учёта краски
                        price = decimal.Parse(Shortcuts.get_one_string_data_from($"SELECT SUM(cost) FROM `car_parts` WHERE `id` & {req.parts_to_paint};", connection));
                        decimal paint_price = decimal.Parse(Shortcuts.get_one_string_data_from("SELECT `average_purchase_price` " +
                                                                                               $"FROM `storage` WHERE `supplier` = '{req.supplier}' AND `product_name` = '{req.product_name}';", connection));
                        //общая цена за услугу
                        decimal paint_amount = decimal.Parse(Shortcuts.get_one_string_data_from($"SELECT SUM(surface_size) FROM `car_parts` WHERE `id` & {req.parts_to_paint};", connection)) / 1000;
                        //надбавка цены на краску
                        price = price + paint_price * paint_amount;
                    }
                    catch
                    {
                        MessageBox.Show("Невозможно оформить чек. Отсутствуют данные о цене краски.");
                        return;
                    }
                }
                try
                {
                    Word.Application WordApp = new Word.Application();
                    WordApp.Visible = false;
                    string price_in_doc = price.ToString().Replace(',', '.');
                    int    dot_pos      = price_in_doc.IndexOf('.');
                    if (dot_pos > 0)
                    {
                        price_in_doc = price_in_doc.Substring(0, dot_pos + 3);
                    }

                    Document word_doc = WordApp.Documents.Open(Directory.GetCurrentDirectory() + $@"\check.docx");
                    Shortcuts.replace_word("{vin}", req.vin, word_doc);
                    Shortcuts.replace_word("{service_type}", req.service_type, word_doc);
                    Shortcuts.replace_word("{color}", req.product_name, word_doc);
                    Shortcuts.replace_word("{parts_to_paint}", parts_to_paint, word_doc);
                    Shortcuts.replace_word("{picture}", req.picture_name, word_doc);
                    Shortcuts.replace_word("{price}", price_in_doc, word_doc);
                    Shortcuts.replace_word("{cashier_name}", cashier_name, word_doc);
                    Shortcuts.replace_word("{current_date}", req.paint_date, word_doc);
                    word_doc.SaveAs2(FileName: SFDialog.FileName);
                    word_doc.Close();
                    MessageBox.Show("Файл успешно сохранён!");
                }
                catch
                {
                    MessageBox.Show("При сохранении чека возникла ошибка. Документ не сохранён.", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }
コード例 #6
0
        public WindowRequests(QueryMode mode, Window parent, string primary_key_value = "")
        {
            InitializeComponent();
            checks = new CheckBox[]
            {
                check_lpk,
                check_lzk,
                check_ppk,
                check_pzk,
                check_lpd,
                check_lzd,
                check_ppd,
                check_pzd,
                check_roof,
                check_hood,
                check_kb,
                check_pb,
                check_zb
            };

            ids = new List <int>();
            for (int i = 1; i <= 4096; i *= 2)
            {
                ids.Add(i);
            }
            this.mode              = mode;
            this.parent            = parent;
            this.primary_key_value = primary_key_value;

            ComboBox_vin.ItemsSource          = Shortcuts.get_full_column_from("cars", "vin", connection);
            ComboBox_service_type.ItemsSource = Shortcuts.get_full_column_from("service_types", "service_type", connection);
            ComboBox_picture.ItemsSource      = Shortcuts.get_full_column_from("pictures", "name", connection);
            ComboBox_supplier.ItemsSource     = Shortcuts.get_full_column_from("suppliers", "name", connection);

            if (mode == QueryMode.add)
            {
                Button_reset.Visibility = Visibility.Collapsed;
                initialized             = true;
                Button_accept.Content   = "Добавить";
                change_checkbox_ability(false);
            }
            else
            {
                Button_accept.Content = "Изменить";
                try
                {
                    connection.Open();
                    MySqlCommand comm = new MySqlCommand($"SELECT * FROM `requests` " +
                                                         $"WHERE `id` = '{primary_key_value}';", connection);
                    MySqlDataReader data = comm.ExecuteReader();
                    data.Read();
                    ComboBox_vin.Text          = data[1].ToString();
                    request_date               = (DateTime)data[3];
                    ComboBox_service_type.Text = data[4].ToString();
                    ComboBox_supplier.Text     = data[8].ToString();
                    old_values = new object[8] {
                        /*0*/ data[1].ToString(),            //VIN
                        /*1*/ data[2].ToString(),            //Product_name
                        /*2*/ data[3],                       //DateTime
                        /*3*/ data[4].ToString(),            //service_type
                        /*4*/ data[5],                       //int parts_to_paint
                        /*5*/ data[6].ToString(),            //pic_name
                        /*6*/ data[7].ToString(),            //request_status
                        /*7*/ data[8].ToString()
                    };
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message.ToString());
                }
                finally
                {
                    connection.Close();
                    initialized = true;
                    ComboBox_service_type.Text = ComboBox_service_type.Text;
                    if (ComboBox_service_type.Text == "Оклейка плёнкой")
                    {
                        fill_product_with("рулон");
                    }
                    else
                    {
                        fill_product_with("литр");
                    }

                    if (ComboBox_service_type.Text != "Аэрография")
                    {
                        ComboBox_product_name.IsEnabled = true;
                        ComboBox_supplier.IsEnabled     = true;
                        for (int i = 0; i < ComboBox_product_name.Items.Count; i++)
                        {
                            if ((string)(ComboBox_product_name.Items[i] as ComboBoxItem).Tag == (string)old_values[1])
                            {
                                ComboBox_product_name.SelectedIndex = i;
                                old_color_index = i;
                                break;
                            }
                        }
                    }
                    else
                    {
                        ComboBox_picture.IsEnabled = true;
                        ComboBox_picture.Text      = (string)old_values[5];
                    }
                    change_checkbox_ability(ComboBox_service_type.Text == "Детальная");
                    if (ComboBox_service_type.Text == "Детальная")
                    {
                        set_checkbox_value((int)old_values[4]);
                    }
                    else
                    {
                        change_checkbox_value(false);
                        change_checkbox_ability(false);
                    }
                }
            }
        }
コード例 #7
0
        public WindowProducts(QueryMode mode, MainWindow parent, string primary_key_value = "")
        {
            InitializeComponent();
            this.mode              = mode;
            this.parent            = parent;
            this.primary_key_value = primary_key_value;

            try
            {
                connection.Open();
                MySqlCommand    comm = new MySqlCommand("SELECT `color_code` FROM `colors`;", connection);
                MySqlDataReader data = comm.ExecuteReader();
                while (data.Read())
                {
                    ComboBox_color_code.Items.Add(Shortcuts.create_color_box(data[0].ToString(), data[0].ToString()));
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                connection.Close();
            }

            ComboBox_paint_type.ItemsSource = Shortcuts.get_full_column_from("paint_types", "paint_type", connection);

            if (mode == QueryMode.add)
            {
                Button_reset.Visibility = Visibility.Collapsed;
                Button_accept.Content   = "Добавить";
            }
            else
            {
                Button_accept.Content = "Изменить";
                try
                {
                    connection.Open();
                    MySqlCommand comm = new MySqlCommand($"SELECT * FROM `products` " +
                                                         $"WHERE `name` = '{primary_key_value}';", connection);
                    MySqlDataReader data = comm.ExecuteReader();
                    data.Read();
                    TextBox_name.Text = primary_key_value;
                    for (int i = 0; i < ComboBox_color_code.Items.Count; i++)
                    {
                        if ((string)(ComboBox_color_code.Items[i] as ComboBoxItem).Tag == data[2].ToString())
                        {
                            ComboBox_color_code.SelectedIndex = i;
                            old_color_index = i;
                            break;
                        }
                    }
                    ComboBox_paint_type.Text = data[1].ToString();
                    old_values = new string[3] {
                        data[0].ToString(),
                        data[1].ToString(),
                        data[2].ToString()
                    };
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    connection.Close();
                }
            }
        }
コード例 #8
0
        public WindowSupplies(QueryMode mode, Window parent, string primary_key_value = "")
        {
            InitializeComponent();
            this.mode              = mode;
            this.parent            = parent;
            this.primary_key_value = primary_key_value;

            DatePicker_order.DisplayDateStart = DateTime.Today;
            DatePicker_order.DisplayDateEnd   = DateTime.Today.AddDays(90);

            ComboBox_supplier.ItemsSource = Shortcuts.get_full_column_from("suppliers", "name", connection);

            if (mode == QueryMode.add)
            {
                Button_reset.Visibility = Visibility.Collapsed;
                Button_accept.Content   = "Добавить";
            }
            else
            {
                Button_accept.Content = "Изменить";
                try
                {
                    connection.Open();
                    MySqlCommand comm = new MySqlCommand($"SELECT * FROM `supplies` " +
                                                         $"WHERE `id` = '{primary_key_value}';", connection);
                    MySqlDataReader data = comm.ExecuteReader();
                    data.Read();
                    ComboBox_supplier.Text = data[2].ToString();

                    TextBox_product_amount.Text = float.Parse(data[4].ToString()).ToString();
                    TextBox_product_amount.Text = TextBox_product_amount.Text.Replace(",", ".");

                    TextBox_price.Text = float.Parse(data[6].ToString()).ToString();
                    TextBox_price.Text = TextBox_price.Text.Replace(",", ".");

                    DatePicker_order.SelectedDate = (DateTime)data[7];
                    //data[5] - невидимая пользователю единица измерения
                    old_values = new object[6] {
                        /*0*/ data[2].ToString(),
                        /*1*/ data[3].ToString(),
                        /*2*/ data[4].ToString(),
                        /*3*/ data[5].ToString(),                       //measurement
                        /*4*/ data[6].ToString(),
                        /*5*/ data[7]
                    };
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    connection.Close();
                }
                ComboBox_paint_type.SelectedIndex = (old_values[3].ToString() == "литр") ? 0 : 1;
                for (int i = 0; i < ComboBox_product_name.Items.Count; i++)
                {
                    if ((string)(ComboBox_product_name.Items[i] as ComboBoxItem).Tag == old_values[1].ToString())
                    {
                        ComboBox_product_name.SelectedIndex = i;
                        old_color_index = i;
                        break;
                    }
                }
            }
        }