Ejemplo n.º 1
0
        private void AddFromListButton_Click(object sender, RoutedEventArgs e)
        {
            var vm    = this.DataContext as SendGroupViewModel;
            var psw   = new PersonsView(1);
            var pswVm = psw.DataContext as PersonsViewModel;

            pswVm.ReadyOnly = true;
            pswVm.Gorod     = vm.City;
            pswVm.VihodDat  = vm.OtprDat;

            pswVm.FindCommand.Execute(null);//psw.FindButton_Click(null,null);
            if (psw.ShowDialog() == true)
            {
                var db = new ProvodnikContext();
                foreach (var id in psw.vm.PersonList.Where(pp => pp.IsSelected).Select(pp => pp.Id))
                {
                    if (vm.Persons.FirstOrDefault(pp => pp.PersonId == id) != null)
                    {
                        continue;
                    }

                    var np = MainWindow.Mapper.Value.Map <SendGroupPersonViewModel>(db.Persons.First(pp => pp.Id == id));

                    np.SendGroupViewModel = vm;
                    if (vm.Persons.Count == 0)
                    {
                        np.IsMain = true;
                    }
                    vm.Persons.Add(np);
                }
            }
        }
Ejemplo n.º 2
0
        public void RefreshList()
        {
            List.Clear();
            var db        = new ProvodnikContext();
            var yearStart = DateTime.Today;

            yearStart = yearStart.AddDays(-yearStart.Day + 1).AddMonths(-yearStart.Month + 1);
            var qq = (from p in db.Persons
                      where //p.UchebStartDat > yearStart &&
                      p.UchebGruppa != null
                      orderby p.UchebStartDat descending
                      select new { p.UchebGruppa, p.UchebStartDat, p.UchebEndDat, p.UchebCentr }).Distinct()
                     .Select(pp => new UchebGruppaViewModel()
            {
                UchebCentr    = pp.UchebCentr,
                UchebGruppa   = pp.UchebGruppa,
                UchebStartDat = pp.UchebStartDat,
                UchebEndDat   = pp.UchebEndDat
            });

            foreach (var q in qq)
            {
                List.Add(q);
            }
        }
Ejemplo n.º 3
0
        void ListView_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            var p = ((FrameworkElement)e.OriginalSource).DataContext as PersonShortViewModel;

            if (p != null)
            {
                var pw  = new PersonView();
                var db  = new ProvodnikContext();
                var pvm = new PersonViewModel(p.Id);
                pw.DataContext = pvm;

                if (pw.ShowDialog() == true)
                {
                    var ind = vm.PersonList.IndexOf(p);
                    vm.PersonList.RemoveAt(ind);

                    p = MainWindow.Mapper.Value.Map <PersonShortViewModel>(new ProvodnikContext().Persons.First(pp => pp.Id == p.Id));
                    vm.PersonList.Insert(ind, p);
                    //vm.RefreshPersonList();
                    //TODO goto if exist or add anyway and goto
                    vm.InitCollectionsForCombo();

                    Helper.SetPersonShortIndexes(PersonsListView);
                }
            }
        }
Ejemplo n.º 4
0
        public SendGroupsView()
        {
            InitializeComponent();
            var db = new ProvodnikContext();
            var qq = (from g in db.SendGroups orderby g.Id descending select g).ToList();

            // var ptt = MainWindow.Mapper.Value.Map<SendGroupViewModel>(new ProvodnikContext().SendGroups.First(pp => pp.Id == 2));
            foreach (var q in qq)
            {
                var g = MainWindow.Mapper.Value.Map <SendGroupViewModel>(q);

                /*  SendGroupViewModel g = new SendGroupViewModel()
                 * {
                 *  City = q.City,
                 *  Depo = q.Depo,
                 *  Id = q.Id,
                 *  Marshrut = q.Marshrut,
                 *  OtprDat = q.OtprDat,
                 *  Poezd = q.Poezd,
                 *  PribDat = q.PribDat,
                 *  PribTime = q.PribTime,
                 *  RegOtdelenie = q.RegOtdelenie,
                 *  Uvolnenie = q.Uvolnenie,
                 *  Vagon = q.Vagon,
                 *  Vokzal = q.Vokzal,
                 *  Vstrechat = q.Vstrechat
                 * };*/
                //MainWindow.Mapper.Value.Map(q,g);g.Id = q.Id;
                groups.Add(g);
            }

            GroupsListView.ItemsSource = groups;
            //  this.DataContext = new PersonViewModel(new ProvodnikContext().Persons.FirstOrDefault()==null?(int?)null:1);
        }
