Beispiel #1
0
 private void ExecuteLoginCommand(object param)
 {
     try
     {
         if (de.Authentification(phoneNumerText, passwordText))
         {
             if (phoneNumerText == "Admin")
             {
                 Menu mainmenu = new Menu(phoneNumerText);
                 mainmenu.Show();
             }
             else
             {
                 UserMenu usermenu = new UserMenu(phoneNumerText);
                 usermenu.Show();
             }
         }
         else
         {
             MyMsgBox msg = new MyMsgBox("Пользователь с такими данными не найден!");
             msg.Show();
             return;
         }
         VisibilityLol = System.Windows.Visibility.Hidden;
     }
     catch
     {
         MyMsgBox msg = new MyMsgBox("Нету подключения к сервису!");
         msg.Show();
     }
 }
 private void SaveButton_Click(object sender, EventArgs e)
 {
     if (Save())
     {
         MyMsgBox.showInfo("Сохранено");
     }
 }
        /*
         * Для получения инфы по командировке UPDTRIP c перв.ключом == pk_UPDTRIP, её редактирования и удаления
         * **/
        public void SetTrip(decimal pkUpdtrip)
        {
            try
            {
                trip = model.UPDTRIP.Find(pkUpdtrip);
                if (trip == null)
                {
                    throw new Exception("Командировки с таким ключом не найдено!");
                }
            }
            catch (Exception except)
            {
                MyMsgBox.showError("Не удалось найти подробную информацию");
                Console.Error.WriteLine(except.Message);
                return;
            }

            SetWorkers(trip.PERSONCARD_IN_TRIP);
            foreach (TRIP_ORG org in trip.TRIP_ORG)
            {
                AddOrgTrip(org);
            }

            if (trip.PRIKAZ != null)
            {
                NumPrikazTextBox.Text = trip.PRIKAZ.NUMDOC;
                DatePrikaz.Value      = trip.PRIKAZ.CREATEDATE ?? DateTime.Now;
                IsProject.Checked     = trip.PRIKAZ.ISPROJECT.Equals("1");

                // По-умолчанию для режима редактирования
                GenNumPrikaz.Checked = false;
                try
                {
                    // Если мы сами генерировали
                    GenNumPrikaz.Checked = Decimal.Parse(trip.PRIKAZ.NUMDOC) == trip.PRIKAZ.PK_PRIKAZ;
                }
                catch (Exception)
                {
                    // Забить
                }
                GenNumPrikaz_CheckedChanged(null, null);
            }

            ReasonTextBox.Text = trip.OSNOVANIE ?? "";

            if (trip.OSNOVANIEDATE != null)
            {
                isDateReasonCheckBox.Checked = true;
                isDateReasonCheckBox_CheckedChanged(null, null);
                DateReason.Value = (DateTime)trip.OSNOVANIEDATE;
            }
            else
            {
                isDateReasonCheckBox.Checked = false;
            }
            NoteTextBox.Text = trip.NOTE ?? "";
        }
 public bool checkDateOnNull(DateTime?date, string nameDate)
 {
     if (date == null)
     {
         MyMsgBox.showError($"{nameDate} не установлена");
         return(false);
     }
     return(true);
 }
        private void button3_Click(object sender, EventArgs e)
        {
            pERSONCARDBindingSource.Clear();
            var surname = SurNameTextBox.Text;
            var name    = NameTextBox.Text;
            var midname = MidNameTextBox.Text;
            var tabNum  = TabNumTextBox.Text;

            if (string.IsNullOrWhiteSpace(surname) && string.IsNullOrWhiteSpace(name) && string.IsNullOrWhiteSpace(midname) && string.IsNullOrWhiteSpace(tabNum))
            {
                MyMsgBox.showError("Заполните хотя бы 1 поле");
                return;
            }

            IQueryable <PERSONCARD> query = model.PERSONCARD;

            if (!string.IsNullOrWhiteSpace(surname))
            {
                query = query.Where(worker => worker.SURNAME == surname);
            }
            if (!string.IsNullOrWhiteSpace(name))
            {
                query = query.Where(worker => worker.NAME == name);
            }
            if (!string.IsNullOrWhiteSpace(midname))
            {
                query = query.Where(worker => worker.MIDDLENAME == midname);
            }
            if (!string.IsNullOrWhiteSpace(tabNum))
            {
                decimal tabNumInt;
                try {
                    tabNumInt = Decimal.Parse(tabNum);
                    Console.WriteLine(tabNumInt);
                }catch (Exception expr)
                {
                    MyMsgBox.showError("Табельный номер должен содержать только числа");
                    Console.WriteLine(expr.Message);
                    return;
                }
                query = query.Where(worker => worker.TABEL_NUM == tabNumInt);
            }

            if (query.Count() == 0)
            {
                MyMsgBox.showInfo("Ничего не найдено");
                return;
            }
            result = new List <PERSONCARD>(query.Count());
            foreach (PERSONCARD worker in query)
            {
                result.Add(worker);
                pERSONCARDBindingSource.Add(worker);
            }
        }
 public bool checkString(string str, string msg = "")
 {
     if (string.IsNullOrWhiteSpace(str))
     {
         if (msg != "")
         {
             MyMsgBox.showError(msg);
         }
         return(false);
     }
     return(true);
 }
 public bool checkedDates(DateTime?start, DateTime?finish, bool showMsg = true)
 {
     if (!checkDateOnNull(start, "Дата начала") || !checkDateOnNull(finish, "Дата окончания") || ((DateTime)start).CompareTo(finish) > 0)
     {
         if (showMsg && ((DateTime)start).CompareTo(finish) > 0)
         {
             MyMsgBox.showError("Дата начала не может быть позже даты окончания");
         }
         return(false);
     }
     return(true);
 }
 /*
  * Для добавления командировки из личной карточки сотрудника
  * **/
 public void SetOneWorker(decimal pkPerson)
 {
     // Нужно найти именно текущей моделью
     try
     {
         SetWorkers(new List <PERSONCARD> {
             model.PERSONCARD.Find(pkPerson)
         });
     }
     catch (Exception exception)
     {
         Console.Error.WriteLine(exception.Message);
         MyMsgBox.showError("Не удалось открыть форму. Скорее всего, такого работника нет в базе");
     }
 }
