예제 #1
0
        private void NobetGrubunaEczaneleriEkle(EczaneNobetGrupCoklu eczaneNobetGrupCoklu, List <EczaneNobetGrup> eczaneNobetGruplar)
        {
            var eklenenNobetGrupGorevTip = _nobetGrupGorevTipService.GetDetayById(eczaneNobetGrupCoklu.NobetGrupGorevTipId);

            TempData["EklenenEczane"] = $"{eklenenNobetGrupGorevTip.NobetGrupGorevTipAdi} nöbet grubuna {eczaneNobetGrupCoklu.EczaneId.Count()} adet eczane başarılı bir şekilde eklenmiştir.";

            _eczaneNobetGrupService.CokluEkle(eczaneNobetGruplar);

            var gruptakiEczaneler       = _eczaneNobetGrupService.GetDetaylarByNobetGrupGorevTipler(eczaneNobetGrupCoklu.NobetGrupGorevTipId);
            var eczaneIdList            = eczaneNobetGruplar.Select(s => s.EczaneId).ToList();
            var eczaneNobetGrupDetaylar = _eczaneNobetGrupService.GetDetaylar(eczaneIdList, eczaneNobetGrupCoklu.NobetGrupGorevTipId);

            if (eklenenNobetGrupGorevTip.NobetUstGrupId == 2)
            {     //antalya'da planlanan nöbetleri yazmak için
                if (eczaneNobetGrupDetaylar.Count > 0)
                { //grupta eczaneler var. grup yeni değil. tekli olarak eklenen eczaneler için planlanan nöbetler yeniden yazılacak.
                    #region planlanan nöbetler - sıralı nöbet yazma (gün grubu bazında)

                    var baslangicTarihi = eczaneNobetGrupDetaylar.Min(s => s.BaslangicTarihi);

                    var sonTarih = baslangicTarihi.AddYears(1);

                    var planlananNobetlerinYazilacagiSonTarih = new DateTime(sonTarih.Year, 12, 31);

                    var planlananNobetlerinYazilacagiNobetGrubu = _nobetGrupGorevTipService.GetDetayById(eczaneNobetGrupCoklu.NobetGrupGorevTipId);

                    _takvimService.SiraliNobetYazGrupBazindaOncekiNobetGrubaGore(planlananNobetlerinYazilacagiNobetGrubu, gruptakiEczaneler, baslangicTarihi, planlananNobetlerinYazilacagiSonTarih);

                    #endregion
                }
                else
                {//gruba ilk kez eczane ekleniyor
                }
            }

            var nobetGrupGorevTip = _nobetGrupGorevTipService.GetDetayById(eczaneNobetGrupCoklu.NobetGrupGorevTipId);
            var nobetUstGrupId    = nobetGrupGorevTip.NobetUstGrupId;

            if (nobetUstGrupId == 1 || //alanya
                nobetUstGrupId == 3 ||//mersin
                nobetUstGrupId == 4 ||//giresun
                nobetUstGrupId == 5   //osmaniye
                )
            {
                var eklenenIkiliEczaneler = _ayniGunTutulanNobetService.IkiliEczaneleriOlustur(eczaneNobetGrupDetaylar);
            }
        }
        public ActionResult Create([Bind(Include = "Id,EczaneId,NobetGrupGorevTipId,BaslangicTarihi,BitisTarihi,Aciklama,EnErkenTarihteNobetYazilsinMi")] EczaneNobetGrupCoklu eczaneNobetGrupCoklu)
        {
            var eczaneNobetGruplar = new List <EczaneNobetGrup>();

            foreach (var eczaneId in eczaneNobetGrupCoklu.EczaneId)
            {
                eczaneNobetGruplar.Add(new EczaneNobetGrup
                {
                    EczaneId            = eczaneId,
                    NobetGrupGorevTipId = eczaneNobetGrupCoklu.NobetGrupGorevTipId,
                    BaslangicTarihi     = eczaneNobetGrupCoklu.BaslangicTarihi,
                    BitisTarihi         = eczaneNobetGrupCoklu.BitisTarihi,
                    Aciklama            = eczaneNobetGrupCoklu.Aciklama
                });
            }

            var eklenecekEczaneSayisi = eczaneNobetGruplar.Count;

            if (ModelState.IsValid && eklenecekEczaneSayisi > 0)
            {
                var eklenenNobetGrupGorevTip = _nobetGrupGorevTipService.GetDetayById(eczaneNobetGrupCoklu.NobetGrupGorevTipId);

                TempData["EklenenEczane"] = $"{eklenenNobetGrupGorevTip.NobetGrupGorevTipAdi} nöbet grubuna {eczaneNobetGrupCoklu.EczaneId.Count()} adet eczane başarılı bir şekilde eklenmiştir.";

                _eczaneNobetGrupService.CokluEkle(eczaneNobetGruplar);

                var gruptakiEczaneler       = _eczaneNobetGrupService.GetDetaylarByNobetGrupGorevTipler(eczaneNobetGrupCoklu.NobetGrupGorevTipId);
                var eczaneIdList            = eczaneNobetGruplar.Select(s => s.EczaneId).ToList();
                var eczaneNobetGrupDetaylar = _eczaneNobetGrupService.GetDetaylar(eczaneIdList, eczaneNobetGrupCoklu.NobetGrupGorevTipId);

                if (eklenenNobetGrupGorevTip.NobetUstGrupId == 2)
                {     //antalya'da planlanan nöbetleri yazmak için
                    if (eczaneNobetGrupDetaylar.Count > 0)
                    { //grupta eczaneler var. grup yeni değil. tekli olarak eklenen eczaneler için planlanan nöbetler yeniden yazılacak.
                        #region planlanan nöbetler - sıralı nöbet yazma (gün grubu bazında)

                        var baslangicTarihi = eczaneNobetGrupDetaylar.Min(s => s.BaslangicTarihi);

                        var sonTarih = baslangicTarihi.AddYears(1);

                        var planlananNobetlerinYazilacagiSonTarih = new DateTime(sonTarih.Year, 12, 31);

                        var planlananNobetlerinYazilacagiNobetGrubu = _nobetGrupGorevTipService.GetDetayById(eczaneNobetGrupCoklu.NobetGrupGorevTipId);

                        _takvimService.SiraliNobetYazGrupBazindaOncekiNobetGrubaGore(planlananNobetlerinYazilacagiNobetGrubu, gruptakiEczaneler, baslangicTarihi, planlananNobetlerinYazilacagiSonTarih);

                        #endregion
                    }
                    else
                    {//gruba ilk kez eczane ekleniyor
                    }
                }

                var nobetGrupGorevTip = _nobetGrupGorevTipService.GetDetayById(eczaneNobetGrupCoklu.NobetGrupGorevTipId);
                var nobetUstGrupId    = nobetGrupGorevTip.NobetUstGrupId;

                if (nobetUstGrupId == 1 || //alanya
                    nobetUstGrupId == 3 ||//mersin
                    nobetUstGrupId == 4 ||//giresun
                    nobetUstGrupId == 5   //osmaniye
                    )
                {
                    var eklenenIkiliEczaneler = _ayniGunTutulanNobetService.IkiliEczaneleriOlustur(eczaneNobetGrupDetaylar);
                }
                //else if (nobetUstGrupId == 1)
                //{

                //}

                ViewBag.EklenenEczaneSayisi = eklenecekEczaneSayisi;
                ViewBag.EklenenNobetGrupAdi = _nobetGrupGorevTipService.GetDetayById(eczaneNobetGrupCoklu.NobetGrupGorevTipId).NobetGrupAdi;
                return(RedirectToAction("Index"));
            }

            var nobetUstGrup = _nobetUstGrupSessionService.GetSession("nobetUstGrup");

            //var user = _userService.GetByUserName(User.Identity.Name);
            //var nobetUstGrup = _nobetUstGrupService.GetListByUser(user).FirstOrDefault();
            var nobetGruplar = _nobetGrupGorevTipService.GetDetaylar(nobetUstGrup.Id);
            var eczaneler    = _eczaneService.GetList(nobetUstGrup.Id).OrderBy(s => s.Adi).ToList();

            ViewBag.EczaneId            = new SelectList(eczaneler, "Id", "Adi", eczaneNobetGrupCoklu.EczaneId);
            ViewBag.NobetGrupGorevTipId = new SelectList(nobetGruplar, "Id", "NobetGrupGorevTipAdi", eczaneNobetGrupCoklu.NobetGrupGorevTipId);
            return(View()); //eczaneNobetGrup
        }