using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Net; using System.Web; using System.Web.Mvc; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.Extensions; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Helpers.SystemSettings; using Kreta.BusinessLogic.Interfaces; using Kreta.BusinessLogic.Logic.Naplozas; using Kreta.BusinessLogic.Logic.Naplozas.Elokeszites; using Kreta.BusinessLogic.Logic.Naplozas.Validacio; using Kreta.BusinessLogic.Security; using Kreta.Core.Exceptions; using Kreta.Enums; using Kreta.Enums.ManualEnums; using Kreta.Resources; using Kreta.Web.Areas.Feljegyzes.Models; using Kreta.Web.Areas.Orarend.Models; using Kreta.Web.Areas.TanuloErtekeles.Controllers; using Kreta.Web.Helpers; using Kreta.Web.Helpers.Error; using Kreta.Web.Helpers.TabStrip; using Kreta.Web.Models.EditorTemplates; using Kreta.Web.Security; using Kreta.Web.Utils; namespace Kreta.Web.Areas.Orarend.Controllers { public class BaseTanariOrarendController : BaseNaploTanariOrarendController { #region Konstansok public const string TanoraNaplozasInfo = "~/Areas/Orarend/Views/TanariOrarend/TanoraNaplozasInfo.cshtml";//nameof(TanoraNaplozasInfo); public const string Info_TanoraAdatai_Tab = "~/Areas/Orarend/Views/TanariOrarend/Info_TanoraAdatai_Tab.cshtml";//nameof(Info_TanoraAdatai_Tab); public const string Info_MulasztasNaplozas_Tab = "~/Areas/Orarend/Views/TanariOrarend/Info_MulasztasNaplozas_Tab.cshtml";//nameof(Info_MulasztasNaplozas_Tab); public const string Info_HaziFeladat_Tab = "~/Areas/Orarend/Views/TanariOrarend/Info_HaziFeladat_Tab.cshtml";//nameof(Info_HaziFeladat_Tab); public const string SzamonkeresElorejelzes_Tab = "~/Areas/Orarend/Views/TanariOrarend/SzamonkeresElorejelzes_Tab.cshtml";//nameof(SzamonkeresElorejelzes_Tab); public const string TanoraNaplozas = "~/Areas/Orarend/Views/TanariOrarend/TanoraNaplozas.cshtml";//nameof(TanoraNaplozas); public const string MulasztasNaplozas_Tab = "~/Areas/Orarend/Views/TanariOrarend/MulasztasNaplozas_Tab.cshtml";// nameof(MulasztasNaplozas_Tab); public const string TanuloErtekelesIndex = "~/Areas/TanuloErtekeles/Views/Ertekeles/Index.cshtml"; public const string FeljegyzesekIndex = "~/Areas/Feljegyzes/Views/Beirasok/Index.cshtml"; public const string HaziFeladat_Tab = "~/Areas/Orarend/Views/TanariOrarend/HaziFeladat_Tab.cshtml";//nameof(HaziFeladat_Tab); public const string TanoraAdatai_Tab = "~/Areas/Orarend/Views/TanariOrarend/TanoraAdatai_Tab.cshtml";//nameof(TanoraAdatai_Tab); public const string NaplozasDigitalisOktatas_Tab = "~/Areas/Orarend/Views/TanariOrarend/NaplozasDigitalisOktatas_Tab.cshtml";//nameof(NaplozasDigitalisOktatas_Tab); public const string KorabbiOrakNaplozasiAdatai_Tab = "~/Areas/Orarend/Views/TanariOrarend/KorabbiOrakNaplozasiAdatai_Tab.cshtml";//nameof(KorabbiOrakNaplozasiAdatai_Tab); public const string Info_DigitalisOktatas_Tab = "~/Areas/Orarend/Views/TanariOrarend/Info_DigitalisOktatas_Tab.cshtml";//nameof(Info_DigitalisOktatas_Tab); public const string closeTanoraMuveletWindowEvent = "Tanorak.closeTanoraMuveletWindow"; public const string saveNemMegtartottTanoraEvent = "Naplozashelper.saveNemMegtartottTanora"; public const string saveTanoraEvent = "Naplozashelper.saveTanora"; public const string oraOsszevonasDeleteEvent = "Naplozashelper.oraOsszevonasDelete"; public const string deleteTanoraEvent = "Naplozashelper.deleteTanora"; public const string oraOsszevonasPopUpEvent = "Naplozashelper.oraOsszevonasPopUp"; public const string ujOraFelvitelePopUpEvent = "Tanorak.ujOraFelvitelePopUp"; public const string elmaradt = nameof(elmaradt); public const string naplozas = nameof(naplozas); public const string oraOsszevonasDelete = nameof(oraOsszevonasDelete); public const string delete = nameof(delete); public const string oraOsszevonas = nameof(oraOsszevonas); public const string ujOraFelvitele = nameof(ujOraFelvitele); #endregion private IKretaAuthorization Authorization { get; } private readonly IFileServiceHelper fileServiceHelper; public BaseTanariOrarendController(IKretaAuthorization authorization, IFileServiceHelper fileServiceHelper) { Authorization = authorization; this.fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper)); } [NonAction] public ActionResult TanorakOrarendEvent(TanoraIdBeallitasModel model, int? SzervezetTipusId = null) { try { model.calendarModel.Start = model.calendarModel.Start.ToLocalTime(); model.calendarModel.End = model.calendarModel.End.ToLocalTime(); if (model.calendarModel.OraType == CalendarOraTypeEnum.TanevRendjeEsemeny) { return null; } var naploValidacioParameters = new NaploValidacioParameters(model.calendarModel.Start.ToLocalTime(), ConnectionTypeExtensions.GetSessionConnectionType(), ClaimData.FelhasznaloSzerepkor); var validator = new NaploValidacio(naploValidacioParameters); NaplozasElokeszitesLogic naplozasLogic = null; if (model.calendarModel.EventType == EventTypeEnum.UjEgyediOraFelvitel || (model.calendarModel.EventType == EventTypeEnum.UjOraFelvitele && (model.calendarModel.OraType == CalendarOraTypeEnum.UresOra || model.calendarModel.OraType == CalendarOraTypeEnum.Egyeb))) { var co = new EgyediNaplozasElokeszitesCo(); model.ConvertTo(co); naplozasLogic = new NaplozasElokeszitesLogic(validator, co); } else if (model.calendarModel.EventType == EventTypeEnum.TanarHelyetesites) { var co = new HelyettesitesNaplozasElokeszitesCo(); model.ConvertTo(co); co.SzervezetTipusId = SzervezetTipusId; naplozasLogic = new NaplozasElokeszitesLogic(validator, co); } else { var co = new NaplozasElokeszitesCo(); model.calendarModel.ConvertTo(co); co.SzervezetTipusId = SzervezetTipusId; naplozasLogic = new NaplozasElokeszitesLogic(validator, co); } var muveletPram = new TanoraMuveletek(ClaimData.FelhasznaloId, model); return TanoraMuveletek(naplozasLogic.GetModel, muveletPram, SzervezetTipusId); } catch (BlException e) { throw new StatusError(HttpStatusCode.BadRequest, e.Message); } } [NonAction] public ActionResult OpenNewFoglalkozasokOraPopUp(TanoraIdBeallitasModel model, bool isFromSzervezet = false) { var fm = new FoglalkozasModel() { UseFoglalkozas = model.calendarModel.UseFoglakozas, TanoranKivuliFoglalkozas = model.FoglalkozasId, TeremID = model.TeremId, OsztalyCsoportId = model.OsztalyCsoportId, TantargyId = model.TantargyId, Kezdete = model.calendarModel.Start, KezdeteDatum = model.calendarModel.Start, KezdeteLabel = model.calendarModel.Start.ToShortDateString(), Vege = model.calendarModel.End, VegeDatum = model.calendarModel.End, VegeLabel = model.calendarModel.End.ToShortDateString() }; PopUpModel pm = new PopUpModel(fm, "Foglalkozas_Bevitel"); pm = pm.AddBtn(pm, "newFoglalkozasCancel", AdminisztracioResource.Megsem, "Foglalkozasok.newFoglalkozasCancel"); pm = pm.AddBtn(pm, "newFoglalkozasSave", 2516, "Foglalkozasok.foglalkozasSave"); return PartialView(Constants.General.PopupView, pm); } [NonAction] public ActionResult GetWizardElovalaszto(DateTime? datum = null, bool isFromSzervezet = false) { var isSzakmaiGyakorlat = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).IsOsszefuggoSzakGyak(datum); var model = GetWizardElovalasztoModel(isSzakmaiGyakorlat); return PartialView("WizardElovalaszto", model); } [NonAction] public ActionResult GetWizardHelyettesitesElovalaszto(DateTime? datum = null, int hiba = -1, bool isFromSzervezet = false) { var isSzakmaiGyakorlat = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).IsOsszefuggoSzakGyak(datum); var model = GetWizardElovalasztoModel(isSzakmaiGyakorlat); model.TanarKezelhetHelyettesitest = false; //helyettesítésnél nem kell kirakni a helyettesítés gombot if (model.LehetOratFelvenniTTFNelkul && model.TanarVehetFelOratMaganak && hiba != -1) { model.LehetOratFelvenniTTFNelkul = false; model.TanarVehetFelOratMaganak = false; } model.HelyettesitendoTanarnakNincsOttOraja = (hiba == (int)EgyediHelyettesitesHibaEnum.HelyettesitendoTanarnakNincsOttOraja); model.HelyettesitendoTanarOrajatMarNaploztak = (hiba == (int)EgyediHelyettesitesHibaEnum.HelyettesitendoTanarOrajatMarNaploztak); return PartialView("WizardElovalaszto", model); } [NonAction] public ActionResult GetWizardOrarendioraValaszto(string startDate, string endDate, string hanyadikora, string helyettesitoId, bool isNapirend = false, bool isEgyediHelyettesites = false, bool isFromSzervezet = false) { WizardModel model = new WizardModel(); var helper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var ds = helper.CheckTanarOra(SDAConvert.ToDateTime(startDate).Value, SDAConvert.ToDateTime(endDate).Value, SDAConvert.ToInt32(helyettesitoId), SDAConvert.ToNullableInt32(hanyadikora), SDAConvert.ToBoolean(isNapirend), SDAConvert.ToBoolean(isEgyediHelyettesites)); model.WizardOraLista = new List(); if (ds != null && ds.Tables.Count > 0) { var szuksegesSorok = ds.Tables[0].AsEnumerable().ToList(); if (!isEgyediHelyettesites) { szuksegesSorok = szuksegesSorok.Where(x => x["Megtartott"].ToString() == "F").ToList(); } if (szuksegesSorok.Any()) { foreach (var orarendiOraSor in szuksegesSorok) { model.WizardOraLista.Add(new SelectListItem { Value = orarendiOraSor.Field("C_ORARENDIORAID").ToString(), Text = string.Format("{0} {1} ({2})", orarendiOraSor.Field("OsztalyNev"), orarendiOraSor.Field("TargyNev"), orarendiOraSor.Field("TeremNev")) }); } if (szuksegesSorok.Count == 1) { model.WizardOrarendId = szuksegesSorok[0].Field("C_ORARENDIORAID"); model.WizardOrarendMegtartott = SDAConvert.ToBooleanFromTF(szuksegesSorok[0].Field("Megtartott")); } } } model.IsEgyediHelyettesites = isEgyediHelyettesites; return PartialView("WizardOrarendioraValaszto", model); } [NonAction] public ActionResult GetWizardHelyettesites(bool isFromSzervezet = false) { WizardModel model = new WizardModel(); model.IsEgyediHelyettesites = TanarKezelhetHelyettesitest() && (ClaimData.FelhasznaloSzerepkor == SzerepkorTipusEnum.Naplo); return PartialView("WizardHelyettesites", model); } [NonAction] public ActionResult GetWizardOraosszevonasHelyettesites(bool isFromSzervezet = false) { WizardModel model = new WizardModel() { }; return PartialView("WizardOraosszevonasHelyettesites", model); } [NonAction] public ActionResult GetWizardFoglalkozas(int foglalkozasFilterId, bool isNapirend = false, DateTime? datum = null, int? hanyadikOra = null, bool isFromSzervezet = false) { WizardModel model = new WizardModel() { FoglalkozasFilterId = foglalkozasFilterId, IsNapirend = isNapirend, Datum = datum, HanyadikOra = hanyadikOra }; return PartialView("WizardFoglalkozas", model); } [NonAction] public ActionResult GetWizardEgyedi(int foglalkozasFilterId, DateTime datum, bool isNapirend = false, int? hanyadikOra = null, bool isFromSzervezet = false) { WizardModel model = new WizardModel() { FoglalkozasFilterId = foglalkozasFilterId, Datum = datum, IsNapirend = isNapirend, HanyadikOra = hanyadikOra }; return PartialView("WizardEgyedi", model); } [NonAction] public DateTime GetTanevUtolsoNapja(int? szervezetId = null) { var tanev = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo(); return szervezetId.HasValue ? tanev.UtolsoNap : tanev.UtolsoTanitasiNap; } public ActionResult TanoraMuveletek(NaplozasElokeszitesModel model, TanoraMuveletek muveletPram, int? szervezetTipusId) { try { var connectionType = ConnectionTypeExtensions.GetSessionConnectionType(); model.IsMentorOra = new OsztalyCsoportHelper(connectionType).IsMentorCsoport(model.OraAdat.OsztalyCsoportId); var tanarSorszamozhat = new SystemSettingsHelper(connectionType).GetSystemSettingValue(RendszerBeallitasTipusEnum.Ora_sorszamozasat_naplozo_pedagogus_eldontheti); var elmaradtTanitasiOraRogzitesenekTiltasa = new SystemSettingsHelper(connectionType).GetSystemSettingValue(RendszerBeallitasTipusEnum.Elmaradt_tanitasi_ora_rogzitesenek_tiltasa); var naplozarasLogic = new NaplozarasLogic(connectionType); bool isErtekelestModosithatNaplozarasTipusaMiatt = naplozarasLogic.IsErtekelhetZarastolFuggetlenul(model.OraAdat.OraKezdete, model.OraAdat.OsztalyCsoportId); var isNaplozhatNaplozarasTipusaMiatt = naplozarasLogic.IsNaplozhatZarastolFuggetlenul(model.OraAdat.OraKezdete, model.OraAdat.OsztalyCsoportId); if (model.IsTanora && model.OraAdat.TanitasiOraId.HasValue) { var helper = new TanoraHelper(connectionType); TanoraCO co = helper.GetTanorakAdatok(model.OraAdat.TanitasiOraId.Value); muveletPram.NaplozasDatum = co.Datum; model.OraAdat.DigEszkozTipusId = co.DigEszkozTipusId; model.OraAdat.DigPlatformTipusId = co.DigPlatformTipusId; model.OraAdat.DigTamEszkozTipusIdList = co.DigTamEszkozTipusIdList; } if (model.Naplozhat && isNaplozhatNaplozarasTipusaMiatt) { return GetNaplozasPopUp(model, muveletPram, isErtekelestModosithatNaplozarasTipusaMiatt, tanarSorszamozhat, elmaradtTanitasiOraRogzitesenekTiltasa, szervezetTipusId); } return GetNaplozasInfoPopUp(model, isErtekelestModosithatNaplozarasTipusaMiatt, tanarSorszamozhat, elmaradtTanitasiOraRogzitesenekTiltasa, szervezetTipusId); } catch (BlException ex) { throw new StatusError(HttpStatusCode.BadRequest, ex.Message); } } private ActionResult GetNaplozasInfoPopUp(NaplozasElokeszitesModel model, bool isErtekelestModosithatNaplozarasTipusaMiatt, bool tanarSorszamozhat, bool elmaradtTanitasiOraRogzitesenekTiltasa, int? szervezetTipusId) { try { var infoTabok = new TanoraNaplozasInfoTabok(szervezetTipusId); var naplozasModel = new TanoraNaplozas(fileServiceHelper, model.IsMentorOra, szervezetTipusId); naplozasModel.Fill(model, tanarSorszamozhat, elmaradtTanitasiOraRogzitesenekTiltasa); var infoModel = new TanoraNaplozasInfoModel(szervezetTipusId); naplozasModel.Convert(infoModel); var naplozasInfoModel = infoModel; infoTabok.OsztalyCsoport = naplozasInfoModel.TanoraAdataiInfo.OsztalyCsoportNev; infoTabok.Tantargy = naplozasInfoModel.TanoraAdataiInfo.TantargyNev; var connectionType = ConnectionTypeExtensions.GetActiveSessionConnectionType(); var helper = new TanoraHelper(connectionType); infoTabok.Oraszam = helper.GetOraEvesSorszamaSP(naplozasInfoModel.TanoraAdataiInfo.TantargyId.Value, naplozasInfoModel.TanoraAdataiInfo.OsztalyCsoportId.Value, model.OraAdat.OraKezdete, naplozasInfoModel.TanoraAdataiInfo.TanarId.Value); if (szervezetTipusId.HasValue && szervezetTipusId.Value == (int)SzervezetTipusEnum.Dualis) { var osztalyCsoportHelper = new OsztalyCsoportHelper(connectionType); var csoportSzakmajegyzekek = osztalyCsoportHelper.GetCsoportTanuloinakSzakmajegyzeke(naplozasModel.TanoraAdatai.OsztalyCsoportId.Value, DateTime.Now); if (csoportSzakmajegyzekek.Count > 0) { naplozasModel.Mulasztas.TanulasiEgysegList = helper.GetTanulasiEgysegek() .Where(e => (csoportSzakmajegyzekek[0].SzakmairanyTipusId ?? 0) == (e.SzakmairanyTipusId ?? 0) && (csoportSzakmajegyzekek[0].SzakmaTipusId ?? 0) == e.SzakmaTipusId).OrderBy(o => o.Sorszam) .Select(x => new SelectListItem { Value = x.ID.ToString(), Text = x.Szoveg }).ToList(); } } var pm = new PopUpModel(infoTabok, TanoraNaplozasInfo); infoTabok.TabList = GetNaplozasInfoTabs(model, naplozasInfoModel, isErtekelestModosithatNaplozarasTipusaMiatt); if (!model.OraAdat.IsTanorankivuli) { infoTabok.Fejlec = $"{OrarendResource.NaplozasiAdatok} ({naplozasInfoModel.TanoraAdataiInfo.OratartamEsOraszam}, {infoTabok.Tantargy}, {infoTabok.OsztalyCsoport})"; } else { infoTabok.Fejlec = $"{OrarendResource.NaplozasiAdatok} ({naplozasInfoModel.TanoraAdataiInfo.OraTartam}, {infoTabok.Tantargy}, {infoTabok.OsztalyCsoport})"; naplozasInfoModel.TanoraAdataiInfo.OratartamEsOraszam = naplozasInfoModel.TanoraAdataiInfo.OraTartam; } pm.AddCancelBtn(pm, closeTanoraMuveletWindowEvent); return PartialView(Constants.General.PopupView, pm); } catch (BlException e) { throw new StatusError(HttpStatusCode.BadRequest, e.Message); } } private ActionResult GetNaplozasPopUp(NaplozasElokeszitesModel model, TanoraMuveletek muveletPram, bool isErtekelestModosithatNaplozarasTipusaMiatt, bool tanarSorszamozhat, bool elmaradtTanitasiOraRogzitesenekTiltasa, int? szervezetTipusId) // bool csakErtekelestNemModositha) { try { var connectionType = ConnectionTypeExtensions.GetActiveSessionConnectionType(); var naplozasTabok = new TanoraNaplozasTabok(szervezetTipusId); naplozasTabok.OsztalyCsoport = model.OraAdat.OsztalyCsoportNev; naplozasTabok.Tantargy = model.OraAdat.TantargyNev; var naplozasModel = new TanoraNaplozas(fileServiceHelper, model.IsMentorOra, szervezetTipusId); naplozasModel.Fill(model, tanarSorszamozhat, elmaradtTanitasiOraRogzitesenekTiltasa); naplozasModel.TanoraAdatai.NaplozasDatum = muveletPram.NaplozasDatum; naplozasModel.Mulasztas.SetIsAmi(); if (szervezetTipusId.HasValue && szervezetTipusId.Value == (int)SzervezetTipusEnum.Dualis) { var osztalyCsoportHelper = new OsztalyCsoportHelper(connectionType); var csoportSzakmajegyzekek = osztalyCsoportHelper.GetCsoportTanuloinakSzakmajegyzeke(naplozasModel.TanoraAdatai.OsztalyCsoportId.Value, DateTime.Now); if (csoportSzakmajegyzekek.Count > 0) { var csoportSzakmajegyzekekSzakmairanyTipusId = !csoportSzakmajegyzekek[0].SzakmairanyTipusId.HasValue || csoportSzakmajegyzekek[0].SzakmairanyTipusId.Value == (int)SzakmairanyTipusEnum.na ? 0 : csoportSzakmajegyzekek[0].SzakmairanyTipusId.Value; var csoportSzakmajegyzekekSzakmaTipusId = !csoportSzakmajegyzekek[0].SzakmaTipusId.HasValue || csoportSzakmajegyzekek[0].SzakmaTipusId.Value == (int)SzakmaTipusEnum.na ? 0 : csoportSzakmajegyzekek[0].SzakmaTipusId.Value; naplozasModel.Mulasztas.TanulasiEgysegList = new TanoraHelper(connectionType).GetTanulasiEgysegek() .Where(e => csoportSzakmajegyzekekSzakmairanyTipusId == (e.SzakmairanyTipusId ?? 0) && csoportSzakmajegyzekekSzakmaTipusId == e.SzakmaTipusId).OrderBy(o => o.Sorszam) .Select(x => new SelectListItem { Value = x.ID.ToString(), Text = x.Szoveg }).ToList(); } } var infoModel = new TanoraNaplozasInfoModel(szervezetTipusId); naplozasModel.Convert(infoModel); var pm = new PopUpModel(naplozasTabok, TanoraNaplozas); if (model.OraAdat.IsElmaradt) { var dktFileHelper = new DktFileHelper(connectionType); double osszMeret = dktFileHelper.GetHaziFeladatCsatolmanyokOsszMeret(); int maxMegengedettAdatmennyiseg = dktFileHelper.GetMaxAdatmennyisegFelhasznalokent(ClaimData.FelhasznaloId); naplozasTabok.TabList = GetNaplozasInfoTabs(model, infoModel, isErtekelestModosithatNaplozarasTipusaMiatt, naplozasModel.HaziFeladat); if (!model.SzervezetTipusId.HasValue) { naplozasModel.HaziFeladat.UsedFilesSizeInKiloBytesTotal = osszMeret; naplozasModel.HaziFeladat.MaxAllowedFilesSizeInKiloBytes = maxMegengedettAdatmennyiseg; naplozasModel.HaziFeladat.IsTanarVehetFelHazitNaplozasNelkul = true; naplozasModel.HaziFeladat.IsHaziFeladatHelper = true; naplozasModel.HaziFeladat.NapDatuma = model.OraAdat.OraKezdete.Date; naplozasModel.HaziFeladat.TanitasiOraId = model.OraAdat.TanitasiOraId; } } else { naplozasTabok.TabList = GetNaplozasDetailTabs(model, naplozasModel, isErtekelestModosithatNaplozarasTipusaMiatt); } muveletPram.IsTanoranKivuli = model.OraAdat.IsTanorankivuli; naplozasTabok.TanoraMuveletek = muveletPram; if (!naplozasTabok.TanoraMuveletek.IsTanoranKivuli) { naplozasTabok.Fejlec = $"{OrarendResource.TanoraNaplozasa} ({naplozasModel.TanoraAdatai.OratartamEsOraszam}, {naplozasTabok.Tantargy}, {naplozasTabok.OsztalyCsoport})"; } else { naplozasTabok.Fejlec = $"{OrarendResource.Naplozas} ({model.OraTartamText}, {naplozasTabok.Tantargy}, {naplozasTabok.OsztalyCsoport})"; naplozasModel.TanoraAdatai.OratartamEsOraszam = model.OraTartamText; } pm.AddCancelBtn(pm, closeTanoraMuveletWindowEvent); if (model.Naplozhat) { var systemSettingsHelper = new SystemSettingsHelper(connectionType); if (!model.IsTanora) { var elmaradtOraRogzitesTestreszabas = !systemSettingsHelper.GetSystemSettingValue(RendszerBeallitasTipusEnum.Elmaradt_tanitasi_ora_rogzitesenek_tiltasa); if (elmaradtOraRogzitesTestreszabas) { pm.Buttons.Add(new Helpers.Modal.ModalButtonModel { Name = elmaradt, Text = OrarendResource.ElmaradtOra, EventName = saveNemMegtartottTanoraEvent }); } pm.Buttons.Add(new Helpers.Modal.ModalButtonModel { Name = naplozas, Text = OrarendResource.OraNaplozasa, EventName = saveTanoraEvent }); } else { if (model.Helyettesites.Tipus == (int)HelyettesitesTipusEnum.oraosszevonas) { pm.Buttons.Add(new Helpers.Modal.ModalButtonModel { Name = oraOsszevonasDelete, Text = OrarendResource.OraOsszevonasTorlese, EventName = $"function(){{ {oraOsszevonasDeleteEvent}({model.OraAdat.TanitasiOraId}); }}" }); } else if (!model.OraAdat.IsAdminAltalKiirt) { pm.Buttons.Add(new Helpers.Modal.ModalButtonModel { Name = delete, Text = OrarendResource.NaplozasiAdatokTorlese, EventName = $"function(){{ {deleteTanoraEvent}('{model.OraAdat.VanOralatogatasa}', {(naplozasModel.HaziFeladat.HaziFeladat == null ? "false" : "true")}); }}" }); } var csengetesiRendOrakHelper = new CsengetesiRendOrakHelper(connectionType); if (!model.IsElmaradtOra) { pm.Buttons.Add(new Helpers.Modal.ModalButtonModel { Name = naplozas, Text = OrarendResource.NaplozasValtoztatasainakMentese, EventName = saveTanoraEvent }); if (TanarKezelhetHelyettesitest()) { var eventId = 0; if (model.OraAdat.CsengetesirendId.HasValue && model.OraAdat.Oraszam.HasValue) { var csengrendOraId = csengetesiRendOrakHelper.GetCsengetesiRendOraId(model.OraAdat.CsengetesirendId.Value, model.OraAdat.Oraszam.Value); if (csengrendOraId.HasValue) { eventId = csengrendOraId.Value; } } pm.Buttons.Add(new Helpers.Modal.ModalButtonModel { Name = oraOsszevonas, Text = OrarendResource.OraOsszevonas, EventName = $"function(){{ {oraOsszevonasPopUpEvent}({eventId},'{model.OraAdat.IsTanorankivuli.ToString().ToLower()}'); }}" }); } } else { var tanarVehetEFelOratMaganak = systemSettingsHelper.GetSystemSettingValue(RendszerBeallitasTipusEnum.Tanar_vehet_e_fel_orat_maganak); if (model.OraAdat.CsengetesirendId.HasValue && model.OraAdat.Oraszam.HasValue && tanarVehetEFelOratMaganak) { var eventId = 0; var csengrendOraId = csengetesiRendOrakHelper.GetCsengetesiRendOraId(model.OraAdat.CsengetesirendId.Value, model.OraAdat.Oraszam.Value); if (csengrendOraId.HasValue) { eventId = csengrendOraId.Value; } pm.Buttons.Add(new Helpers.Modal.ModalButtonModel { Name = ujOraFelvitele, Text = OrarendResource.UjOraFelvitele, EventName = $"function(){{ {ujOraFelvitelePopUpEvent}({eventId},{(int)CalendarOraTypeEnum.UresOra},{(int)EventTypeEnum.UjEgyediOraFelvitel}); }}" }); } } } } return PartialView(Constants.General.PopupView, pm); } catch (BlException e) { throw new StatusError(HttpStatusCode.BadRequest, e.Message); } } private bool TanarKezelhetHelyettesitest() { var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()); return !systemSettingsHelper.GetSystemSettingValue(RendszerBeallitasTipusEnum.Pedagogusok_csak_az_eloirt_helyettesiteseiket_regisztralhatjak_a_haladasi_naploban); } private List GetNaplozasDetailTabs(NaplozasElokeszitesModel model, TanoraNaplozas naplozasModel, bool isErtekelestModosithatNaplozarasTipusaMiatt) { var list = new List(); if (model.Naplozhat && model.OraAdat.OsztalyCsoportId.HasValue) { var mulasztasModel = naplozasModel.Mulasztas; mulasztasModel.HianyzokAutoKitoltes = !model.OraAdat.TanitasiOraId.HasValue && ProfileUtils.IsHianyzokAutoKitoltesEnabled; var helper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var ds = helper.GetOraMentessegList(model.OraAdat.OraKezdete, model.OraAdat.OraVege, model.OraAdat.OsztalyCsoportId.Value); if (ds.Tables[0].Rows.Count == 1) { DataRow row = ds.Tables[0].Rows[0]; mulasztasModel.JogviszonySzunetletetokDb = row.Field("JogviszonyDb"); mulasztasModel.JogviszonySzunetletetok = row.Field("JogviszonyNevSor"); mulasztasModel.SzakmaiGyakorlatonLevokDb = row.Field("SzakmaiGyakDb"); mulasztasModel.SzakmaiGyakorlatonLevok = row.Field("SzakmaiGyakNevSor"); } list.Add(new TabStripItemModel() { ItemId = "1", ItemName = OrarendResource.Naplozas, PartialViewName = MulasztasNaplozas_Tab, Model = mulasztasModel, IsActive = model.Naplozhat, }); } var isTanoraiCeluOsztalyCsoportDisabled = false; var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var isNemTanoraiCeluCsoportokErtekelesEnabled = systemSettingsHelper.GetSystemSettingValue(RendszerBeallitasTipusEnum.nem_tanorai_celu_csoportok_ertekelesi_lehetosege); if (!isNemTanoraiCeluCsoportokErtekelesEnabled && model.OraAdat.OsztalyCsoportId.HasValue) { isTanoraiCeluOsztalyCsoportDisabled = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).IsOsztalyCsoportNemTanoraiCeluCsoport(model.OraAdat.OsztalyCsoportId.Value); } if (model.Ertekelhet && !isTanoraiCeluOsztalyCsoportDisabled && !model.SzervezetTipusId.HasValue)//2.110-ben ha megoldodik a telje sDualis akkor vissze kell keruljon - KRETA2-12511 { if (isErtekelestModosithatNaplozarasTipusaMiatt) { var ertekelesListModel = new ErtekelesController(Authorization).NaplozasPartialViewModel(); ertekelesListModel.IsNaploErtekeles = true; ertekelesListModel.Datum = model.OraAdat.OraKezdete.Date; ertekelesListModel.TantargyId = model.OraAdat.TantargyId; ertekelesListModel.TantargyIdSearch = model.OraAdat.TantargyId; ertekelesListModel.OsztalyCsoportId = model.OraAdat.OsztalyCsoportId; ertekelesListModel.OsztalyCsoportIdSearch = model.OraAdat.OsztalyCsoportId; ertekelesListModel.TanarIdSearch = model.OraAdat.TanarId; ertekelesListModel.IsGridAutoBinded = false; if (model.OraAdat.SzamonkeresModId.HasValue) { ertekelesListModel.ErtekelesTema = model.OraAdat.SzamonkeresMegnevezes; ertekelesListModel.ErtekelesModId = model.OraAdat.SzamonkeresModId.Value; } list.Add(new TabStripItemModel() { ItemId = "2", ItemName = OrarendResource.Ertekelesek, PartialViewName = TanuloErtekelesIndex, Model = ertekelesListModel, }); } var feljegyzesekModel = new FeljegyzesekSearchModel { ControllerName = Constants.Controllers.Beirasok, ApiControllerName = Constants.ApiControllers.BeirasokApi, }; feljegyzesekModel.IsNaploFeljegyzes = true; feljegyzesekModel.CsoportIdSearch = model.OraAdat.OsztalyCsoportId; list.Add(new TabStripItemModel() { ItemId = "3", ItemName = TanarResource.Feljegyzesek, PartialViewName = FeljegyzesekIndex, Model = feljegyzesekModel }); } if (model.Naplozhat && !model.SzervezetTipusId.HasValue) { var haziModel = naplozasModel.HaziFeladat; var dktFileHelper = new DktFileHelper(ConnectionTypeExtensions.GetSessionConnectionType()); double osszMeret = dktFileHelper.GetHaziFeladatCsatolmanyokOsszMeret(); int maxMegengedettAdatmennyiseg = dktFileHelper.GetMaxAdatmennyisegFelhasznalokent(ClaimData.FelhasznaloId); haziModel.UsedFilesSizeInKiloBytesTotal = osszMeret; haziModel.MaxAllowedFilesSizeInKiloBytes = maxMegengedettAdatmennyiseg; var haziFeladatTab = new TabStripItemModel() { ItemId = "4", ItemName = OrarendResource.HaziFeladat, PartialViewName = HaziFeladat_Tab, Model = haziModel }; list.Add(haziFeladatTab); } if (!model.SzervezetTipusId.HasValue)//2.110-ben ha megoldodik a telje sDualis akkor vissze kell keruljon - KRETA2-12511 { list.Add(new TabStripItemModel { ItemId = "5", ItemName = OrarendResource.KorabbiOrakNaplozasiAdatai, PartialViewName = KorabbiOrakNaplozasiAdatai_Tab, Model = naplozasModel.TanorakSearchModel, }); } bool aktivTab = list.Where(x => x.IsActive).ToList().Count <= 0; list.Add(new TabStripItemModel { ItemId = "6", ItemName = OrarendResource.TanoraAdatai, PartialViewName = TanoraAdatai_Tab, Model = naplozasModel.TanoraAdatai, IsActive = aktivTab }); if (!model.SzervezetTipusId.HasValue) { list.Add(new TabStripItemModel { ItemId = "7", ItemName = OrarendResource.NaplozasDigitalisOktatas, PartialViewName = NaplozasDigitalisOktatas_Tab, Model = naplozasModel.DigitalisOktatasAdatok }); } return list; } private List GetNaplozasInfoTabs(NaplozasElokeszitesModel model, TanoraNaplozasInfoModel naplozasInfoModel, bool isErtekelestModosithatNaplozarasTipusaMiatt, HaziFeladatNaplozas haziFeladatNaplozas = null) { var list = new List(); bool hasSzamonkeresElorejelzesTab = model.OraAdat.OraKezdete.Date > DateTime.Now && (ClaimData.FelhasznaloId == model.OraAdat.TanarId || (model.Helyettesites != null && ClaimData.FelhasznaloId == model.Helyettesites.TanarId)); list.Add(new TabStripItemModel() { ItemId = Info_TanoraAdatai_Tab, ItemName = OrarendResource.TanoraAdatai, PartialViewName = Info_TanoraAdatai_Tab, Model = naplozasInfoModel.TanoraAdataiInfo, IsActive = !hasSzamonkeresElorejelzesTab }); if (!model.IsElmaradtOra) { list.Add(new TabStripItemModel() { ItemId = Info_MulasztasNaplozas_Tab, ItemName = OrarendResource.MulasztasiAdatok, PartialViewName = Info_MulasztasNaplozas_Tab, Model = naplozasInfoModel.MulasztasInfo, }); if (!model.SzervezetTipusId.HasValue)//2.110-ben ha megoldodik a telje sDualis akkor vissze kell keruljon - KRETA2-12511 { list.Add(new TabStripItemModel() { ItemId = KorabbiOrakNaplozasiAdatai_Tab, ItemName = OrarendResource.KorabbiOrakNaplozasiAdatai, PartialViewName = KorabbiOrakNaplozasiAdatai_Tab, Model = naplozasInfoModel.TanorakSearchModel, }); if (hasSzamonkeresElorejelzesTab) { list.Add(new TabStripItemModel() { ItemId = SzamonkeresElorejelzes_Tab, ItemName = OrarendResource.SzamonkeresElorejelzes, PartialViewName = SzamonkeresElorejelzes_Tab, Model = naplozasInfoModel.SzamonkeresElorejelzesModel, IsActive = hasSzamonkeresElorejelzesTab }); } if (isErtekelestModosithatNaplozarasTipusaMiatt) { var ertekelesListModel = new ErtekelesController(Authorization).NaplozasPartialViewModel(); ertekelesListModel.IsNaploErtekeles = true; ertekelesListModel.Datum = model.OraAdat.OraKezdete.Date; ertekelesListModel.TantargyId = model.OraAdat.TantargyId; ertekelesListModel.TantargyIdSearch = model.OraAdat.TantargyId; ertekelesListModel.OsztalyCsoportId = model.OraAdat.OsztalyCsoportId; ertekelesListModel.OsztalyCsoportIdSearch = model.OraAdat.OsztalyCsoportId; ertekelesListModel.TanarIdSearch = model.OraAdat.TanarId; ertekelesListModel.IsGridAutoBinded = false; if (model.OraAdat.SzamonkeresModId.HasValue) { ertekelesListModel.ErtekelesTema = model.OraAdat.SzamonkeresMegnevezes; ertekelesListModel.ErtekelesModId = model.OraAdat.SzamonkeresModId.Value; } list.Add(new TabStripItemModel() { ItemId = "2", ItemName = OrarendResource.Ertekelesek, PartialViewName = TanuloErtekelesIndex, Model = ertekelesListModel, }); } } } else { if (!model.SzervezetTipusId.HasValue) { list.Add(new TabStripItemModel()//2.110-ben ha megoldodik a telje sDualis akkor vissze kell keruljon - KRETA2-12511 { ItemId = "5", ItemName = OrarendResource.KorabbiOrakNaplozasiAdatai, PartialViewName = KorabbiOrakNaplozasiAdatai_Tab, Model = naplozasInfoModel.TanorakSearchModel, }); if (haziFeladatNaplozas != null) { AddHaziFeladatNincsZarasElmaradtOra(); } else { AddHaziFeladatZarasVagyJovobeliOra(); } if (!model.IsElmaradtOra) { list.Add(new TabStripItemModel() { ItemId = Info_DigitalisOktatas_Tab, ItemName = OrarendResource.NaplozasDigitalisOktatas, PartialViewName = Info_DigitalisOktatas_Tab, Model = naplozasInfoModel.DigitalisOktatasModel, }); } } } return list; void AddHaziFeladatNincsZarasElmaradtOra() { list.Add(new TabStripItemModel() { ItemId = "4", ItemName = OrarendResource.HaziFeladat, PartialViewName = HaziFeladat_Tab, Model = haziFeladatNaplozas }); } void AddHaziFeladatZarasVagyJovobeliOra() { bool isJovobeliOra = model.OraAdat.OraKezdete.Date > DateTime.Now.Date; var haziFeladatTab = new TabStripItemModel() { ItemId = Info_HaziFeladat_Tab, ItemName = OrarendResource.HaziFeladat }; if (isJovobeliOra) { haziFeladatTab.PartialViewName = HaziFeladat_Tab; var dktFileHelper = new DktFileHelper(ConnectionTypeExtensions.GetSessionConnectionType()); double osszMeret = dktFileHelper.GetHaziFeladatCsatolmanyokOsszMeret(); int maxMegengedettAdatmennyiseg = dktFileHelper.GetMaxAdatmennyisegFelhasznalokent(ClaimData.FelhasznaloId); haziFeladatTab.Model = new HaziFeladatNaplozas { Hatarido = model.Hazifeladat.Hatarido, HaziFeladat = model.Hazifeladat.Szoveg, Id = model.Hazifeladat.Id, IsTanarVehetFelHazitNaplozasNelkul = true, OrarendiOraId = model.OraAdat.OrarendiOraId, HelyettesitoId = model.Helyettesites.TanarId, NapDatuma = model.OraAdat.OraKezdete.Date, IsHaziFeladatHelper = true, UsedFilesSizeInKiloBytesTotal = osszMeret, CsatolmanyId = model.Hazifeladat.CsatolmanyId, MaxAllowedFilesSizeInKiloBytes = maxMegengedettAdatmennyiseg }; } else { haziFeladatTab.PartialViewName = Info_HaziFeladat_Tab; haziFeladatTab.Model = naplozasInfoModel.HaziFeladatInfo; } list.Add(haziFeladatTab); } } private WizardElovalasztoModel GetWizardElovalasztoModel(bool isSzakmaiGyakorlat = false) { var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var model = new WizardElovalasztoModel { TanarVehetFelOratMaganak = systemSettingsHelper.GetSystemSettingValue(RendszerBeallitasTipusEnum.Tanar_vehet_e_fel_orat_maganak), LehetOratFelvenniTTFNelkul = isSzakmaiGyakorlat ? systemSettingsHelper.GetSystemSettingValue(RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_egyedi_rogzites) : systemSettingsHelper.GetSystemSettingValue(RendszerBeallitasTipusEnum.Lehet_orat_felvenni_TTF_nelkul), TanarKezelhetHelyettesitest = TanarKezelhetHelyettesitest() }; return model; } } }