Example #1
0
        public void RefillData(int repYear)
        {
            if (_mergeTable == null)
            {
                _mergeTable = MergiesView.CreateTable();
            }
            else
            {
                _mergeTable.Rows.Clear();
            }

            if (_mergeBS == null)
            {
                _mergeBS = new BindingSource();
            }

            string            commText = MergiesView.GetSelectText(_org.idVal, repYear);
            SQLiteDataAdapter adapter  = new SQLiteDataAdapter(commText, _connection);

            adapter.Fill(_mergeTable);

            mergeView.AutoGenerateColumns = false;
            mergeView.DataSource          = _mergeBS;
            _mergeBS.DataSource           = _mergeTable;

            MarkActualRow();

            SetPrivilege(_privilege);
        }
Example #2
0
        /// <summary>
        /// Производит сохранение данных в БД созданной сводной ведомости
        /// </summary>
        private void SaveNew()
        {
            // создать виртуальную таблицу с пустыми записями
            _mergeInfoTable = MergeInfo.CreateTableWithRows();
            // скопировать данные из транспонированной таблицы в созданную
            MergeInfoTranspose.ConvertToMergeInfo(_svodTable, _mergeInfoTable);
            // просчитать суммы в созданной таблицйе
            MergeInfo.MathSums(_mergeInfoTable);
            // заполнение данными записи Сводной ведомости
            SetMergeData();
            // создание подключения к БД
            SQLiteConnection connection = new SQLiteConnection(_connection);
            // создание команд для вставки данных в БД
            SQLiteCommand mergeInsert    = MergiesView.InsertCommand(_mergeRow);
            SQLiteCommand tableInsert    = MergeInfo.CreateInsertCommand();
            SQLiteCommand fixdataReplace = new SQLiteCommand();
            SQLiteCommand setUnactual    =
                new SQLiteCommand(MergiesView.GetChangeActualByOrgText(_org.idVal, (int)_mergeRow[MergiesView.repYear],
                                                                       false));
            // создание Адаптера для обработки таблицы
            SQLiteDataAdapter adapter = new SQLiteDataAdapter();

            adapter.InsertCommand = tableInsert;
            // присвоение созданного подключения коммандам
            mergeInsert.Connection             =
                tableInsert.Connection         =
                    fixdataReplace.Connection  =
                        setUnactual.Connection = connection;
            // открытие соединения
            connection.Open();
            // начать транзакция
            SQLiteTransaction transaction = connection.BeginTransaction();

            // прикрепление транзакции
            mergeInsert.Transaction             =
                tableInsert.Transaction         =
                    fixdataReplace.Transaction  =
                        setUnactual.Transaction = transaction;
            // выполнить команду обнуления актуальности сводных ведомостей в выбранном году для текущей организаций
            setUnactual.ExecuteNonQuery();
            // выполнить команду вставки записи о новой сводной ведомости и назначения ее актуальной
            _mergeRow[MergiesView.id] = mergeInsert.ExecuteScalar();
            _mergeRow.EndEdit();
            // внести запись о факте создания записи сводной     ведомости
            fixdataReplace.CommandText = MergiesView.GetReplaceFixDataText(_mergeRow, FixData.FixType.New);
            fixdataReplace.ExecuteNonQuery();
            // заполнить соответствующий столбец таблицы ID сводной ведомости для их привязки к ней (сводной ведомости)
            MergeInfo.SetMergeID(_mergeInfoTable, (long)_mergeRow[MergiesView.id]);
            // ввыполнить вставку записей из таблицы программы в таблицу БД
            adapter.Update(_mergeInfoTable);
            // принять подключение
            transaction.Commit();
            // закрыть соединение
            connection.Close();
        }
        private void GetCountsFromMergies()
        {
            _mergiesCountLists = 0;
            _mergiesCountDocs  = 0;

            using (SQLiteConnection connection = new SQLiteConnection(_connection))
            {
                if (connection.State != ConnectionState.Open)
                {
                    connection.Open();
                }
                using (SQLiteCommand command = connection.CreateCommand())
                {
                    command.CommandText = MergiesView.GetSelectActualText(_organization.idVal, _repYear);
                    SQLiteDataReader reader = command.ExecuteReader();
                    if (reader.Read())
                    {
                        _mergiesCountLists  = Convert.ToInt32(reader[MergiesView.listCount]);
                        _mergiesCountDocs   = Convert.ToInt32(reader[MergiesView.docCount]);
                        szvGroupBox.Visible = true;
                        tabPageDB.Controls.Remove(szv3WarningLabel);
                    }
                    else
                    {
                        _mergiesCountLists = -1;
                        _mergiesCountDocs  = -1;

                        szvGroupBox.Visible = false;
                        //
                        // szv3WarningLabel
                        //
                        szv3WarningLabel.Font = new Font("Microsoft Sans Serif", 8.25F, FontStyle.Regular,
                                                         GraphicsUnit.Point, ((byte)(204)));
                        szv3WarningLabel.ForeColor = Color.Red;
                        szv3WarningLabel.Location  = new Point(6, 342);
                        szv3WarningLabel.Name      = "szv3WarningLabel";
                        szv3WarningLabel.Size      = new Size(286, 53);
                        szv3WarningLabel.TabIndex  = 12;
                        szv3WarningLabel.Text      = @"Сводная ведомость СЗВ-3 не обнаружена!
Формирование электронных данных невозможно!";
                        szv3WarningLabel.TextAlign = ContentAlignment.MiddleCenter;
                        tabPageDB.Controls.Add(szv3WarningLabel);
                    }
                }
            }

            packetCountBox.Text = _mergiesCountLists.ToString();
            docCountBox.Text    = _mergiesCountDocs.ToString();
        }