Beispiel #9
0
        private void closeBtn_Click(object sender, EventArgs e)
        {
            if (MsgBox == null)
            {
                MsgBox = new MyMsgBox();
                bool wasVisible = _ct_save_current_state.Visible;

                foreach (Control c in op_container.Controls)
                {
                    c.Visible = false;
                }

                op_container.Controls.Add(MsgBox);
                MsgBox.Left = (op_container.Width - MsgBox.Width) / 2;
                MsgBox.Top  = (op_container.Height - MsgBox.Height) / 2;

                new Thread(new ThreadStart(() => {
                    while (MsgBox.res == 0)
                    {
                        ;
                    }

                    if (MsgBox.res == 1)
                    {
                        Environment.Exit(0);
                    }
                    else
                    {
                        MsgBox.Dispose();
                        MsgBox = null;
                        foreach (Control item in op_container.Controls)
                        {
                            if (item != _ct_save_current_state)
                            {
                                item.Visible = true;
                            }
                            else if (wasVisible)
                            {
                                _ct_save_current_state.Visible = true;
                            }
                        }
                    }
                }))
                {
                    IsBackground = true
                }.Start();
            }
        }
Beispiel #10
0
        public static void Notify(this string t)
        {
            if (Properties.Settings.Default.UseSpeakInsteadOfMsgBox)
            {
                t.Say();
            }
            else
            {
                Debug.WriteLine("----------------***************************************-----------------------");
                Debug.WriteLine(t);
                Debug.WriteLine("----------------***************************************-----------------------");

                MyMsgBox msg = new MyMsgBox("Information", t, t, MsgMode.Info);
                msg.ShowDialog();
            }
        }
Beispiel #11
0
        private void ExecuteConfirmCommand(object param)
        {
            var users = de.GetUserList();

            for (int i = 0; i < users.Count; i++)
            {
                if (users[i].phone_number == "Admin" && users[i].password == PasswordText)
                {
                    if (choice == false)
                    {
                        VisibilityLol = System.Windows.Visibility.Hidden;

                        de.PassBook(book_id);
                        MyMsgBox msg = new MyMsgBox("Книги сдана!");
                        msg.Show();
                        return;
                    }
                    if (choice == true)
                    {
                        for (int j = 0; j < users.Count; j++)
                        {
                            if (users[j].user_id == user_id)
                            {
                                VisibilityLol = System.Windows.Visibility.Hidden;

                                Issue issue = new Issue(users[j].phone_number, book_id);
                                issue.Show();

                                MyMsgBox msg = new MyMsgBox("Книга выдана!");
                                msg.Show();
                                return;
                            }
                        }
                    }
                }
                if (i == users.Count() - 1)
                {
                    MyMsgBox msg1 = new MyMsgBox("Пароль введен неверно!");
                    msg1.Show();
                    break;
                }
            }

            // НЕ РАБОТАЕТ
        }
        /*
         * Для открытия командировки по приказу
         * **/
        public void SetPrikaz(long selectedPrikazPkPrikaz)
        {
            UPDTRIP trip = null;

            try{
                trip = model.UPDTRIP.First(t => t.PK_PRIKAZ == selectedPrikazPkPrikaz);
                if (trip == null)
                {
                    throw new NullReferenceException("С этим приказом не связано ни одной командировки");
                }
            }
            catch (Exception exception)
            {
                MyMsgBox.showError(exception.Message);
                return;
            }
            SetTrip(trip.PK_TRIP);
        }
        private void DeleteWorkerButton_Click(object sender, EventArgs e)
        {
            var rows = WorkersGridView.SelectedRows;

            if (rows.Count < 1)
            {
                MyMsgBox.showInfo("Вы не выделили строку");
                return;
            }
            if (MyMsgBox.showAsk("Вы точно хотите удалить?") == false)
            {
                return;
            }

            for (int i = 0; i < rows.Count; i++)
            {
                WorkersGridView.Rows.Remove(rows[i]);
            }
        }
