This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,65 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.Enums.ManualEnums;
using Kreta.Web.Areas.Intezmeny.Logic;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
namespace Kreta.Web.Areas.Orarend.Logic
{
public class AdminKozpontiOraLogic
{
public KozpontiOraValidationCo CreateOraValidationCoListForKozpontiOrak(DateTime start, DateTime end, int hanyadikOra, List<AdminKozpontiOrakRogzitesGridModel> kozpontiOrakList, bool isTeremutkozesFigyelese, out List<OraValidationCo> validatedKozpontiOraToBeSaved)
{
validatedKozpontiOraToBeSaved = new List<OraValidationCo>();
var validationCo = new KozpontiOraValidationCo();
validationCo.IsValid = true;
validationCo.ErrorMessage = string.Empty;
if (kozpontiOrakList == null || !kozpontiOrakList.Any())
{
return validationCo;
}
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var csengetesirendId = new AdminKozpontiOrakHelper(ConnectionTypeExtensions.GetSessionConnectionType()).CsengetesirendId;
var kozpontiOraGroupId = Guid.NewGuid();
foreach (var kozpontiOra in kozpontiOrakList)
{
OrarendiOraModel orarendiOramodel = KozpontiOraConverter.ConvertToOrarendiOra(kozpontiOra, csengetesirendId, start, end, hanyadikOra);
OrarendiOraLogic.SetHetNapja(orarendiOramodel, start.DayOfWeek);
orarendiOramodel.HetirendList = OrarendiOraLogic.GetAktualHetirendList();
orarendiOramodel.IsEgyediNap = TanevRendjeLogic.IsEgyediNapByDateAndOsztalyCsoportId(start.Date, kozpontiOra.OsztalyId);
OrarendiOraLogic.PostProcessHetirend(orarendiOramodel);
OrarendiOraLogic.PostProcessOraszam(orarendiOramodel);
OrarendiOraLogic.PostProcessHetnapja(orarendiOramodel);
orarendiOramodel.ModositasiIdoszakTipus = (int)OraModositasiIdoszakTipus.EgyOra;
OraValidationCo oraValidationCo = orarendiOramodel.CreateOraValidationCo();
if (orarendiOraHelper.CheckUtkozesValidation(oraValidationCo, null, isPrevalidation: false, isThrowExceptionOnCollision: false, isCheckKozponti: true, isTeremutkozesFigyelese: isTeremutkozesFigyelese))
{
if (oraValidationCo.IsKozpontiDuplicate || !string.IsNullOrWhiteSpace(oraValidationCo.Msg.ToString()))
{
validationCo.IsValid = false;
validationCo.ErrorMessage = oraValidationCo.Msg.ToString();
validationCo.HasTeremutkozes = oraValidationCo.OrarendiOraValidationCo.HasTeremutkozes;
validationCo.TeremutkozesSystemSettingsValue = oraValidationCo.OrarendiOraValidationCo.TeremutkozesSystemSetting;
validatedKozpontiOraToBeSaved.Add(oraValidationCo);
return validationCo;
}
oraValidationCo.OrarendiOraValidationCo.KozpontiOraGroupId = kozpontiOraGroupId;
validatedKozpontiOraToBeSaved.Add(oraValidationCo);
}
}
return validationCo;
}
}
}

View file

@ -0,0 +1,30 @@
using System.Collections.Generic;
using Kreta.BusinessLogic.Helpers;
using Kreta.Web.Helpers;
namespace Kreta.Web.Areas.Orarend.Logic
{
public class AdminNemElerhetoOrarendiElemekLogic
{
public static int DeleteSelectedOrarendiOra(List<int> idList)
{
var helper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var sikeresekSzama = 0;
foreach (var orarendiOraId in idList)
{
try
{
helper.DeleteOrarendiElem(orarendiOraId);
sikeresekSzama++;
}
catch
{
}
}
return sikeresekSzama;
}
}
}

View file