Ejemplo n.º 5
0
        public void VSOP2()//DateTime start, DateTime end, ProgressBar progress)
        {
            var vm = DataContext as SendGroupViewModel;

            excelReport excel = new excelReport();

            excel.Init("ВСОП_2.xlsx", string.Format(@"ВСОП_2_{0}_{1}__{2}_{3}.xlsx",
                                                    vm.OtprDat.Value.ToString("dd.MM.yyyy"),
                                                    "Новосибирск",
                                                    vm.City,
                                                    vm.Persons.Count), otchetDir: otchetDir);

            int ri  = 1;
            var db  = new ProvodnikContext();
            var ids = vm.Persons.Select(pp => pp.PersonId).ToList();
            var rr  = db.Persons.Where(pp => ids.Contains(pp.Id));

            foreach (var r in rr)//vm.Persons)
            {
                ri++;
                excel.cell[ri, 1].value2 = ri - 1;
                excel.cell[ri, 2].value2 = vm.RegOtdelenie;
                var fio = new StringHelper().ParseFio(r.Fio);
                excel.cell[ri, 3].value2 = fio[0];
                excel.cell[ri, 4].value2 = fio[1];
                excel.cell[ri, 5].value2 = fio[2];
                excel.cell[ri, 6].value2 = r.BirthDat.HasValue ? r.BirthDat.Value.ToString("dd.MM.yyyy") : "";
                excel.cell[ri, 7].value2 = r.UchebCentr;
                excel.cell[ri, 8].value2 = (r.ExamenDat.HasValue) ? r.ExamenDat.Value.Year.ToString()
                    : (r.UchebEndDat.HasValue ? r.UchebEndDat.Value.Year.ToString() : "");
            }
            excel.setAllBorders(excel.get_Range("A2", "I" + ri));
            excel.Finish();
        }
Ejemplo n.º 6
0
      public void Soglasie()
      {
          var path = (string.Format("{0}\\_шаблоны\\" + "Согласие на обработку персональных данных.dotx", AppDomain.CurrentDomain.BaseDirectory));

          Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application {
              Visible = true
          };
          Microsoft.Office.Interop.Word.Document aDoc = wordApp.Documents.Add(path);  //, ReadOnly: false, Visible: true);
          aDoc.Activate();

          // var vm = DataContext as SendGroupViewModel;

          var db = new ProvodnikContext();

          var p = this.DataContext as PersonViewModel;

          Microsoft.Office.Interop.Word.Range range = aDoc.Content;
          range.Find.ClearFormatting();
          range.Find.Execute(FindText: "{today}", ReplaceWith: DateTime.Today.ToString("dd.MM.yyyy"), Replace: Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll);
          range.Find.Execute(FindText: "{till}", ReplaceWith: DateTime.Today.AddYears(1).ToString("dd.MM.yyyy"), Replace: Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll);
          string passport = $"{p.PaspSeriya} {p.PaspNomer} выдан {p.PaspVidan} {p.VidanDat}";

          range.Find.Execute(FindText: "{passport}", ReplaceWith: passport, Replace: Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll);
          range.Find.Execute(FindText: "{fio}", ReplaceWith: p.Fio, Replace: Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll);
          range.Find.Execute(FindText: "{addres}", ReplaceWith: p.PaspAdres, Replace: Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll);
          range.Find.Execute(FindText: "{till}", ReplaceWith: DateTime.Today.AddYears(1).ToString("dd.MM.yyyy"), Replace: Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll);


          //string otchetDir = @"C:\_provodnikFTP";
          //aDoc.SaveAs(FileName: otchetDir + @"\Согласие на обработку персональных данных.DOCX");
      }
Ejemplo n.º 7
0
 public MedKomZayavkiView()
 {
     InitializeComponent();
     var db = new ProvodnikContext();
     var qq = (from g in db.MedKomZayavki select g)
              .ToList()
              .Select(x => new { x, num = int.TryParse(x.Name.Substring(0, x.Name.IndexOf("_")), out var num) ? (int?)num : null })
Ejemplo n.º 8
0
        private void PersonsListView_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Delete)
            {
                if (PersonsListView.SelectedItem != null &&
                    MessageBox.Show("Удалить группу? У участников будут очищены соотвествующие поля", "Подтверждение удаления", MessageBoxButton.OKCancel, MessageBoxImage.Question) == MessageBoxResult.OK)
                {
                    var ug = PersonsListView.SelectedItem as UchebGruppaViewModel;
                    var vm = DataContext as ObucheniyasViewModel;

                    using (var db = new ProvodnikContext())
                    {
                        var toDelete = (from p in db.Persons
                                        where p.UchebGruppa == ug.UchebGruppa && p.UchebCentr == ug.UchebCentr &&
                                        p.UchebStartDat == ug.UchebStartDat &&
                                        p.UchebEndDat == ug.UchebEndDat
                                        select p).ToList();
                        foreach (var p in toDelete)
                        {
                            p.UchebGruppa   = null;
                            p.UchebCentr    = null;
                            p.UchebStartDat = null;
                            p.UchebEndDat   = null;
                            db.SaveChanges();

                            var pvm = new PersonViewModel(p.Id, false);
                            pvm.FillMessagesAndAlls(p);
                            db.SaveChanges();
                        }
                        vm.List.Remove(ug);
                    }
                }
            }
        }
Ejemplo n.º 9
0
        public List <string> GetMarshruts()
        {
            var r = new ProvodnikContext().SendGroups.Select(pp => pp.Marshrut)
                    .Union(new string[] { "Новосибирск – Москва – Новосибирск", "Новосибирск – Санкт-Петербург – Новосибирск", "Новосибирск – Адлер – Новосибирск", "Новосибирск – Новороссийск – Новосибирск" })
                    .Distinct().OrderBy(pp => pp).ToList();

            return(r);
        }
