Exemplo n.º 1
0
        private void dismissStripButton_Click(object sender, EventArgs e)
        {
            AnketaUvolitForm tmpform = new AnketaUvolitForm();

            tmpform.Owner = this;
            DialogResult dRes = tmpform.ShowDialog(this);

            if (dRes == DialogResult.OK)
            {
                List <DataRowView> persons      = GetSelectedRows();
                List <long>        personIdList = new List <long>();
                foreach (DataRowView rowItem in persons)
                {
                    personIdList.Add((long)rowItem[PersonView.id]);
                }

                PersonOrg.SetStateToUvolit(personIdList, _org.idVal, tmpform.DismissDate, _connection);
                foreach (DataRowView rowItem in persons)
                {
                    rowItem[PersonView.state]       = (int)PersonView.PersonState.Uvolen;
                    rowItem[PersonView.dismissDate] = tmpform.DismissDate;
                    rowItem[Check] = false;
                    rowItem.EndEdit();
                }
                _personBS.MoveFirst();
            }
        }
Exemplo n.º 2
0
        private void delOrgStripButton_Click(object sender, EventArgs e)
        {
            DataRowView curOrg = (DataRowView)_orgBS.Current;

            if (curOrg == null)
            {
                MainForm.ShowInfoMessage("Необходимо выбрать запись!", "Ошибка выбора организации");
                return;
            }

            long countPersonId = PersonOrg.GetCountPersonId((long)(_orgBS.Current as DataRowView)[Org.id], _connection);

            if (countPersonId != -1 && countPersonId > 0)
            {
                MainForm.ShowInfoMessage(
                    "Нельзя удалить организацию,\nтак как в данной организации имеются работники!", "Предупреждение");
                return;
            }

            DialogResult dRes = MainForm.ShowQuestionMessage("Вы действительно желаете удалить организацию?",
                                                             "Удаление организации");

            if (dRes == DialogResult.Yes)
            {
                _orgBS.Remove(curOrg);
                _orgAdapter.Update(_orgTable);
                //_orgAdapter.Fill(_orgTable);

                _dialogResult = DialogResult.OK;
            }
        }
        private void acceptButton_Click(object sender, EventArgs e)
        {
            List <long> checkedOrgList   = new List <long>();
            List <long> uncheckedOrgList = new List <long>();

            // разделить организации на отмеченные и неотмеченные
            foreach (DataRowView rowItem in _orgBS)
            {
                if ((bool)rowItem[Check])
                {
                    checkedOrgList.Add((long)rowItem[Org.id]);
                }
                else
                {
                    uncheckedOrgList.Add((long)rowItem[Org.id]);
                }
            }
            // сменить контейнеры хранения ID организаций
            long[] checkedOrgs   = checkedOrgList.ToArray();
            long[] uncheckedOrgs = uncheckedOrgList.ToArray();
            // получить ID Организаций из БД, за которыми сейчас закреплена Перcона
            long[] orgs = PersonOrg.GetOrgID((long)_personRow[PersonView.id], _connection);
            // объединить множества ID Организаций выбранных из БД и отмеченных пользователем
            orgs = (long[])orgs.Union(checkedOrgs).Distinct().ToArray();
            // получить пересечение множеств ID Организаций, к которым в общем закреплена Персона
            // и ID Организаций, с которых Персона должна быть откреплена
            long[] intersect = (long[])orgs.Intersect(uncheckedOrgs).Distinct().ToArray();
            // если множество пересечения больше множества, к которым в общем прикреплена Персона,
            // то вывести сообщение и прекратить выполнение сохранения в БД
            if (intersect.Length >= orgs.Length)
            {
                MainForm.ShowWarningMessage("Анкетные данные должны быть привязаны хотя бы к одной организации!",
                                            "Внимание");
                return;
            }
            // Вставить записи с отмеченными Организациями и выбранным Пользователем
            PersonOrg.InsertPersonOrg((long)_personRow[PersonView.id], checkedOrgs, _connection);
            // Удалить записи с неотмеченными Организациями и выбранным Пользователем
            PersonOrg.DeletePersonOrg((long)_personRow[PersonView.id], uncheckedOrgs, _connection);
            this.DialogResult = DialogResult.OK;
            this.Close();
        }