@ -0,0 +1,97 @@
using System;
using System.Collections.Generic;
using System.IO;
using ICSharpCode.SharpZipLib.Zip;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Client.FileService.Request;
using Kreta.Core;
using Kreta.Resources;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Models.EditorTemplates;
namespace Kreta.Web.Areas.Orarend.Logic
{
public class KepekListajaLogic
{
public static PopUpModel GetPopUpModelOpenKepInfo(int oraFileId, IFileServiceHelper fileServiceHelper)
{
var helper = new OpenBoardHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var oraFile = helper.GetFile(oraFileId);
var intezmenyAzonosito = ConnectionTypeExtensions.GetSessionConnectionType().IntezmenyAzonosito;
string contentAsBase64Encoded = "data:image/jpeg;base64," + fileServiceHelper.GetFile(intezmenyAzonosito, new GetUrlRequest(oraFile.Utvonal, oraFile.Guid.Value, oraFile.Nev)).Tartalom;
var model = new PopUpModel(new KepekListajaGridModel()
{
ID = oraFile.ID.ToString(),
OraFileId = oraFile.ID,
FajlUrl = oraFile.Utvonal,
KepNeve = oraFile.Nev,
Base64EncodedFajlTartalom = contentAsBase64Encoded
}, "~/Areas/Orarend/Views/KepekListaja/KepInfo_PopUp.cshtml");
model.AddBtn(model, "DeleteKep", CommonResource.Torles, "KepekListajaHelper.deleteKepPopUpConfirmWindow", "BtnDelete");
model.AddCancelBtn(model, "KepekListajaHelper.openKepInfoCancel");
return model;
}
public static PopUpModel GetPopUpModelOpenModifyKep(int oraFileId)
{
var helper = new OpenBoardHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var file = helper.GetFile(oraFileId);
var model = new PopUpModel(new KepekListajaGridModel()
{
ID = file.ID.ToString(),
OraFileId = file.ID,
KepNeve = file.Nev,
Megjegyzes = file.Megjegyzes
}, "KepModify_PopUp");
model.AddBtn(model, "KepCancelBtn", CommonResource.Megse, "KepekListajaHelper.modifyKepCancel");
model.AddOkBtn(model, "KepekListajaHelper.modifyKepSave");
return model;
}
public static Guid DownloadSelectedKep(List<int> selectedKepIdList, IFileServiceHelper fileServiceHelper)
{
var helper = new OpenBoardHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var intezmenyAzonosito = ConnectionTypeExtensions.GetSessionConnectionType().IntezmenyAzonosito;
var OutPut = new MemoryStream();
var zipOutPut = new ZipOutputStream(OutPut);
byte[] buffer = new byte[Constants.General.BufferSize];
foreach (var kepId in selectedKepIdList)
{
var kep = helper.GetFile(kepId);
var base64imageFromUrl = "data:image/jpeg;base64," + fileServiceHelper.GetFile(intezmenyAzonosito, new GetUrlRequest(kep.Utvonal, kep.Guid.Value, kep.Nev)).Tartalom;
string[] parts = base64imageFromUrl.Split(new string[] { ";", ":", "," }, StringSplitOptions.None);
var image = new MemoryStream(Convert.FromBase64String(parts[3]));
ZipEntry entry = new ZipEntry($"{kep.Nev}.{kep.Kiterjesztes}");
zipOutPut.PutNextEntry(entry);
int sourceBytes;
do
{
sourceBytes = image.Read(buffer, 0, buffer.Length);
zipOutPut.Write(buffer, 0, sourceBytes);
} while (sourceBytes > 0);
}
zipOutPut.Finish();
OutPut.Position = 0;
return Cache.Add(OutPut);
}
}
}

View file

