kreta/KretaWeb/Areas/Orarend/Controllers/BaseTanariOrarendController.cs
2024-03-13 00:33:46 +01:00

838 lines
45 KiB
C#

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<SelectListItem>();
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<int>("C_ORARENDIORAID").ToString(), Text = string.Format("{0} {1} ({2})", orarendiOraSor.Field<string>("OsztalyNev"), orarendiOraSor.Field<string>("TargyNev"), orarendiOraSor.Field<string>("TeremNev")) });
}
if (szuksegesSorok.Count == 1)
{
model.WizardOrarendId = szuksegesSorok[0].Field<int>("C_ORARENDIORAID");
model.WizardOrarendMegtartott = SDAConvert.ToBooleanFromTF(szuksegesSorok[0].Field<string>("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<bool>(RendszerBeallitasTipusEnum.Ora_sorszamozasat_naplozo_pedagogus_eldontheti);
var elmaradtTanitasiOraRogzitesenekTiltasa = new SystemSettingsHelper(connectionType).GetSystemSettingValue<bool>(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<bool>(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<bool>(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<bool>(RendszerBeallitasTipusEnum.Pedagogusok_csak_az_eloirt_helyettesiteseiket_regisztralhatjak_a_haladasi_naploban);
}
private List<TabStripItemModel> GetNaplozasDetailTabs(NaplozasElokeszitesModel model, TanoraNaplozas naplozasModel, bool isErtekelestModosithatNaplozarasTipusaMiatt)
{
var list = new List<TabStripItemModel>();
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<int>("JogviszonyDb");
mulasztasModel.JogviszonySzunetletetok = row.Field<string>("JogviszonyNevSor");
mulasztasModel.SzakmaiGyakorlatonLevokDb = row.Field<int>("SzakmaiGyakDb");
mulasztasModel.SzakmaiGyakorlatonLevok = row.Field<string>("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<bool>(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<TabStripItemModel> GetNaplozasInfoTabs(NaplozasElokeszitesModel model, TanoraNaplozasInfoModel naplozasInfoModel, bool isErtekelestModosithatNaplozarasTipusaMiatt, HaziFeladatNaplozas haziFeladatNaplozas = null)
{
var list = new List<TabStripItemModel>();
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<bool>(RendszerBeallitasTipusEnum.Tanar_vehet_e_fel_orat_maganak),
LehetOratFelvenniTTFNelkul = isSzakmaiGyakorlat ? systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_egyedi_rogzites) : systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Lehet_orat_felvenni_TTF_nelkul),
TanarKezelhetHelyettesitest = TanarKezelhetHelyettesitest()
};
return model;
}
}
}