Beispiel #14
0
        private void ExecuteRegisterCommand(object param)
        {
            var res = de.GetUserList();

            if (res.Where(x => x.phone_number == PhoneNumber).Count() == 1)
            {
                MyMsgBox msg = new MyMsgBox("Пользователь с таким номером уже есть!");
                msg.Show();

                return;
            }
            else
            {
                de.AddUser(LastName, Name, MiddleName, PhoneNumber, Adress);

                VisibilityLol = System.Windows.Visibility.Hidden;
                MyMsgBox msg = new MyMsgBox("Пользователь зарегистрирован!");
                msg.Show();
            }
        }
Beispiel #15
0
        private void ExecuteSearchCommand(object param)
        {
            var res = de.GetUserList();

            for (int i = 0; i < res.Count; i++)
            {
                if (res[i].phone_number == PhoneNumber)
                {
                    SearchUserPlate sup = new SearchUserPlate(PhoneNumber);
                    sup.Show();
                    VisibilityLol = System.Windows.Visibility.Hidden;


                    return;
                }
            }
            MyMsgBox msg = new MyMsgBox("Пользователь с таким номером не найден!");

            msg.Show();
            //MessageBox.Show("Пользователь с таким номером не найден!");
        }
        private void button1_Click(object sender, EventArgs e)
        {
            var rows = dataGridView1.SelectedRows;

            if (rows.Count == 0)
            {
                MyMsgBox.showError("Ничего не выделено");
                return;
            }
            List <PERSONCARD> selected = new List <PERSONCARD>();

            foreach (DataGridViewRow row in rows)
            {
                selected.Add(result[row.Index]);
            }

            komandirovkaForm.SetWorkers(selected);
            MyMsgBox.showInfo("Добавлено!");
            this.Close();
            komandirovkaForm.Show();
        }
 private void DeleteButton_Click(object sender, EventArgs e)
 {
     if (trip == null)
     {
         MyMsgBox.showError("Нельзя удалить ещё не добавленную командировку");
         return;
     }
     else if (MyMsgBox.showAsk("Вы уверены, что хотите удалить командировку ?"))
     {
         model.UPDTRIP.Remove(trip);
         try {
             model.SaveChanges();
             MyMsgBox.showInfo("Удалено!");
         }
         catch (Exception exc)
         {
             Console.Error.WriteLine(exc);
             MyMsgBox.showError("Ошибка при удалении");
         }
     }
 }
        /*
         * Для добавления командировки из личной карточки сотрудника
         * **/
        public void SetOneWorkerByTabelNumber(decimal tabNumber)
        {
            PERSONCARD personcard;

            try
            {
                personcard = model.PERSONCARD.First(p => p.TABEL_NUM == tabNumber);
                if (personcard == null)
                {
                    throw new NullReferenceException("personcard == null");
                }
            }
            catch (Exception exception)
            {
                Console.Error.WriteLine(exception.Message);
                MyMsgBox.showError("Не удалось открыть форму. Скорее всего, такого работника нет в базе");
                return;
            }
            SetWorkers(new List <PERSONCARD> {
                personcard
            });
        }