Ejemplo n.º 10
0
        public List <string> GetUchZavedeniya()
        {
            var items = new ProvodnikContext().Persons.Select(pp => pp.UchZavedenie).Distinct().OrderBy(pp => pp).ToList();

            items.Remove(RepoConsts.NoUchZavedenie);
            items.Insert(0, RepoConsts.NoUchZavedenie);
            return(items);// new List<string> { "не учится", "СГУПС" };
        }
Ejemplo n.º 11
0
        public void ReestrPeredachi()
        {
            var vm = DataContext as SendGroupViewModel;

            var db  = new ProvodnikContext();
            var ids = vm.Persons.Select(pp => pp.PersonId);
            var pe  = db.Persons.Where(pp => ids.Contains(pp.Id)).ToList();

            if (pe.Count == 0)
            {
                return;
            }


            var path = (string.Format("{0}\\_шаблоны\\" + "Акт передачи документов.docx", AppDomain.CurrentDomain.BaseDirectory));

            Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application {
                Visible = false
            };
            Microsoft.Office.Interop.Word.Document aDoc = wordApp.Documents.Open(path, ReadOnly: false, Visible: false);
            aDoc.Activate();

            object missing = Missing.Value;

            Microsoft.Office.Interop.Word.Range range = aDoc.Content;
            range.Find.ClearFormatting();

            range.Find.Execute(FindText: "{City}", ReplaceWith: vm.City, Replace: Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll);
            range.Find.Execute(FindText: "{Filial}", ReplaceWith: vm.Filial, Replace: Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll);
            range.Find.Execute(FindText: "{Sp}", ReplaceWith: vm.Sp, Replace: Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll);
            range.Find.Execute(FindText: "{Ochniki}", ReplaceWith: vm.Persons.Count(x => x.UchForma == UchFormaConsts.Ochnaya), Replace: Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll);
            range.Find.Execute(FindText: "{Count}", ReplaceWith: vm.Persons.Count(), Replace: Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll);

            range.Find.Execute(FindText: "{ВЧ}", ReplaceWith: vm.DepoRod, Replace: Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll);

            var table = aDoc.Tables[3];
            int iRow  = 2;

            foreach (var p in vm.Persons)
            {
                if (iRow > 2)
                {
                    table.Rows.Add(ref missing);
                }
                table.Cell(iRow, 1).Range.Text = (iRow - 1).ToString() + '.';
                table.Cell(iRow, 2).Range.Text = p.Fio;
                table.Cell(iRow, 3).Range.Text = p.UchForma;
                table.Cell(iRow, 4).Range.Text = "ЕСТЬ";

                iRow++;
            }

            aDoc.SaveAs(FileName: otchetDir + $@"\Акт передачи документов.docx");
            aDoc.Close();
        }
Ejemplo n.º 12
0
        public void VSOP3(bool otdelno = false)//DateTime start, DateTime end, ProgressBar progress)
        {
            var vm = DataContext as SendGroupViewModel;

            excelReport excel = new excelReport();

            if (!otdelno)
            {
                excel.Init("ВСОП_3.xlsx", string.Format(@"ВСОП_3_{0}_{1}__{2}_{3}.xlsx",
                                                        vm.OtprDat.Value.ToString("dd.MM.yyyy"),
                                                        "Новосибирск",
                                                        vm.City,
                                                        vm.Persons.Count), otchetDir: otchetDir);
            }
            else
            {
                excel.Init("ВСОП_3.xlsx", string.Format(@"ВСОП_3_{0}_{1}__{2}_{3}.xlsx",
                                                        vm.OtprDat.Value.ToString("dd.MM.yyyy"),
                                                        "Новосибирск",
                                                        vm.City,
                                                        vm.Persons.Count), true);
            }

            int ri  = 1;
            var db  = new ProvodnikContext();
            var ids = vm.Persons.Select(pp => pp.PersonId).ToList();
            var rr  = db.Persons.Where(pp => ids.Contains(pp.Id));

            ri = 2;
            excel.cell[ri, 2].value2 = vm.RegOtdelenie;
            excel.cell[ri, 3].value2 = vm.Persons.Count;
            excel.cell[ri, 4].value2 = vm.Poezd;
            excel.cell[ri, 5].value2 = vm.Vagon;
            excel.cell[ri, 6].value2 = vm.OtprDat.HasValue ? vm.OtprDat.Value.ToString("dd.MM.yyyy") : "";
            excel.cell[ri, 7].value2 = vm.PribDat.HasValue ? vm.PribDat.Value.ToString("dd.MM.yyyy") : "";
            excel.cell[ri, 8].value2 = vm.PribTime;
            var main = vm.Persons.FirstOrDefault(pp => pp.IsMain);

            if (main != null)
            {
                excel.cell[ri, 9].value2  = main.Fio;
                excel.cell[ri, 10].value2 = Helper.FormatPhone(main.Phone);
            }
            excel.cell[ri, 11].value2 = vm.Vstrechat?"да":"нет";
            excel.cell[ri, 12].value2 = vm.Vokzal;

            ri = 1;
            foreach (var r in rr)//vm.Persons)
            {
                ri++;
                excel.cell[ri, 13].value2 = r.Fio;
            }
            excel.setAllBorders(excel.get_Range("B2", "M" + ri));
            excel.Finish(!otdelno);
        }
