482 lines
25 KiB
C#
482 lines
25 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|