Beispiel #19
0
        private void ExecuteSearchCommand(object param)
        {
            var res = de.GetUserList();

            for (int i = 0; i < res.Count; i++)
            {
                if (res[i].phone_number == PhoneNumber)
                {
                    VisibilityLol = System.Windows.Visibility.Hidden;

                    Password pass = new Password(true, bi, res[i].user_id);
                    pass.Show();
                    break;
                }
                else
                {
                    if (i == res.Count() - 1)
                    {
                        MyMsgBox msg = new MyMsgBox("Пользователь с таким номером не найден!");
                        msg.Show();
                    }
                }
            }
        }
        public bool checkWorker(PERSONCARD_IN_TRIP worker)
        {
            if (worker == null || worker.PERSONCARD == null)
            {
                return(false);
            }
            if (!checkedDates(worker.STARTDATE, worker.ENDDATE, false))
            {
                MyMsgBox.showError($"Для рабоника №{worker.TABEL_NUM} некорректные даты");
                return(false);
            }

            if (!checkString(worker.FINANCE, $"Для рабоника №{worker.TABEL_NUM} некорректный источник финансов"))
            {
                return(false);
            }

            if (!checkString(worker.GOAL, $"Для рабоника №{worker.TABEL_NUM} некорректная цель"))
            {
                return(false);
            }

            return(true);
        }
Beispiel #21
0
        private void ExecuteConfirmCommand(object param)
        {
            var users = de.GetUserList();

            for (int i = 0; i < users.Count; i++)
            {
                if (users[i].phone_number == "Admin" && users[i].password == Password)
                {
                    VisibilityLol = System.Windows.Visibility.Hidden;

                    de.AddBook(title, author, year, genre);
                    MyMsgBox msg = new MyMsgBox("Книга добавлена!");
                    msg.Show();
                    return;
                }

                if (i == users.Count() - 1)
                {
                    MyMsgBox msg1 = new MyMsgBox("Пароль введен неверно!");
                    msg1.Show();
                    break;
                }
            }
        }
Beispiel #22
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


        public Issue_ViewModel(String PhoneNumber, int bookid)
        {
            visibilitylol = System.Windows.Visibility.Visible;

            var users = de.GetUserList();


            for (int i = 0; i < users.Count; i++)
            {
                if (users[i].phone_number == PhoneNumber)
                {
                    de.IssueBook(users[i].user_id, bookid, DateTime.Now.ToString());
                    FIO         = users[i].last_name + " " + users[i].name + " " + users[i].middle_name;
                    PhoneNumber = users[i].phone_number;
                    Adress      = users[i].adress;

                    MyMsgBox msg = new MyMsgBox("Книга выдана!");
                }
            }

            var res = new ObservableCollection <ShowUnavailableBooks_cs>(de.ShowUsersBooks(PhoneNumber));

            Collection = res;
        }
Beispiel #23
0
        /// <summary>
        /// Display the result info in the sql query result panel
        /// like sqlserver management studio
        /// </summary>
        /// <param name="t"></param>
        //public static void NotifyInfoInResultPanel(this string t)
        //{

        //}

        public static void Notify(this Exception ex)
        {
            if (Properties.Settings.Default.UseSpeakInsteadOfMsgBox)
            {
                ex.Message.Say();
            }
            else
            {
                Debug.WriteLine("----------------***************************************-----------------------");
                Debug.WriteLine(ex.Message);
                Debug.WriteLine("----------------***************************************-----------------------");

                MyMsgBox msg = null;
                if (ex.InnerException != null)
                {
                    msg = new MyMsgBox("Information", ex.Message, ex.InnerException.Message, MsgMode.Info);
                }
                else
                {
                    msg = new MyMsgBox("Information", ex.Message, "", MsgMode.Info);
                }
                msg.ShowDialog();
            }
        }
Beispiel #24
0
        private void SaveButton_Click(object sender, EventArgs e)
        {
            var country = CountryComboBox.SelectedValue;

            if (country == null)
            {
                MyMsgBox.showError("Страна не выбрана!");
                return;
            }

            var city = CityTextBox.Text;

            if (city == null)
            {
                MyMsgBox.showError("Введите город");
                return;
            }
            var org = OrganizationTextBox.Text;

            if (string.IsNullOrEmpty(org))
            {
                MyMsgBox.showError("Введите название организации");
                return;
            }
            var places = model.PLACE_TRIP;

            //Вдруг такое уже есть
            PLACE_TRIP neededPlace = null;

            foreach (PLACE_TRIP place in places)
            {
                if (String.Compare(place.City, city, StringComparison.OrdinalIgnoreCase) == 0)
                {
                    neededPlace = place;
                    break;
                }
            }

            if (neededPlace == null)
            {
                PLACE_TRIP newPlace = new PLACE_TRIP();
                string     test     = country as string;
                newPlace.Country = test;
                newPlace.City    = city;
                newPlace.createName();
                model.PLACE_TRIP.Add(newPlace);
                model.SaveChanges();
                neededPlace = newPlace;
                Console.WriteLine($"id = {neededPlace.PK_PLACE_TRIP}");
                //neededPlace = model.PLACE_TRIP.FirstOrDefault(place => place.NAME == newPlace.NAME);
            }

            TRIP_ORG trip_org = model.TRIP_ORG.Create();

            trip_org.NAME       = org;
            trip_org.PLACE_TRIP = neededPlace;
            model.TRIP_ORG.Add(trip_org);
            model.SaveChanges();
            komandirovkaForm.UpdatePlaces();
            Console.WriteLine($"id org = {trip_org.PK_TRIP_ORG}");
            komandirovkaForm.AddOrgTrip(trip_org);
            MyMsgBox.showInfo("Добавлено!");
            this.Close();
            komandirovkaForm.Show();
        }