Ejemplo n.º 13
0
        private void SaveButton_Click(object sender, RoutedEventArgs e)
        {
            var vm = this.DataContext as MedKomZayavkaViewModel;

            if (!vm.Validator.IsValid)
            {
                MessageBox.Show(string.Join(Environment.NewLine, vm.Validator.ValidationMessages));
            }

            var db = new ProvodnikContext();

            MedKomZayavka p;

            if (vm.Id.HasValue)
            {
                p = db.MedKomZayavki.Single(pp => pp.Id == vm.Id.Value);

                MainWindow.Mapper.Value.Map(vm, p);
                var currents = vm.Persons.Select(pp => pp.PersonId).ToList();
                var toDelete = (from pd in db.MedKomZayavkaPersons
                                where pd.MedKomZayavkaId == p.Id && !currents.Contains(pd.PersonId)
                                select pd);
                db.MedKomZayavkaPersons.RemoveRange(toDelete);
                db.SaveChanges();
            }
            else
            {
                p = new MedKomZayavka();
                MainWindow.Mapper.Value.Map(vm, p);
                db.MedKomZayavki.Add(p);
                db.SaveChanges();
            }

            foreach (var d in vm.Persons)
            {
                MedKomZayavkaPerson pd;
                if (d.Id == null)
                {
                    db.MedKomZayavkaPersons.Add(pd = new MedKomZayavkaPerson()
                    {
                        MedKomZayavkaId = p.Id, PersonId = d.PersonId
                    });
                    db.SaveChanges();
                }
                var person = (from pe in db.Persons where d.PersonId == pe.Id select pe).FirstOrDefault();
                if (person != null)
                {
                    person.IsNaprMedZakazano  = d.IsNaprMedZakazano;
                    person.IsNaprMedPolucheno = d.IsNaprMedPolucheno;
                    person.IsNaprMedVidano    = d.IsNaprMedVidano;
                    db.SaveChanges();
                }
            }
            DialogResult = true;
        }
Ejemplo n.º 14
0
        public List <string> GetSezons()
        {
            var ret = new ProvodnikContext().Persons.Select(pp => pp.Sezon).Distinct().OrderByDescending(pp => pp).ToList();
            var cur = GetCurSezon();//.ToString("dd.MM.yyyy");

            if (!ret.Any() || ret[0] != cur)
            {
                ret.Insert(0, cur);
            }
            return(ret);
        }
