コード例 #1
0
        void deleteFile()
        {
            if (listView1.SelectedIndices.Count > 0)
            {
                if (listView1.Items[listView1.SelectedIndices[0]].SubItems[2].Text.ToString() != "Папка" &&
                    listView1.Items[listView1.SelectedIndices[0]].SubItems[1].Text.ToString() != ".." &&
                    listView1.SelectedItems[0].StateImageIndex == 1)
                {
                    String fileID   = listView1.Items[listView1.SelectedIndices[0]].SubItems[3].Text.ToString();
                    String fileName = listView1.Items[listView1.SelectedIndices[0]].SubItems[1].Text.ToString();

                    if (MessageBox.Show("Удалить безвозвратно тест '" + fileName + "' ?", "Вопрос:", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        QueryOleDb query = new QueryOleDb(Config.databaseFile);
                        query.SetCommand("DELETE FROM Practice WHERE (ID = " + fileID + ")");
                        if (query.Execute())
                        {
                        }
                        else
                        {
                            query.Dispose();
                            Utilits.Console.LogError("Ошибка удаления теста '" + fileName + "'", false, true);
                        }

                        TableRefresh("");
                    }
                }
            }
        }
コード例 #2
0
        public static void TableNomenclature()
        {
            String     sqlCommand;
            QueryOleDb query;

            query = new QueryOleDb(DataConfig.localDatabase);

            sqlCommand = "CREATE TABLE Nomenclature (" +
                         "[id] COUNTER PRIMARY KEY, " +
                         "[type] VARCHAR DEFAULT '', " +
                         "[name] VARCHAR DEFAULT '', " +
                         "[code] VARCHAR DEFAULT '', " +
                         "[series] VARCHAR DEFAULT '', " +
                         "[article] VARCHAR DEFAULT '', " +
                         "[manufacturer] VARCHAR DEFAULT '', " +
                         "[price] FLOAT DEFAULT 0, " +
                         "[units] VARCHAR DEFAULT '', " +
                         "[parent] VARCHAR DEFAULT ''" +
                         ")";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка создания таблицы Номенклатура.", false, true);
            }
        }
コード例 #3
0
        /* Документ: Заказ */
        public static void TableOrders()
        {
            String     sqlCommand;
            QueryOleDb query;

            query = new QueryOleDb(DataConfig.localDatabase);

            sqlCommand = "CREATE TABLE Orders (" +
                         "[id] COUNTER PRIMARY KEY, " +
                         "[docDate] DATETIME, " +
                         "[docNumber] VARCHAR DEFAULT '' UNIQUE, " +
                         "[docName] VARCHAR DEFAULT '', " +
                         "[docCounteragent] VARCHAR DEFAULT '', " +
                         "[docAutor] VARCHAR DEFAULT '', " +
                         "[docSum] FLOAT DEFAULT 0, " +
                         "[docVat] FLOAT DEFAULT 0, " +
                         "[docTotal] FLOAT DEFAULT 0, " +
                         "[docPurchasePlan] VARCHAR DEFAULT ''" +
                         ")";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка создания таблицы Заказы.", false, true);
            }
        }
コード例 #4
0
        void deleteOrdersOleDb()
        {
            QueryOleDb query;

            query = new QueryOleDb(DataConfig.localDatabase);
            query.SetCommand("UPDATE OrderNomenclature SET docOrder = '' WHERE (docPurchasePlan = '" + docPPNumber + "')");
            if (query.Execute())
            {
                query = new QueryOleDb(DataConfig.localDatabase);
                query.SetCommand("DELETE FROM Orders WHERE (docPurchasePlan = '" + docPPNumber + "')");
                if (query.Execute())
                {
                    DataForms.FClient.updateHistory("Orders");
                    Utilits.Console.Log("Ввод на основании: старые заказы удалены.");
                }
                else
                {
                    Utilits.Console.Log("[ОШИБКА] Ввод на основании: старый заказ не удалён!", false, true);
                }
            }
            else
            {
                Utilits.Console.Log("[ОШИБКА] Ввод на основании: Документ План закупок №" + docPPNumber + " не удалось обновить при удалении старых заказов!", false, true);
            }
        }
コード例 #5
0
        public static void TableSettings()
        {
            String     sqlCommand;
            QueryOleDb query;

            query = new QueryOleDb(DataConfig.configFile);

            sqlCommand = "CREATE TABLE Settings (" +
                         "[id] COUNTER PRIMARY KEY, " +
                         "[autoUpdate] VARCHAR(10) DEFAULT '', " +
                         "[showConsole] VARCHAR(10) DEFAULT '', " +
                         "[period] VARCHAR(25) DEFAULT ''" +
                         ")";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка создания таблицы Settings.", false, true);
            }

            sqlCommand = "INSERT INTO Settings (" +
                         "[autoUpdate], [showConsole], [period]) " +
                         "VALUES ('False', 'True', 'today')";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка добавления данных в таблицу Settings.", false, true);
            }
        }
コード例 #6
0
        void moveFilesInRenameFolder()
        {
            QueryOleDb query = new QueryOleDb(Config.databaseFile);

            query.SetCommand("UPDATE Practice SET parent='" + textBox2.Text + "' WHERE(parent = '" + oldName + "')");
            query.Execute();
            query.Dispose();
        }
コード例 #7
0
        public static void TableUsers()
        {
            String     sqlCommand;
            QueryOleDb query;

            query = new QueryOleDb(DataConfig.localDatabase);

            sqlCommand = "CREATE TABLE Users (" +
                         "[id] COUNTER PRIMARY KEY, " +
                         "[name] VARCHAR DEFAULT '' UNIQUE, " +
                         "[pass] VARCHAR DEFAULT '', " +
                         "[permissions] VARCHAR DEFAULT '', " +
                         "[info] TEXT" +
                         ")";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка создания таблицы Пользователи.", false, true);
            }

            sqlCommand = "INSERT INTO Users (" +
                         "[name], [pass], [permissions], [info]) " +
                         "VALUES ('Администратор', '', 'admin', '')";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка добавления данных в таблицу Пользователи.", false, true);
            }

            sqlCommand = "INSERT INTO Users (" +
                         "[name], [pass], [permissions], [info]) " +
                         "VALUES ('Оператор', '', 'operator', '')";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка добавления данных в таблицу Пользователи.", false, true);
            }

            sqlCommand = "INSERT INTO Users (" +
                         "[name], [pass], [permissions], [info]) " +
                         "VALUES ('Пользователь', '', 'user', '')";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка добавления данных в таблицу Пользователи.", false, true);
            }

            sqlCommand = "INSERT INTO Users (" +
                         "[name], [pass], [permissions], [info]) " +
                         "VALUES ('Гость', '', 'guest', '')";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка добавления данных в таблицу Пользователи.", false, true);
            }

            query.Dispose();
        }
コード例 #8
0
 public SavingConstants()
 {
     if (DataConfig.typeConnection == DataConstants.CONNETION_LOCAL)
     {
         // OLEDB
         oleDbQuery = new QueryOleDb(DataConfig.localDatabase);
     }
     else if (DataConfig.typeConnection == DataConstants.CONNETION_SERVER)
     {
         // MSSQL SERVER
         sqlQuery = new QuerySqlServer(DataConfig.serverConnection);
     }
 }
