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 }