@ -0,0 +1,156 @@
using System;
using System.Linq;
using System.Text;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework;
using Kreta.KretaServer.SystemSettings;
using Kreta.Resources;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Logic
{
public class NemKotottMunkaidoLogic
{
public static System.Web.Http.ModelBinding.ModelStateDictionary CheckCustomValidation(System.Web.Http.ModelBinding.ModelStateDictionary ms, NemKotottMunkaidoModel model)
{
if (model.Veg.Value.TimeOfDay <= model.Kezdet.Value.TimeOfDay)
ms.AddModelError("NKMDateError", StringResourcesUtil.GetString(5274));
DateTime elsoNap;
TanevHelper helper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tanev = helper.GetTanevInfo();
elsoNap = tanev.OraFelvetelKezdete;
if (model.Kezdet < elsoNap)
ms.AddModelError("OraErvenyessegKezdete", StringResourcesUtil.GetString(3087));
if (model.ModositasiIdoszakTipus == (int)OraModositasiIdoszakTipus.EgyOra)
{
var naptariHetHelper = new NaptariHetHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var hetirend = naptariHetHelper.GetNaptariHetHetirendByDate(model.Datum.Value);
if ((model.HetirendId.Value != (int)HetiRendTipusEnum.MindegyikHet)
&& (hetirend != model.HetirendId))
{
ms.AddModelError("HetirendId", ErrorResource.AKivalasztottNapNemAKivalasztottHetirendhezTartozik);
}
}
var nkmHelper = new NemKotottMunkaidoHelper(ConnectionTypeExtensions.GetSessionConnectionType());
bool hasTanarNemKotottMunkaidoUtkozes = nkmHelper.HasTanarNemKotottMunkaidoUtkozes(model.TanarId.Value, model.Kezdet.Value, model.Veg.Value, model.Id);
if (hasTanarNemKotottMunkaidoUtkozes)
{
ms.AddModelError("Kezdet", ErrorResource.ParhuzamosKotottMunkaidoFelveteleNemLehetseges);
}
return ms;
}
public static NemKotottMunkaidoCO ConvertModelToCO(NemKotottMunkaidoModel model)
{
var co = new NemKotottMunkaidoCO()
{
Id = model.Id,
GroupId = model.GroupId,
TorvenyKategoriaId = model.TorvenyKategoria.Value,
TanarId = model.TanarId.Value,
TulajId = model.TulajId,
Kezdete = model.Kezdet.Value,
Vege = model.Veg.Value,
Megtartott = model.isMegtartott,
Megjegyzes = model.Megjegyzes,
NaplozottMegjegyzes = model.NaplozottMegjegyzes,
HetirendId = model.HetirendId.Value
};
return co;
}
public static NemKotottMunkaidoModel ConvertModelFromCo(NemKotottMunkaidoCO co)
{
NemKotottMunkaidoModel model = new NemKotottMunkaidoModel()
{
Id = co.Id,
GroupId = co.GroupId,
TanarId = co.TanarId,
TulajId = co.TulajId,
Datum = co.Kezdete.Date,
Kezdet = co.Kezdete,
Veg = co.Vege,
TorvenyKategoria = co.TorvenyKategoriaId,
Megjegyzes = co.Megjegyzes,
HetirendId = co.HetirendId,
NaplozottMegjegyzes = co.NaplozottMegjegyzes,
isMegtartott = co.Megtartott,
isReadonly = co.isReadonly,
isTanarAltalTorolt = co.isTanarAltalTorolt
};
if (ClaimData.FelhasznaloId != co.TulajId)
{
model.isAdminRogzitette = true;
}
return model;
}
public static bool CheckUtkozesValidation(NemKotottMunkaidoModel model)
{
DateTime kezdetDatum, vegDatum;
GetKezdetVegDatumFomModel(model, out kezdetDatum, out vegDatum);
StringBuilder sb = new StringBuilder();
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var result = orarendiOraHelper.NemkotottMunkaidoUtkozesEllenorzes(model.TanarId.Value, kezdetDatum, vegDatum, model.Datum.Value, model.HetirendId.Value, model.GroupId);
return result;
}
public static int GetNaplozottNemkotottMunkaidoSzamByGroupId(NemKotottMunkaidoModel model)
{
DateTime kezdetDatum, vegDatum;
GetKezdetVegDatumFomModel(model, out kezdetDatum, out vegDatum);
StringBuilder sb = new StringBuilder();
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var result = orarendHelper.GetNemKotottMunkaIdo(kezdetDatum, vegDatum, model.GroupId).Where(x => x.Megtartott).Count();
return result;
}
private static void GetKezdetVegDatumFomModel(NemKotottMunkaidoModel model, out DateTime kezdetDatum, out DateTime vegDatum)
{
TanevCO tanevCO;
TanevHelper tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
tanevCO = tanevHelper.GetTanevInfo();
kezdetDatum = OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(model.Datum.Value, model.Kezdet.Value);
vegDatum = OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(model.Datum.Value, model.Veg.Value);
switch (model.ModositasiIdoszakTipus)
{
case (int)OraModositasiIdoszakTipus.TeljesIdoszak:
kezdetDatum = tanevCO.OraFelvetelKezdete.Date.AddHours(kezdetDatum.Hour).AddMinutes(kezdetDatum.Minute);
vegDatum = tanevCO.UtolsoTanitasiNap.Date.AddHours(vegDatum.Hour).AddMinutes(vegDatum.Minute);
break;
case (int)OraModositasiIdoszakTipus.AdottNaptol:
vegDatum = tanevCO.UtolsoTanitasiNap.Date.AddHours(vegDatum.Hour).AddMinutes(vegDatum.Minute);
break;
case (int)OraModositasiIdoszakTipus.AdottNapig:
kezdetDatum = tanevCO.OraFelvetelKezdete.Date.AddHours(kezdetDatum.Hour).AddMinutes(kezdetDatum.Minute);
break;
case (int)OraModositasiIdoszakTipus.EgyOra:
break;
default:
break;
}
}
public static int GetTevekenysegUtkozesSystemSetting()
{
return SystemSettingsManager.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.Napirend_felvitelel_utkozes_figyeles, ClaimData.IntezmenyAzonosito, ClaimData.SelectedTanevID.Value);
}
}
}

View file

