//Отображение доходов пользователя, вошедшего в систему
        private void LoadIncomes()
        {
            Add_btn.Enabled = true;
            Save_changes_btn.Enabled = true;
            Delete_btn.Enabled = true;
            Export_btn.Enabled = true;
            Print_btn.Enabled = true;

            SqlServer sql = new SqlServer();

            if (CurrentUser.GetLogin() == "admin")
            {
                //Вывод информации обо всех пользователях
                if (Name_comboBox.SelectedIndex.ToString() == "0")
                {
                    string sqlQuery = "SELECT inc.Id AS 'Номер', usr.Name AS 'Имя', inc.Date AS 'Дата', " +
                                 "cat.Name AS 'Категория', inc.Value AS 'Сумма', inc.Description AS 'Описание' " +
                                 "FROM [Users] AS usr INNER JOIN [Incomes] AS inc ON usr.Id = inc.User_id " +
                                 " INNER JOIN [Categories] AS cat ON cat.Id = inc.Category_id";
                    Incomes_dgv.DataSource = sql.ExcuteData(sqlQuery);
                    //Вывод статистики по доходам
                    Stat1_label.Text = "Доходы за выбанный период: статистика недоступна.";
                    Stat2_label.Text = "Доходы за месяц: статистика недоступна.";
                    Stat3_label.Text = "Доходы за неделю: статистика недоступна.";
                    From_dateTimePicker.Enabled = false;
                    To_dateTimePicker.Enabled = false;
                    Save_changes_btn.Enabled = false;
                    //Вывод статистики по планированию
                    Message_richTextBox.Text = string.Empty;
                }
                //Вывод информациии о выбраном пользователе в Name_comboBox
                else
                {
                    string sqlQuery = string.Format("SELECT inc.Id AS 'Номер', usr.Name AS 'Имя', inc.Date AS 'Дата', " +
                                 "cat.Name AS 'Категория', inc.Value AS 'Сумма', inc.Description AS 'Описание' " +
                                 "FROM [Users] AS usr INNER JOIN [Incomes] AS inc ON usr.Id = inc.User_id " +
                                 " INNER JOIN [Categories] AS cat ON cat.Id = inc.Category_id WHERE usr.Id = '{0}'", Name_comboBox.SelectedValue);
                    Incomes_dgv.DataSource = sql.ExcuteData(sqlQuery);
                    //Вывод статистики по доходам
                    Stat1_label.Text = "Доходы за выбранный период: " + StatIncomes(From_dateTimePicker.Value.Date.ToString("yyyy-MM-dd"), To_dateTimePicker.Value.Date.ToString("yyyy-MM-dd")) + " рублей.";
                    Stat2_label.Text = "Доходы за месяц: " + StatIncomes(DateTime.Now.Date.AddMonths(-1).ToString("yyyy-MM-dd"), DateTime.Now.Date.ToString("yyyy-MM-dd")) + " рублей.";
                    Stat3_label.Text = "Доходы за неделю: " + StatIncomes(DateTime.Now.Date.AddDays(-7).ToString("yyyy-MM-dd"), DateTime.Now.Date.ToString("yyyy-MM-dd")) + " рублей.";
                    From_dateTimePicker.Enabled = true;
                    To_dateTimePicker.Enabled = true;
                    Save_changes_btn.Enabled = true;
                    //Вывод статистики по планированию
                    StatPlaning();
                }
            }
            //Вывод информации о текущем пользователе
            else
            {
                string sqlQuery = string.Format("SELECT inc.Id AS 'Номер', usr.Name AS 'Имя', inc.Date AS 'Дата', " +
                                    "cat.Name AS 'Категория', inc.Value AS 'Сумма', inc.Description AS 'Описание' " +
                                    "FROM [Users] AS usr INNER JOIN [Incomes] AS inc ON usr.Id = inc.User_id "
                                    + " INNER JOIN [Categories] AS cat ON cat.Id = inc.Category_id WHERE usr.Login = '******'", CurrentUser.GetLogin());
                Incomes_dgv.DataSource = sql.ExcuteData(sqlQuery);
                //Скрытие имени пользователя для неадминистратора
                Incomes_dgv.Columns[1].Visible = false;
                //Вывод статистики по доходам
                Stat1_label.Text = "Доходы за выбранный период: " + StatIncomes(From_dateTimePicker.Value.Date.ToString("yyyy-MM-dd"), To_dateTimePicker.Value.Date.ToString("yyyy-MM-dd")) + " рублей.";
                Stat2_label.Text = "Доходы за месяц: " + StatIncomes(DateTime.Now.Date.AddMonths(-1).ToString("yyyy-MM-dd"), DateTime.Now.Date.ToString("yyyy-MM-dd")) + " рублей.";
                Stat3_label.Text = "Доходы за неделю: " + StatIncomes(DateTime.Now.Date.AddDays(-7).ToString("yyyy-MM-dd"), DateTime.Now.Date.ToString("yyyy-MM-dd")) + " рублей.";
                From_dateTimePicker.Enabled = true;
                To_dateTimePicker.Enabled = true;
                Save_changes_btn.Enabled = true;
                //Вывод статистики по планированию
                StatPlaning();
            }
            Incomes_dgv.Columns[0].Visible = false;

            //Нельзя редактировать имя пользователя
            Incomes_dgv.Columns[1].ReadOnly = true;

            //Формат столбца с суммой (2 знака после запятой)
            DataGridViewCellStyle dec = new DataGridViewCellStyle();
            dec.Format = "N2";
            Incomes_dgv.Columns["Сумма"].DefaultCellStyle = dec;
        }
        //Отображение планирования
        private void LoadPlaning()
        {
            Add_btn.Enabled = true;
            Save_changes_btn.Enabled = true;
            Delete_btn.Enabled = true;
            Export_btn.Enabled = true;
            Print_btn.Enabled = true;

            SqlServer sql = new SqlServer();

            if (CurrentUser.GetLogin() == "admin")
            {
                //Вывод информации обо всех пользователях
                if (Name_comboBox.SelectedIndex.ToString() == "0")
                {
                    string sqlQuery = "SELECT pln.Id AS 'Номер', usr.Name AS 'Имя', cat.Name AS 'Наименование категории', " +
                                      "pln.Month AS 'Месяц', pln.Year AS 'Год', pln.Value AS 'Сумма' " +
                                      "FROM [Planings] AS pln INNER JOIN [Users] AS usr ON pln.User_id = usr.Id " +
                                      "INNER JOIN [Categories] AS cat ON pln.Category_id = cat.Id";
                    Planing_dgv.DataSource = sql.ExcuteData(sqlQuery);
                    //Акстивность кнопки "Сохранить изменения"
                    Save_changes_btn.Enabled = false;
                    //Вывод статистики по планированию
                    Message_richTextBox.Text = string.Empty;
                }
                //Вывод информациии о выбраном пользователе в Name_comboBox
                else
                {
                    string sqlQuery = string.Format("SELECT pln.Id AS 'Номер', usr.Name AS 'Имя', cat.Name AS 'Наименование категории', " +
                                      "pln.Month AS 'Месяц', pln.Year AS 'Год', pln.Value AS 'Сумма' " +
                                      "FROM [Planings] AS pln INNER JOIN [Users] AS usr ON pln.User_id = usr.Id " +
                                      "INNER JOIN [Categories] AS cat ON pln.Category_id = cat.Id WHERE usr.Id = '{0}'", Name_comboBox.SelectedValue);
                    Planing_dgv.DataSource = sql.ExcuteData(sqlQuery);
                    //Акстивность кнопки "Сохранить изменения"
                    Save_changes_btn.Enabled = true;
                    //Вывод статистики по планированию
                    StatPlaning();
                }
            }
            //Вывод информации о текущем пользователе
            else
            {
                string sqlQuery = string.Format("SELECT pln.Id AS 'Номер', usr.Name AS 'Имя', cat.Name AS 'Наименование категории', " +
                                      "pln.Month AS 'Месяц', pln.Year AS 'Год', pln.Value AS 'Сумма' " +
                                      "FROM [Planings] AS pln INNER JOIN [Users] AS usr ON pln.User_id = usr.Id " +
                                      "INNER JOIN [Categories] AS cat ON pln.Category_id = cat.Id WHERE usr.Login = '******'", CurrentUser.GetLogin());
                Planing_dgv.DataSource = sql.ExcuteData(sqlQuery);
                //Скрытие имени пользователя для неадминистратора
                Planing_dgv.Columns[1].Visible = false;
                //Акстивность кнопки "Сохранить изменения"
                Save_changes_btn.Enabled = true;
                //Вывод статистики по планированию
                StatPlaning();
            }
            Planing_dgv.Columns[0].Visible = false;
            //Нельзя редактировать имя пользователя
            Planing_dgv.Columns[1].ReadOnly = true;

            //Статистика
            Stat1_label.Text = "Статистика за выбранный период: недоступно.";
            Stat2_label.Text = "Статистика за месяц: недоступно.";
            Stat3_label.Text = "Статистика за неделю: недоступно.";
            From_dateTimePicker.Enabled = false;
            To_dateTimePicker.Enabled = false;

            //Формат столбца с суммой (2 знака после запятой)
            DataGridViewCellStyle dec = new DataGridViewCellStyle();
            dec.Format = "N2";
            Planing_dgv.Columns["Сумма"].DefaultCellStyle = dec;
        }
        //Отображение категорий
        private void LoadCategories()
        {
            Add_btn.Enabled = true;
            Save_changes_btn.Enabled = true;
            Delete_btn.Enabled = true;
            Export_btn.Enabled = true;
            Print_btn.Enabled = true;

            SqlServer sql = new SqlServer();

            if (CurrentUser.GetLogin() == "admin")
            {
                //Вывод информации обо всех пользователях
                if (Name_comboBox.SelectedIndex.ToString() == "0")
                {
                    string sqlQuery = "SELECT cat.Id AS 'Номер', usr.Name AS 'Имя пользователя', cat.Name AS 'Наименование категории' " +
                                      "FROM [Categories] AS cat INNER JOIN [Users] AS usr ON cat.User_id = usr.Id";
                    Categories_dgv.DataSource = sql.ExcuteData(sqlQuery);
                    //Акстивность кнопки "Сохранить изменения"
                    Save_changes_btn.Enabled = false;
                    //Вывод статистики по планированию
                    Message_richTextBox.Text = string.Empty;
                }
                //Вывод информациии о выбраном пользователе в Name_comboBox
                else
                {
                    string sqlQuery = string.Format("SELECT cat.Id AS 'Номер', usr.Name AS 'Имя пользователя', cat.Name AS 'Наименование категории' " +
                                      "FROM [Categories] AS cat INNER JOIN [Users] AS usr ON cat.User_id = usr.Id " +
                                      "WHERE usr.Id = '{0}'", Name_comboBox.SelectedValue);
                    Categories_dgv.DataSource = sql.ExcuteData(sqlQuery);
                    //Акстивность кнопки "Сохранить изменения"
                    Save_changes_btn.Enabled = true;
                    //Вывод статистики по планированию
                    StatPlaning();
                }
            }
            //Вывод информации о текущем пользователе
            else
            {
                string sqlQuery = string.Format("SELECT cat.Id AS 'Номер', usr.Name AS 'Имя пользователя', cat.Name AS 'Наименование категории' " +
                                  "FROM [Categories] AS cat INNER JOIN [Users] AS usr ON cat.User_id = usr.Id " +
                                  "WHERE usr.Login = '******'", CurrentUser.GetLogin());
                Categories_dgv.DataSource = sql.ExcuteData(sqlQuery);
                //Скрытие имени пользователя для неадминистратора
                Categories_dgv.Columns[1].Visible = false;
                //Акстивность кнопки "Сохранить изменения"
                Save_changes_btn.Enabled = true;
            }
            Categories_dgv.Columns[0].Visible = false;
            //Нельзя редактировать имя пользователя
            Categories_dgv.Columns[1].ReadOnly = true;
            //Статистика
            Stat1_label.Text = "Статистика за выбранный период: недоступно.";
            Stat2_label.Text = "Статистика за месяц: недоступно.";
            Stat3_label.Text = "Статистика за неделю: недоступно.";
            From_dateTimePicker.Enabled = false;
            To_dateTimePicker.Enabled = false;
            //Вывод статистики по планированию
            StatPlaning();
        }
        //Отображение долгов
        private void LoadDebts()
        {
            Add_btn.Enabled = true;
            Save_changes_btn.Enabled = true;
            Delete_btn.Enabled = true;
            Export_btn.Enabled = true;
            Print_btn.Enabled = true;

            SqlServer sql = new SqlServer();

            if (CurrentUser.GetLogin() == "admin")
            {
                //Вывод информации обо всех пользователях
                if (Name_comboBox.SelectedIndex.ToString() == "0")
                {
                    string sqlQuery = "SELECT dbt.Id AS 'Номер', usr.Name AS 'Имя', dbt.Date AS 'Дата', " +
                                 " dbt.Value AS 'Сумма', dbt.Description AS 'Описание'," +
                                 " dbt.Return_value AS 'Сумма возврата', dbt.Return_date AS 'Дата возврата' " +
                                 "FROM [Users] AS usr INNER JOIN [Debts] AS dbt ON usr.Id = dbt.User_id";
                    Debts_dgv.DataSource = sql.ExcuteData(sqlQuery);
                    //Вывод статистики по длогам
                    Stat1_label.Text = "Долги за выбранный период: статистика недоступна.";
                    Stat2_label.Text = "Долги за месяц: статистика недоступна.";
                    Stat3_label.Text = "Долги за неделю: статистика недоступна.";
                    From_dateTimePicker.Enabled = false;
                    To_dateTimePicker.Enabled = false;
                    Save_changes_btn.Enabled = false;
                    //Вывод статистики по планированию
                    Message_richTextBox.Text = string.Empty;
                }
                //Вывод информациии о выбраном пользователе в Name_comboBox
                else
                {
                    string sqlQuery = string.Format("SELECT dbt.Id AS 'Номер', usr.Name AS 'Имя', dbt.Date AS 'Дата', " +
                                      " dbt.Value AS 'Сумма', dbt.Description AS 'Описание'," +
                                      " dbt.Return_value AS 'Сумма возврата', dbt.Return_date AS 'Дата возврата' " +
                                      "FROM [Users] AS usr INNER JOIN [Debts] AS dbt ON usr.Id = dbt.User_id " +
                                      "WHERE usr.Id = '{0}'", Name_comboBox.SelectedValue);
                    Debts_dgv.DataSource = sql.ExcuteData(sqlQuery);
                    //Вывод статистики по долгам
                    Stat1_label.Text = "Долги за выбранный период: статистика недоступна.";
                    Stat2_label.Text = "Долги за месяц: статистика недоступна.";
                    Stat3_label.Text = "Долги за неделю: статистика недоступна.";
                    From_dateTimePicker.Enabled = true;
                    To_dateTimePicker.Enabled = true;
                    Save_changes_btn.Enabled = true;
                    //Вывод статистики по планированию
                    StatPlaning();
                }
            }
            //Вывод информации о текущем пользователе
            else
            {
                string sqlQuery = string.Format("SELECT dbt.Id AS 'Номер', usr.Name AS 'Имя', dbt.Date AS 'Дата', " +
                                  " dbt.Value AS 'Сумма', dbt.Description AS 'Описание'," +
                                  " dbt.Return_value AS 'Сумма возврата', dbt.Return_date AS 'Дата возврата' " +
                                  "FROM [Users] AS usr INNER JOIN [Debts] AS dbt ON usr.Id = dbt.User_id " +
                                  "WHERE usr.Login = '******'", CurrentUser.GetLogin());
                Debts_dgv.DataSource = sql.ExcuteData(sqlQuery);
                //Скрытие имени пользователя для неадминистратора
                Debts_dgv.Columns[1].Visible = false;
                //Вывод статистики по долгам
                Stat1_label.Text = "Долги за выбранный период: статистика недоступна.";
                Stat2_label.Text = "Долги за месяц: статистика недоступна.";
                Stat3_label.Text = "Долги за неделю: статистика недоступна.";
                From_dateTimePicker.Enabled = true;
                To_dateTimePicker.Enabled = true;
                Save_changes_btn.Enabled = true;
                //Вывод статистики по планированию
                StatPlaning();
            }
            //Нельзя редактировать имя пользователя
            Debts_dgv.Columns[1].ReadOnly = true;
            Debts_dgv.Columns[0].Visible = false;
            //Формат столбца с суммой (2 знака после запятой)
            DataGridViewCellStyle dec = new DataGridViewCellStyle();
            dec.Format = "N2";
            Debts_dgv.Columns["Сумма"].DefaultCellStyle = dec;
            Debts_dgv.Columns["Сумма возврата"].DefaultCellStyle = dec;
        }
        //Редактирование планирования
        private void EditPlaning()
        {
            SqlServer sql = new SqlServer();
            string upd_pln_id = string.Empty;
            int upd_pln_index = -1;
            try
            {
                //Id дохода выбранной строки
                upd_pln_id = Planing_dgv.CurrentRow.Cells["Номер"].Value.ToString();
                //Номер выбранной строки
                upd_pln_index = Planing_dgv.CurrentRow.Index;
            }
            catch
            {
                MessageBox.Show("Не удалось отредактировать данные!", "Ошибка сохранения изменений", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            //Номер ячейки
            int cell = 2;

            //Поиск категории у пользователя
            string sqlQuery = string.Format("SELECT cat.Id FROM [Categories] AS cat WHERE cat.Name = N'{0}' AND cat.User_id = {1}", Planing_dgv.Rows[upd_pln_index].Cells[cell].Value.ToString(), Name_comboBox.SelectedValue);
            var cat_id = sql.ExcuteData(sqlQuery);
            //Если категория найдена у текущего пользователя
            if (cat_id.Rows.Count != 0)
            {
                string Month = Planing_dgv.Rows[upd_pln_index].Cells[cell + 1].Value.ToString();
                string Year = Planing_dgv.Rows[upd_pln_index].Cells[cell + 2].Value.ToString();
                string Value = Planing_dgv.Rows[upd_pln_index].Cells[cell + 3].Value.ToString().Replace(",", ".");

                //Поиск уже существующего планирования у пользователя
                sqlQuery = string.Format("SELECT * FROM [Planings] WHERE Category_id = '{0}' AND Month = '{1}' AND Year = '{2}' AND User_id = '{3}'",
                                    cat_id.Rows[0][0], Month, Year, Name_comboBox.SelectedValue);
                var plan = sql.ExcuteData(sqlQuery);
                //Если планирование уже задано, выводим сообщение об ошибке
                if (plan.Rows.Count != 0)
                {
                    MessageBox.Show("У выбранного пользователя такое планирование уже задано!" + Environment.NewLine + "Строка " + (upd_pln_index + 1).ToString() + " не обновлена!", "Ошибка сохранения изменений", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }
                //Иначе обновляем строку в БД
                else
                {
                    sqlQuery = string.Format("UPDATE [Planings] SET Category_id = '{0}', Month = '{1}', Year = '{2}', Value = '{3}' " +
                                        "WHERE Id = '{4}'", cat_id.Rows[0][0], Month, Year, Value, Planing_dgv.Rows[upd_pln_index].Cells[0].Value.ToString());
                    sql.ExcuteDataNonQuery(sqlQuery);
                    MessageBox.Show("Строка " + (upd_pln_index + 1).ToString() + " обновлена!", "Строка обновлена", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
            }
            //Иначе показываем MessageBox с ошибкой
            else
            {
                MessageBox.Show("У выбранного пользователя " + "категория " + Planing_dgv.Rows[upd_pln_index].Cells[cell].Value.ToString() + " не найдена!" + Environment.NewLine + "Строка " + (upd_pln_index + 1).ToString() + " не обновлена!", "Ошибка сохранения изменений", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }
        }
        //Редактирование доходов
        private void EditIncomes()
        {
            SqlServer sql = new SqlServer();
            string upd_inc_id = string.Empty;
            int upd_inc_index = -1;
            try
            {
                //Id дохода выбранной строки
                upd_inc_id = Incomes_dgv.CurrentRow.Cells["Номер"].Value.ToString();
                //Номер выбранной строки
                upd_inc_index = Incomes_dgv.CurrentRow.Index;
            }
            catch
            {
                MessageBox.Show("Не удалось отредактировать данные!", "Ошибка сохранения изменений", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            //Номер ячейки
            int cell = 2;

            //Поиск категории у пользователя
            string sqlQuery = string.Format("SELECT cat.Id FROM [Categories] AS cat WHERE cat.Name = N'{0}' AND cat.User_id = {1}", Incomes_dgv.Rows[upd_inc_index].Cells[cell + 1].Value.ToString(), Name_comboBox.SelectedValue);
            var cat_id = sql.ExcuteData(sqlQuery);
            //Если категория найдена у текущего пользователя, обновляем строку в БД
            if (cat_id.Rows.Count != 0)
            {
                DateTime Date = Convert.ToDateTime(Incomes_dgv.Rows[upd_inc_index].Cells[cell].Value.ToString());
                string Value = Incomes_dgv.Rows[upd_inc_index].Cells[cell + 2].Value.ToString().Replace(",", ".");
                sqlQuery = string.Format("UPDATE [Incomes] SET Date = N'{0}', Category_id = '{1}', Value = '{2}', Description = N'{3}' " +
                                    "WHERE Id = '{4}'", Date.ToString("yyyy-MM-dd"), cat_id.Rows[0][0], Value, Incomes_dgv.Rows[upd_inc_index].Cells[cell + 3].Value.ToString(), upd_inc_id);
                sql.ExcuteDataNonQuery(sqlQuery);
                MessageBox.Show("Строка " + (upd_inc_index + 1).ToString() + " обновлена!", "Строка обновлена", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
            //Иначе показываем MessageBox с ошибкой
            else
            {
                MessageBox.Show("У выбранного пользователя " + "категория " + Incomes_dgv.Rows[upd_inc_index].Cells[cell + 1].Value.ToString() + " не найдена!" + Environment.NewLine + "Строка " + (upd_inc_index + 1).ToString() + " не обновлена!", "Ошибка сохранения изменений", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }
        }
        //Редактирование категорий
        private void EditCategories()
        {
            SqlServer sql = new SqlServer();
            string upd_cat_id = string.Empty;
            int upd_cat_index = -1;
            try
            {
                //Id расхода выбранной строки
                upd_cat_id = Categories_dgv.CurrentRow.Cells["Номер"].Value.ToString();
                //Номер выбранной строки
                upd_cat_index = Categories_dgv.CurrentRow.Index;
            }
            catch
            {
                MessageBox.Show("Не удалось отредактировать данные!", "Ошибка сохранения изменений", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (Categories_dgv.Rows[upd_cat_index].Cells[2].Value.ToString() == string.Empty)
            {
                MessageBox.Show("Имя категории не может быть пустым!", "Ошибка сохранения изменений", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            else
            {
                //Поиск категории пользователя с заданным именем
                string sqlQuery = string.Format("SELECT Id, Name FROM [Categories] WHERE User_id = {0} AND Name = N'{1}'", Name_comboBox.SelectedValue, Categories_dgv.Rows[upd_cat_index].Cells[2].Value.ToString());
                DataTable FindCategoryTbl = sql.ExcuteData(sqlQuery);
                //Если категория найдена
                if (FindCategoryTbl.Rows.Count != 0)
                {
                    MessageBox.Show("Такая категория уже существует у пользователя!", "Ошибка редактирования", MessageBoxButtons.OK);
                    return;
                }
                else
                {
                    //Номер ячейки
                    int cell = 2;
                    sqlQuery = string.Format("UPDATE [Categories] SET Name = N'{0}' WHERE Id = {1}", Categories_dgv.Rows[upd_cat_index].Cells[cell].Value.ToString(), upd_cat_id);
                    sql.ExcuteDataNonQuery(sqlQuery);
                    MessageBox.Show("Строка " + (upd_cat_index + 1).ToString() + " обновлена!", "Строка обновлена", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
            }
        }
        //Статистика по планированию
        private void StatPlaning()
        {
            SqlServer sql = new SqlServer();
            string sqlQuery = string.Format("SELECT cat.Id, cat.Name, pln.Value " +
                          "FROM Planings AS pln INNER JOIN Categories AS cat ON cat.Id = pln.Category_id " +
                          "WHERE pln.User_id = '{0}' AND pln.Month = '{1}' AND pln.Year = '{2}' GROUP BY cat.Id, cat.Name, pln.Value, pln.Month, pln.Year ORDER BY cat.Id",
                          Name_comboBox.SelectedValue, DateTime.Now.Date.Month, DateTime.Now.Date.Year);
            DataTable PlnCst = sql.ExcuteData(sqlQuery);

            sqlQuery = string.Format("SELECT cat.Id, cat.Name, SUM(cst.Value) FROM Costs AS cst INNER JOIN Categories AS cat ON cat.Id = cst.Category_id " +
                                     "WHERE cst.Date >= '{0}' AND cst.Date <= '{1}' AND cst.User_id = '{2}' GROUP BY cat.Id, cat.Name ORDER BY cat.Id",
                                     DateTime.Now.AddDays(-DateTime.Now.Day).Date.ToString("yyyy-MM-dd"), DateTime.Now.Date.ToString("yyyy-MM-dd"), Name_comboBox.SelectedValue);
            DataTable RealCst = sql.ExcuteData(sqlQuery);

            Message_richTextBox.Text = string.Empty;

            for (int r = 0; r <= PlnCst.Rows.Count - 1; r++)
            {
                for (int c = 0; c <= RealCst.Rows.Count - 1; c++)
                {
                    if (Convert.ToInt32(RealCst.Rows[c][0]) == Convert.ToInt32(PlnCst.Rows[r][0]))
                    {
                        if (Convert.ToDecimal(RealCst.Rows[c][2]) > Convert.ToDecimal(PlnCst.Rows[r][2]))
                            Message_richTextBox.Text += "Расходы в категории \"" + Convert.ToString(PlnCst.Rows[r][1]) + "\" превышены на " + Convert.ToString(Convert.ToDecimal(RealCst.Rows[r][2]) - Convert.ToDecimal(PlnCst.Rows[r][2])) + " рублей." + Environment.NewLine + Environment.NewLine;
                    }
                }
            }
        }
        //Статистика по доходам
        private string StatIncomes(string StartDate, string EndDate)
        {
            SqlServer sql = new SqlServer();
            decimal sum = 0;

            string sqlQuery = string.Format("SELECT inc.Value AS 'Сумма' " +
                            "FROM [Incomes] AS inc WHERE (inc.User_id = '{0}') AND (inc.Date >= '{1}') AND (inc.Date <= '{2}')",
                            Name_comboBox.SelectedValue, StartDate, EndDate);

            //Расчет суммы доходов
            DataTable dtbl = sql.ExcuteData(sqlQuery);
            for (int r = 0; r <= dtbl.Rows.Count - 1; r++)
            {
                for (int c = 0; c <= dtbl.Columns.Count - 1; c++)
                {
                    sum = sum + Convert.ToDecimal(dtbl.Rows[r][c]);
                }
            }
            return Convert.ToString(sum);
        }