コード例 #9
0
        void deleteFile()
        {
            if (listView1.SelectedIndices.Count > 0)
            {
                if (listView1.Items[listView1.SelectedIndices[0]].SubItems[2].Text.ToString() == "" &&
                    listView1.Items[listView1.SelectedIndices[0]].SubItems[1].Text.ToString() != ".." &&
                    listView1.SelectedItems[0].StateImageIndex == 1)
                {
                    String fileID   = listView1.Items[listView1.SelectedIndices[0]].SubItems[3].Text.ToString();
                    String fileName = listView1.Items[listView1.SelectedIndices[0]].SubItems[1].Text.ToString();

                    if (MessageBox.Show("Удалить безвозвратно '" + fileName + "'?", "Вопрос:", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        if (DataConfig.typeConnection == DataConstants.CONNETION_LOCAL)
                        {
                            // OLEDB
                            QueryOleDb query = new QueryOleDb(DataConfig.localDatabase);
                            query.SetCommand("DELETE FROM Nomenclature WHERE (id = " + fileID + ")");
                            if (query.Execute())
                            {
                                DataForms.FClient.updateHistory("Nomenclature");
                                Utilits.Console.Log("Номенклатура '" + fileName + "' успешно удалена.");
                            }
                            else
                            {
                                Utilits.Console.Log("[ОШИБКА] Номенклатура '" + fileName + "' не удалось удалить!");
                            }
                        }
                        else if (DataConfig.typeConnection == DataConstants.CONNETION_SERVER)
                        {
                            // MSSQL SERVER
                            QuerySqlServer query = new QuerySqlServer(DataConfig.serverConnection);
                            query.SetCommand("DELETE FROM Nomenclature WHERE (id = " + fileID + ")");
                            if (query.Execute())
                            {
                                Utilits.Console.Log("Номенклатура '" + fileName + "' успешно удалена.");
                                DataForms.FClient.updateHistory("Nomenclature");
                            }
                            else
                            {
                                Utilits.Console.Log("[ОШИБКА] Номенклатура '" + fileName + "' не удалось удалить!");
                            }
                        }
                    }
                }
            }
        }
コード例 #10
0
        public static void TableCounteragents()
        {
            String     sqlCommand;
            QueryOleDb query;

            query = new QueryOleDb(DataConfig.localDatabase);

            sqlCommand = "CREATE TABLE Counteragents (" +
                         "[id] COUNTER PRIMARY KEY, " +
                         "[type] VARCHAR DEFAULT '', " +
                         "[name] VARCHAR DEFAULT '' UNIQUE, " +
                         "[organization_address] VARCHAR DEFAULT '', " +
                         "[organization_phone] VARCHAR DEFAULT '', " +
                         "[organization_site] VARCHAR DEFAULT '', " +
                         "[organization_email] VARCHAR DEFAULT '', " +
                         "[contact_fullname] VARCHAR DEFAULT '', " +
                         "[contact_post] VARCHAR DEFAULT '', " +
                         "[contact_phone] VARCHAR DEFAULT '', " +
                         "[contact_skype] VARCHAR DEFAULT '', " +
                         "[contact_email] VARCHAR DEFAULT '', " +
                         "[information] TEXT DEFAULT '', " +
                         "[excel_filename] TEXT DEFAULT '', " +
                         "[excel_date] VARCHAR DEFAULT '', " +
                         "[excel_column_name] INTEGER DEFAULT 0, " +
                         "[excel_column_code] INTEGER DEFAULT 0, " +
                         "[excel_column_series] INTEGER DEFAULT 0, " +
                         "[excel_column_article] INTEGER DEFAULT 0, " +
                         "[excel_column_remainder] INTEGER DEFAULT 0, " +
                         "[excel_column_manufacturer] INTEGER DEFAULT 0, " +
                         "[excel_column_price] INTEGER DEFAULT 0, " +
                         "[excel_column_discount_1] INTEGER DEFAULT 0, " +
                         "[excel_column_discount_2] INTEGER DEFAULT 0, " +
                         "[excel_column_discount_3] INTEGER DEFAULT 0, " +
                         "[excel_column_discount_4] INTEGER DEFAULT 0, " +
                         "[excel_column_term] INTEGER DEFAULT 0, " +
                         "[excel_table_id] VARCHAR DEFAULT '', " +
                         "[parent] VARCHAR DEFAULT ''" +
                         ")";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка создания таблицы Контрагенты.", false, true);
            }
        }
コード例 #11
0
 void moveFilesInRenameFolder()
 {
     if (DataConfig.typeConnection == DataConstants.CONNETION_LOCAL)
     {
         // OLEDB
         QueryOleDb query = new QueryOleDb(DataConfig.localDatabase);
         query.SetCommand("UPDATE Nomenclature SET parent='" + nameTextBox.Text + "' WHERE(parent = '" + folderName + "')");
         query.Execute();
         query.Dispose();
     }
     else if (DataConfig.typeConnection == DataConstants.CONNETION_SERVER)
     {
         // MSSQL SERVER
         QuerySqlServer query = new QuerySqlServer(DataConfig.serverConnection);
         query.SetCommand("UPDATE Nomenclature SET parent='" + nameTextBox.Text + "' WHERE(parent = '" + folderName + "')");
         query.Execute();
         query.Dispose();
     }
 }
コード例 #12
0
        public static void TablePurchasePlanPriceLists()
        {
            String     sqlCommand;
            QueryOleDb query;

            query = new QueryOleDb(DataConfig.localDatabase);

            sqlCommand = "CREATE TABLE PurchasePlanPriceLists (" +
                         "[id] COUNTER PRIMARY KEY, " +
                         "[counteragentName] VARCHAR DEFAULT '', " +
                         "[counteragentPricelist] VARCHAR DEFAULT '', " +
                         "[docID] VARCHAR DEFAULT '' " +
                         ")";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка создания таблицы План закупок.", false, true);
            }
        }
コード例 #13
0
        void deleteFolder()
        {
            if (listView1.SelectedIndices.Count > 0)
            {
                if (listView1.Items[listView1.SelectedIndices[0]].SubItems[2].Text.ToString() == "Папка" &&
                    listView1.Items[listView1.SelectedIndices[0]].SubItems[1].Text.ToString() != ".." &&
                    listView1.SelectedItems[0].StateImageIndex == 0)
                {
                    String folderID   = listView1.Items[listView1.SelectedIndices[0]].SubItems[3].Text.ToString();
                    String folderName = listView1.Items[listView1.SelectedIndices[0]].SubItems[1].Text.ToString();

                    if (MessageBox.Show("Удалить безвозвратно папку '" + folderName + "' и всё её содержимое ?", "Вопрос:", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        QueryOleDb query = new QueryOleDb(Config.databaseFile);
                        query.SetCommand("DELETE FROM Practice WHERE (parent ='" + folderName + "')");
                        if (query.Execute())
                        {
                            query = new QueryOleDb(Config.databaseFile);
                            query.SetCommand("DELETE FROM Practice WHERE (id = " + folderID + ")");
                            if (query.Execute())
                            {
                                query.Dispose();
                                Utilits.Console.Log("Удаление папки '" + folderName + "' прошло успешно.");
                            }
                            else
                            {
                                query.Dispose();
                                Utilits.Console.LogError("Папку '" + folderName + "' не удалось удалить!", false, true);
                            }
                        }
                        else
                        {
                            query.Dispose();
                            Utilits.Console.LogError("Ошибка удаления файлов в папке '" + folderName + "'", false, true);
                        }

                        TableRefresh("");
                    }
                }
            }
        }
コード例 #14
0
        public static void TableConstants()
        {
            String     sqlCommand;
            QueryOleDb query;

            query = new QueryOleDb(DataConfig.localDatabase);

            sqlCommand = "CREATE TABLE Constants (" +
                         "[id] COUNTER PRIMARY KEY, " +
                         "[name] VARCHAR DEFAULT '', " +

                         "[email] VARCHAR DEFAULT '', " +
                         "[emailPwd] VARCHAR DEFAULT '', " +
                         "[smtpServer] VARCHAR DEFAULT '', " +
                         "[port] VARCHAR DEFAULT '', " +
                         "[EnableSsl] INTEGER DEFAULT 0, " +
                         "[caption] VARCHAR DEFAULT '', " +
                         "[message] TEXT DEFAULT '', " +

                         "[address] VARCHAR DEFAULT '', " +
                         "[vat] FLOAT DEFAULT 0, " +
                         "[units] VARCHAR DEFAULT '' " +
                         ")";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка создания таблицы Константы.", false, true);
            }

            sqlCommand = "INSERT INTO Constants (" +
                         "[name], [email], [emailPwd], [smtpServer], [port], [EnableSsl], [caption], [message], [address], [vat], [units]) " +
                         "VALUES ('Наша Фирма', '*****@*****.**', '0000', 'smtp.gmail.com', '587', 1, 'Тема письма', 'Сообщение письма', 'Страна, Город, Улица, Дом', 20, 'шт.')";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка добавления данных в таблицу Константы.", false, true);
            }

            query.Dispose();
        }
