/// <summary>СОБЫТИЕ Выбор Даты расписания</summary>
        private void PART_DataGridDate_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
        {
            MyGlo.DataSet.Tables["rnTime"].Clear();                             // чистим время
            if (PART_DataGridDate.SelectedIndex < 0)
            {
                return;                                                         // если ничего не выбрали - выходим
            }
            // Выбранная запись
            DataRowView _DataRowView = (DataRowView)PART_DataGridDate.SelectedItem;

            // Наша дата
            PUB_Date = MyMet.MET_ParseDat(_DataRowView.Row["Dat"]);
            // Загружаем Время
            MET_LoadTime();
        }
        /// <summary>СОБЫТИЕ Записываем пациента на прием</summary>
        private void PART_ButtonSave_Click(object sender, RoutedEventArgs e)
        {
            // Наш код расписания
            int _CodSetka = PROP_Cod;

            // Если не выбрали код - выходим
            if (_CodSetka == 0)
            {
                MessageBox.Show("Нужно выбрать время!", "Сосредоточтесь");
                return;
            }
            // Проверяем, есть ли свободная запись (повторно, а вдруг уже заняли)
            if (!MySql.MET_QueryBool(MyQuery.MET_RnSetka_Time_Select_2(_CodSetka, PROP_Server)))
            {
                MessageBox.Show("Пока вы думали, это время заняли!", "Задумались?");
                return;
            }
            //  Проверяем не записан ли повторно пациент в этот кабинет
            if (MySql.MET_QueryBool(MyQuery.MET_RnSetka_Time_Select_3(MyGlo.KL, PUB_Element, PROP_Server)))
            {
                MessageBox.Show("Пациент уже записан в этот кабинет!", "Зачем?");
                return;
            }
            // Заполняем RsTalon
            int      _Cod = MySql.MET_GetNextRef(67);
            string   _FIO = (string)MyGlo.HashKBOL["FAM"];                      // ФИО
            DateTime?_DR  = MyMet.MET_ParseDat(MyGlo.HashKBOL["DR"]);           // ДР
            string   _Rai = MyGlo.HashKBOL["KRName"].ToString();                // Район

            if (_Rai == "")
            {
                _Rai = (string)MyGlo.HashKBOL["NasPName"];                      // Населенный пункт
            }
            string _xLog = $@"{{""CrUser"": ""{MyGlo.UserName}"",""CrLPU"": ""БУЗОО КОД"",""CrProg"": ""wpfBazis"",""CrDate"": ""{DateTime.Now:yyyy-MM-dd hh:mm}""}}";

            // Сохраняем
            if (!MySql.MET_QueryNo(MyQuery.MET_RnTalon_Insert_1(_Cod, _CodSetka, MyGlo.KL, _FIO, _DR, _Rai, _xLog, PROP_Server)))
            {
                MessageBox.Show("Записать не удалось!", "Ошибка");
                return;
            }
            // Обновляем время (убрав, только что занятую позицию)
            MET_LoadTime();
            // Показываем куда записан пациент
            MET_LoadTalon();
        }
Пример #3
0
        /// <summary>МЕТОД Формируем Форму Шаблона</summary>
        public override void MET_CreateForm()
        {
            PRI_StackPanel.Orientation = Orientation.Vertical;
            if (PROP_Docum.PROP_ListShablon == null)
            {
                PROP_Docum.PROP_ListShablon = UserListShablon.MET_FactoryListShablon(PROP_TipProtokol.PROP_TipDocum, PRO_NomerShablon);
            }
            // Исключение при выполнении запроса к базе
            try
            {
                PUB_HashPole = new SortedList();                                // список полей
                Background   = Brushes.GhostWhite;
                // Если открываем заполненый протокол
                if (!PROP_NewProtokol)
                {
                    PRO_StrProtokol = PROP_Docum.PROP_Protokol.PROP_Protokol;
                    PROP_Cod        = PROP_Docum.PROP_Protokol.PROP_Cod;
                    // Старый шаблон
                    PROP_StadNodes = eStadNodes.Old;
                }
                else // Пытаемся найти последний протокол по KL и коду шаблона
                {
                    if (MySql.MET_DsAdapterFill(MyQuery.MET_Protokol_Select_8(MyGlo.KL, PRO_NomerShablon, PROP_TipProtokol.PROP_Prefix), PROP_TipProtokol.PROP_Protokol) > 0)
                    {
                        // Новый шаблон, с предыдушими данными
                        PROP_StadNodes  = eStadNodes.NewPerw;
                        PRO_StrProtokol = MyGlo.DataSet.Tables[PROP_TipProtokol.PROP_Protokol].Rows[0]["Protokol"].ToString();
                    }
                    else
                    {
                        // Новый шаблон
                        PROP_StadNodes = eStadNodes.New;
                    }
                }

                // ---- Дата осмотра
                PROP_Format = PROP_Docum.PROP_ListShablon.PROP_MyFormat;
                VirtualPole _Date = MET_CreateUserPole(3);
                _Date.PROP_Necessarily = true;
                _Date.PROP_Description = PROP_Format.MET_If("pDateT") ? PROP_Format.PROP_Value["pDateT"].ToString() : "Дата";
                // Если старый протокол
                if (!PROP_NewProtokol)
                {
                    _Date.PROP_Text = PROP_Docum.PROP_Protokol.PROP_pDate.ToString();
                }
                else
                {
                    // Если новый шаблон
                    if (PROP_Format.MET_If("pDateD"))
                    {
                        switch (PROP_Format.PROP_Value["pDateD"].ToString())
                        {
                        case "pol":                                                             // если посещение поликлиники
                            _Date.PROP_Text = MyMet.MET_ParseDat(MyGlo.HashAPAC["DP"]).ToString();
                            break;

                        default:
                            _Date.PROP_Text = DateTime.Today.ToString();                        // текущий день
                            break;
                        }
                    }
                    else
                    {
                        _Date.PROP_Text = DateTime.Today.ToString();                            // текущий день
                    }
                }
                _Date.PROP_DefaultText = DateTime.Today.ToString();             // начальное значение
                _Date.PROP_ValueMin    = Convert.ToDateTime("01/01/2011");      // минимальное число - 2011 год
                _Date.Name             = "DateOsmotr";                          // имя поля
                _Date.PROP_FormShablon = this;                                  // ссылка на форму
                PUB_HashPole.Add(_Date.Name, _Date);                            // записываем элемент в очередь
                PRI_StackPanel.Children.Add(_Date);                             // добавляем элемент на форму
                // Перебераем все вопросы
                MET_LoadPole();
                // Деактивируем кнопку "Сохранить"
                PROP_EditShablon = false;
                // Всё шаблон создан!
                PROP_Created = true;
            }
            catch
            {
                // ignored
            }
        }