@ -0,0 +1,482 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Net;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.Core;
using Kreta.Core.Exceptions;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Enums.ManualEnums.SystemSettings;
using Kreta.Framework;
using Kreta.Framework.Util;
using Kreta.KretaServer.SystemSettings;
using Kreta.Resources;
using Kreta.Web.Areas.Intezmeny.Logic;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.TabStrip;
using Kreta.Web.Models;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Logic
{
public class OrarendiOraLogic
{
public static List<TabStripItemModel> GetModOrarendiOraTabs(OrarendiOraModel model, string orarendTipus, bool isFromSzervezet = false)
{
var list = new List<TabStripItemModel>();
list.Add(new TabStripItemModel() { ItemId = "1", ItemName = StringResourcesUtil.GetString(4124) /*Óra adatok*/, Model = model, PartialViewName = "OrarendiOraAdatok_Tab_" + orarendTipus, IsActive = true });
if (!isFromSzervezet)
{
list.Add(new TabStripItemModel() { ItemId = "2", ItemName = StringResourcesUtil.GetString(4867) /*Speciális adatok*/, Model = model, PartialViewName = "SpecialisAdatok_Bevitel" });
}
return list;
}
public static System.Web.Http.ModelBinding.ModelStateDictionary CheckCustomValidation(System.Web.Http.ModelBinding.ModelStateDictionary ms, OrarendiOraModel model)
{
if (!model.TTFModel.TanarID.IsEntityId())
{
ms.AddModelError("TTFModel_TanarID", ErrorResource.PedagogusMegadasaKotelezo); //Pedagógus megadása kötelező
}
if (SystemSettingsManager.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.orarendi_elemek_rogzitesenek_elofeltetele, ClaimData.IntezmenyAzonosito, ClaimData.SelectedTanevID.Value) != (int)SystemSettingsOrarendiElemekRogzitesenekElofelteteleEnum.NincsTTF)
{
if (!model.TTFModel.FoglalkozasID.IsEntityId())
{
ms.AddModelError("TTFModel_FoglalkozasID", ErrorResource.FoglalkozasMegadasaKotelezo);
}
}
else
{
if (!model.TTFModel.OsztalyID.IsEntityId())
{
ms.AddModelError("TTFModel_OsztalyID", StringResourcesUtil.GetString(4569)); //Osztály megadása kötelező
}
if (!model.TTFModel.TantargyID.IsEntityId())
{
ms.AddModelError("TTFModel_TantargyID", StringResourcesUtil.GetString(2564)); //Tantárgy megadása kötelező
}
}
if (!model.TeremID.IsEntityId())
{
ms.AddModelError("TeremID", StringResourcesUtil.GetString(2493)); //Terem megadása kötelező
}
if (!model.OraErvenyessegKezdete.HasValue)
{
ms.AddModelError("OraErvenyessegKezdete", StringResourcesUtil.GetString(4575)); //Óra érvényességi idejének kezdete kötelező
}
if (!model.OraErvenyessegVege.HasValue)
{
ms.AddModelError("OraErvenyessegVege", StringResourcesUtil.GetString(4576)); //Óra érvényességi idejének vége kötelező
}
if (model.OraErvenyessegVege < model.OraErvenyessegKezdete)
{
ms.AddModelError("OraErvenyessegVege", StringResourcesUtil.GetString(4580)); //Az óra érvényességének vége későbbre kell hogy essen, mint a kezdete
}
if (model.OraVege <= model.OraKezdete)
{
ms.AddModelError("OraVege", StringResourcesUtil.GetString(4581)); //Az óra vége későbbre kell hogy essen, mint a kezdete
}
if (!model.HetirendID.IsEntityId())
{
ms.AddModelError("HetirendID", ErrorResource.HetirendMegadasaKotelezo); //Órarendi nap hetirendje megadása kötelező!
}
if (model.CsengetesiRendOraID.IsEntityId())
{
if (!model.CsengetesiRendID.HasValue || model.CsengetesiRendID < 0)
{
ms.AddModelError("CsengetesiRendID", OrarendResource.CsengetesiRendMegadasaKotelezo);
}
if (!model.Oraszam.HasValue || model.Oraszam < 0)
{
ms.AddModelError("Oraszam", OrarendResource.OraszamMegadasaKotelezo);
}
}
// ha az érvényesség kezdete és vége megegyezik, és az rendkívüli tanítási nap akkor nem kell dátum validáció
bool kellDatumValidacio = model.OraErvenyessegKezdete.Value.Date != model.OraErvenyessegVege.Value.Date && model.CsengetesiRendID.HasValue;
var isNyariSzakmaiGyakorlat = model.TTFModel?.OsztalyID != null && new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).IsNyariSzakmaiGyakorlatos(model.TTFModel.OsztalyID.Value);
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
if (kellDatumValidacio)
{
kellDatumValidacio = !tanevrendHelper.IsRendkivuliTanitasiNap(model.OraErvenyessegKezdete.Value);
}
TanevHelper helper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tanev = helper.GetTanevInfo();
kellDatumValidacio = tanev.IsKovetkezo || kellDatumValidacio;
if ((kellDatumValidacio || isNyariSzakmaiGyakorlat) && model.TTFModel.OsztalyID.HasValue)
{
DateTime elsoNap = tanev.OraFelvetelKezdete;
DateTime utolsoNap = model.IsFromSzervezet ? tanev.UtolsoNap : tanev.UtolsoTanitasiNap;
if (isNyariSzakmaiGyakorlat)
{
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
elsoNap = systemSettingsHelper.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_kezd_datum).Value;
utolsoNap = systemSettingsHelper.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_veg_datum).Value;
}
if (model.OraErvenyessegKezdete < elsoNap)
{
ms.AddModelError("OraErvenyessegKezdete", isNyariSzakmaiGyakorlat ? ErrorResource.OraErvenyessegNyariGyakorlatKezdet : StringResourcesUtil.GetString(3087)); //Az óra érvényessége nem lehet korábban, mint az első tanítási nap!
}
if (model.IsTanoranKivuliFoglalkozas ? model.OraErvenyessegVege.Value.Date > utolsoNap.AddDays(1) : model.OraErvenyessegVege > utolsoNap.AddDays(1)) //Az utolsó nap 0 óra 0 percet tartalmaz, de aznap napközben még lehet óra, ezért a következő nap 0:00 időpont a jó.
{
ms.AddModelError("OraErvenyessegVege", isNyariSzakmaiGyakorlat ? ErrorResource.OraErvenyessegNyariGyakorlatVege : StringResourcesUtil.GetString(3088)); //Az óra érvényessége nem lehet később, mint az utolsó tanítási nap!
}
}
var checkDate = model.ID.HasValue ? model.ModificationDate.Date : model.OraErvenyessegKezdete.Value.ToLocalTime().Date;
if (!tanevrendHelper.IsOrarendiNap(checkDate, model.TTFModel.OsztalyID, model.IsFromSzervezet))
{
ms.AddModelError("OraKezdete", OrarendResource.NemOrarendiNapHibaUzenet);
}
return ms;
}
public static void SetHetNapja(OrarendiOraModel model, DayOfWeek day)
{
switch (day)
{
case DayOfWeek.Monday:
model.HetNapja = (int)HetNapjaTipusEnum.Hetfo;
model.HetNapjaSzoveg = HetNapjaTipusEnum.Hetfo.GetDisplayName(ClaimData.SelectedTanevID.Value);
break;
case DayOfWeek.Tuesday:
model.HetNapja = (int)HetNapjaTipusEnum.Kedd;
model.HetNapjaSzoveg = HetNapjaTipusEnum.Kedd.GetDisplayName(ClaimData.SelectedTanevID.Value);
break;
case DayOfWeek.Wednesday:
model.HetNapja = (int)HetNapjaTipusEnum.Szerda;
model.HetNapjaSzoveg = HetNapjaTipusEnum.Szerda.GetDisplayName(ClaimData.SelectedTanevID.Value);
break;
case DayOfWeek.Thursday:
model.HetNapja = (int)HetNapjaTipusEnum.Csutortok;
model.HetNapjaSzoveg = HetNapjaTipusEnum.Csutortok.GetDisplayName(ClaimData.SelectedTanevID.Value);
break;
case DayOfWeek.Friday:
model.HetNapja = (int)HetNapjaTipusEnum.Pentek;
model.HetNapjaSzoveg = HetNapjaTipusEnum.Pentek.GetDisplayName(ClaimData.SelectedTanevID.Value);
break;
case DayOfWeek.Saturday:
model.HetNapja = (int)HetNapjaTipusEnum.Szombat;
model.HetNapjaSzoveg = HetNapjaTipusEnum.Szombat.GetDisplayName(ClaimData.SelectedTanevID.Value);
break;
case DayOfWeek.Sunday:
model.HetNapja = (int)HetNapjaTipusEnum.Vasarnap;
model.HetNapjaSzoveg = HetNapjaTipusEnum.Vasarnap.GetDisplayName(ClaimData.SelectedTanevID.Value);
break;
}
}
public static WarningValidationModel CheckUtkozesValidation(OraValidationCo oraValidationCo, string successFunction, string closeFunction = null, string errMsgOraData = null, bool isPrevalidation = false, bool isForDelete = false)
{
bool tortentValtozas;
try
{
tortentValtozas = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).CheckUtkozesValidation(oraValidationCo, errMsgOraData, isPrevalidation, isForDelete: isForDelete);
}
catch (BlException ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message) { CloseFunction = string.IsNullOrWhiteSpace(closeFunction) ? oraValidationCo.OrarendiOraValidationCo.JSHelperNev + ".modCancel" : closeFunction };
}
if (tortentValtozas)
{
return new WarningValidationModel() { Msg = oraValidationCo.Msg.ToString(), ErrorMsg = oraValidationCo.ErrorMsg.ToString(), SuccessFunction = successFunction, CloseFunction = closeFunction };
}
throw new StatusError(HttpStatusCode.NoContent, string.Empty) { CloseFunction = oraValidationCo.OrarendiOraValidationCo.JSHelperNev + ".modCancel" };
}
public static List<SelectListItem> GetAktualHetirendList()
{
var dictionary = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.HetiRendTipus, ClaimData.SelectedTanevID.Value, false, visibleOnly: false);
var mindenHetVal = ((int)HetiRendTipusEnum.MindegyikHet).ToString();
var list = new List<SelectListItem>();
var helper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var HetirendDictionary = helper.GetTanevHetirendTipusok();
if (!HetirendDictionary.ContainsKey(mindenHetVal))
{
list.Add(new SelectListItem() { Text = dictionary[mindenHetVal], Value = mindenHetVal });
}
foreach (var dictionaryItem in HetirendDictionary)
{
list.Add(new SelectListItem() { Text = dictionaryItem.Value, Value = dictionaryItem.Key });
}
return list;
}
public static void SetCsengetesiRendAndOraszam(OrarendiOraModel model)
{
var helper = new CsengetesiRendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var (csengetesiRendId, oraSzam) = helper.GetCsengetesiRendAndOraszam(model.CsengetesiRendOraID);
model.CsengetesiRendID = csengetesiRendId;
model.Oraszam = oraSzam;
}
public static DateTime CreateLocalDateTimeBasedOnDateAndTime(DateTime date, DateTime time)
{
TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("Central Europe Standard Time");
var datum = TimeZoneInfo.ConvertTimeFromUtc(new DateTime(date.Year, date.Month, date.Day, time.Hour, time.Minute, 0, DateTimeKind.Utc), tzi);
return new DateTime(date.Year, date.Month, date.Day, datum.Hour, datum.Minute, 0, DateTimeKind.Local);
}
public static (int minOraszam, int maxOraszam) GetMinMaxOraszam(int csengetesirendId)
{
return new CsengetesiRendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetMinMaxOraszam(csengetesirendId);
}
public static OraValidationCo SetOraValidationCoFromOrarendiOraModel(OrarendiOraModel model)
{
if (model.IsTanoranKivuliFoglalkozas)
{
var OraKezdeteLocalTime = model.OraKezdete.Value.ToLocalTime();
var OraVegeLocalTime = model.OraVege.Value.ToLocalTime();
model.OraKezdete = new DateTime(1900, 1, 1, OraKezdeteLocalTime.Hour, OraKezdeteLocalTime.Minute, 0, DateTimeKind.Local);
model.OraVege = new DateTime(1900, 1, 1, OraVegeLocalTime.Hour, OraVegeLocalTime.Minute, 0, DateTimeKind.Local);
model.Oraszam = null;
}
if (model.CsengetesiRendID.IsEntityId())
{
PostProcessOraszam(model);
var (minOraszam, maxOraszam) = GetMinMaxOraszam(model.CsengetesiRendID.Value);
if (model.Oraszam > maxOraszam || model.Oraszam < minOraszam)
{
throw new StatusError(HttpStatusCode.BadRequest, string.Format(OrarendResource.OraszamError, minOraszam.ToString(), maxOraszam.ToString()));
}
}
PostProcessHetirend(model);
if (model.TTFModel != null && model.TTFModel.OsztalyID.IsEntityId() && model.OraErvenyessegKezdete.Value.Date == model.OraErvenyessegVege.Value.Date)
{
model.IsEgyediNap = TanevRendjeLogic.IsEgyediNapByDateAndOsztalyCsoportId(model.OraErvenyessegKezdete.Value.Date, model.TTFModel.OsztalyID.Value);
}
PostProcessHetnapja(model);
return model.CreateOraValidationCo();
}
public static OraValidationCo SetOraValidationCoFromCopyOrarendiElemModel(OrarendiOraHelper orarendiOraHelper, CopyOrarendiElemModel copyOrarendiElemModel)
{
var napData = new NaptariNapHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetNaptariNapData(copyOrarendiElemModel.dateFrom.Date);
if (napData.Tables[0].Rows.Count == 1)
{
OrarendiOraCO co = orarendiOraHelper.GetOrarendiOraById(copyOrarendiElemModel.copyId);
orarendiOraHelper.GetOrarendiOraTulajdonsagok(co, copyOrarendiElemModel.copyId);
int? csengetesiRendOraId = default;
if (copyOrarendiElemModel.oraszam > -1)
{
csengetesiRendOraId = new CsengetesiRendOrakHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetCsengetesiRendOraId(co.CsengetesiRendID.Value, copyOrarendiElemModel.oraszam);
}
OrarendiOraModel model = new OrarendiOraModel
{
CsengetesiRendID = co.CsengetesiRendID,
HetirendID = co.Hetirend,
CsengetesiRendOraID = csengetesiRendOraId.HasValue ? csengetesiRendOraId.Value : co.CsengetesiRendOraID,
HetNapja = napData.Tables[0].Rows[0].Field<int>("Hetnapja"),
OraErvenyessegKezdete = co.OraErvenyessegKezdete,
OraErvenyessegVege = co.OraErvenyessegVege,
OraKezdete = copyOrarendiElemModel.dateFrom,
OraVege = copyOrarendiElemModel.dateTo,
Oraszam = copyOrarendiElemModel.oraszam,
OsztalyCsoportId = co.OsztalyCsoportId,
TanarNev = co.TanarNev,
TeremID = co.TeremID,
TantargyNev = co.TantargyNev,
ModositasiIdoszakTipus = (int)OraModositasiIdoszakTipus.TeljesIdoszak,
IsModification = false,
ModificationDate = copyOrarendiElemModel.dateFrom,
IKTTanora = co.IKTTanora,
Bontott = co.Bontott,
IsFelnottoktatasiSzerzodes = co.IsFelnottoktatasiSzerzodes,
NemzetisegiOra = co.NemzetisegiOra,
MindennaposTestneveles = co.MindennaposTestneveles,
IPRTanora = co.IPRTanora,
Differencialt = co.Differencialt,
Kooperativ = co.Kooperativ,
Meres = co.Meres,
Drama = co.Drama,
Tiop = co.Tiop,
ParhuzamosOra = co.ParhuzamosOra,
NemSzakrendszeruOra = co.NemSzakrendszeruOra,
TAMOPOra = co.TAMOPOra,
KIPOra = co.KIPOra,
VEKOP73317 = co.VEKOP73317,
KAPOra = co.KAPOra,
Tulora = co.Tulora,
Multikulturalis = co.Multikulturalis,
EFOP32317 = co.EFOP32317,
KomplexOra = co.KomplexOra,
GINOP623 = co.GINOP623,
EFOP31716EselyteremtesAKoznevelesben = co.EFOP31716EselyteremtesAKoznevelesben,
EFOP33717 = co.EFOP33717,
TIOP11112120120001 = co.TIOP11112120120001,
DFHT = co.DFHT,
Rahangolodas = co.Rahangolodas,
Testmozgas = co.Testmozgas,
Muveszet = co.Muveszet,
Eletgyakorlat = co.Eletgyakorlat,
Logika = co.Logika,
TeOrad = co.TeOrad,
Sorszamozando = co.Sorszamozando,
DigitalisAlapProgram = co.DigitalisAlapProgram,
EFOP23517201700038Miapalya = co.EFOP23517201700038Miapalya,
TanevTananyaganakIsmetlese = co.TanevTananyaganakIsmetlese,
TanevTananyaganakKiegeszitese = co.TanevTananyaganakKiegeszitese,
TanulokDigitalisKeszsegfejlesztese = co.TanulokDigitalisKeszsegfejlesztese,
Projektmunka = co.Projektmunka,
TanulokKompenzaciosIraskeszsegFejlesztese = co.TanulokKompenzaciosIraskeszsegFejlesztese,
TanulokKompenzaciosOlvasasiKepessegFejlesztese = co.TanulokKompenzaciosOlvasasiKepessegFejlesztese,
TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese = co.TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese,
TanulokNyelviKepessegenekKompenzaciosFejlesztese = co.TanulokNyelviKepessegenekKompenzaciosFejlesztese,
TanulokOnmegismeresenekSegitese = co.TanulokOnmegismeresenekSegitese,
TanulokOnallosagraNevelese = co.TanulokOnallosagraNevelese,
TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese = co.TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese,
TanulokOrientaciosTamogatasa = co.TanulokOrientaciosTamogatasa,
TanulokSzocialitasanakFejlesztese = co.TanulokSzocialitasanakFejlesztese,
TanulokTovabbhaladasatElokeszitoTevekenysegek = co.TanulokTovabbhaladasatElokeszitoTevekenysegek,
PedagogusAltalJelzettEgyeniEsetkezeles = co.PedagogusAltalJelzettEgyeniEsetkezeles,
ProjektmunkaTamogatasa = co.ProjektmunkaTamogatasa,
DigitalisKeszsegfejlesztes = co.DigitalisKeszsegfejlesztes,
KozossegiMunkaTamogatasa = co.KozossegiMunkaTamogatasa,
TanoraElokeszitesenekTamogatasa = co.TanoraElokeszitesenekTamogatasa,
TanoraLebonyolitasanakTamogatasa = co.TanoraLebonyolitasanakTamogatasa,
NapkozisTevekenysegKeretebenEgyeniFejlesztes = co.NapkozisTevekenysegKeretebenEgyeniFejlesztes,
IsEgybefuggoGyakorlat = co.IsEgybefuggoGyakorlat
};
model.TTFModel = new TTFModel
{
FoglalkozasID = co.FoglalkozasID,
OsztalyID = co.OsztalyCsoportId,
TantargyID = co.TantargyId,
TanarID = co.TanarId
};
SetOraKezdetekAndOraVegek(model);
OraValidationCo oraValidationCo = SetOraValidationCoFromOrarendiOraModel(model);
oraValidationCo.OrarendiOraValidationCo.JSHelperNev = Constants.JSHelperName.OrarendiOra;
oraValidationCo.OrarendiOraValidationCo.IsOraCopy = true;
return oraValidationCo;
}
return new OraValidationCo();
}
public static void SetOraKezdetekAndOraVegek(OrarendiOraModel model)
{
model.OraKezdete = CreateLocalDateTimeBasedOnDateAndTime(model.OraKezdete.Value, model.OraKezdete.Value);
model.OraVege = CreateLocalDateTimeBasedOnDateAndTime(model.OraVege.Value, model.OraVege.Value);
if (model.IsTanoranKivuliFoglalkozas && model.ModositasiIdoszakTipus == (int)OraModositasiIdoszakTipus.EgyOra)
{
model.OraErvenyessegKezdete = model.OraErvenyessegKezdete.Value.ToLocalTime();
model.OraErvenyessegVege = model.OraErvenyessegVege.Value.ToLocalTime();
}
else if (!model.CsengetesiRendID.HasValue) //NOTE: Különben nem a popupban kiválasztott értéket kapná
{
model.OraErvenyessegKezdete = model.OraErvenyessegKezdete.Value.Date.AddHours(model.OraKezdete.Value.Hour).AddMinutes(model.OraKezdete.Value.Minute);
model.OraErvenyessegVege = model.OraErvenyessegVege.Value.Date.AddHours(model.OraVege.Value.Hour).AddMinutes(model.OraVege.Value.Minute);
}
}
public static void PostProcessHetirend(OrarendiOraModel model)
{
if (model.ModositasiIdoszakTipus == (int)OraModositasiIdoszakTipus.EgyOra)
{
model.HetirendID = (int)HetiRendTipusEnum.MindegyikHet;
}
}
public static void PostProcessOraszam(OrarendiOraModel model)
{
if (model.CsengetesiRendID.IsEntityId())
{
var orarendiOraHelper = new CsengetesiRendOrakHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var csengrendOraId = orarendiOraHelper.GetCsengetesiRendOraId(model.CsengetesiRendID.Value, model.Oraszam.Value);
if (!csengrendOraId.IsEntityId())
{
throw new StatusError(HttpStatusCode.BadRequest, OrarendResource.CsengetesiRendhezNincsCsengetesiOra);
}
model.CsengetesiRendOraID = csengrendOraId.Value;
}
}
public static void PostProcessHetnapja(OrarendiOraModel model)
{
if (model.OraErvenyessegKezdete.Value.Date == model.OraErvenyessegVege.Value.Date)
{
var ds = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevrendekOsztalyCsoportokkal(model.OraErvenyessegKezdete.Value.Date, model.OraErvenyessegVege.Value.Date);
foreach (DataRow row in ds.Tables[0].Rows)
{
if (row.Field<bool>("OrarendiNap_BOOL") == true)
{
var hetNapja = row.Field<int?>("HetNapja");
if (hetNapja.HasValue && hetNapja.Value != model.HetNapja)
{
var osztalyCsoportId = row.Field<int?>("OsztalyCsoportId");
if (osztalyCsoportId.HasValue && osztalyCsoportId == model.TTFModel.OsztalyID)
{
model.HetNapja = hetNapja.Value;
break;
}
if (SDAConvert.ToBooleanFromTF(row.Field<string>("Global")))
{
model.HetNapja = hetNapja.Value;
break;
}
}
}
}
}
}
}
}