コード例 #15
0
        public static void TableDatabaseSettings()
        {
            DataConfig.localDatabase    = DataConfig.resource + "\\database.mdb";
            DataConfig.typeConnection   = DataConstants.CONNETION_LOCAL;
            DataConfig.typeDatabase     = DataConstants.TYPE_OLEDB;
            DataConfig.serverConnection = "Server=***\\SQLEXPRESS;Database=***;User Id=sa;Password=***";

            String     sqlCommand;
            QueryOleDb query;

            query = new QueryOleDb(DataConfig.configFile);

            sqlCommand = "CREATE TABLE DatabaseSettings (" +
                         "[id] COUNTER PRIMARY KEY, " +
                         "[name] VARCHAR DEFAULT '' UNIQUE, " +
                         "[localDatabase] TEXT DEFAULT '', " +
                         "[typeDatabase] VARCHAR DEFAULT '', " +
                         "[typeConnection] VARCHAR DEFAULT '', " +
                         "[serverConnection] VARCHAR DEFAULT ''" +
                         ")";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка создания таблицы DatabaseSettings.", false, true);
            }

            sqlCommand = "INSERT INTO DatabaseSettings (" +
                         "[name], [localDatabase], [typeDatabase], [typeConnection], " +
                         "[serverConnection]) " +
                         "VALUES ('database', '" + DataConfig.localDatabase + "', '"
                         + DataConfig.typeDatabase + "', '" + DataConfig.typeConnection + "', '"
                         + DataConfig.serverConnection + "')";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка добавления данных в таблицу DatabaseSettings.", false, true);
            }
            query.Dispose();
        }
コード例 #16
0
        void deleteFile()
        {
            if (listView1.SelectedIndices.Count > 0)
            {
                String fileID   = listView1.Items[listView1.SelectedIndices[0]].SubItems[3].Text;
                String fileName = listView1.Items[listView1.SelectedIndices[0]].SubItems[1].Text;

                if (MessageBox.Show("Удалить безвозвратно запись '" + fileName + "' ?", "Вопрос:", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    QueryOleDb query = new QueryOleDb(Config.databaseFile);
                    query.SetCommand("DELETE FROM Numeral WHERE (ID = " + fileID + ")");
                    if (query.Execute())
                    {
                        Utilits.Console.Log("Запись: '" + fileName + "' успешно удалена.");
                        TableRefresh();
                    }
                    else
                    {
                        Utilits.Console.LogError("Запись: '" + fileName + "' не удалось удалить!", false, true);
                    }
                }
            }
        }
コード例 #17
0
        void tablePurchasePlan()         //	Документ: План закупок
        {
            String     sqlCommand;
            QueryOleDb query;

            query = new QueryOleDb(strConnection);

            sqlCommand = "CREATE TABLE PurchasePlan (" +
                         "[id] COUNTER PRIMARY KEY, " +
                         "[docDate] DATETIME, " +
                         "[docNumber] VARCHAR DEFAULT '' UNIQUE, " +
                         "[docName] VARCHAR DEFAULT '', " +
                         "[docAutor] VARCHAR DEFAULT '', " +
                         "[docSum] FLOAT DEFAULT 0, " +
                         "[docVat] FLOAT DEFAULT 0, " +
                         "[docTotal] FLOAT DEFAULT 0" +
                         ")";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка создания таблицы План закупок.", false, true);
            }
        }
コード例 #18
0
        public static void TableOrderNomenclature()
        {
            String     sqlCommand;
            QueryOleDb query;

            query = new QueryOleDb(DataConfig.localDatabase);

            sqlCommand = "CREATE TABLE OrderNomenclature (" +
                         "[id] COUNTER PRIMARY KEY, " +
                         "[nomenclatureID] INTEGER DEFAULT 0, " +
                         "[nomenclatureName] VARCHAR DEFAULT '', " +
                         "[units] VARCHAR DEFAULT '', " +
                         "[amount] FLOAT DEFAULT 0, " +
                         "[name] VARCHAR DEFAULT '', " +
                         "[price] FLOAT DEFAULT 0, " +
                         "[manufacturer] VARCHAR DEFAULT '', " +
                         "[remainder] FLOAT DEFAULT 0, " +
                         "[term] DATETIME, " +
                         "[discount1] FLOAT DEFAULT 0, " +
                         "[discount2] FLOAT DEFAULT 0, " +
                         "[discount3] FLOAT DEFAULT 0, " +
                         "[discount4] FLOAT DEFAULT 0, " +
                         "[code] VARCHAR DEFAULT '', " +
                         "[series] VARCHAR DEFAULT '', " +
                         "[article] VARCHAR DEFAULT '', " +
                         "[counteragentName] VARCHAR DEFAULT '', " +
                         "[counteragentPricelist] VARCHAR DEFAULT '', " +
                         "[docPurchasePlan] VARCHAR DEFAULT '', " +
                         "[docOrder] VARCHAR DEFAULT '' " +
                         ")";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка создания таблицы Заказ номенклатуры.", false, true);
            }
        }