Beispiel #25
0
        internal static void Warning(this string t)
        {
            MyMsgBox msg = new MyMsgBox("Warning", t, t, MsgMode.Warning);

            msg.ShowDialog();
        }
Beispiel #26
0
        private void button1_Click(object sender, EventArgs e)
        {
            MyMsgBox mymsgbox = new MyMsgBox();

            mymsgbox.ShowMyMsgBox("Test Message1!!");
        }
        /*
         * Сохранение
         *
         * */
        public bool Save()
        {
            if (trip == null)
            {
                trip = new UPDTRIP();
            }

            DateTime allStartDate = DateTime.Now, allFinishDate = DateTime.Now;
            String   allPurpose = "", allFinance = "";

            if (isSameDatesCheckBox.Checked)
            {
                allStartDate  = startDate.Value;
                allFinishDate = finishDate.Value;
                if (!checkedDates(allStartDate, allFinishDate))
                {
                    return(false);
                }
            }

            if (PurposeCheckBox.Checked)
            {
                allPurpose = PurposeTextBox.Text;
                if (!checkString(allPurpose, "Цель - пустая строка"))
                {
                    return(false);
                }
            }

            if (FinanceCheckBox.Checked)
            {
                allFinance = FinanceTextBox.Text;
                if (!checkString(allFinance, "Источник финансов - пустая строка"))
                {
                    return(false);
                }
            }

            String   numPrikaz, reason, note;
            DateTime datePrikaz;

            // Основание
            reason = ReasonTextBox.Text;
            if (!checkString(reason, "Основание - пустая строка"))
            {
                return(false);
            }
            trip.OSNOVANIE = reason;
            if (isDateReasonCheckBox.Checked)
            {
                if (checkDateOnNull(DateReason.Value, "Дата основания"))
                {
                    trip.OSNOVANIEDATE = DateReason.Value;
                }
                else
                {
                    return(false);
                }
            }

            // Примечание
            note      = NoteTextBox.Text;
            trip.NOTE = note;

            // Организации
            List <TRIP_ORG> addedOrgs = new List <TRIP_ORG>();
            int             countOrgs = 0;

            foreach (DataGridViewRow row in placesView.Rows)
            {
                decimal pk_org;
                try
                {
                    if ((row.Cells[2] as DataGridViewComboBoxCell).Value == null)
                    {
                        throw new Exception();
                    }
                    pk_org = (Decimal)(row.Cells[2] as DataGridViewComboBoxCell).Value;
                }
                catch (Exception)
                {
                    //Игнорируем
                    continue;
                }

                if (pk_org == 0)
                {
                    Console.WriteLine("пк орг = 0");
                    continue;
                }

                TRIP_ORG org = model.TRIP_ORG.Find(pk_org);

                if (org == null)
                {
                    Console.WriteLine("орг = 0, но пкОрг != 0");
                    continue;
                }
                addedOrgs.Add(org);
                if (trip.TRIP_ORG.Contains(org) == false)
                {
                    trip.TRIP_ORG.Add(org);
                }
                countOrgs++;
            }
            if (countOrgs == 0)
            {
                MyMsgBox.showError("Добавьте хотя бы 1 организацию");
                return(false);
            }
            DeleteFromList <TRIP_ORG>(addedOrgs, trip.TRIP_ORG);

            //Люди
            //Костылёк
            PERSONCARD workerForAddInPrikaz        = null;
            List <PERSONCARD_IN_TRIP> addedWorkers = new List <PERSONCARD_IN_TRIP>();

            foreach (PERSONCARD_IN_TRIP worker in pERSONCARDINTRIPBindingSource)
            {
                if (isSameDatesCheckBox.Checked)
                {
                    worker.STARTDATE = allStartDate;
                    worker.ENDDATE   = allFinishDate;
                }
                if (PurposeCheckBox.Checked)
                {
                    worker.GOAL = allPurpose;
                }
                if (FinanceCheckBox.Checked)
                {
                    worker.FINANCE = allFinance;
                }
                if (checkWorker(worker))
                {
                    if (workerForAddInPrikaz == null)
                    {
                        workerForAddInPrikaz = worker.PERSONCARD;
                    }
                    addedWorkers.Add(worker);
                    if (trip.PERSONCARD_IN_TRIP.Contains <PERSONCARD_IN_TRIP>(worker) == false)
                    {
                        trip.PERSONCARD_IN_TRIP.Add(worker);
                    }
                }
                else
                {
                    if (!MyMsgBox.showAsk("Найдены работники с невалидными данными. Пропустить их(ДА) или остановить сохранение(НЕТ)"))
                    {
                        return(false);
                    }
                }
            }
            if (workerForAddInPrikaz == null)
            {
                MyMsgBox.showError("Добавьте хотя бы 1 человека");
                return(false);
            }
            DeleteFromList <PERSONCARD_IN_TRIP>(addedWorkers, trip.PERSONCARD_IN_TRIP);

            //Приказ
            datePrikaz = DatePrikaz.Value;
            if (trip.PRIKAZ == null)
            {
                trip.PRIKAZ = new PRIKAZ();
                trip.PRIKAZ.PK_TYPE_PRIKAZ = 2;
                trip.PRIKAZ.PK_OUR_ORG     = 1;
                if (trip.PERSONCARD_IN_TRIP.Count > 1)
                {
                    trip.PRIKAZ.OKUD = "0301023";
                }
                else
                {
                    trip.PRIKAZ.OKUD = "0301022";
                }
                trip.PRIKAZ.OKPO = model.OUR_ORG.First().OKPO ?? "";
            }
            //Костылёк
            if (workerForAddInPrikaz != null)
            {
                trip.PRIKAZ.PK_PERSONCARD = workerForAddInPrikaz.PK_PERSONCARD;
            }
            if (checkDateOnNull(DatePrikaz.Value, "Дата приказа"))
            {
                trip.PRIKAZ.CREATEDATE = datePrikaz;
            }
            else
            {
                return(false);
            }
            trip.PRIKAZ.ISPROJECT = IsProject.Checked ? "1" : "0";
            if (GenNumPrikaz.Checked)
            {
                if (trip.PRIKAZ.PK_PRIKAZ != 0)
                {
                    numPrikaz = trip.PRIKAZ.PK_PRIKAZ.ToString();
                }
                else
                {
                    long sequenceGen = model.Database.SqlQuery <long>("Select ADMIN.prikaz_seq.NEXTVAL from dual")
                                       .SingleOrDefault();
                    numPrikaz             = sequenceGen.ToString();
                    trip.PRIKAZ.PK_PRIKAZ = sequenceGen;
                }
            }
            else
            {
                numPrikaz = NumPrikazTextBox.Text;
            }

            if (!checkString(numPrikaz, "Номер приказа - пустая строка"))
            {
                return(false);
            }
            trip.PRIKAZ.NUMDOC = numPrikaz;

            //Новая или старая
            if (trip.PK_TRIP != 0)
            {
                model.Entry <UPDTRIP>(trip).State = EntityState.Modified;
            }
            else
            {
                model.UPDTRIP.Add(trip);
            }

            try {
                model.SaveChanges();
            }
            catch (Exception except)
            {
                Console.Error.WriteLine(except.Message);
                return(false);
            }
            return(true);
        }
        private void ExportButton_Click(object sender, EventArgs e)
        {
            Application exApp;

            try
            {
                exApp = new Application();
            }
            catch (Exception)
            {
                MyMsgBox.showError("Не удалось открыть Excel для заполения данных.");
                return;
            }
            string PATH_TO_T9  = "templates\\T-9.xls";
            string PATH_TO_T9A = "templates\\T-9A.xls";

            if (!Directory.Exists("templates"))
            {
                Directory.CreateDirectory("templates");
            }
            // спешл фор Астахова
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
            // try
            // {
            //     // спешл фор 7 винда
            //     //if(Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "ProductName", "").ToString().Contains("7"))
            //         System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
            // }catch(Exception){}
            try
            {
                if (!File.Exists(PATH_TO_T9))
                {
                    new WebClient().DownloadFile(new Uri("https://github.com/pi62/templates/raw/master/T-9.xls"),
                                                 PATH_TO_T9);
                }

                if (!File.Exists(PATH_TO_T9A))
                {
                    new WebClient().DownloadFile(new Uri("https://github.com/pi62/templates/raw/master/T-9A.xls"),
                                                 PATH_TO_T9A);
                }
            }
            catch (Exception)
            {
                MyMsgBox.showError("Не удалось скачать шаблоны для заполнения.");
                return;
            }

            var saveFileDialog1 = new SaveFileDialog();

            saveFileDialog1.InitialDirectory = Directory.GetCurrentDirectory();

            saveFileDialog1.DefaultExt = "xls";
            saveFileDialog1.ShowDialog();
            var savePath = saveFileDialog1.FileName;

            if (String.IsNullOrWhiteSpace(savePath))
            {
                return;
            }
            if (!Save() || trip == null)
            {
                MyMsgBox.showError("Не удалось сохранить командировку. Экспорт невозможен. Проверьте данные и попробуйте ещё раз");
                return;
            }
            Workbook excelappworkbooks;

            try {
                if (trip.PERSONCARD_IN_TRIP.Count > 1)
                {
                    excelappworkbooks = exApp.Workbooks.Open(Directory.GetCurrentDirectory() + "\\" + PATH_TO_T9A, Type.Missing, false, Type.Missing, Type.Missing,
                                                             Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                }
                else
                {
                    excelappworkbooks = exApp.Workbooks.Open(Directory.GetCurrentDirectory() + "\\" + PATH_TO_T9, Type.Missing, false, Type.Missing, Type.Missing,
                                                             Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                }
            } catch (Exception except)
            {
                Console.Error.WriteLine(except.Message);
                MyMsgBox.showError("Не удалось открыть шаблон");
                return;
            }
            if (excelappworkbooks == null)
            {
                MyMsgBox.showError("Не удалось открыть шаблон");
                return;
            }
            try {
                if (trip.PERSONCARD_IN_TRIP.Count > 1)
                {
                    Worksheet excelsheets = excelappworkbooks.Worksheets.Item[1];
                    OUR_ORG   org         = model.OUR_ORG.First <OUR_ORG>();
                    if (trip.PRIKAZ.ISPROJECT.Equals("1"))
                    {
                        excelsheets.Cells[9, 34].Value  = "ПРОЕКТ ПРИКАЗА";
                        excelsheets.Cells[10, 34].Value = "(распоряжения)";
                    }
                    else
                    {
                        excelsheets.Cells[9, 34].Value  = "ПРИКАЗ";
                        excelsheets.Cells[10, 34].Value = "(распоряжение)";
                    }
                    excelsheets.Cells[5, 1].Value = org.NAME;
                    excelsheets.Cells[5, 93]      = org.OKPO;
                    excelsheets.Cells[9, 61]      = trip.PRIKAZ.NUMDOC;
                    if (trip.PRIKAZ.CREATEDATE != null)
                    {
                        excelsheets.Cells[9, 80] = trip.PRIKAZ.CREATEDATE.Value.ToString("dd.MM.yyyy");
                    }
                    int i = 0;
                    foreach (PERSONCARD_IN_TRIP person in trip.PERSONCARD_IN_TRIP)
                    {
                        if (i == 3)
                        {
                            MyMsgBox.showError("В одном приказе не больше 3х человек");
                            break;
                        }
                        excelsheets.Cells[15, 44 + 22 * i].Value = person.SURNAME + " " + person.NAME + " " + person.MIDDLENAME;
                        excelsheets.Cells[16, 44 + 22 * i].Value = person.TABEL_NUM;
                        if (person.PODRAZDELORG != null)
                        {
                            excelsheets.Cells[17, 44 + 22 * i].Value = person.PODRAZDELORG.NAME;
                        }
                        excelsheets.Cells[18, 44 + 22 * i].Value = person.JOB_POS.NAME;
                        excelsheets.Cells[21, 44 + 22 * i].Value = person.STARTDATE.Value.ToString("dd.MM.yyyy");
                        excelsheets.Cells[22, 44 + 22 * i].Value = person.ENDDATE.Value.ToString("dd.MM.yyyy");
                        excelsheets.Cells[23, 44 + 22 * i].Value = (int)person.ENDDATE.Value.Subtract(person.STARTDATE.Value).TotalDays;
                        excelsheets.Cells[24, 44 + 22 * i].Value = person.GOAL;
                        excelsheets.Cells[25, 44 + 22 * i].Value = person.FINANCE;
                        i++;
                    }

                    foreach (TRIP_ORG tripOrg in trip.TRIP_ORG)
                    {
                        excelsheets.Cells[19, 44].Value += tripOrg.PLACE_TRIP.NAME;
                        excelsheets.Cells[19, 44].Value += ", " + tripOrg.NAME;
                        excelsheets.Cells[19, 44].Value += ";  ";
                    }

                    if (trip.OSNOVANIEDATE != null)
                    {
                        excelsheets.Cells[30, 36].Value = trip.OSNOVANIE + " от " + trip.OSNOVANIEDATE.Value.ToString("dd.MM.yyyy");
                    }
                    else
                    {
                        excelsheets.Cells[30, 36].Value = trip.OSNOVANIE;
                    }
                }
                else
                {
                    Worksheet excelsheets = excelappworkbooks.Worksheets.Item[1];
                    OUR_ORG   org         = model.OUR_ORG.First();
                    if (trip.PRIKAZ.ISPROJECT.Equals("1"))
                    {
                        excelsheets.Cells[13, 19].Value = "ПРОЕКТ ПРИКАЗА";
                        excelsheets.Cells[14, 19].Value = "(распоряжения)";
                    }
                    else
                    {
                        excelsheets.Cells[13, 19].Value = "ПРИКАЗ";
                        excelsheets.Cells[14, 19].Value = "(распоряжение)";
                    }

                    excelsheets.Cells[7, 1].Value = org.NAME;
                    excelsheets.Cells[7, 45]      = org.OKPO;
                    excelsheets.Cells[13, 35]     = trip.PRIKAZ.NUMDOC;
                    if (trip.PRIKAZ.CREATEDATE != null)
                    {
                        excelsheets.Cells[13, 48] = trip.PRIKAZ.CREATEDATE.Value.ToString("dd.MM.yyyy");
                    }
                    PERSONCARD_IN_TRIP person = trip.PERSONCARD_IN_TRIP.First();
                    excelsheets.Cells[18, 1].Value  = person.SURNAME + " " + person.NAME + " " + person.MIDDLENAME;
                    excelsheets.Cells[18, 47].Value = person.TABEL_NUM;
                    if (person.PODRAZDELORG != null)
                    {
                        excelsheets.Cells[20, 1].Value = person.PODRAZDELORG.NAME;
                    }
                    excelsheets.Cells[22, 1].Value = person.JOB_POS.NAME;
                    int i = 0;
                    foreach (TRIP_ORG tripOrg in trip.TRIP_ORG)
                    {
                        if (excelsheets.Cells[24 + i, 1].Text.Length > 100)
                        {
                            if (i == 0)
                            {
                                i += 2;
                            }
                            else
                            {
                                i++;
                            }
                        }
                        excelsheets.Cells[24 + i, 1].Value += tripOrg.PLACE_TRIP.NAME;
                        excelsheets.Cells[24 + i, 1].Value += ", " + tripOrg.NAME;
                        excelsheets.Cells[24 + i, 1].Value += " ; ";
                    }
                    excelsheets.Cells[33, 3].Value  = person.STARTDATE.Value.Day;
                    excelsheets.Cells[33, 7].Value  = person.STARTDATE.Value.ToString("MMMM");
                    excelsheets.Cells[33, 21].Value = person.STARTDATE.Value.ToString("yy");

                    excelsheets.Cells[33, 30].Value = person.ENDDATE.Value.Day;
                    excelsheets.Cells[33, 34].Value = person.ENDDATE.Value.ToString("MMMM");
                    excelsheets.Cells[33, 48].Value = person.ENDDATE.Value.ToString("yy");

                    excelsheets.Cells[31, 8].Value  = (int)person.ENDDATE.Value.Subtract(person.STARTDATE.Value).TotalDays;
                    excelsheets.Cells[35, 6].Value  = person.GOAL;
                    excelsheets.Cells[38, 18].Value = person.FINANCE;



                    if (trip.OSNOVANIEDATE != null)
                    {
                        excelsheets.Cells[42, 15].Value = trip.OSNOVANIE + " от " + trip.OSNOVANIEDATE.Value.ToString("dd.MM.yyyy");
                    }
                    else
                    {
                        excelsheets.Cells[42, 15].Value = trip.OSNOVANIE;
                    }
                }
            }
            catch (Exception except)
            {
                Console.Error.WriteLine(except.Message);
            }
            MyMsgBox.showInfo("Готово!");
            excelappworkbooks.SaveAs(savePath);
            exApp.Quit();
        }
 private void WorkersGridView_DataError(object sender, DataGridViewDataErrorEventArgs e)
 {
     MyMsgBox.showError("Дата должна быть в формате дд.мм.гггг");
 }
 private void KomandirovkaForm_FormClosing(object sender, FormClosingEventArgs e)
 {
     e.Cancel = !MyMsgBox.showAsk("Вы точно хотите закрыть окно? Все несохранённые изменения будут утеряны!");
 }