View file

@ -0,0 +1,25 @@
using System.Collections.Generic;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.Enums;
using Kreta.Web.Helpers;
namespace Kreta.Web.Areas.Orarend.Logic
{
public class SzamonkeresElorejelzesLogic
{
public SzamonkeresElorejelzesLogic()
{
var helper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
SzamonkeresLimitFigyelmeztetes = helper.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.Limit_Figyelmeztetesi_Tiltasi_Beallitas);
GetModokListNapiLimithez = helper.GetSystemSettingValue<List<int>>(RendszerBeallitasTipusEnum.Ertekeles_Modok_Beallitasa_Napi_Limithez);
GetNapiSzamonkeresiLimit = helper.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.Napi_Szamonkeresi_Limit);
}
public int SzamonkeresLimitFigyelmeztetes { get; private set; }
public List<int> GetModokListNapiLimithez { get; private set; }
public int GetNapiSzamonkeresiLimit { get; private set; }
}
}

View file

@ -0,0 +1,44 @@
using System.Net.Mime;
using System.Text;
using System.Web;
using System.Web.Mvc;
using Kreta.BusinessLogic.Helpers;
using Kreta.Resources;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
namespace Kreta.Web.Areas.Orarend.Logic
{
public class TanoraKeresoLogic
{
public static ActionResult ExportHelyettesitettTanorak(TanitasiOraSearchModel model)
{
var bytes = new TanoraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetHelyettesitettTanorakExcelExport(TanitasiOraSearchModel.ConvertModelToCo(model));
return new FileContentResult(bytes, MediaTypeNames.Application.Octet)
{
FileDownloadName = HttpUtility.UrlEncode(OrarendResource.HelyettesitettTanorakExportFileName, Encoding.UTF8),
};
}
public static ActionResult ExportElmaradtTanorak(TanitasiOraSearchModel model)
{
var bytes = new TanoraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetElmaradtTanorakExcelExport(TanitasiOraSearchModel.ConvertModelToCo(model));
return new FileContentResult(bytes, MediaTypeNames.Application.Octet)
{
FileDownloadName = HttpUtility.UrlEncode(OrarendResource.ElmaradtTanorakExportFileName, Encoding.UTF8),
};
}
public static ActionResult ExportMegtartottTanorak(TanitasiOraSearchModel model)
{
var bytes = new TanoraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetMegtartottTanorakExcelExport(TanitasiOraSearchModel.ConvertModelToCo(model));
return new FileContentResult(bytes, MediaTypeNames.Application.Octet)
{
FileDownloadName = HttpUtility.UrlEncode(OrarendResource.MegtartottTanorakExportFileName, Encoding.UTF8),
};
}
}
}