Example #4
0
 /// <summary>
 /// Производит заполнение записи сводной ведомости из полей формы
 /// </summary>
 private void SetMergeData()
 {
     if (_mergeRow == null)
     {
         _mergeRow = MergiesView.CreateTable().NewRow();
         _mergeRow[MergiesView.newDate] = DateTime.Now.ToString("yyyy-MM-dd H:mm:ss");
         _mergeRow[MergiesView.id]      = -1;
     }
     _mergeRow[MergiesView.listCount] = (int)packetcountBox.Value;
     _mergeRow[MergiesView.docCount]  = (int)documentcountBox.Value;
     _mergeRow[MergiesView.repYear]   = int.Parse(yearBox.Text);
     _mergeRow[MergiesView.orgID]     = _org.idVal;
     _mergeRow[MergiesView.operName]  = _oper.nameVal;
     _mergeRow[MergiesView.editDate]  = DateTime.Now;
     _mergeRow.EndEdit();
 }
Example #5
0
        /// <summary>
        /// Производит сохранение данных в БД измененной сводной ведомости
        /// </summary>
        private void SaveEdited()
        {
            // скопировать данные с транспонированной таблицы в таблицу, соответствующую по структуре с таблицей БД
            MergeInfoTranspose.ConvertToMergeInfo(_svodTable, _mergeInfoTable);
            // просчитать суммы в созданной таблицйе
            MergeInfo.MathSums(_mergeInfoTable);
            // заполнение данными записи Сводной ведомости
            SetMergeData();
            // создание подключения к БД
            SQLiteConnection connection = new SQLiteConnection(_connection);
            // создание команд для вставки данных в БД
            SQLiteCommand mergeInsert    = MergiesView.UpdateCommand(_mergeRow);
            SQLiteCommand tableInsert    = MergeInfo.CreateUpdateCommand();
            SQLiteCommand fixdataReplace = new SQLiteCommand();
            // создание Адаптера для обработки таблицы
            SQLiteDataAdapter adapter = new SQLiteDataAdapter();

            adapter.UpdateCommand = tableInsert;
            // присвоение созданного подключения коммандам
            mergeInsert.Connection            =
                tableInsert.Connection        =
                    fixdataReplace.Connection = connection;
            // открытие соединения
            connection.Open();
            // начать транзакция
            SQLiteTransaction transaction = connection.BeginTransaction();

            // прикрепление транзакции
            mergeInsert.Transaction            =
                tableInsert.Transaction        =
                    fixdataReplace.Transaction = transaction;
            // выполнить обновление данных о сводной ведомости
            mergeInsert.ExecuteNonQuery();
            // выполнить вставку(обновление) данных о факте изменения сводной ведомости
            fixdataReplace.CommandText = MergiesView.GetReplaceFixDataText(_mergeRow, FixData.FixType.Edit);
            fixdataReplace.ExecuteNonQuery();
            // выполнить обносление данных по значениям выплат
            adapter.Update(_mergeInfoTable);
            // принять подключение
            transaction.Commit();
            // закрыть соединение
            connection.Close();
        }