コード例 #19
0
        void deleteFolder()
        {
            if (listView1.SelectedIndices.Count > 0)
            {
                if (listView1.Items[listView1.SelectedIndices[0]].SubItems[2].Text.ToString() == "Папка" &&
                    listView1.Items[listView1.SelectedIndices[0]].SubItems[1].Text.ToString() != ".." &&
                    listView1.SelectedItems[0].StateImageIndex == 0)
                {
                    String folderID   = listView1.Items[listView1.SelectedIndices[0]].SubItems[3].Text.ToString();
                    String folderName = listView1.Items[listView1.SelectedIndices[0]].SubItems[1].Text.ToString();

                    if (MessageBox.Show("Удалить безвозвратно папку '" + folderName + "' и всё её содержимое ?", "Вопрос:", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        if (DataConfig.typeConnection == DataConstants.CONNETION_LOCAL)
                        {
                            // OLEDB
                            QueryOleDb query = new QueryOleDb(DataConfig.localDatabase);
                            oleDb = new OleDb(DataConfig.localDatabase);
                            oleDb.oleDbCommandSelect.CommandText = "SELECT * FROM Counteragents WHERE(parent = '" + folderName + "')";
                            if (oleDb.ExecuteFill("Counteragents"))
                            {
                                foreach (DataRow row in oleDb.dataSet.Tables[0].Rows)
                                {
                                    query.SetCommand("DROP TABLE " + row["excel_table_id"].ToString());
                                    if (query.Execute())
                                    {
                                        Utilits.Console.Log("Прайс лист '" + row["excel_table_id"].ToString() + "' успешно удалён.");
                                    }
                                    else
                                    {
                                        Utilits.Console.Log("[ОШИБКА] Прайс лист '" + row["excel_table_id"].ToString() + "' не удалось удалить!", false, true);
                                    }
                                }
                                query = new QueryOleDb(DataConfig.localDatabase);
                                query.SetCommand("DELETE FROM Counteragents WHERE (parent ='" + folderName + "')");
                                if (query.Execute())
                                {
                                    query = new QueryOleDb(DataConfig.localDatabase);
                                    query.SetCommand("DELETE FROM Counteragents WHERE (id = " + folderID + ")");
                                    if (query.Execute())
                                    {
                                        DataForms.FClient.updateHistory("Counteragents");
                                        query.Dispose();
                                        Utilits.Console.Log("Удаление папки '" + folderName + "' прошло успешно.");
                                    }
                                    else
                                    {
                                        query.Dispose();
                                        Utilits.Console.Log("Папку '" + folderName + "' не удалось удалить!", false, true);
                                    }
                                }
                                else
                                {
                                    query.Dispose();
                                    Utilits.Console.Log("[ОШИБКА] Ошибка удаления файлов в папке '" + folderName + "'", false, true);
                                }
                            }
                        }
                        else if (DataConfig.typeConnection == DataConstants.CONNETION_SERVER)
                        {
                            // MSSQL SERVER
                            QuerySqlServer query = new QuerySqlServer(DataConfig.serverConnection);
                            sqlServer = new SqlServer();
                            sqlServer.sqlCommandSelect.CommandText = "SELECT * FROM Counteragents WHERE(parent = '" + folderName + "')";
                            if (sqlServer.ExecuteFill("Counteragents"))
                            {
                                foreach (DataRow row in sqlServer.dataSet.Tables[0].Rows)
                                {
                                    query.SetCommand("DROP TABLE " + row["excel_table_id"].ToString());
                                    if (query.Execute())
                                    {
                                        Utilits.Console.Log("Прайс лист '" + row["excel_table_id"].ToString() + "' успешно удалён.");
                                    }
                                    else
                                    {
                                        Utilits.Console.Log("[ОШИБКА] Прайс лист '" + row["excel_table_id"].ToString() + "' не удалось удалить!", false, true);
                                    }
                                }
                                query = new QuerySqlServer(DataConfig.serverConnection);
                                query.SetCommand("DELETE FROM Counteragents WHERE (parent ='" + folderName + "')");
                                if (query.Execute())
                                {
                                    query = new QuerySqlServer(DataConfig.serverConnection);
                                    query.SetCommand("DELETE FROM Counteragents WHERE (id = " + folderID + ")");
                                    if (query.Execute())
                                    {
                                        DataForms.FClient.updateHistory("Counteragents");
                                        query.Dispose();
                                        Utilits.Console.Log("Удаление папки '" + folderName + "' прошло успешно.");
                                    }
                                    else
                                    {
                                        query.Dispose();
                                        Utilits.Console.Log("Папку '" + folderName + "' не удалось удалить!", false, true);
                                    }
                                }
                                else
                                {
                                    query.Dispose();
                                    Utilits.Console.Log("[ОШИБКА] Ошибка удаления файлов в папке '" + folderName + "'", false, true);
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #20
0
 void ComboBox1SelectedIndexChanged(object sender, EventArgs e)
 {
     oleDb = new OleDb(comboBox1.Text);
     query = new QueryOleDb(comboBox1.Text);
 }
コード例 #21
0
        void createOrdersOleDb()
        {
            Double sum    = 0;
            Double amount = 0;
            Double price  = 0;
            Double vat    = 0;
            Double total  = 0;

            OleDb      oleDb      = null;
            QueryOleDb oleDbQuery = null;

            OrderDoc orderDoc;

            try{
                oleDb = new OleDb(DataConfig.localDatabase);

                foreach (Price plist in priceList)                // Обход прайсов
                {
                    sum    = 0;
                    amount = 0;
                    price  = 0;
                    vat    = 0;
                    total  = 0;

                    /* Создание основной информации документа заказ */
                    orderDoc                 = new OrderDoc();
                    orderDoc.docDate         = DateTime.Today.Date;
                    orderDoc.docNumber       = createDocNumber();
                    orderDoc.docName         = "Заказ";
                    orderDoc.docCounteragent = plist.counteragentName;
                    orderDoc.docAutor        = DataConfig.userName;
                    orderDoc.docSum          = 0;
                    orderDoc.docVat          = 0;
                    orderDoc.docTotal        = 0;
                    orderDoc.docPurchasePlan = docPPNumber;

                    oleDb = new OleDb(DataConfig.localDatabase);
                    oleDb.oleDbCommandSelect.CommandText = "SELECT " +
                                                           "id, nomenclatureID, nomenclatureName, units, amount, " +
                                                           "name, price, manufacturer, remainder, term, discount1, discount2, discount3, discount4, code, series, article, " +
                                                           "counteragentName, counteragentPricelist, " +
                                                           "docPurchasePlan, docOrder " +
                                                           "FROM OrderNomenclature WHERE (docPurchasePlan = '" + docPPNumber + "' AND counteragentName = '" + plist.counteragentName + "')";

                    oleDb.oleDbCommandUpdate.CommandText = "UPDATE OrderNomenclature SET " +
                                                           "nomenclatureID = @nomenclatureID, nomenclatureName = @nomenclatureName, units = @units, amount = @amount, " +
                                                           "name = @name, price = @price, manufacturer = @manufacturer, remainder = @remainder, term = @term, " +
                                                           "discount1 = @discount1, discount2 = @discount2, discount3 = @discount3, discount4 = @discount4, " +
                                                           "code = @code, series = @series, article = @article, " +
                                                           "counteragentName = @counteragentName, counteragentPricelist = @counteragentPricelist, " +
                                                           "docPurchasePlan = @docPurchasePlan, docOrder = @docOrder " +
                                                           "WHERE ([id] = @id)";
                    oleDb.oleDbCommandUpdate.Parameters.Add("@nomenclatureID", OleDbType.Integer, 10, "nomenclatureID");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@nomenclatureName", OleDbType.VarChar, 255, "nomenclatureName");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@units", OleDbType.VarChar, 255, "units");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@amount", OleDbType.Double, 15, "amount");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@name", OleDbType.VarChar, 255, "name");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@price", OleDbType.Double, 15, "price");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@manufacturer", OleDbType.VarChar, 255, "manufacturer");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@remainder", OleDbType.Double, 15, "remainder");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@term", OleDbType.Date, 15, "term");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@discount1", OleDbType.Double, 15, "discount1");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@discount2", OleDbType.Double, 15, "discount2");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@discount3", OleDbType.Double, 15, "discount3");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@discount4", OleDbType.Double, 15, "discount4");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@code", OleDbType.VarChar, 255, "code");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@series", OleDbType.VarChar, 255, "series");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@article", OleDbType.VarChar, 255, "article");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@counteragentName", OleDbType.VarChar, 255, "counteragentName");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@counteragentPricelist", OleDbType.VarChar, 255, "counteragentPricelist");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@docPurchasePlan", OleDbType.VarChar, 255, "docPurchasePlan");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@docOrder", OleDbType.VarChar, 255, "docOrder");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@id", OleDbType.Integer, 10, "id");

                    if (oleDb.ExecuteFill("OrderNomenclature"))                     // получаем перечень номенклатуры ПЗ

                    {
                        if (oleDb.dataSet.Tables["OrderNomenclature"].Rows.Count <= 0)
                        {
                            continue;                                                                                   // пропускаем (нет номенклатуры по данному контрагенту)
                        }
                        foreach (DataRow row in oleDb.dataSet.Tables["OrderNomenclature"].Rows)
                        {
                            /* Привязываем к документу */
                            row["docOrder"] = orderDoc.docNumber;

                            /* Вычисления */
                            price  = (Double)row["price"];
                            amount = (Double)row["amount"];
                            sum   += (price * amount);
                        }

                        /* Итоги вычислений */
                        sum   = Math.Round(sum, 2);
                        vat   = sum * DataConstants.ConstFirmVAT / 100;
                        vat   = Math.Round(vat, 2);
                        total = sum + vat;
                        total = Math.Round(total, 2);

                        orderDoc.docSum   = sum;
                        orderDoc.docVat   = vat;
                        orderDoc.docTotal = total;


                        /* Создаём новый заказ */
                        oleDbQuery = new QueryOleDb(DataConfig.localDatabase);
                        oleDbQuery.SetCommand("INSERT INTO Orders " +
                                              "(docDate, docNumber, docName, docCounteragent, " +
                                              "docAutor, docSum, docVat, docTotal, docPurchasePlan) " +
                                              "VALUES ('" + orderDoc.docDate + "', " +
                                              "'" + orderDoc.docNumber + "', " +
                                              "'" + orderDoc.docName + "', " +
                                              "'" + orderDoc.docCounteragent + "', " +
                                              "'" + orderDoc.docAutor + "', " +
                                              "" + Conversion.DoubleToString(orderDoc.docSum) + ", " +
                                              "" + Conversion.DoubleToString(orderDoc.docVat) + ", " +
                                              "" + Conversion.DoubleToString(orderDoc.docTotal) + ", " +
                                              "'" + orderDoc.docPurchasePlan + "')");
                        if (oleDbQuery.Execute())
                        {
                            /* Обновляем журнал Заказов */
                            DataForms.FClient.updateHistory("Orders");
                            Utilits.Console.Log("Ввод на основании: создан Заказ №" + orderDoc.docNumber + " для План закупок №" + docPPNumber);

                            /* Обновление номенклатуры ПЗ (добавляем номер документа Заказ) */
                            if (oleDb.ExecuteUpdate("OrderNomenclature"))
                            {
                                Utilits.Console.Log("Ввод на основании: План заказов №" + docPPNumber + " обновлён.");
                            }
                            else
                            {
                                if (oleDb != null)
                                {
                                    oleDb.Dispose();
                                }
                                if (oleDbQuery != null)
                                {
                                    oleDbQuery.Dispose();
                                }
                                Utilits.Console.Log("[ОШИБКА] Ввод на основании: План закупок №" + docPPNumber + " не удалось одновить! Заказ №" + orderDoc.docNumber, false, true);
                                MessageBox.Show("Не удалось обновить План закупок №" + docPPNumber + " Создание заказов прервано!", "Сообщение");
                                return;
                            }
                        }
                        else
                        {
                            if (oleDb != null)
                            {
                                oleDb.Dispose();
                            }
                            if (oleDbQuery != null)
                            {
                                oleDbQuery.Dispose();
                            }
                            Utilits.Console.Log("[ОШИБКА] Ввод на основании: Не удалось создать Заказ для План закупок №" + docPPNumber, false, true);
                            MessageBox.Show("Не удалось создать Заказ для План закупок №" + docPPNumber, "Сообщение");
                            return;
                        }
                    }
                    else
                    {
                        if (oleDb != null)
                        {
                            oleDb.Dispose();
                        }
                        if (oleDbQuery != null)
                        {
                            oleDbQuery.Dispose();
                        }
                        Utilits.Console.Log("[ОШИБКА] Ввод на основании: Не удалось загрузить перечень номенклатуры из документа" + docPPNumber, false, true);
                        MessageBox.Show("Не удалось загрузить перечень номенклатуры из документа" + docPPNumber + "" + Environment.NewLine +
                                        "Создание Заказов на основании Плана закупок невозможно!", "Сообщение");
                        return;
                    }
                }
            }catch (Exception ex) {
                if (oleDb != null)
                {
                    oleDb.Dispose();
                }
                if (oleDbQuery != null)
                {
                    oleDbQuery.Dispose();
                }
                Utilits.Console.Log("[ОШИБКА] Ввод на основании: " + ex.Message, false, true);
            }

            if (oleDb != null)
            {
                oleDb.Dispose();
            }
            if (oleDbQuery != null)
            {
                oleDbQuery.Dispose();
            }
            MessageBox.Show("План закупок №" + docPPNumber + " был успешно обработан!" + Environment.NewLine + "Заказы созданы в соответствии с выбранными прайс-листами и номенклатурой! ", "Сообщение");
        }