Exemplo n.º 4
0
        private void restoreStripButton_Click(object sender, EventArgs e)
        {
            List <DataRowView> persons      = GetSelectedRows();
            List <long>        personIdList = new List <long>();

            foreach (DataRowView rowItem in persons)
            {
                personIdList.Add((long)rowItem[PersonView.id]);
            }

            PersonOrg.SetStateToRabotaet(personIdList, _org.idVal, _connection);
            foreach (DataRowView rowItem in persons)
            {
                rowItem[PersonView.state]       = (int)PersonView.PersonState.Rabotaet;
                rowItem[PersonView.dismissDate] = DBNull.Value;
                rowItem[Check] = false;
                rowItem.EndEdit();
            }
            _personBS.MoveFirst();
        }
Exemplo n.º 5
0
        private void InsertDataToDB()
        {
            // создание соединения с БД
            SQLiteConnection connection = new SQLiteConnection(_connection);
            // создание команд для вставки
            SQLiteCommand insPerson    = PersonInfo.CreateInsertCommand();
            SQLiteCommand insRegadr    = Adress.CreateInsertCommand();
            SQLiteCommand insFactadr   = Adress.CreateInsertCommand();
            SQLiteCommand insBornadr   = Adress.CreateInsertCommand();
            SQLiteCommand insIDoc      = IDocInfo.CreateInsertCommand();
            SQLiteCommand insFixdata   = new SQLiteCommand();
            SQLiteCommand insPersonOrg = new SQLiteCommand();

            // присвоение подключения командам
            insPerson.Connection    = connection;
            insRegadr.Connection    = connection;
            insFactadr.Connection   = connection;
            insBornadr.Connection   = connection;
            insIDoc.Connection      = connection;
            insFixdata.Connection   = connection;
            insPersonOrg.Connection = connection;
            // заполнение команд параметрами
            SetRegAdressValues(insRegadr);
            SetFactAdressValues(insFactadr);
            SetBornplaceValues(insBornadr);
            SetDocValues(insIDoc);
            // открытие соединения
            connection.Open();
            // создание транзакции
            SQLiteTransaction transaction = connection.BeginTransaction();

            // присвоение транзакции командам
            insPersonOrg.Transaction               =
                insFixdata.Transaction             =
                    insFactadr.Transaction         =
                        insRegadr.Transaction      =
                            insBornadr.Transaction = insIDoc.Transaction = insPerson.Transaction = transaction;

            // выполнение запросов для вставки данных в смежные таблицы
            // вставка прописки и получение ID записи
            _regadrID = (long)insRegadr.ExecuteScalar();
            // если фактический адресс проживания отличается от прописки
            if (adressrealCheckBox.Checked)
            {
                // вставка адресса проживания и получение ID записи
                _factadrID = (long)insFactadr.ExecuteScalar();
            }
            else // если адресс прописки совпадает с адрессом фактического проживания
            {
                _factadrID = _regadrID;
            }
            // вставка места рождения и получение ID записи
            _bornadrID = (long)insBornadr.ExecuteScalar();
            // вставка документа и получение ID записи
            _idocID = (long)insIDoc.ExecuteScalar();
            // заполнение команды вставки Персоны параметрами,
            // в том числе определенными ID ранее вставленных записей адрессов и документа
            SetPersonValues(insPerson);
            // исполнение команды вставки Персоны
            _personID = (long)insPerson.ExecuteScalar();
            // выполнение запроса на фиксацию факта создания записи
            insFixdata.CommandText = FixData.GetReplaceText(PersonInfo.tablename, FixData.FixType.New, _personID,
                                                            _operName, DateTime.Now);
            insFixdata.ExecuteNonQuery();

            insPersonOrg.CommandText = PersonOrg.GetInsertPersonOrgText(_personID, _orgID);
            insPersonOrg.ExecuteScalar();
            // подтверждение транзакции
            insRegadr.Transaction.Commit();
            // закрытие соединения
            connection.Close();
        }
        private void AnketaPersonOrgForm_Load(object sender, EventArgs e)
        {
            // инициализация таблицы организаций
            _orgTable = Org.CreateTable();
            // добавление столбца для отметок (пометок)
            _orgTable.Columns.Add(Check, typeof(bool));
            _orgTable.Columns[Check].DefaultValue = false;
            // определение бинда
            _orgBS = new BindingSource();
            // привязка к источнику
            _orgBS.DataSource = _orgTable;
            // запрет на автогенерацию столбцов вьюшки
            this.orgView.AutoGenerateColumns = false;
            // привязка к источнику
            this.orgView.DataSource = _orgBS;
            this.orgView.Sorted    += new EventHandler(orgView_Sorted);
            // если оператор определен и соединение определено
            if (_operator != null && _connection != null)
            {
                // определение адаптера для считывания записей с данными об организациях
                string selectcommand;
                // если оператор - Администратор, то выбрать команду для выбора всех имеющихся организациях
                if (_operator.IsAdmin())
                {
                    selectcommand = Org.GetSelectCommandText();
                }
                else // иначе выбрать толькоте организации, к которым оператор имеет доступ для редактирования
                {
                    selectcommand = Org.GetSelectTextByOperatorAccess(_operator.idVal);
                }
                // инизаализация адаптера
                SQLiteDataAdapter adapter = new SQLiteDataAdapter(selectcommand, _connection);
                // заполнение таблицы данными из БД
                adapter.Fill(_orgTable);
                // получение списка ID организаций, в которых числиться выбранная Персона (физическое лицо)
                long[] orgIDArray = PersonOrg.GetOrgID((long)_personRow[PersonView.id], _connection);
                // отметить из выбранных Организаций те, к которым привязана Персона
                foreach (long id in orgIDArray)
                {
                    int i = _orgBS.Find(Org.id, id);
                    if (i >= 0)
                    {
                        DataRowView tmpRow = _orgBS[i] as DataRowView;
                        tmpRow[Check] = true;
                    }
                }
                // принять изменения (отметки)
                _orgBS.EndEdit();

                // выбрать организации в которых есть документы на человека
                _orgIds = Org.GetOrgsIdWithDocsForPerson((long)_personRow[PersonView.id], _connection);
                // сделать readOnly организации в которых есть документы
                DisableCheckBoxInView();

                // выделить струку с текущей Организацией (усьановить задний фон)
                this.MarkCurOrgRow();
                // отобразить на форме страховой номер и фио выбранной Персоны
                personDataLabel.Text = string.Format("{0}  {1}", _personRow[PersonView.socNumber],
                                                     _personRow[PersonView.fio]);
            }
        }
        public static void Initialize(WideWorldContext context)
        {
            context.Database.EnsureCreated();

            string insertSqlCmd;

            System.IO.StreamReader file;
            // Check for previously populated Countries table
            if (!context.Countries.Any())
            {
                // Insert Countries
                file = new System.IO.StreamReader(".\\Data\\InsertCountries.sql");
                while ((insertSqlCmd = file.ReadLine()) != null)
                {
                    context.RawSqlReturn.FromSql("set identity_insert Application.Countries ON; " + insertSqlCmd + "select 1 as Id;").ToList();
                }
                file.Close();
                context.RawSqlReturn.FromSql("set identity_insert Application.Countries OFF; select 1 as Id;").ToList();
                context.SaveChanges();
            }

            if (!context.StateProvinces.Any())
            {
                // Insert StateProvinces
                file = new System.IO.StreamReader(".\\Data\\InsertStateProvinces.sql");
                while ((insertSqlCmd = file.ReadLine()) != null)
                {
                    context.RawSqlReturn.FromSql("set identity_insert Application.StateProvinces ON; " + insertSqlCmd + "select 1 as Id;").ToList();
                }
                file.Close();
                context.RawSqlReturn.FromSql("set identity_insert Application.StateProvinces OFF; select 1 as Id;").ToList();
                context.SaveChanges();
            }

            if (!context.Cities.Any())
            {
                // Insert Cities
                file = new System.IO.StreamReader(".\\Data\\InsertCities.sql");
                while ((insertSqlCmd = file.ReadLine()) != null)
                {
                    context.RawSqlReturn.FromSql("set identity_insert Application.Cities ON; " + insertSqlCmd + "select 1 as Id;").ToList();
                }
                file.Close();
                context.RawSqlReturn.FromSql("set identity_insert Application.Cities OFF; select 1 as Id;").ToList();
                context.SaveChanges();
            }

            // Load Users using SQL INSERT commands
            // Check for previously populated Users table
            if (!context.Users.Any())
            {
                // Insert Users
                file = new System.IO.StreamReader(".\\Data\\InsertUsers.sql");
                while ((insertSqlCmd = file.ReadLine()) != null)
                {
                    context.RawSqlReturn.FromSql("set identity_insert Users ON; " + insertSqlCmd + "select 1 as Id;").ToList();
                }
                file.Close();
                context.RawSqlReturn.FromSql("set identity_insert Users OFF; select 1 as Id;").ToList();
                context.SaveChanges();
            }

            // Load People using SQL INSERT commands
            // Check for previously populated People table
            if (!context.People.Any())
            {
                // Insert People
                file = new System.IO.StreamReader(".\\Data\\InsertPeople.sql");
                while ((insertSqlCmd = file.ReadLine()) != null)
                {
                    context.RawSqlReturn.FromSql("set identity_insert People ON; " + insertSqlCmd + "select 1 as Id;").ToList();
                }
                file.Close();
                context.RawSqlReturn.FromSql("set identity_insert People OFF; select 1 as Id;").ToList();
                context.SaveChanges();
            }

            // Load OrgRoles using SQL INSERT commands
            // Check for previously populated OrgRoles table
            if (!context.OrgRoles.Any())
            {
                // Insert OrRoles
                file = new System.IO.StreamReader(".\\Data\\InsertOrgRoles.sql");
                while ((insertSqlCmd = file.ReadLine()) != null)
                {
                    context.RawSqlReturn.FromSql("set identity_insert OrgRoles ON; " + insertSqlCmd + "select 1 as Id;").ToList();
                }
                file.Close();
                context.RawSqlReturn.FromSql("set identity_insert OrgRoles OFF; select 1 as Id;").ToList();
                context.SaveChanges();
            }

            // Load Organizations using SQL INSERT commands
            // Check for previously populated Organizations table
            if (!context.Organizations.Any())
            {
                // Insert Organizations
                file = new System.IO.StreamReader(".\\Data\\InsertOrganizations.sql");
                while ((insertSqlCmd = file.ReadLine()) != null)
                {
                    context.RawSqlReturn.FromSql("set identity_insert Organizations ON; " + insertSqlCmd + "select 1 as Id;").ToList();
                }
                file.Close();
                context.RawSqlReturn.FromSql("set identity_insert Organizations OFF; select 1 as Id;").ToList();
                context.SaveChanges();
            }

            // Load OrgLocations using SQL INSERT commands
            // Check for previously populated OrgLocations table
            if (!context.OrgLocations.Any())
            {
                // Insert OrgLocations
                file = new System.IO.StreamReader(".\\Data\\InsertOrgLocations.sql");
                while ((insertSqlCmd = file.ReadLine()) != null)
                {
                    context.RawSqlReturn.FromSql("set identity_insert OrgLocations ON; " + insertSqlCmd + "select 1 as Id;").ToList();
                }
                file.Close();
                context.RawSqlReturn.FromSql("set identity_insert OrgLocations OFF; select 1 as Id;").ToList();
                context.SaveChanges();
            }

            if (!context.PeopleOrgs.Any())
            {
                PersonOrg[] peopleOrgs = new PersonOrg[] {
                    new PersonOrg {
                        PersonId = 1017, OrgId = 934, LastEditedBy = 1
                    },
                    new PersonOrg {
                        PersonId = 1017, OrgId = 1934, LastEditedBy = 1
                    },
                    new PersonOrg {
                        PersonId = 1017, OrgId = 642, LastEditedBy = 1
                    },
                    new PersonOrg {
                        PersonId = 2147, OrgId = 1934, LastEditedBy = 1
                    },
                    new PersonOrg {
                        PersonId = 2147, OrgId = 642, LastEditedBy = 1
                    },
                    new PersonOrg {
                        PersonId = 2147, OrgId = 302, LastEditedBy = 1
                    },
                    new PersonOrg {
                        PersonId = 3044, OrgId = 642, LastEditedBy = 1
                    },
                    new PersonOrg {
                        PersonId = 3044, OrgId = 302, LastEditedBy = 1
                    },
                    new PersonOrg {
                        PersonId = 3044, OrgId = 930, LastEditedBy = 1
                    }
                };

                foreach (PersonOrg po in peopleOrgs)
                {
                    context.PeopleOrgs.Add(po);
                }
                context.SaveChanges();
            }
        }