Ejemplo n.º 15
0
        private void buttonOpen_Click(object sender, RoutedEventArgs e)
        {
            string error = null;

            // Rabotnik r = null;
            if (string.IsNullOrWhiteSpace(rabPopup.Text))
            {
                error = "Не выбран пользователь!";
            }
            else
            {
                App.user = new ProvodnikContext().Users.First(pp => pp.Login == rabPopup.Text);   //rabPopup.selElem.param as Rabotnik;
                if (App.user.Wand != passwordBox.Password.GetHashCode().ToString())
                {
                    error = "Не верный пароль!";
                }
            }
            if (rowNewPass.Height.IsAuto && newPasswordBox.Password.Length == 0 && isonload)
            {
                error = "Пустой новый пароль!";
            }
            if (error != null)
            {
                MessageBox.Show(error, "Ошибка"); return;
            }
            /**/ if (passwordBox.Password == "123" && rowNewPass.Height.IsAbsolute &&
                     MessageBox.Show("Рекомендуется сменить стандартный пароль! Сменить сейчас?", "Смена пароля", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
            {
                rowNewPass.Height = new GridLength(1, GridUnitType.Auto);
                newPasswordBox.Focus();
                return;
            }
            if (newPasswordBox.Password.Length > 0)
            {
                if (!checkNewPassword(newPasswordBox.Password))
                {
                    MessageBox.Show(error, "Пароль слишком простой");
                    return;
                }

                /* SafeQuery.RunAsync(() =>
                 * SafeQuery.Run(() =>
                 * {*/
                App.user.Wand = newPasswordBox.Password.GetHashCode().ToString();
                using (var db = new ProvodnikContext())
                {
                    db.Users.First(pp => pp.Id == App.user.Id).Wand = App.user.Wand;
                    db.SaveChanges();
                }

                /* }, 15000, () => { })
                 * , () => {//MessageBox.Show("Пароль изменен!");
                 * });*/
            }
Ejemplo n.º 16
0
        private void SaveButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                var vm = this.DataContext as SendGroupViewModel;
                if (!vm.Validator.IsValid)
                {
                    MessageBox.Show(string.Join(Environment.NewLine, vm.Validator.ValidationMessages));
                }

                var db = new ProvodnikContext();

                SendGroup p;
                if (vm.Id.HasValue)
                {
                    p = db.SendGroups.Single(pp => pp.Id == vm.Id.Value);

                    MainWindow.Mapper.Value.Map(vm, p);
                    var currents = vm.Persons.Select(pp => pp.PersonId).ToList();
                    var toDelete = (from pd in db.SendGroupPersons
                                    where pd.SendGroupId == p.Id && !currents.Contains(pd.PersonId)
                                    select pd);
                    db.SendGroupPersons.RemoveRange(toDelete);
                    db.SaveChanges();
                }
                else
                {
                    p = new SendGroup();
                    MainWindow.Mapper.Value.Map(vm, p);
                    db.SendGroups.Add(p);
                    db.SaveChanges();
                }

                foreach (var d in vm.Persons)
                {
                    SendGroupPerson pd;
                    if (d.Id == null)
                    {
                        db.SendGroupPersons.Add(pd = new SendGroupPerson()
                        {
                            IsMain = d.IsMain, SendGroupId = p.Id, PersonId = d.PersonId
                        });
                        db.SaveChanges();
                    }
                }
                DialogResult = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ошибка при сохранении" + Environment.NewLine + ex.Message);
            }
        }
Ejemplo n.º 17
0
        public int GetAlarmsCount()
        {
            using (var db = new ProvodnikContext())
            { var dat = DateTime.Today.AddDays(-10);

              var medNaprQuery = from p in db.Persons
                                 where !p.IsMedKomm && p.NaprMedVidanoDat != null && p.NaprMedVidanoDat.Value < dat
                                 select 1;
              var docPrinesetKQuery = from p in db.Persons
                                      join pd in db.PersonDocs on p.Id equals pd.PersonId
                                      where pd.PrinesetK < DateTime.Today
                                      select 1;
              return((medNaprQuery.Union(docPrinesetKQuery)).Count()); }
        }
Ejemplo n.º 18
0
 private void PersonsListView_KeyUp(object sender, KeyEventArgs e)
 {
     if (e.Key == Key.Delete)
     {
         if (PersonsListView.SelectedItem != null &&
             MessageBox.Show("Удалить?", "Подтверждение удаления", MessageBoxButton.OKCancel, MessageBoxImage.Question) == MessageBoxResult.OK)
         {
             var g = PersonsListView.SelectedItem as PersonShortViewModel;
             vm.PersonList.Remove(g);
             var db = new ProvodnikContext();
             db.Persons.Remove(db.Persons.First(pp => pp.Id == g.Id));
             db.SaveChanges();
         }
     }
 }
Ejemplo n.º 19
0
        public MedKomZayavkaViewModel(int?medKomZayavkaId = null)
        {
            Validator = GetValidator();
            Persons   = new ObservableCollection <MedKomZayavkaPersonViewModel>();

            Depos.Clear(); foreach (var d in repository.GetDeposMed())
            {
                Depos.Add(d);
            }

            var db = new ProvodnikContext();

            if (medKomZayavkaId.HasValue)
            {
                Id = medKomZayavkaId;
                MainWindow.Mapper.Value.Map(db.MedKomZayavki.Single(pp => pp.Id == medKomZayavkaId), this);

                var qq = (from pd in db.MedKomZayavkaPersons join p in db.Persons on pd.PersonId equals p.Id
                          where pd.MedKomZayavkaId == medKomZayavkaId
                          select new { pd, p }).ToList();

                foreach (var q in qq)
                {
                    MedKomZayavkaPersonViewModel pe = new MedKomZayavkaPersonViewModel();
                    MainWindow.Mapper.Value.Map(q.pd, pe);
                    MainWindow.Mapper.Value.Map(q.p, pe);
                    pe.MedKomZayavkaViewModel = this;
                    Persons.Add(pe);
                }
//Persons.Add(MainWindow.Mapper.Value.Map< MedKomZayavkaPersonViewModel>(db.MedKomZayavkas.Single(pp => pp.Id == MedKomZayavkaId), this);
            }
            else
            {
                var lastZayavka = db.MedKomZayavki.OrderByDescending(x => x.Id).FirstOrDefault();
                if (lastZayavka != null && !string.IsNullOrEmpty(lastZayavka.BolnicaName))
                {
                    BolnicaName  = lastZayavka.BolnicaName;
                    BolnicaAdres = lastZayavka.BolnicaAdres;
                }
                else
                {
                    BolnicaName  = @"Поликлиника: ЧУЗ «КБ «РЖД - Медицина» г.Новосибирск»  
Псих.освидетельствование:Медицинский психодиагностический центр ""МЕНТАЛ КОНСАЛТИНГ""";
                    BolnicaAdres = @"Поликлиника: г.Новосибирск, ул.Сибирская, 21
Псих.осведетельствование: г.Новосибирск, ул.Красный проспект, 99";
                }
            }
        }
Ejemplo n.º 20
0
        private void ScansButton_Click(object sender, RoutedEventArgs e)
        {
            excelReport excel = new excelReport();

            excel.Init("Сканы.xltx", $"Сканы.xlsx");//,visible:true);//, otchetDir: otchetDir);

            int ri = 1;
            var db = new ProvodnikContext();

            var ids = vm.PersonList.Select(pp => pp.Id).ToList();
            var qq  = from p in db.Persons
                      join pd in db.PersonDocs on p.Id equals pd.PersonId
                      //join d in db.DocTypes on
                      where ids.Contains(p.Id) && pd.FileName != null
                      group pd by p into g
                      select new
            {
                g.Key.Fio,
                g.Key.Otryad,
                scans = g.Select(pp => pp.DocTypeId)
            };

            var dts = db.DocTypes.ToList();
            int c   = 2;

            foreach (var dt in dts)
            {
                c++;
                excel.cell[1, c].value2 = dt.Description;
            }
            foreach (var r in qq.OrderBy(pp => pp.Fio))
            {
                ri++;
                excel.cell[ri, 1].value2 = r.Fio;
                excel.cell[ri, 2].value2 = r.Otryad;

                var set = new HashSet <int>(r.scans);
                c = 2;
                foreach (var dt in dts)
                {
                    c++;
                    excel.cell[ri, c].value2 = set.Contains(dt.Id) ? 1 : 0;
                }
            }

            excel.setAllBorders(excel.mySheet.Range[excel.cell[1, 1], excel.cell[ri, 2 + dts.Count]]);
            excel.myExcel.Visible = true;
        }
Ejemplo n.º 21
0
        public void F6() //DateTime start, DateTime end, ProgressBar progress)
        {
            var vm = DataContext as SendGroupViewModel;

            excelReport excel = new excelReport();

            excel.Init(/*(vm.City== "Москва")?"Ф6_Msk.xlsx":*/ "Ф6_ost.xlsx",
                       $@"Ф6_{vm.OtprDat.Value.ToString("dd.MM.yyyy")}_Новосибирск__{ vm.City}_{vm.Persons.Count}.xlsx",
                       otchetDir: otchetDir//,visible:true
                       );

            int ri  = 7;
            var db  = new ProvodnikContext();
            var ids = vm.Persons.Select(pp => pp.PersonId).ToList();
            var rr  = db.Persons.Where(pp => ids.Contains(pp.Id));

            excel.cell[4, 1].value2 = vm.DepoRod;// new Repository().GetF6Depo(vm.City, vm.Depo);

            if (vm.Persons.Count > 1)
            {
                excel.get_Range("A9", "A" + (8 + vm.Persons.Count - 1)).EntireRow.Select();
                excel.myExcel.Selection.Insert(Excel.XlInsertShiftDirection.xlShiftDown, Excel.XlInsertFormatOrigin.xlFormatFromLeftOrAbove);
            }

            foreach (var r in rr)//vm.Persons)
            {
                ri++;

                excel.cell[ri, 1].value2 = ri - 7;
                excel.cell[ri, 2].value2 = r.Fio + Environment.NewLine + (r.BirthDat.HasValue ? r.BirthDat.Value.ToString("dd.MM.yyyy") : "")
                                           + Environment.NewLine + r.MestoRozd;
                excel.cell[ri, 3].value2 = "Проводник" + Environment.NewLine + "пассажирского" + Environment.NewLine + "вагона";

                excel.cell[ri, 5].value2 = r.PaspAdres;
                excel.cell[ri, 6].value2 =
                    r.Grazdanstvo == "КЗ"? "Паспорт гр-на РК:" : "Паспорт гр-на РФ:"
                    + Environment.NewLine + r.PaspSeriya + " " + r.PaspNomer
                    + Environment.NewLine + Helper.FormatSnils(r.Snils);

                excel.cell[ri, 7].value2 = (!string.IsNullOrWhiteSpace(vm.PeresadSt))
                    ? $"Новосибирск – {vm.PeresadSt} – {vm.City} – {vm.PeresadSt} – Новосибирск"
                    : $"Новосибирск – {vm.City} – Новосибирск";

                excel.cell[ri, 11].value2 = vm.Uvolnenie.HasValue ? vm.Uvolnenie.Value.ToString("dd.MM.yyyy") : "";
            }
            excel.setAllBorders(excel.get_Range("A8", "K" + ri));
            excel.Finish();
        }
Ejemplo n.º 22
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            var pw = new SendGroupView();

            pw.DataContext = new SendGroupViewModel(null);// new ProvodnikContext().Persons.FirstOrDefault()==null?(int?)null:1);
            if (pw.ShowDialog() == true)
            {
                groups.Clear();
                var db = new ProvodnikContext();
                var qq = (from g in db.SendGroups select g);

                foreach (var q in qq)
                {
                    groups.Add(MainWindow.Mapper.Value.Map <SendGroupViewModel>(q));
                }
            }
        }
Ejemplo n.º 23
0
        private void ListView_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            var pe = ((FrameworkElement)e.OriginalSource).DataContext as AlarmViewModel;

            if (pe != null)
            {
                var vm  = this.DataContext as SendGroupViewModel;
                var pw  = new PersonView();
                var db  = new ProvodnikContext();
                var pvm = new PersonViewModel(pe.Id);
                pw.DataContext = pvm;
                if (pw.ShowDialog() == true)
                {
                    RefreshList();
                }
            }
        }
Ejemplo n.º 24
0
 public List <AlarmViewModel> GetAlarms()
 {
     using (var db = new ProvodnikContext())
     {
         var dat          = DateTime.Today.AddDays(-10);
         var medNaprQuery = from p in db.Persons
                            where !p.IsMedKomm && p.NaprMedVidanoDat != null && p.NaprMedVidanoDat.Value < dat
                            //orderby pd.PrinesetK, p.Fio
                            select new { p.Id, p.Fio, p.Phone, p.BirthDat, Description = "Медкомиссия не пройдена", PrinesetK = p.NaprMedVidanoDat };
         var docPrinesetKQuery = from p in db.Persons
                                 join pd in db.PersonDocs on p.Id equals pd.PersonId
                                 join pdt in db.DocTypes on pd.DocTypeId equals pdt.Id
                                 where pd.PrinesetK < DateTime.Today
                                 //orderby pd.PrinesetK, p.Fio
                                 select new { p.Id, p.Fio, p.Phone, p.BirthDat, pdt.Description, pd.PrinesetK };
         return((medNaprQuery.Union(docPrinesetKQuery)).OrderBy(x => new { x.PrinesetK, x.Fio }).ToList()
                .Select(p => new AlarmViewModel(p.Id, p.Fio, p.Phone, p.BirthDat, p.Description, p.PrinesetK)).ToList());
     }
 }
Ejemplo n.º 25
0
        public void VSOP1() //DateTime start, DateTime end, ProgressBar progress)
        {
            var vm = DataContext as SendGroupViewModel;

            excelReport excel = new excelReport();

            excel.Init("ВСОП_1.xlsx", string.Format(@"ВСОП_1_{0}_{1}__{2}_{3}.xlsx",
                                                    vm.OtprDat.Value.ToString("dd.MM.yyyy"),
                                                    "Новосибирск",
                                                    vm.City,
                                                    vm.Persons.Count), otchetDir: otchetDir);

            int ri  = 1;
            var db  = new ProvodnikContext();
            var ids = vm.Persons.Select(pp => pp.PersonId).ToList();
            var rr  = db.Persons.Where(pp => ids.Contains(pp.Id));

            foreach (var r in rr)//vm.Persons)
            {
                ri++;
                excel.cell[ri, 1].value2 = vm.RegOtdelenie;
                excel.cell[ri, 2].value2 = r.Fio;
                excel.cell[ri, 3].value2 = vm.Depo;
                excel.cell[ri, 4].value2 = Helper.FormatPhone(r.Phone);

                excel.cell[ri, 5].value2 = r.VaccineSert;
                excel.cell[ri, 6].value2 = r.VaccineSertDat?.ToString("dd.MM.yyyy");


                excel.cell[ri, 7].value2  = r.UchZavedenie;
                excel.cell[ri, 8].value2  = r.UchForma;
                excel.cell[ri, 9].value2  = r.Grazdanstvo;
                excel.cell[ri, 10].value2 = r.Otryad;
                excel.cell[ri, 11].value2 = r.UchebCentr;
                excel.cell[ri, 12].value2 = (r.ExamenDat.HasValue)?r.ExamenDat.Value.Year.ToString()
                    : (r.UchebEndDat.HasValue?r.UchebEndDat.Value.Year.ToString():"");
                excel.cell[ri, 13].value2 = Helper.FormatPhone(r.RodPhone);
                excel.cell[ri, 14].value2 = r.RodFio;
            }
            excel.setAllBorders(excel.get_Range("A2", "N" + ri));
            excel.Finish();
        }
Ejemplo n.º 26
0
        public void Napravleniya() //DateTime start, DateTime end, ProgressBar progress)
        {
            var vm = DataContext as MedKomZayavkaViewModel;

            var num = "";

            foreach (var n in vm.Name)
            {
                if (char.IsDigit(n))
                {
                    num += n;
                }
                else
                {
                    break;
                }
            }

            excelReport excel = new excelReport();

            excel.Init("Направление мед.xltx", $"Список на мед.комиссию{num}Новосибирское РО_{vm.Depo}.xlsx", false, System.IO.Path.GetTempPath());//,visible:true);//, otchetDir: otchetDir);

            int ri = 1;
            var db = new ProvodnikContext();

            foreach (var r in vm.Persons)
            {
                ri++;
                excel.cell[ri, 1].value2 = ri - 1;
                excel.cell[ri, 2].value2 = r.VihodDat?.ToString("dd.MM.yyyy");
                excel.cell[ri, 3].value2 = vm.Depo;
                excel.cell[ri, 4].value2 = "Новосибирское РО";
                excel.cell[ri, 5].value2 = r.Fio;
                excel.cell[ri, 6].value2 = r.BirthDat?.ToString("dd.MM.yyyy");
                excel.cell[ri, 7].value2 = vm.BolnicaName;
                excel.cell[ri, 8].value2 = vm.BolnicaAdres;
            }
            excel.setAllBorders(excel.get_Range("A1", "H" + ri));
            excel.myExcel.Visible = true;
            excel.Finish(false);
        }
Ejemplo n.º 27
0
        private void SpravkiPSOButton_Click(object sender, RoutedEventArgs e)
        {
            var db = new ProvodnikContext();

            var ids            = vm.PersonList.Select(pp => pp.Id).ToList();
            var idsWithSpravka = new HashSet <int>(from p in db.Persons
                                                   where ids.Contains(p.Id)
                                                   join pd in db.PersonDocs on p.Id equals pd.PersonId
                                                   where pd.DocTypeId == DocConsts.СправкаРСО && pd.FileName != null
                                                   select p.Id);

            var persons = vm.PersonList.Where(p => !idsWithSpravka.Contains(p.Id));

            if (!persons.Any())
            {
                MessageBox.Show("Справки есть у всех");
                return;
            }

            excelReport excel = new excelReport();

            excel.Init("Справки РСО.xltx", $"Справки РСО { DateTime.Now.Ticks}.xlsx");//,visible:true);//, otchetDir: otchetDir);

            int ri = 1;

            foreach (var r in persons)
            {
                ri++;
                excel.cell[ri, 1].value2 = ri - 1;
                excel.cell[ri, 2].value2 = r.Fio;
                //excel.cell[ri, 3].value2 = "АО \"ФПК\"";
                excel.cell[ri, 4].value2 = r.BirthDat?.ToString("dd.MM.yyyy");
                excel.cell[ri, 5].value2 = r.UchZavedenie;
                excel.cell[ri, 6].value2 = r.UchFac;
                excel.cell[ri, 7].value2 = r.Inn;
                excel.cell[ri, 8].value2 = Helper.FormatSnils(r.Snils);
                //excel.cell[ri, 9].value2 = "01.04.2021 - 31.12.2021 г.";
            }
            excel.setAllBorders(excel.get_Range("A1", "I" + ri));
            excel.myExcel.Visible = true;
        }
Ejemplo n.º 28
0
        public SendGroupViewModel(int?sendGroupId = null)
        {
            Validator = GetValidator();

            RegOtdeleniya = repository.GetRegOtdeleniya();

            Cities     = repository.GetCities();
            PeresadSts = repository.GetPeresadSts();

            Persons = new ObservableCollection <SendGroupPersonViewModel>();

            var db = new ProvodnikContext();

            if (sendGroupId.HasValue)
            {
                Id = sendGroupId;
                MainWindow.Mapper.Value.Map(db.SendGroups.Single(pp => pp.Id == sendGroupId), this);

                var qq = (from pd in db.SendGroupPersons join p in db.Persons on pd.PersonId equals p.Id
                          where pd.SendGroupId == sendGroupId
                          select new { pd, p }).ToList();

                foreach (var q in qq)
                {
                    SendGroupPersonViewModel pe = new SendGroupPersonViewModel();
                    MainWindow.Mapper.Value.Map(q.pd, pe);
                    MainWindow.Mapper.Value.Map(q.p, pe);
                    pe.SendGroupViewModel = this;
                    Persons.Add(pe);
                }
//Persons.Add(MainWindow.Mapper.Value.Map< SendGroupPersonViewModel>(db.SendGroups.Single(pp => pp.Id == sendGroupId), this);
            }
            else
            {
                RegOtdelenie = RegOtdeleniya[0];
            }

            _isLoaded = true;
        }
Ejemplo n.º 29
0
        public void PismoLgoti()
        {
            var vm = DataContext as SendGroupViewModel;

            var db  = new ProvodnikContext();
            var ids = vm.Persons.Select(pp => pp.PersonId);
            var pe  = db.Persons.Where(pp => ids.Contains(pp.Id) && !(/*pp.HasLgota*/ pp.UchForma == UchFormaConsts.Ochnaya)).ToList();

            if (pe.Count == 0)
            {
                return;
            }


            var path = (string.Format("{0}\\_шаблоны\\" + "Письмо об отсутствии льготы.docx", AppDomain.CurrentDomain.BaseDirectory));

            Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application {
                Visible = false
            };
            Microsoft.Office.Interop.Word.Document aDoc = wordApp.Documents.Open(path, ReadOnly: false, Visible: false);
            aDoc.Activate();


            Microsoft.Office.Interop.Word.Range range = aDoc.Content;
            range.Find.ClearFormatting();

            var list = new List <string>();

            for (int i = 0; i < pe.Count; i++)
            {
                list.Add($"{i + 1}. {pe[i].Fio}");
            }

            range.Find.Execute(FindText: "{list}", ReplaceWith: string.Join("\r", list), Replace: Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll);

            aDoc.SaveAs(FileName: otchetDir + @"\Письмо об отсутствии льготы.docx");
            aDoc.Close();
        }
Ejemplo n.º 30
0
 private void Patch_ExecOnceThanDelete()
 {
     using (var db = new ProvodnikContext())
     {
         /*  foreach (var p in db.Persons.Where(x=>x.Fio== "Белых Артём Александрович"))
          * {
          *    //db.PersonDocs.Add(new PersonDoc() { PersonId = p.Id, IsActive = true, DocTypeId = DocConsts.СвидетельствоВакцинации });
          *    if (!new ProvodnikContext().PersonDocs.Any(x=>x.PersonId==p.Id && x.DocTypeId == DocConsts.ЗаключениеВЭК2))
          *        db.PersonDocs.Add(new PersonDoc() { PersonId = p.Id, IsActive = true, DocTypeId = DocConsts.ЗаключениеВЭК2 });
          *    //db.PersonDocs.Add(new PersonDoc() { PersonId = p.Id, IsActive = true, DocTypeId = DocConsts.ТрудоваяКнижка1});
          *    //db.PersonDocs.Add(new PersonDoc() { PersonId = p.Id, IsActive = true, DocTypeId = DocConsts.ТрудоваяКнижка2 });
          *
          * }*/
         /*foreach (var p in db.MedKomZayavki)
          * {
          *  p.BolnicaName = @"Поликлиника: ЧУЗ «КБ «РЖД - Медицина» г.Новосибирск»  
          * Псих.освидетельствование:Медицинский психодиагностический центр ""МЕНТАЛ КОНСАЛТИНГ""";
          *  p.BolnicaAdres = @"Поликлиника: г.Новосибирск, ул.Сибирская, 21
          * Псих.осведетельствование: г.Новосибирск, ул.Красный проспект, 99";
          * }*/
         db.SaveChanges();
     }
 }