コード例 #22
0
        public static void TableHistory()
        {
            String     sqlCommand;
            QueryOleDb query;

            query = new QueryOleDb(DataConfig.localDatabase);

            sqlCommand = "CREATE TABLE History (" +
                         "[id] COUNTER PRIMARY KEY, " +
                         "[name] VARCHAR DEFAULT '' UNIQUE, " +
                         "[represent] VARCHAR DEFAULT '', " +
                         "[datetime] VARCHAR DEFAULT '', " +
                         "[error] VARCHAR DEFAULT '', " +
                         "[user] VARCHAR DEFAULT ''" +
                         ")";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка создания таблицы История.", false, true);
            }

            sqlCommand = "INSERT INTO History (" +
                         "[name], [represent], [datetime], [error], [user]) " +
                         "VALUES ('Users', 'Пользователи', '" + DateTime.Now.ToString() + "', '', '" + DataConfig.userName + "')";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка добавления данных в таблицу История.", false, true);
            }

            sqlCommand = "INSERT INTO History (" +
                         "[name], [represent], [datetime], [error], [user]) " +
                         "VALUES ('Counteragents', 'Контрагенты', '" + DateTime.Now.ToString() + "', '', '" + DataConfig.userName + "')";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка добавления данных в таблицу История.", false, true);
            }

            sqlCommand = "INSERT INTO History (" +
                         "[name], [represent], [datetime], [error], [user]) " +
                         "VALUES ('Nomenclature', 'Номенклатура', '" + DateTime.Now.ToString() + "', '', '" + DataConfig.userName + "')";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка добавления данных в таблицу История.", false, true);
            }

            sqlCommand = "INSERT INTO History (" +
                         "[name], [represent], [datetime], [error], [user]) " +
                         "VALUES ('Units', 'Единицы измерения', '" + DateTime.Now.ToString() + "', '', '" + DataConfig.userName + "')";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка добавления данных в таблицу История.", false, true);
            }

            sqlCommand = "INSERT INTO History (" +
                         "[name], [represent], [datetime], [error], [user]) " +
                         "VALUES ('PurchasePlan', 'План закупок', '" + DateTime.Now.ToString() + "', '', '" + DataConfig.userName + "')";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка добавления данных в таблицу История.", false, true);
            }

            sqlCommand = "INSERT INTO History (" +
                         "[name], [represent], [datetime], [error], [user]) " +
                         "VALUES ('Orders', 'Заказы', '" + DateTime.Now.ToString() + "', '', '" + DataConfig.userName + "')";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка добавления данных в таблицу История.", false, true);
            }
        }
コード例 #23
0
        /* Выполнение */
        void ExecuteOleDb()
        {
            OrderDoc orderDoc;
            String   thisIsOrderUpdate;
            Double   sum    = 0;
            Double   amount = 0;
            Double   price  = 0;
            Double   vat    = 0;
            Double   total  = 0;

            String report;

            report = "Процесс создания Заказов - запушен!";

            try{
                /* Обход прайсов */
                foreach (Price pl in priceList)
                {
                    sum    = 0;
                    amount = 0;
                    price  = 0;
                    vat    = 0;
                    total  = 0;

                    /* Создание основной информации документа заказ */
                    orderDoc                 = new OrderDoc();
                    orderDoc.docDate         = DateTime.Today.Date;
                    orderDoc.docNumber       = createDocNumber();
                    orderDoc.docName         = "Заказ";
                    orderDoc.docCounteragent = pl.counteragentName;
                    orderDoc.docAutor        = DataConfig.userName;
                    orderDoc.docSum          = 0;
                    orderDoc.docVat          = 0;
                    orderDoc.docTotal        = 0;
                    orderDoc.docPurchasePlan = docPPNumber;

                    oleDb = new OleDb(DataConfig.localDatabase);
                    oleDb.oleDbCommandSelect.CommandText = "SELECT " +
                                                           "id, nomenclatureID, nomenclatureName, units, amount, " +
                                                           "name, price, manufacturer, remainder, term, discount1, discount2, discount3, discount4, code, series, article, " +
                                                           "counteragentName, counteragentPricelist, " +
                                                           "docPurchasePlan, docOrder " +
                                                           "FROM OrderNomenclature WHERE (docPurchasePlan = '" + docPPNumber + "' AND counteragentName = '" + pl.counteragentName + "')";

                    oleDb.oleDbCommandUpdate.CommandText = "UPDATE OrderNomenclature SET " +
                                                           "nomenclatureID = @nomenclatureID, nomenclatureName = @nomenclatureName, units = @units, amount = @amount, " +
                                                           "name = @name, price = @price, manufacturer = @manufacturer, remainder = @remainder, term = @term, " +
                                                           "discount1 = @discount1, discount2 = @discount2, discount3 = @discount3, discount4 = @discount4, " +
                                                           "code = @code, series = @series, article = @article, " +
                                                           "counteragentName = @counteragentName, counteragentPricelist = @counteragentPricelist, " +
                                                           "docPurchasePlan = @docPurchasePlan, docOrder = @docOrder " +
                                                           "WHERE ([id] = @id)";
                    oleDb.oleDbCommandUpdate.Parameters.Add("@nomenclatureID", OleDbType.Integer, 10, "nomenclatureID");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@nomenclatureName", OleDbType.VarChar, 255, "nomenclatureName");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@units", OleDbType.VarChar, 255, "units");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@amount", OleDbType.Double, 15, "amount");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@name", OleDbType.VarChar, 255, "name");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@price", OleDbType.Double, 15, "price");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@manufacturer", OleDbType.VarChar, 255, "manufacturer");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@remainder", OleDbType.Double, 15, "remainder");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@term", OleDbType.Date, 15, "term");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@discount1", OleDbType.Double, 15, "discount1");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@discount2", OleDbType.Double, 15, "discount2");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@discount3", OleDbType.Double, 15, "discount3");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@discount4", OleDbType.Double, 15, "discount4");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@code", OleDbType.VarChar, 255, "code");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@series", OleDbType.VarChar, 255, "series");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@article", OleDbType.VarChar, 255, "article");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@counteragentName", OleDbType.VarChar, 255, "counteragentName");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@counteragentPricelist", OleDbType.VarChar, 255, "counteragentPricelist");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@docPurchasePlan", OleDbType.VarChar, 255, "docPurchasePlan");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@docOrder", OleDbType.VarChar, 255, "docOrder");
                    oleDb.oleDbCommandUpdate.Parameters.Add("@id", OleDbType.Integer, 10, "id");

                    if (oleDb.ExecuteFill("OrderNomenclature"))
                    {
                        thisIsOrderUpdate = orderMustBeUpdated(oleDb.dataSet);

                        foreach (DataRow row in oleDb.dataSet.Tables["OrderNomenclature"].Rows)
                        {
                            /* Привязываем к документу */
                            if (thisIsOrderUpdate == "")
                            {
                                row["docOrder"] = orderDoc.docNumber;
                            }
                            else
                            {
                                row["docOrder"] = thisIsOrderUpdate;
                            }

                            /* Вычисления */
                            price  = (Double)row["price"];
                            amount = (Double)row["amount"];
                            sum   += (price * amount);
                        }

                        /* Итоги вычислений */
                        sum   = Math.Round(sum, 2);
                        vat   = sum * DataConstants.ConstFirmVAT / 100;
                        vat   = Math.Round(vat, 2);
                        total = sum + vat;
                        total = Math.Round(total, 2);

                        orderDoc.docSum   = sum;
                        orderDoc.docVat   = vat;
                        orderDoc.docTotal = total;

                        if (thisIsOrderUpdate == "")                         // Создаём новый заказ
                        /* Сохранение основных данных документа Заказ */
                        {
                            oleDbQuery = new QueryOleDb(DataConfig.localDatabase);
                            oleDbQuery.SetCommand("INSERT INTO Orders " +
                                                  "(docDate, docNumber, docName, docCounteragent, " +
                                                  "docAutor, docSum, docVat, docTotal, docPurchasePlan) " +
                                                  "VALUES ('" + orderDoc.docDate + "', " +
                                                  "'" + orderDoc.docNumber + "', " +
                                                  "'" + orderDoc.docName + "', " +
                                                  "'" + orderDoc.docCounteragent + "', " +
                                                  "'" + orderDoc.docAutor + "', " +
                                                  "" + Conversion.DoubleToString(orderDoc.docSum) + ", " +
                                                  "" + Conversion.DoubleToString(orderDoc.docVat) + ", " +
                                                  "" + Conversion.DoubleToString(orderDoc.docTotal) + ", " +
                                                  "'" + orderDoc.docPurchasePlan + "')");
                            if (oleDbQuery.Execute())
                            {
                                report += Environment.NewLine;
                                report += "Документ Заказ №" + orderDoc.docNumber + " - создан!";

                                if (oleDb.ExecuteUpdate("OrderNomenclature"))
                                {
                                    report += Environment.NewLine;
                                    report += "Документ План закупок №" + docPPNumber + " - обновлён!";
                                }
                                else
                                {
                                    report += Environment.NewLine;
                                    report += "Документ План закупок №" + docPPNumber + " - ошибка обновления!";
                                }
                            }
                            else
                            {
                                report += Environment.NewLine;
                                report += "Документ Заказ №" + orderDoc.docNumber + " - ошибка создания!";
                            }
                        }
                        else                           // Обновляем данные в заказе
                        {
                            if (oleDb.ExecuteUpdate("OrderNomenclature"))
                            {
                                report += Environment.NewLine;
                                report += "Документ План закупок №" + docPPNumber + " - обновлён!";

                                /* Перерасчет Заказа */
                                oleDbQuery = new QueryOleDb(DataConfig.localDatabase);
                                oleDbQuery.SetCommand("UPDATE Orders SET " +
                                                      "docSum = " + Conversion.DoubleToString(orderDoc.docSum) + ", " +
                                                      "docVat = " + Conversion.DoubleToString(orderDoc.docVat) + ", " +
                                                      "docTotal = " + Conversion.DoubleToString(orderDoc.docTotal) + " " +
                                                      "WHERE ([docNumber] = '" + thisIsOrderUpdate + "')");
                                if (oleDbQuery.Execute())
                                {
                                    report += Environment.NewLine;
                                    report += "Документ Заказ №" + thisIsOrderUpdate + " - обновлён!";
                                }
                                else
                                {
                                    report += Environment.NewLine;
                                    report += "Документ Заказ №" + thisIsOrderUpdate + " - ошибка обновления!";
                                }
                            }
                            else
                            {
                                report += Environment.NewLine;
                                report += "Документ План закупок №" + docPPNumber + " - ошибка обновления!";
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Не удалось загрузить перечень номенклатуры из документа" + docPPNumber + "" + Environment.NewLine +
                                        "Создание Заказов на основании Плана закупок невозможно!", "Сообщение");
                        Dispose();
                        return;
                    }
                }

                DataForms.FClient.updateHistory("Orders");

                /* Отчёт о проделанной работе */
                Dispose();
                Utilits.Console.Log("[ВВОД НА ОСНОВАНИИ]" + Environment.NewLine +
                                    "Отчёт --------------------------------------------------------------------" +
                                    Environment.NewLine + report + Environment.NewLine +
                                    "------------------------------------------------------------------------------");
                MessageBox.Show("Обработка Плана закупок №" + docPPNumber + " завершена!", "Сообщение");
            }catch (Exception ex) {
                Dispose();
                Utilits.Console.Log("[ОШИБКА] " + ex.Message, false, true);
            }
        }
