Пример #1
0
        public JsonResult PlanlanaNobetleriYazNakilEczaneyeGore(
            DateTime?baslangicTarihi,
            DateTime bitisTarihi,
            int gunGrupId           = 0,
            int nobetGrupGorevTipId = 0)
        {
            //baslangicTarihi = new DateTime(2018, 6, 1);
            //baslangicTarihi = new DateTime(2019, 3, 13);
            //bitisTarihi = new DateTime(2020, 12, 31);
            var nobetUstGrup = _nobetUstGrupSessionService.GetSession("nobetUstGrup");

            var gunGruplar = _nobetUstGrupGunGrupService.GetDetaylar(nobetUstGrup.Id)
                             .Where(w => w.GunGrupId == gunGrupId || gunGrupId == 0).ToList();

            var nobetGrupGorevTipler = _nobetGrupGorevTipService.GetDetaylar(nobetUstGrup.Id)
                                       .Where(w => w.Id == nobetGrupGorevTipId || nobetGrupGorevTipId == 0).ToList();

            foreach (var nobetGrupGorevTip in nobetGrupGorevTipler)
            {
                var baslamaTarihi = nobetGrupGorevTip.BaslamaTarihi;

                if (baslangicTarihi != null)
                {
                    baslamaTarihi = (DateTime)baslangicTarihi;
                }

                var eczaneNobetGruplarHepsi = _eczaneNobetGrupService.GetDetaylarByNobetGrupGorevTipler(nobetGrupGorevTip.Id);

                foreach (var gunGrup in gunGruplar)
                {
                    _takvimService.SiraliNobetYazGunGrupBazinda(
                        nobetGrupGorevTip,
                        eczaneNobetGruplarHepsi,
                        baslamaTarihi,
                        bitisTarihi,
                        gunGrup.GunGrupId);
                }
            }

            var jsonResult = Json(nobetGrupGorevTipler.Count(), JsonRequestBehavior.AllowGet);

            //jsonResult.MaxJsonLength = int.MaxValue;

            return(jsonResult);
        }
        public void PlanlananNobetleriYazdir(EczaneNobetGrup eczaneNobetGrup, EczaneNobetGrupDetay degisecekEczaneNobetGrupOncekiHali)
        {
            #region planlanan nöbet yazdırma seçenekleri

            var eklenenNobetGrupGorevTip = _nobetGrupGorevTipService.GetDetayById(eczaneNobetGrup.NobetGrupGorevTipId);

            var bitisTarihiDegistiMi = degisecekEczaneNobetGrupOncekiHali.BitisTarihi != eczaneNobetGrup.BitisTarihi;
            //var baslangicTarihiDegistiMi = degisecekEczaneNobetGrupOncekiHali.BaslangicTarihi != eczaneNobetGrup.BaslangicTarihi;

            if (eklenenNobetGrupGorevTip.NobetUstGrupId == 2 &&
                (bitisTarihiDegistiMi
                 //|| baslangicTarihiDegistiMi
                )
                )
            {//antalya'da planlanan nöbetleri yazmak için
             //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 gruptakiEczaneler = _eczaneNobetGrupService.GetDetaylarByNobetGrupGorevTipler(eczaneNobetGrup.NobetGrupGorevTipId);

                var baslangicTarihi = eczaneNobetGrup.BaslangicTarihi < degisecekEczaneNobetGrupOncekiHali.NobetGrupGorevTipBaslamaTarihi
                    ? degisecekEczaneNobetGrupOncekiHali.NobetGrupGorevTipBaslamaTarihi
                    : eczaneNobetGrup.BaslangicTarihi;

                var baslangicTarihiVarsayilan = baslangicTarihi;

                //if (baslangicTarihiDegistiMi)
                //{
                //    baslangicTarihi = eczaneNobetGrup.BaslangicTarihi < degisecekEczaneNobetGrupOncekiHali.NobetGrupGorevTipBaslamaTarihi
                //        ? degisecekEczaneNobetGrupOncekiHali.NobetGrupGorevTipBaslamaTarihi
                //        : eczaneNobetGrup.BaslangicTarihi;
                //}

                if (bitisTarihiDegistiMi &&
                    EczaneGruptaKapaniyorMu(eczaneNobetGrup.BitisTarihi))
                {
                    baslangicTarihi = (DateTime)eczaneNobetGrup.BitisTarihi;
                }

                var sonTarih = baslangicTarihi.AddYears(1);

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

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

                var nobetUstGrupGunGruplar = _nobetUstGrupGunGrupService.GetDetaylar(degisecekEczaneNobetGrupOncekiHali.NobetUstGrupId)
                                             .OrderBy(o => o.GunGrupId).ToList();

                foreach (var gunGrup in nobetUstGrupGunGruplar)
                {
                    if (EczaneGruptaKapaniyorMu(eczaneNobetGrup.BitisTarihi))
                    {
                        baslangicTarihi = (DateTime)eczaneNobetGrup.BitisTarihi;
                    }
                    else
                    {
                        var planlananSonNobetTarihi = _eczaneNobetSonucPlanlananService.GetSonuclarByEczaneNobetGrupId(eczaneNobetGrup.Id, gunGrup.GunGrupId)
                                                      .Where(w => w.Tarih >= w.NobetGrupGorevTipBaslamaTarihi)
                                                      .OrderByDescending(o => o.Tarih).FirstOrDefault();

                        baslangicTarihi = planlananSonNobetTarihi != null ? planlananSonNobetTarihi.Tarih : baslangicTarihiVarsayilan;
                    }

                    _takvimService.SiraliNobetYazGunGrupBazinda(
                        planlananNobetlerinYazilacagiNobetGrubu,
                        gruptakiEczaneler,
                        baslangicTarihi,
                        planlananNobetlerinYazilacagiSonTarih,
                        gunGrup.GunGrupId);
                }

                #endregion
            }

            #endregion
        }