コード例 #24
0
        void deleteFile()
        {
            if (listView1.SelectedIndices.Count > 0)
            {
                String docID   = listView1.Items[listView1.SelectedIndices[0]].SubItems[8].Text;
                String docName = listView1.Items[listView1.SelectedIndices[0]].SubItems[2].Text;

                if (MessageBox.Show("Удалить документ План закупок №" + docName + Environment.NewLine + " и связанные с ним Заказы ?", "Вопрос:", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    if (DataConfig.typeConnection == DataConstants.CONNETION_LOCAL)
                    {
                        // OLEDB
                        QueryOleDb query;

                        query = new QueryOleDb(DataConfig.localDatabase);
                        query.SetCommand("DELETE FROM Orders WHERE (docPurchasePlan = '" + docName + "')");
                        if (!query.Execute())
                        {
                            Utilits.Console.Log("[ОШИБКА] Не удалось удалить заказы привязанные к Плану закупок №" + docName, false, true);
                            return;
                        }

                        query = new QueryOleDb(DataConfig.localDatabase);
                        query.SetCommand("DELETE FROM OrderNomenclature WHERE (docPurchasePlan = '" + docName + "')");
                        if (!query.Execute())
                        {
                            Utilits.Console.Log("[ОШИБКА] Документ план закупок №" + docName + " не удалось удалить перечень номенклатуры!", false, true);
                            return;
                        }

                        query = new QueryOleDb(DataConfig.localDatabase);
                        query.SetCommand("DELETE FROM PurchasePlanPriceLists WHERE (docID = '" + docName + "')");
                        if (!query.Execute())
                        {
                            Utilits.Console.Log("[ОШИБКА] Документ план закупок №" + docName + " не удалось удалить перечень прайс-листов!", false, true);
                            return;
                        }

                        query = new QueryOleDb(DataConfig.localDatabase);
                        query.SetCommand("DELETE FROM PurchasePlan WHERE (id = " + docID + ")");
                        if (!query.Execute())
                        {
                            Utilits.Console.Log("[ОШИБКА] Документ план закупок №" + docName + " не получилось удалить!", false, true);
                            return;
                        }

                        Utilits.Console.Log("Документ план закупок №" + docName + " успешно удален.");
                        DataForms.FClient.updateHistory("Orders");
                        DataForms.FClient.updateHistory("PurchasePlan");
                    }
                    else if (DataConfig.typeConnection == DataConstants.CONNETION_SERVER)
                    {
                        // MSSQL SERVER
                        QuerySqlServer query;

                        query = new QuerySqlServer(DataConfig.serverConnection);
                        query.SetCommand("DELETE FROM Orders WHERE (docPurchasePlan = '" + docName + "')");
                        if (!query.Execute())
                        {
                            Utilits.Console.Log("[ОШИБКА] Не удалось удалить заказы привязанные к Плану закупок №" + docName, false, true);
                            return;
                        }

                        query = new QuerySqlServer(DataConfig.serverConnection);
                        query.SetCommand("DELETE FROM OrderNomenclature WHERE (docPurchasePlan = '" + docName + "')");
                        if (!query.Execute())
                        {
                            Utilits.Console.Log("[ОШИБКА] Документ план закупок №" + docName + " не удалось удалить перечень номенклатуры!", false, true);
                            return;
                        }

                        query = new QuerySqlServer(DataConfig.serverConnection);
                        query.SetCommand("DELETE FROM PurchasePlanPriceLists WHERE (docID = '" + docName + "')");
                        if (!query.Execute())
                        {
                            Utilits.Console.Log("[ОШИБКА] Документ план закупок №" + docName + " не удалось удалить перечень прайс-листов!", false, true);
                            return;
                        }

                        query = new QuerySqlServer(DataConfig.serverConnection);
                        query.SetCommand("DELETE FROM PurchasePlan WHERE (id = " + docID + ")");
                        if (!query.Execute())
                        {
                            Utilits.Console.Log("[ОШИБКА] Документ план закупок №" + docName + " не получилось удалить!", false, true);
                            return;
                        }

                        Utilits.Console.Log("Документ план закупок №" + docName + " успешно удален.");
                        DataForms.FClient.updateHistory("Orders");
                        DataForms.FClient.updateHistory("PurchasePlan");
                    }
                }
            }
        }
コード例 #25
0
        public static void TableUnits()
        {
            String     sqlCommand;
            QueryOleDb query;

            query = new QueryOleDb(DataConfig.localDatabase);

            sqlCommand = "CREATE TABLE Units (" +
                         "[id] COUNTER PRIMARY KEY, " +
                         "[name] VARCHAR DEFAULT '' UNIQUE, " +
                         "[info] TEXT" +
                         ")";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка создания таблицы Единицы измерения.", false, true);
            }

            sqlCommand = "INSERT INTO Units (" +
                         "[name], [info]) " +
                         "VALUES ('г.', 'Граммы.')";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка добавления данных в таблицу Единицы измерения.", false, true);
            }

            sqlCommand = "INSERT INTO Units (" +
                         "[name], [info]) " +
                         "VALUES ('кг.', 'Килограммы.')";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка добавления данных в таблицу Единицы измерения.", false, true);
            }

            sqlCommand = "INSERT INTO Units (" +
                         "[name], [info]) " +
                         "VALUES ('л.', 'Литры.')";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка добавления данных в таблицу Единицы измерения.", false, true);
            }

            sqlCommand = "INSERT INTO Units (" +
                         "[name], [info]) " +
                         "VALUES ('м.', 'Метры.')";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка добавления данных в таблицу Единицы измерения.", false, true);
            }

            sqlCommand = "INSERT INTO Units (" +
                         "[name], [info]) " +
                         "VALUES ('см.', 'Сантиметры.')";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка добавления данных в таблицу Единицы измерения.", false, true);
            }

            sqlCommand = "INSERT INTO Units (" +
                         "[name], [info]) " +
                         "VALUES ('шт.', 'Штуки.')";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка добавления данных в таблицу Единицы измерения.", false, true);
            }

            sqlCommand = "INSERT INTO Units (" +
                         "[name], [info]) " +
                         "VALUES ('уп.', 'Упаковки.')";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка добавления данных в таблицу Единицы измерения.", false, true);
            }

            sqlCommand = "INSERT INTO Units (" +
                         "[name], [info]) " +
                         "VALUES ('ящ.', 'Ящики.')";
            query.SetCommand(sqlCommand);
            if (!query.Execute())
            {
                Utilits.Console.Log("[ОШИБКА] ошибка добавления данных в таблицу Единицы измерения.", false, true);
            }
        }
コード例 #26
0
        void deleteFile()
        {
            if (listView1.SelectedIndices.Count > 0)
            {
                if (listView1.Items[listView1.SelectedIndices[0]].SubItems[2].Text.ToString() == "" &&
                    listView1.Items[listView1.SelectedIndices[0]].SubItems[1].Text.ToString() != ".." &&
                    listView1.SelectedItems[0].StateImageIndex == 1)
                {
                    String fileID    = listView1.Items[listView1.SelectedIndices[0]].SubItems[3].Text.ToString();
                    String fileName  = listView1.Items[listView1.SelectedIndices[0]].SubItems[1].Text.ToString();
                    String priceName = listView1.Items[listView1.SelectedIndices[0]].SubItems[4].Text.ToString();

                    if (MessageBox.Show("Удалить безвозвратно контрагента '" + fileName + "'" + Environment.NewLine + "и его прайс '" + priceName + "' ?", "Вопрос:", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        if (DataConfig.typeConnection == DataConstants.CONNETION_LOCAL)
                        {
                            // OLEDB
                            QueryOleDb query = new QueryOleDb(DataConfig.localDatabase);
                            query.SetCommand("DELETE FROM Counteragents WHERE (id = " + fileID + ")");
                            if (query.Execute())
                            {
                                if (priceName != "")
                                {
                                    query = new QueryOleDb(DataConfig.localDatabase);
                                    query.SetCommand("DROP TABLE " + priceName);
                                    if (query.Execute())
                                    {
                                        Utilits.Console.Log("Контрагент '" + fileName + "' успешно удалён. Прайс '" + priceName + "' успешно удалён.");
                                    }
                                    else
                                    {
                                        Utilits.Console.Log("[ПРЕДУПРЕЖДЕНИЕ] Прайс '" + priceName + "' не удалось удалить!");
                                    }
                                }
                                DataForms.FClient.updateHistory("Counteragents");
                            }
                            else
                            {
                                Utilits.Console.Log("[ОШИБКА] Контрагент '" + fileName + "' не удалось удалить!");
                            }
                        }
                        else if (DataConfig.typeConnection == DataConstants.CONNETION_SERVER)
                        {
                            // MSSQL SERVER
                            QuerySqlServer query = new QuerySqlServer(DataConfig.serverConnection);
                            query.SetCommand("DELETE FROM Counteragents WHERE (id = " + fileID + ")");
                            if (query.Execute())
                            {
                                if (priceName != "")
                                {
                                    query = new QuerySqlServer(DataConfig.serverConnection);
                                    query.SetCommand("DROP TABLE " + priceName);
                                    if (query.Execute())
                                    {
                                        Utilits.Console.Log("Контрагент '" + fileName + "' успешно удалён. Прайс '" + priceName + "' успешно удалён.");
                                    }
                                    else
                                    {
                                        Utilits.Console.Log("[ПРЕДУПРЕЖДЕНИЕ] Прайс '" + priceName + "' не удалось удалить!");
                                    }
                                }
                                DataForms.FClient.updateHistory("Counteragents");
                            }
                            else
                            {
                                Utilits.Console.Log("[ОШИБКА] Контрагент '" + fileName + "' не удалось удалить!");
                            }
                        }
                    }
                }
            }
        }
コード例 #27
0
        void saveEditFile()
        {
            /* Изменение теста */
            oleDb = new OleDb(Config.databaseFile);
            oleDb.dataSet.Clear();
            oleDb.dataSet.DataSetName            = "Practice";
            oleDb.oleDbCommandSelect.CommandText = "SELECT * FROM Practice WHERE (ID = " + ID + ")";
            oleDb.ExecuteFill("Practice");

            oleDb.oleDbCommandUpdate.CommandText = "UPDATE Practice SET " +
                                                   "[type] = @type, [name] = @name, [parent] = @parent " +
                                                   "WHERE ([ID] = @ID)";
            oleDb.oleDbCommandUpdate.Parameters.Add("@type", OleDbType.VarChar, 255, "type");
            oleDb.oleDbCommandUpdate.Parameters.Add("@name", OleDbType.VarChar, 255, "name");
            oleDb.oleDbCommandUpdate.Parameters.Add("@parent", OleDbType.VarChar, 255, "parent");
            oleDb.oleDbCommandUpdate.Parameters.Add("@ID", OleDbType.Integer, 10, "ID");

            oleDb.dataSet.Tables["Practice"].Rows[0]["name"]   = textBox2.Text;
            oleDb.dataSet.Tables["Practice"].Rows[0]["parent"] = comboBox1.Text;

            if (oleDb.ExecuteUpdate("Practice"))
            {
                // Редактирование записей в тесте
                if (idDeletedList.Count > 0)                // Удаление записей
                {
                    foreach (int deleteId in idDeletedList)
                    {
                        QueryOleDb query = new QueryOleDb(Config.databaseFile);
                        query.SetCommand("DELETE FROM Tests WHERE (ID = " + deleteId + ")");
                        query.Execute();
                    }
                }

                oleDb = new OleDb(Config.databaseFile);
                oleDb.dataSet.Clear();
                oleDb.dataSet.DataSetName            = "Tests";
                oleDb.oleDbCommandSelect.CommandText = "SELECT * FROM Tests WHERE (IDPractice = " + textBox1.Text + ") ORDER BY ID ASC";
                oleDb.ExecuteFill("Tests");

                oleDb.oleDbCommandInsert.CommandText = "INSERT INTO Tests (IDPractice, condition, question, answer, hint) VALUES (@IDPractice, @condition, @question, @answer, @hint)";
                oleDb.oleDbCommandInsert.Parameters.Add("@IDPractice", OleDbType.Integer, 10, "IDPractice");
                oleDb.oleDbCommandInsert.Parameters.Add("@condition", OleDbType.VarChar, 255, "condition");
                oleDb.oleDbCommandInsert.Parameters.Add("@question", OleDbType.VarChar, 255, "question");
                oleDb.oleDbCommandInsert.Parameters.Add("@answer", OleDbType.VarChar, 255, "answer");
                oleDb.oleDbCommandInsert.Parameters.Add("@hint", OleDbType.VarChar, 255, "hint");

                oleDb.oleDbCommandUpdate.CommandText = "UPDATE Tests SET " +
                                                       "[IDPractice] = @IDPractice, [condition] = @condition, " +
                                                       "[question] = @question, [answer] = @answer, [hint] = @hint " +
                                                       "WHERE ([ID] = @ID)";
                oleDb.oleDbCommandUpdate.Parameters.Add("@IDPractice", OleDbType.Integer, 10, "IDPractice");
                oleDb.oleDbCommandUpdate.Parameters.Add("@condition", OleDbType.VarChar, 255, "condition");
                oleDb.oleDbCommandUpdate.Parameters.Add("@question", OleDbType.VarChar, 255, "question");
                oleDb.oleDbCommandUpdate.Parameters.Add("@answer", OleDbType.VarChar, 255, "answer");
                oleDb.oleDbCommandUpdate.Parameters.Add("@hint", OleDbType.VarChar, 255, "hint");
                oleDb.oleDbCommandUpdate.Parameters.Add("@ID", OleDbType.Integer, 10, "ID");

                DataRow newRow;
                foreach (ListViewItem value in listView1.Items)
                {
                    if (value.SubItems[5].Text == "+")
                    {
                        newRow = null;
                        newRow = oleDb.dataSet.Tables["Tests"].NewRow();
                        newRow["IDPractice"] = textBox1.Text;
                        newRow["condition"]  = value.SubItems[1].Text;
                        newRow["question"]   = value.SubItems[2].Text;
                        newRow["answer"]     = value.SubItems[3].Text;
                        newRow["hint"]       = value.SubItems[4].Text;
                        oleDb.dataSet.Tables["Tests"].Rows.Add(newRow);
                    }
                    else
                    {
                        foreach (DataRow row in oleDb.dataSet.Tables["Tests"].Rows)
                        {
                            if (row["ID"].ToString() == value.SubItems[5].Text.ToString())
                            {
                                row["condition"] = value.SubItems[1].Text;
                                row["question"]  = value.SubItems[2].Text;
                                row["answer"]    = value.SubItems[3].Text;
                                row["hint"]      = value.SubItems[4].Text;
                                break;
                            }
                        }
                    }
                }

                if (oleDb.ExecuteUpdate("Tests"))
                {
                    Utilits.Console.Log("Изменения в тесте '" + comboBox1.Text + "\\" + textBox2.Text + "' - успешно сохранены.");
                    Close();
                    (ParentForm as PracticeForm).TableRefresh();
                }
                else
                {
                    Utilits.Console.LogError("Не удалось записать изменённые пункты теста '" + textBox2.Text + "'");
                }
            }
            else
            {
                Utilits.Console.LogError("Не удалось сохранить изменения в тесте '" + oldName + "'");
            }
        }
コード例 #28
0
        void deleteFolder()
        {
            if (listView1.SelectedIndices.Count > 0)
            {
                if (listView1.Items[listView1.SelectedIndices[0]].SubItems[2].Text.ToString() == "Папка" &&
                    listView1.Items[listView1.SelectedIndices[0]].SubItems[1].Text.ToString() != ".." &&
                    listView1.SelectedItems[0].StateImageIndex == 0)
                {
                    String folderID   = listView1.Items[listView1.SelectedIndices[0]].SubItems[3].Text.ToString();
                    String folderName = listView1.Items[listView1.SelectedIndices[0]].SubItems[1].Text.ToString();

                    if (MessageBox.Show("Удалить безвозвратно папку '" + folderName + "' и всё её содержимое ?", "Вопрос:", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        if (DataConfig.typeConnection == DataConstants.CONNETION_LOCAL)
                        {
                            // OLEDB
                            QueryOleDb query = new QueryOleDb(DataConfig.localDatabase);
                            query = new QueryOleDb(DataConfig.localDatabase);
                            query.SetCommand("DELETE FROM Nomenclature WHERE (parent ='" + folderName + "')");
                            if (query.Execute())
                            {
                                query = new QueryOleDb(DataConfig.localDatabase);
                                query.SetCommand("DELETE FROM Nomenclature WHERE (id = " + folderID + ")");
                                if (query.Execute())
                                {
                                    DataForms.FClient.updateHistory("Nomenclature");
                                    query.Dispose();
                                    Utilits.Console.Log("Удаление папки '" + folderName + "' прошло успешно.");
                                }
                                else
                                {
                                    query.Dispose();
                                    Utilits.Console.Log("Папку '" + folderName + "' не удалось удалить!", false, true);
                                }
                            }
                            else
                            {
                                query.Dispose();
                                Utilits.Console.Log("[ОШИБКА] Ошибка удаления файлов в папке '" + folderName + "'", false, true);
                            }
                        }
                        else if (DataConfig.typeConnection == DataConstants.CONNETION_SERVER)
                        {
                            // MSSQL SERVER
                            QuerySqlServer query = new QuerySqlServer(DataConfig.serverConnection);
                            query = new QuerySqlServer(DataConfig.serverConnection);
                            query.SetCommand("DELETE FROM Nomenclature WHERE (parent ='" + folderName + "')");
                            if (query.Execute())
                            {
                                query = new QuerySqlServer(DataConfig.serverConnection);
                                query.SetCommand("DELETE FROM Nomenclature WHERE (id = " + folderID + ")");
                                if (query.Execute())
                                {
                                    DataForms.FClient.updateHistory("Nomenclature");
                                    query.Dispose();
                                    Utilits.Console.Log("Удаление папки '" + folderName + "' прошло успешно.");
                                }
                                else
                                {
                                    query.Dispose();
                                    Utilits.Console.Log("Папку '" + folderName + "' не удалось удалить!", false, true);
                                }
                            }
                            else
                            {
                                query.Dispose();
                                Utilits.Console.Log("[ОШИБКА] Ошибка удаления файлов в папке '" + folderName + "'", false, true);
                            }
                        }
                    }
                }
            }
        }
コード例 #29
0
        void deleteFile()
        {
            if (listView1.SelectedIndices.Count > 0)
            {
                String docID           = listView1.Items[listView1.SelectedIndices[0]].SubItems[10].Text;
                String docNumber       = listView1.Items[listView1.SelectedIndices[0]].SubItems[2].Text;
                String docPurchasePlan = listView1.Items[listView1.SelectedIndices[0]].SubItems[9].Text;

                if (docPurchasePlan != "")
                {
                    if (MessageBox.Show("Удалить документ Заказ №" + docNumber + Environment.NewLine +
                                        "который связан с докуметном План закупок №" + docPurchasePlan + " ?",
                                        "Вопрос:", MessageBoxButtons.YesNo) == DialogResult.No)
                    {
                        return;
                    }
                }
                else
                {
                    if (MessageBox.Show("Удалить документ Заказ №" + docNumber + Environment.NewLine +
                                        "который не связан с докуметном план закупок ?",
                                        "Вопрос:", MessageBoxButtons.YesNo) == DialogResult.No)
                    {
                        return;
                    }
                }

                if (DataConfig.typeConnection == DataConstants.CONNETION_LOCAL)
                {
                    // OLEDB
                    QueryOleDb query;
                    query = new QueryOleDb(DataConfig.localDatabase);
                    query.SetCommand("UPDATE OrderNomenclature SET docOrder = '' WHERE (docOrder = '" + docNumber + "')");
                    if (query.Execute())
                    {
                        query = new QueryOleDb(DataConfig.localDatabase);
                        query.SetCommand("DELETE FROM Orders WHERE (id = " + docID + ")");
                        if (query.Execute())
                        {
                            DataForms.FClient.updateHistory("Orders");
                            Utilits.Console.Log("Документ Заказ №" + docNumber + " успешно удален.");
                        }
                        else
                        {
                            Utilits.Console.Log("[ОШИБКА] Документ Заказ №" + docNumber + " не удалось удалить!", false, true);
                        }
                    }
                    else
                    {
                        Utilits.Console.Log("[ОШИБКА] Документ План закупок №" + docPurchasePlan + " не удалось обновить!", false, true);
                    }
                }
                else if (DataConfig.typeConnection == DataConstants.CONNETION_SERVER)
                {
                    // MSSQL SERVER
                    QuerySqlServer query;
                    query = new QuerySqlServer(DataConfig.serverConnection);
                    query.SetCommand("UPDATE OrderNomenclature SET docOrder = '' WHERE (docOrder = '" + docNumber + "')");
                    if (query.Execute())
                    {
                        query = new QuerySqlServer(DataConfig.serverConnection);
                        query.SetCommand("DELETE FROM Orders WHERE (id = " + docID + ")");
                        if (query.Execute())
                        {
                            DataForms.FClient.updateHistory("Orders");
                            Utilits.Console.Log("Документ Заказ №" + docNumber + " успешно удален.");
                        }
                        else
                        {
                            Utilits.Console.Log("[ОШИБКА] Документ Заказ №" + docNumber + " не удалось удалить!", false, true);
                        }
                    }
                    else
                    {
                        Utilits.Console.Log("[ОШИБКА] Документ План закупок №" + docPurchasePlan + " не удалось обновить!", false, true);
                    }
                }
            }
        }