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,19 @@
using System.Collections.Generic;
using Kreta.BusinessLogic.HelperClasses;
namespace Kreta.BusinessLogic.Logic.Naplozas.Elokeszites
{
public class DigitalisOktatasAdatok
{
public int? DigEszkozTipusId { get; set; }
public int? DigPlatformTipusId { get; set; }
public List<int> DigTamEszkozTipusList { get; set; }
internal void Fill(TanoraCO co)
{
DigEszkozTipusId = co.DigEszkozTipusId;
DigPlatformTipusId = co.DigPlatformTipusId;
DigTamEszkozTipusList = co.DigTamEszkozTipusIdList;
}
}
}

View file

@ -0,0 +1,18 @@
namespace Kreta.BusinessLogic.Logic.Naplozas.Elokeszites
{
public class EgyediNaplozasElokeszitesCo : NaplozasElokeszitesCo
{
public int TanarId { get; set; }
public int? TeremId { get; set; }
public int? FoglakozasId { get; set; }
public int? OsztalyCsoportId { get; set; }
public int? TantargyId { get; set; }
public int? CsengetesirendOraId { get; set; }
public int? CsengetesirendId { get; set; }
public int? HelyettesitesId { get; set; }
public int? HelyettesitesTanarId { get; set; }
public string HelyettesitesOka { get; set; }
public int? HelyettesitesTipus { get; set; }
public bool IsOraOsszevonas { get; set; }
}
}

View file

@ -0,0 +1,37 @@
using System;
using Kreta.BusinessLogic.HelperClasses;
namespace Kreta.BusinessLogic.Logic.Naplozas.Elokeszites
{
public class HazifeladatModel
{
public int? Id { get; set; }
public string Szoveg { get; set; }
public DateTime? Hatarido { get; set; }
public int? CsatolmanyId { get; set; }
internal void Fill(TanoraCO co)
{
Id = co.HaziFeladatId;
Szoveg = co.HaziFeladat;
Hatarido = co.HaziHatarideje;
CsatolmanyId = co.HaziFeladatCsatolmanyId;
}
internal void Fill(NaplozasCo co)
{
Id = co.Hazifeladat.Id;
Szoveg = co.Hazifeladat.Szoveg;
Hatarido = co.Hazifeladat.Hatarido;
CsatolmanyId = co.Hazifeladat.CsatolmanyId;
}
internal void Fill(NaplozasMobilCo co)
{
Id = co.Hazifeladat.Id;
Szoveg = co.Hazifeladat.Szoveg;
Hatarido = co.Hazifeladat.Hatarido;
CsatolmanyId = co.Hazifeladat.CsatolmanyId;
}
}
}

View file

@ -0,0 +1,55 @@
using Kreta.BusinessLogic.HelperClasses;
namespace Kreta.BusinessLogic.Logic.Naplozas.Elokeszites
{
public class HelyettesitesModel
{
public int? Id { get; set; }
public int? TanarId { get; set; }
public string Oka { get; set; }
public int? Tipus { get; set; }
public bool IsKeresoAltalTalaltOra { get; set; }
public bool IsTulora { get; set; }
internal void Fill(EgyediNaplozasElokeszitesCo input, int userId)
{
Id = input.HelyettesitesId;
TanarId = input.HelyettesitesTipus.HasValue ? userId : (int?)null;
Oka = input.HelyettesitesOka;
Tipus = input.HelyettesitesTipus;
}
internal void Fill(TanoraCO co)
{
Id = co.HelyettesitesId;
TanarId = co.Helyettesito;
Oka = co.HelyettesitesOka;
Tipus = co.HelyettesitesTipus;
IsTulora = co.HelyettesIsTulora;
}
internal void Fill(NaplozasCo co, bool isEgyediNaplozas)
{
if (co.Helyettesites.Oka != null)
{
Oka = co.Helyettesites.Oka;
}
var helyettesitettOrarendiOra = Id.HasValue && Id > 0; /*csak akkor van értéke ha az orarendi ora már feltöltötte és volt rajta beállított helyetesites*/
if (helyettesitettOrarendiOra)
{
return;
}
if (!co.Helyettesites.TanarId.HasValue)
{
return;
}
IsKeresoAltalTalaltOra = !isEgyediNaplozas;
Id = co.Helyettesites.Id;
TanarId = co.Helyettesites.TanarId;
Tipus = co.Helyettesites.Tipus;
}
}
}

View file

@ -0,0 +1,10 @@
namespace Kreta.BusinessLogic.Logic.Naplozas.Elokeszites
{
public class HelyettesitesNaplozasElokeszitesCo : NaplozasElokeszitesCo
{
public int? HelyettesitesId { get; set; }
public int? HelyettesitesTanarId { get; set; }
public string HelyettesitesOka { get; set; }
public int? HelyettesitesTipus { get; set; }
}
}

View file

@ -0,0 +1,20 @@
namespace Kreta.BusinessLogic.Logic.Naplozas.Elokeszites
{
public class MulasztasItem
{
public int? MulasztasId { get; set; }
public int TanuloId { get; set; }
public int? MulasztasTipus { get; set; }
public int? Keses { get; set; }
public bool HazifeladatHiany { get; set; }
public bool FelszerelesHiany { get; set; }
public bool Felmentes { get; set; }
public bool TanoraiDicseret { get; set; }
public int? HazifeladatHianyId { get; set; }
public int? FelszerelesHianyId { get; set; }
public int? FelmentesId { get; set; }
public int? TanoraiDicseretId { get; set; }
}
}

View file

@ -0,0 +1,83 @@
using System.Collections.Generic;
using System.Linq;
using Kreta.BusinessLogic.Helpers;
using Kreta.Core.ConnectionType;
using Kreta.Enums;
namespace Kreta.BusinessLogic.Logic.Naplozas.Elokeszites
{
public class MulasztasModel
{
public MulasztasModel()
{
MulasztasList = new List<MulasztasItem>();
}
public int? JogviszonySzunetletetokDb { get; set; }
public string JogviszonySzunetletetok { get; set; }
public int? SzakmaiGyakorlatonLevokDb { get; set; }
public string SzakmaiGyakorlatonLevok { get; set; }
public List<MulasztasItem> MulasztasList { get; set; }
internal void Fill(NaplozasCo co, int maxKeses)
{
foreach (var item in co.MulasztasList)
{
MulasztasList.Add(new MulasztasItem()
{
MulasztasId = item.MulasztasId,
TanuloId = item.TanuloId,
MulasztasTipus = item.MulasztasTipus,
Keses = item.Keses >= maxKeses ? maxKeses : item.Keses,
HazifeladatHiany = item.HazifeladatHiany,
FelszerelesHiany = item.FelszerelesHiany,
Felmentes = item.Felmentes,
TanoraiDicseret = item.TanoraiDicseret,
HazifeladatHianyId = item.HazifeladatHianyId,
FelszerelesHianyId = item.FelszerelesHianyId,
FelmentesId = item.FelmentesId,
TanoraiDicseretId = item.TanoraiDicseretId
});
}
}
internal void Fill(IConnectionType connectionType, NaplozasMobilCo co, int maxKeses, int? tanitasiOraId)
{
var oraMulasztasai = new MulasztasHelper(connectionType).GetTanoraMulasztasai(tanitasiOraId);
var oraFeljegyzesei = new FeljegyzesekHelper(connectionType).GetTanoraFeljegyzesei(tanitasiOraId);
foreach (var item in co.MulasztasList)
{
var mulasztasItem = new MulasztasItem()
{
TanuloId = item.TanuloId,
MulasztasTipus = item.MulasztasTipus,
Keses = item.Keses >= maxKeses ? maxKeses : item.Keses,
HazifeladatHiany = item.HazifeladatHiany,
FelszerelesHiany = item.FelszerelesHiany,
Felmentes = item.Felmentes,
TanoraiDicseret = item.TanoraiDicseret,
};
var oldMulasztasId = oraMulasztasai.FirstOrDefault(a => a.TanuloId == item.TanuloId);
mulasztasItem.MulasztasId = oldMulasztasId?.MulasztasId;
var oldHazifeladatHiany = oraFeljegyzesei.FirstOrDefault(a => a.TanuloId == item.TanuloId && a.FeljegyzesTipus == (int)EsemenyTipusEnum.HaziFeladatHiany);
mulasztasItem.HazifeladatHianyId = oldHazifeladatHiany?.FeljegyzesId;
var oldFelszereleshiany = oraFeljegyzesei.FirstOrDefault(a => a.TanuloId == item.TanuloId && a.FeljegyzesTipus == (int)EsemenyTipusEnum.Felszereleshiany);
mulasztasItem.FelszerelesHianyId = oldFelszereleshiany?.FeljegyzesId;
var oldFelmentes = oraFeljegyzesei.FirstOrDefault(a => a.TanuloId == item.TanuloId && a.FeljegyzesTipus == (int)EsemenyTipusEnum.SzakmaiMentessegNemHivatalos);
mulasztasItem.FelmentesId = oldFelmentes?.FeljegyzesId;
var oldDicseret = oraFeljegyzesei.FirstOrDefault(a => a.TanuloId == item.TanuloId && a.FeljegyzesTipus == (int)EsemenyTipusEnum.Dicseret);
mulasztasItem.TanoraiDicseretId = oldDicseret?.FeljegyzesId;
MulasztasList.Add(mulasztasItem);
}
}
}
}

View file

@ -0,0 +1,14 @@
using System;
namespace Kreta.BusinessLogic.Logic.Naplozas
{
public class NaplozasElokeszitesCo
{
public DateTime Start { get; set; }
public DateTime End { get; set; }
public int? OrarendiOraId { get; set; }
public int? TanitasiOraId { get; set; }
public int? SzervezetTipusId { get; set; }
}
}

View file

@ -0,0 +1,320 @@
using System;
using System.Data;
using System.Linq;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.BusinessLogic.Logic.Naplozas.Validacio;
using Kreta.Core;
using Kreta.Core.ConnectionType;
using Kreta.Enums;
using Kreta.Resources;
namespace Kreta.BusinessLogic.Logic.Naplozas.Elokeszites
{
public class NaplozasElokeszitesLogic
{
protected NaplozasElokeszitesModel Model;
protected IConnectionType ConnectionType;
protected NaploValidacio Validator;
public NaplozasElokeszitesModel GetModel
{
get { return Model; }
}
protected NaplozasElokeszitesLogic(NaploValidacio validator)
{
Validator = validator;
ConnectionType = validator.ConnectionType;
}
public NaplozasElokeszitesLogic(NaploValidacio validator, NaplozasElokeszitesCo input) : this(validator)
{
FillInnerModel(input);
}
public NaplozasElokeszitesLogic(NaploValidacio validator, EgyediNaplozasElokeszitesCo input) : this(validator)
{
FillInnerModel(input);
}
public NaplozasElokeszitesLogic(NaploValidacio validator, HelyettesitesNaplozasElokeszitesCo input) : this(validator)
{
FillInnerModel(input);
}
private void FillInnerModel(NaplozasElokeszitesCo input)
{
var thelper = new TanoraHelper(ConnectionType);
var oraCo = thelper.GetTanoraByOrarendiId(input.TanitasiOraId ?? input.OrarendiOraId.Value, input.Start, input.TanitasiOraId.HasValue, isTanuloOrGondviselo: false);
if (input is HelyettesitesNaplozasElokeszitesCo helyettesitesNaplozasElokeszitesInput)
{
oraCo.HelyettesitesTipus = helyettesitesNaplozasElokeszitesInput.HelyettesitesTipus ?? oraCo.HelyettesitesTipus;
oraCo.HelyettesitesId = helyettesitesNaplozasElokeszitesInput.HelyettesitesId ?? oraCo.HelyettesitesId;
oraCo.HelyettesitesOka = !string.IsNullOrWhiteSpace(helyettesitesNaplozasElokeszitesInput.HelyettesitesOka) ? helyettesitesNaplozasElokeszitesInput.HelyettesitesOka : oraCo.HelyettesitesOka;
oraCo.Helyettesito = ConnectionType.FelhasznaloId;
}
Model = new NaplozasElokeszitesModel(ConnectionType.FelhasznaloId, input.SzervezetTipusId);
var systemSettingsHelper = new SystemSettingsHelper(ConnectionType);
var helyettesitesEsetenFelugyeletAlapertelmezettenSorszamozando = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Helyettesites_eseten_felugyelet_alapertelmezetten_sorszamozando);
Model.OraAdat.Fill(oraCo, helyettesitesEsetenFelugyeletAlapertelmezettenSorszamozando);
if (input.TanitasiOraId.HasValue)
{
SetEgyediOraEvesOraszam(thelper, sorszamozando: false);
}
else
{
SetEgyediOraEvesOraszam(thelper, Model.OraAdat.IsSorszamozando);
}
SetOsztalyfonok(new OsztalyHelper(ConnectionType));
SetElozoOraAdatai(new OrarendiOraHelper(ConnectionType));
SetSzamonkeresElorejelzesAdatai(new SzamonkeresElorejelzesHelper(ConnectionType));
SetHetesekAdatai(new HetesekHelper(ConnectionType));
SetTemaLista(thelper);
SetMentessegList(new OrarendHelper(ConnectionType));
Model.OraTulajdonsag.Fill(oraCo);
Model.Helyettesites.Fill(oraCo);
if (!Model.SzervezetTipusId.HasValue)
{
Model.Hazifeladat.Fill(oraCo);
Model.DigitalisOktatas.Fill(oraCo);
}
}
private void FillInnerModel(EgyediNaplozasElokeszitesCo input)
{
Model = new NaplozasElokeszitesModel(ConnectionType.FelhasznaloId);
if (input.FoglakozasId.HasValue)
{
var helper = new TantargyFelosztasHelper(ConnectionType);
var ttf = helper.GetFoglalkozasDataById(input.FoglakozasId.Value);
var nemzetisegiOra = SDAConvert.ToBooleanFromTF(ttf.Tables[0].Rows[0]["NemzetisegiOra"]);
var naplozasCo = new NaplozasCo
{
OraTulajdosag = new NaplozasCo.OraTulajdonsagModel
{
NemzetisegiOra = nemzetisegiOra
}
};
Model.OraTulajdonsag.Fill(naplozasCo);
}
Model.IsEgyediNaplozas = true;
var systemSettingsHelper = new SystemSettingsHelper(ConnectionType);
var helyettesitesEsetenFelugyeletAlapertelmezettenSorszamozando = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Helyettesites_eseten_felugyelet_alapertelmezetten_sorszamozando);
Model.OraAdat.Fill(ConnectionType, input, helyettesitesEsetenFelugyeletAlapertelmezettenSorszamozando);
Model.Helyettesites.Fill(input, ConnectionType.FelhasznaloId);
var tanarHelper = new TanarHelper(ConnectionType);
var tanoraHelper = new TanoraHelper(ConnectionType);
SetTanar(tanarHelper, input.HelyettesitesTanarId);
SetOraszam(new CsengetesiRendOrakHelper(ConnectionType));
SetTantargyOsztalycsoport();
SetEgyediOraEvesOraszam(tanoraHelper, Model.OraAdat.IsSorszamozando);
SetElozoOraAdatai(new OrarendiOraHelper(ConnectionType));
SetEgyediOraTema(tanoraHelper);
SetTemaLista(tanoraHelper);
SetHazifeladat();
SetHetesekAdatai(new HetesekHelper(ConnectionType));
SetOraVegeByOrahossz();
}
private void SetOraVegeByOrahossz()
{
var isOravegeBeallitasOrahosszAlapjan = new SystemSettingsHelper(ConnectionType).GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Orarendi_Elem_Hossz);
if (isOravegeBeallitasOrahosszAlapjan)
{
var csoport = new CsoportHelper(ConnectionType).GetCsoportCoList().SingleOrDefault(cs => cs.Id == Model.OraAdat.OsztalyCsoportId.Value);
if (csoport != null)
{
var csoportTipusList = new AdatszotarHelper(ConnectionType).GetCsoportTipusList();
var csoportTipusId = csoport.TipusId ?? (int)CsoportTipusEnum.iskolai_csoport_tanorai_celu_;
var csoportTipus = csoportTipusList.Single(cs => cs.Id == csoportTipusId);
if (csoportTipus.OraPerc.HasValue)
{
Model.OraAdat.OraVege = Model.OraAdat.OraKezdete.AddMinutes(csoportTipus.OraPerc.Value);
}
}
}
}
protected void SetMentessegList(OrarendHelper helper)
{
var ds = helper.GetOraMentessegList(Model.OraAdat.OraKezdete, Model.OraAdat.OraVege, Model.OraAdat.OsztalyCsoportId.Value);
if (ds.Tables[0].Rows.Count == 1)
{
var row = ds.Tables[0].Rows[0];
Model.Mulasztas.JogviszonySzunetletetokDb = row.Field<int>("JogviszonyDb");
Model.Mulasztas.JogviszonySzunetletetok = row.Field<string>("JogviszonyNevSor");
Model.Mulasztas.SzakmaiGyakorlatonLevokDb = row.Field<int>("SzakmaiGyakDb");
Model.Mulasztas.SzakmaiGyakorlatonLevok = row.Field<string>("SzakmaiGyakNevSor");
}
}
protected void SetTemaLista(TanoraHelper helper)
{
Model.OraAdat.TemaLista = helper.GetTemaIdAndNameForNaplozasDDL(Model.OraAdat.TantargyId.Value, Model.OraAdat.OsztalyCsoportId.Value, Model.OraAdat.TanarId.Value, Model.SzervezetTipusId);
}
protected void SetElozoOraAdatai(OrarendiOraHelper helper)
{
var elozoOraAdatai = helper.GetElozoOraAdatai(Model.OraAdat.TantargyId.Value, Model.OraAdat.OsztalyCsoportId.Value, Model.OraAdat.TanarId.Value, Model.OraAdat.OraKezdete);
Model.OraAdat.ElozoOraAdat = elozoOraAdatai?.ElozoOraAdatai ?? string.Empty;
Model.OraAdat.ElozoOraTema = elozoOraAdatai?.ElozoOraTemaja ?? string.Empty;
}
protected void SetSzamonkeresElorejelzesAdatai(SzamonkeresElorejelzesHelper helper)
{
var ds = helper.GetSzamonkeresElorejelzesDetailDataSet(new SzamonkeresElorejelzesSearchCO
{
OraGroupId = Model.OraAdat.GroupId,
Datum = Model.OraAdat.OraKezdete.Date,
OraszamSrc = Model.OraAdat.Oraszam,
OsztalyCsoportId = Model.OraAdat.OsztalyCsoportId
}, isKellKapcsolodoOsztalyok: false);
if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0 && !string.IsNullOrWhiteSpace(SDAConvert.ToString(ds.Tables[0].Rows[0]["SzamonkeresMod"])))
{
Model.OraAdat.SzamonkeresModId = SDAConvert.ToInt32(ds.Tables[0].Rows[0]["SzamonkeresModId"]);
Model.OraAdat.SzamonkeresModja = SDAConvert.ToString(ds.Tables[0].Rows[0]["SzamonkeresMod"]);
Model.OraAdat.SzamonkeresMegnevezes = SDAConvert.ToString(ds.Tables[0].Rows[0]["SzamonkeresMegnevezes"]);
}
}
protected void SetHetesekAdatai(HetesekHelper helper)
{
Model.OraAdat.Hetesek = helper.GetHetesekForDatum(Model.OraAdat.OsztalyCsoportId.Value, Model.OraAdat.OraKezdete.Date);
}
protected void SetOsztalyfonok(OsztalyHelper helper)
{
Model.OraAdat.OsztalyfonokId = helper.GetOsztalyfonokByOsztalyId(Model.OraAdat.OsztalyCsoportId.Value);
}
protected void SetTanar(TanarHelper helper, int? helyettesTanarId)
{
if (helyettesTanarId.HasValue)
{
Model.OraAdat.TanarNev = helper.GetTanarNev(helyettesTanarId.Value);
Model.OraAdat.TanarId = helyettesTanarId;
}
else
{
Model.OraAdat.TanarNev = helper.GetTanarNev(ConnectionType.FelhasznaloId);
Model.OraAdat.TanarId = ConnectionType.FelhasznaloId;
}
}
protected void SetOraszam(CsengetesiRendOrakHelper helper)
{
if (!Model.OraAdat.IsTanorankivuli)
{
Model.OraAdat.Oraszam = helper.GetCsengetesiRendOraSzam(Model.OraAdat.CsengetesirendOraId.Value);
}
}
protected void SetTantargyOsztalycsoport()
{
TantargyFoglalkozasCO foglalkozas = null;
if (Model.OraAdat.FoglakozasId.IsEntityId() && (!Model.OraAdat.OsztalyCsoportId.IsEntityId() || !Model.OraAdat.TantargyId.IsEntityId()))
{
foglalkozas = new FoglalkozasHelper(ConnectionType).GetFoglalkozas(Model.OraAdat.FoglakozasId.Value);
}
if (Model.OraAdat.OsztalyCsoportId.IsEntityId())
{
Model.OraAdat.OsztalyCsoportNev = new OsztalyCsoportHelper(ConnectionType).GetOsztalyCsoportNevById(Model.OraAdat.OsztalyCsoportId.Value);
}
else if (foglalkozas != null)
{
Model.OraAdat.OsztalyCsoportNev = foglalkozas.OsztalyCsoportNev;
Model.OraAdat.OsztalyCsoportId = foglalkozas.OsztalyCsoportId;
}
else
{
throw new Exception(ErrorResource.NincsSemOsztalycsoportSemFoglalkozas);
}
if (Model.OraAdat.TantargyId.IsEntityId())
{
var tantargy = new TantargyHelper(ConnectionType).GetTantargyById(Model.OraAdat.TantargyId.Value);
Model.OraAdat.TantargyNev = tantargy.TantargyNev;
}
else if (foglalkozas != null)
{
Model.OraAdat.TantargyId = foglalkozas.TantargyId;
Model.OraAdat.TantargyNev = foglalkozas.TantargyNev;
}
else
{
throw new Exception(ErrorResource.NincsSemTantargySemFoglalkozas);
}
}
protected void SetEgyediOraTema(TanoraHelper tanoraHelper)
{
Model.OraAdat.Tema = tanoraHelper.GetTemaEvesOraSorszamhoz(Model.OraAdat.TantargyId.Value, Model.OraAdat.OsztalyCsoportId.Value, ConnectionType.FelhasznaloId, Model.OraAdat.EvesOraSorszam.Value);
}
protected void SetEgyediOraEvesOraszam(TanoraHelper tanoraHelper, bool sorszamozando)
{
var evesOraszam = tanoraHelper.GetOraEvesSorszamaSP(Model.OraAdat.TantargyId.Value, Model.OraAdat.OsztalyCsoportId.Value, Model.OraAdat.OraKezdete, Model.OraAdat.TanarId.Value);
if (Model.OraAdat.IsElmaradt)
{
Model.OraAdat.EvesOraSorszam = null;
}
else
{
Model.OraAdat.EvesOraSorszam = sorszamozando ? evesOraszam + 1 : evesOraszam;
}
}
protected void SetHazifeladat()
{
Enum.TryParse(new OsztalyCsoportHelper(ConnectionType).GetOsztalyCsoportFeladatKategoria(Model.OraAdat.OsztalyCsoportId.Value).ToString(), out OktNevelesiKategoriaEnum kategoria);
var helper = new DktFeladatHelper(ConnectionType);
var hazi = Model.IsTanora ?
helper.GetTanitasiOraHaziFeladatDetail(Model.OraAdat.TanitasiOraId, kategoria, isTanuloOrGondviselo: false) :
helper.GetOrarendiOraHaziFeladatDetail(Model.OraAdat.OrarendiOraId, Model.OraAdat.OraKezdete, isTanuloOrGondviselo: false, oraszam: null, kategoria);
if (hazi.Id.HasValue)
{
Model.Hazifeladat.Id = hazi.Id;
Model.Hazifeladat.Szoveg = hazi.Szoveg;
Model.Hazifeladat.Hatarido = hazi.Hatarido;
}
}
public bool TeremUtkozesEllenorzes()
{
return Validator.TeremUtkozesEllenorzes(Model);
}
public string GetOsztalyEsTanarOraiUtkozes()
{
return Validator.GetOsztalyEsTanarOraiUtkozes(Model);
}
}
}

View file

@ -0,0 +1,294 @@
using System;
using System.Collections.Generic;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.Enums;
namespace Kreta.BusinessLogic.Logic.Naplozas.Elokeszites
{
public class NaplozasElokeszitesModel
{
public bool IsEgyediNaplozas { get; set; }
public int UserId { get; set; }
public bool IsHelyettesites
{
get
{
return Helyettesites.TanarId.HasValue;
}
}
public bool HasOrarendiOra
{
get
{
return OraAdat.OrarendiOraId.HasValue;
}
}
public bool IsTanora
{
get
{
return OraAdat.TanitasiOraId.HasValue;
}
}
public bool IsElmaradtOra
{
get
{
return OraAdat.IsElmaradt;
}
}
private bool IsOraTulajdonosa
{
get
{
if (IsEgyediNaplozas)
{
return true;
}
if (IsHelyettesites)
{
return Helyettesites.TanarId == UserId;
}
return OraAdat.TanarId == UserId;
}
}
public bool NaplozhatoDatum
{
get
{
return OraAdat.OraKezdete < DateTime.Now.Date.AddDays(1);
}
}
public bool Ertekelhet
{
get
{
if (!NaplozhatoDatum)
{
return false;
}
if (IsHelyettesites && (Helyettesites.Tipus == (int)HelyettesitesTipusEnum.oraosszevonas || Helyettesites.Tipus == (int)HelyettesitesTipusEnum.szakszeru_helyettesites))
{
return Helyettesites.TanarId == UserId;
}
return OraAdat.TanarId == UserId;
}
}
public bool Naplozhat
{
get
{
return IsTanora ? IsOraTulajdonosa : (OraAdat.IsOraOsszevonas || IsOraTulajdonosa) && NaplozhatoDatum;
}
}
public string OraTartamText
{
get
{
return $"{OraAdat.OraKezdete.ToShortDateString()} {OraAdat.OraKezdete.ToShortTimeString()}-{OraAdat.OraVege.ToShortTimeString()}";
}
}
public bool KellElozoOraTema
{
get
{
return !IsTanora || IsEgyediNaplozas;
}
}
public int MaxKeses
{
get
{
var span = OraAdat.OraVege.Subtract(OraAdat.OraKezdete);
return (span.Hours * 60) + span.Minutes - 1;
}
}
internal NaplozasElokeszitesModel(int userId, int? szervezetTipusId = null)
{
UserId = userId;
OraAdat = new OraAdatModel();
Helyettesites = new HelyettesitesModel();
OraTulajdonsag = new OraTulajdonsagModel();
Hazifeladat = new HazifeladatModel();
Mulasztas = new MulasztasModel();
DigitalisOktatas = new DigitalisOktatasAdatok();
SzervezetTipusId = szervezetTipusId;
}
public OraAdatModel OraAdat { get; set; }
public HelyettesitesModel Helyettesites { get; set; }
public OraTulajdonsagModel OraTulajdonsag { get; set; }
public HazifeladatModel Hazifeladat { get; set; }
public MulasztasModel Mulasztas { get; set; }
public DigitalisOktatasAdatok DigitalisOktatas { get; set; }
public int? SzervezetTipusId { get; set; }
public bool IsMentorOra { get; set; }
public void ConvertTo(TanoraCO co)
{
co.IsTanoranKivuli = OraAdat.IsTanorankivuli;
co.ID = OraAdat.TanitasiOraId;
co.Datum = OraAdat.OraKezdete.Date;
co.BejegyIdo = OraAdat.RogzitesDatuma;
co.HetNapja = OraAdat.HetNapja;
co.Hetirend = OraAdat.Hetirend;
co.Megjegyzes = OraAdat.Megjegyzes;
co.Megtartott = !IsElmaradtOra;
co.MobilNaplozott = OraAdat.IsMobilNaplozott;
co.AdminAltalKiirt = OraAdat.IsAdminAltalKiirt;
co.OraKezd = OraAdat.OraKezdete;
co.OraVeg = OraAdat.OraVege;
co.EvesOraSorszam = OraAdat.EvesOraSorszam;
co.Oraszam = OraAdat.Oraszam ?? -1;
co.Sorszamozando = OraAdat.IsSorszamozando;
co.TemaTanmenetId = OraAdat.TemaTanmenetId;
co.TanulasiEgysegId = OraAdat.TanulasiEgysegId;
co.Tema = OraAdat.Tema;
co.Targy = OraAdat.TantargyId;
co.OrarendiOra = OraAdat.OrarendiOraId;
co.Fogl = OraAdat.FoglakozasId;
co.Tulaj = UserId;
co.OrarendiOraGroupId = OraAdat.GroupId;
co.Tanar = OraAdat.TanarId;
co.Terem = OraAdat.TeremId;
co.OsztCsop = OraAdat.OsztalyCsoportId;
co.CsengetesiRendOraId = OraAdat.CsengetesirendOraId;
co.CsengetesiRendID = OraAdat.CsengetesirendId;
co.IktTanora = OraTulajdonsag.IktTanora;
co.Bontott = OraTulajdonsag.Bontott;
co.IsFelnottoktatasiSzerzodes = OraTulajdonsag.IsFelnottoktatasiSzerzodes;
co.OnlineOra = OraTulajdonsag.OnlineOra;
co.NemzetisegiOra = OraTulajdonsag.NemzetisegiOra;
co.MindennaposTestneveles = OraTulajdonsag.MindennaposTestneveles;
co.IPRTanora = OraTulajdonsag.IPRTanora;
co.Differencialt = OraTulajdonsag.Differencialt;
co.Kooperativ = OraTulajdonsag.Kooperativ;
co.Meres = OraTulajdonsag.Meres;
co.Drama = OraTulajdonsag.Drama;
co.Tiop = OraTulajdonsag.Tiop;
co.ParhuzamosOra = OraTulajdonsag.ParhuzamosOra;
co.NemSzakrendszeru = OraTulajdonsag.NemSzakrendszeru;
co.TAMOP = OraTulajdonsag.TAMOP;
co.KIPOra = OraTulajdonsag.KIPOra;
co.VEKOP73317 = OraTulajdonsag.VEKOP73317;
co.KAPOra = OraTulajdonsag.KAPOra;
co.Tulora = OraTulajdonsag.Tulora;
co.Multikulturalis = OraTulajdonsag.Multikulturalis;
co.EFOP32317 = OraTulajdonsag.EFOP32317;
co.KomplexOra = OraTulajdonsag.KomplexOra;
co.GINOP623 = OraTulajdonsag.GINOP623;
co.EFOP31716EselyteremtesAKoznevelesben = OraTulajdonsag.EFOP31716EselyteremtesAKoznevelesben;
co.EFOP33717 = OraTulajdonsag.EFOP33717;
co.TIOP11112120120001 = OraTulajdonsag.TIOP11112120120001;
co.DFHT = OraTulajdonsag.DFHT;
co.Rahangolodas = OraTulajdonsag.Rahangolodas;
co.Testmozgas = OraTulajdonsag.Testmozgas;
co.Muveszet = OraTulajdonsag.Muveszet;
co.Eletgyakorlat = OraTulajdonsag.Eletgyakorlat;
co.Logika = OraTulajdonsag.Logika;
co.TeOrad = OraTulajdonsag.TeOrad;
co.DigitalisAlapProgram = OraTulajdonsag.DigitalisAlapProgram;
co.EFOP23517201700038Miapalya = OraTulajdonsag.EFOP23517201700038Miapalya;
co.TanevTananyaganakIsmetlese = OraTulajdonsag.TanevTananyaganakIsmetlese;
co.TanevTananyaganakKiegeszitese = OraTulajdonsag.TanevTananyaganakKiegeszitese;
co.TanulokDigitalisKeszsegfejlesztese = OraTulajdonsag.TanulokDigitalisKeszsegfejlesztese;
co.Projektmunka = OraTulajdonsag.Projektmunka;
co.TanulokKompenzaciosIraskeszsegFejlesztese = OraTulajdonsag.TanulokKompenzaciosIraskeszsegFejlesztese;
co.TanulokKompenzaciosOlvasasiKepessegFejlesztese = OraTulajdonsag.TanulokKompenzaciosOlvasasiKepessegFejlesztese;
co.TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese = OraTulajdonsag.TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese;
co.TanulokNyelviKepessegenekKompenzaciosFejlesztese = OraTulajdonsag.TanulokNyelviKepessegenekKompenzaciosFejlesztese;
co.TanulokOnmegismeresenekSegitese = OraTulajdonsag.TanulokOnmegismeresenekSegitese;
co.TanulokOnallosagraNevelese = OraTulajdonsag.TanulokOnallosagraNevelese;
co.TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese = OraTulajdonsag.TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese;
co.TanulokOrientaciosTamogatasa = OraTulajdonsag.TanulokOrientaciosTamogatasa;
co.TanulokSzocialitasanakFejlesztese = OraTulajdonsag.TanulokSzocialitasanakFejlesztese;
co.TanulokTovabbhaladasatElokeszitoTevekenysegek = OraTulajdonsag.TanulokTovabbhaladasatElokeszitoTevekenysegek;
co.PedagogusAltalJelzettEgyeniEsetkezeles = OraTulajdonsag.PedagogusAltalJelzettEgyeniEsetkezeles;
co.ProjektmunkaTamogatasa = OraTulajdonsag.ProjektmunkaTamogatasa;
co.DigitalisKeszsegfejlesztes = OraTulajdonsag.DigitalisKeszsegfejlesztes;
co.KozossegiMunkaTamogatasa = OraTulajdonsag.KozossegiMunkaTamogatasa;
co.TanoraElokeszitesenekTamogatasa = OraTulajdonsag.TanoraElokeszitesenekTamogatasa;
co.TanoraLebonyolitasanakTamogatasa = OraTulajdonsag.TanoraLebonyolitasanakTamogatasa;
co.NapkozisTevekenysegKeretebenEgyeniFejlesztes = OraTulajdonsag.NapkozisTevekenysegKeretebenEgyeniFejlesztes;
co.HaziFeladat = Hazifeladat.Szoveg;
co.HaziHatarideje = Hazifeladat.Hatarido;
co.HaziFeladatId = Hazifeladat.Id;
co.CheckedOpenBoardFileIdList = OraAdat.CheckedOpenBoardFileIdList;
co.HaziFeladatCsatolmanyId = Hazifeladat.CsatolmanyId;
co.HelyettesitesId = Helyettesites.Id ?? 0;
co.Helyettesito = Helyettesites.TanarId;
co.HelyettesitesOka = Helyettesites.Oka;
co.HelyettesitesTipus = Helyettesites.Tipus;
co.DigEszkozTipusId = OraAdat.DigEszkozTipusId ?? (int)DigEszkozTipusEnum.na;
co.DigPlatformTipusId = OraAdat.DigPlatformTipusId ?? (int)DigPlatformTipusEnum.na;
co.DigTamEszkozTipusIdList = OraAdat.DigTamEszkozTipusIdList != null && OraAdat.DigTamEszkozTipusIdList.Count > 0 ? OraAdat.DigTamEszkozTipusIdList : new List<int>() { (int)DigTamEszkozTipusEnum.na };
}
public void ConvertTo(List<MulasztasokCo> coList)
{
foreach (var row in Mulasztas.MulasztasList)
{
var co = new MulasztasokCo();
if (row.Keses.HasValue && row.Keses.Value > 0 && row.MulasztasTipus != (int)MulasztasTipusEnum.potlas)
{
row.MulasztasTipus = (int)MulasztasTipusEnum.keses;
}
if (!row.MulasztasTipus.HasValue)
{
row.MulasztasTipus = (int)MulasztasTipusEnum.ures;
}
co.ID = row.MulasztasId;
co.TanuloId = row.TanuloId;
co.MulTip = row.MulasztasTipus;
if (row.MulasztasTipus == (int)MulasztasTipusEnum.keses || row.MulasztasTipus == (int)MulasztasTipusEnum.potlas)
{
co.KesIdo = row.Keses ?? 0;
}
co.HazifeladatHiany = row.HazifeladatHiany;
co.FelszerelesHiany = row.FelszerelesHiany;
co.Felmentes = row.Felmentes;
co.TanoraiDicseret = row.TanoraiDicseret;
co.HazifeladatHianyId = row.HazifeladatHianyId;
co.FelszerelesHianyId = row.FelszerelesHianyId;
co.FelmentesId = row.FelmentesId;
co.TanoraiDicseretId = row.TanoraiDicseretId;
coList.Add(co);
}
}
}
}

View file

@ -0,0 +1,243 @@
using System;
using System.Collections.Generic;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Utils;
using Kreta.Core.ConnectionType;
using Kreta.Enums;
using Kreta.Resources;
namespace Kreta.BusinessLogic.Logic.Naplozas.Elokeszites
{
public class OraAdatModel
{
internal OraAdatModel()
{
Hetirend = (int)HetiRendTipusEnum.MindegyikHet;
TemaLista = new Dictionary<string, string>();
}
public DateTime OraKezdete { get; set; }
public DateTime OraVege { get; set; }
public DateTime RogzitesDatuma { get; set; }
public int? OrarendiOraId { get; set; }
public int? TanitasiOraId { get; set; }
public int? CsengetesirendOraId { get; set; }
public int? CsengetesirendId { get; set; }
public int? Hanyadikora { get; set; }
public int? TanarId { get; set; }
public string TanarNev { get; set; }
public int? OsztalyfonokId { get; set; }
public string Tema { get; set; }
public int? TemaTanmenetId { get; set; }
public int? TanulasiEgysegId { get; set; }
public int? FoglakozasId { get; set; }
public int? OsztalyCsoportId { get; set; }
public string OsztalyCsoportNev { get; set; }
public int? TantargyId { get; set; }
public string TantargyNev { get; set; }
public int? TeremId { get; set; }
public bool IsOraOsszevonas { get; set; }
public bool IsElmaradt { get; set; }
public bool IsSorszamozando { get; set; }
public bool IsTanorankivuli { get; set; }
public int? EvesOraSorszam { get; set; }
public string Megjegyzes { get; set; }
public int? Oraszam { get; set; }
public string ElozoOraAdat { get; set; }
public string ElozoOraTema { get; set; }
public int? SzamonkeresModId { get; set; }
public string SzamonkeresModja { get; set; }
public string SzamonkeresMegnevezes { get; set; }
public string SzamonkeresAdatai
{
get
{
if (string.IsNullOrWhiteSpace(SzamonkeresModja))
{
return string.Empty;
}
return string.Format(OrarendResource.SzamonkeresElorejelzesModjaTemajaStr, SzamonkeresModja, string.IsNullOrWhiteSpace(SzamonkeresMegnevezes) ? "-" : SzamonkeresMegnevezes);
}
}
public string Hetesek { get; set; }
public int Hetirend { get; set; }
public IDictionary<string, string> TemaLista { get; internal set; }
public bool IsMobilNaplozott { get; set; }
public bool IsAdminAltalKiirt { get; set; }
public int GroupId { get; set; }
public int? HetNapja { get; set; }
public bool VanOralatogatasa { get; set; }
public List<int> CheckedOpenBoardFileIdList { get; internal set; }
public int? DigEszkozTipusId { get; set; }
public int? DigPlatformTipusId { get; set; }
public List<int> DigTamEszkozTipusIdList { get; set; }
internal void Fill(TanoraCO co, bool helyettesitesEsetenFelugyeletAlapertelmezettenSorszamozando)
{
OrarendiOraId = co.OrarendiOra;
TanitasiOraId = co.ID;
OraKezdete = co.OraKezd;
OraVege = co.OraVeg;
CsengetesirendOraId = co.CsengetesiRendOraId;
CsengetesirendId = co.CsengetesiRendID;
TanarId = co.Tanar;
FoglakozasId = co.Fogl;
OsztalyCsoportId = co.OsztCsop;
TantargyId = co.Targy;
TeremId = co.Terem;
TanarNev = co.TanarNev;
OsztalyCsoportNev = co.OsztalyCsoportNev;
TantargyNev = co.TantargyNev;
EvesOraSorszam = co.EvesOraSorszam;
TemaTanmenetId = co.TemaTanmenetId;
Tema = co.Tema;
TanulasiEgysegId = co.TanulasiEgysegId;
IsSorszamozando = GetSorszamozandoBaseValue(co.Sorszamozando, co.HelyettesitesTipus, helyettesitesEsetenFelugyeletAlapertelmezettenSorszamozando);
Megjegyzes = co.Megjegyzes;
Oraszam = co.Oraszam;
IsTanorankivuli = co.IsTanoranKivuli;
Hetirend = co.Hetirend ?? (int)HetiRendTipusEnum.MindegyikHet;
IsMobilNaplozott = co.MobilNaplozott ?? false;
IsAdminAltalKiirt = co.AdminAltalKiirt;
GroupId = co.OrarendiOraGroupId;
HetNapja = co.HetNapja;
RogzitesDatuma = co.BejegyIdo;
IsElmaradt = !co.Megtartott ?? false;
VanOralatogatasa = co.OraLatogatok != null && co.OraLatogatok.Count > 0;
CheckedOpenBoardFileIdList = co.CheckedOpenBoardFileIdList;
DigEszkozTipusId = co.DigEszkozTipusId;
DigPlatformTipusId = co.DigPlatformTipusId;
DigTamEszkozTipusIdList = co.DigTamEszkozTipusIdList;
}
internal void Fill(IConnectionType connectionType, EgyediNaplozasElokeszitesCo input, bool helyettesitesEsetenFelugyeletAlapertelmezettenSorszamozando)
{
OraKezdete = input.Start;
OraVege = input.End;
OrarendiOraId = input.OrarendiOraId;
TanitasiOraId = input.TanitasiOraId;
CsengetesirendOraId = input.CsengetesirendOraId;
CsengetesirendId = input.CsengetesirendId;
IsTanorankivuli = !(input.CsengetesirendOraId.HasValue && input.CsengetesirendOraId > 0);
if (!IsTanorankivuli && !CsengetesirendId.HasValue)
{
var cshelper = new CsengetesiRendHelper(connectionType);
CsengetesirendId = cshelper.GetCsengetesiRendId(CsengetesirendOraId.Value);
}
TanarId = input.TanarId;
FoglakozasId = input.FoglakozasId;
OsztalyCsoportId = input.OsztalyCsoportId;
TantargyId = input.TantargyId;
TeremId = input.TeremId;
IsOraOsszevonas = input.IsOraOsszevonas;
IsSorszamozando = GetSorszamozandoBaseValue(baseValue: true, input.HelyettesitesTipus, helyettesitesEsetenFelugyeletAlapertelmezettenSorszamozando);
HetNapja = CommonUtils.GetHetNapja(OraKezdete);
}
internal void Fill(NaplozasCo input)
{
OraKezdete = input.OraAdat.OraKezdete;
OraVege = input.OraAdat.OraVege;
if (input.OraAdat.OrarendiOraId.HasValue)
{
OrarendiOraId = input.OraAdat.OrarendiOraId;
}
if (input.OraAdat.TanitasiOraId.HasValue)
{
TanitasiOraId = input.OraAdat.TanitasiOraId;
}
if (input.OraAdat.CsengetesirendOraId.HasValue)
{
CsengetesirendOraId = input.OraAdat.CsengetesirendOraId;
}
if (input.OraAdat.CsengetesirendId.HasValue)
{
CsengetesirendId = input.OraAdat.CsengetesirendId;
}
if (input.OraAdat.TanarId.HasValue && !TanarId.HasValue)
{
TanarId = input.OraAdat.TanarId;
}
if (input.OraAdat.TemaTanmenetId.HasValue)
{
TemaTanmenetId = input.OraAdat.TemaTanmenetId;
}
if (input.OraAdat.TanulasiEgysegId.HasValue)
{
TanulasiEgysegId = input.OraAdat.TanulasiEgysegId;
}
if (input.OraAdat.FoglakozasId.HasValue)
{
FoglakozasId = input.OraAdat.FoglakozasId;
}
if (input.OraAdat.OsztalyCsoportId.HasValue)
{
OsztalyCsoportId = input.OraAdat.OsztalyCsoportId;
}
if (input.OraAdat.TantargyId.HasValue)
{
TantargyId = input.OraAdat.TantargyId;
}
if (input.OraAdat.TeremId.HasValue)
{
TeremId = input.OraAdat.TeremId;
}
if (input.OraAdat.Oraszam.HasValue)
{
Oraszam = input.OraAdat.Oraszam;
}
if (!input.IsEgyediNaplozas)
{
CheckedOpenBoardFileIdList = input.OraAdat.CheckedOpenBoardFileIdList;
}
Tema = input.OraAdat.Tema;
IsSorszamozando = input.OraAdat.IsSorszamozando;
IsTanorankivuli = input.OraAdat.IsTanorankivuli;
Megjegyzes = input.OraAdat.Megjegyzes;
if (RogzitesDatuma == default)
{
RogzitesDatuma = DateTime.Now;
}
if (!HetNapja.HasValue)
{
HetNapja = CommonUtils.GetHetNapja(OraKezdete);
}
IsMobilNaplozott = false;
DigPlatformTipusId = input.OraAdat.DigPlatformTipusId;
DigEszkozTipusId = input.OraAdat.DigEszkozTipusId;
DigTamEszkozTipusIdList = input.OraAdat.DigTamEszkozTipusIdList;
}
internal void Fill(NaplozasMobilCo input)
{
OrarendiOraId = input.OraAdat.OrarendiOraId;
TanitasiOraId = input.OraAdat.TanitasiOraId;
Tema = input.OraAdat.Tema;
IsElmaradt = input.OraAdat.IsElmaradt;
RogzitesDatuma = input.OraAdat.RogzitesDatuma == default ? DateTime.Now : input.OraAdat.RogzitesDatuma;
IsMobilNaplozott = true;
}
private bool GetSorszamozandoBaseValue(bool baseValue, int? helyettesitesTipus, bool helyettesitesEsetenFelugyeletAlapertelmezettenSorszamozando)
{
if (!TanitasiOraId.HasValue && (helyettesitesTipus == (int)HelyettesitesTipusEnum.nem_szakszeru_helyettesites_felugyelet_ || helyettesitesTipus == (int)HelyettesitesTipusEnum.osszevont_felugyelet))
{
return helyettesitesEsetenFelugyeletAlapertelmezettenSorszamozando;
}
return baseValue;
}
}
}

View file

@ -0,0 +1,187 @@
using Kreta.BusinessLogic.HelperClasses;
namespace Kreta.BusinessLogic.Logic.Naplozas.Elokeszites
{
public class OraTulajdonsagModel
{
public bool Bontott { get; set; }
public bool NemzetisegiOra { get; set; }
public bool IsFelnottoktatasiSzerzodes { get; set; }
public bool OnlineOra { get; set; }
public bool MindennaposTestneveles { get; set; }
public bool IPRTanora { get; set; }
public bool Differencialt { get; set; }
public bool Kooperativ { get; set; }
public bool Meres { get; set; }
public bool Drama { get; set; }
public bool Tiop { get; set; }
public bool ParhuzamosOra { get; set; }
public bool IktTanora { get; set; }
public bool TAMOP { get; set; }
public bool NemSzakrendszeru { get; set; }
public bool Tulora { get; set; }
public bool Multikulturalis { get; set; }
public bool EFOP32317 { get; set; }
public bool KomplexOra { get; set; }
public bool KIPOra { get; set; }
public bool VEKOP73317 { get; set; }
public bool KAPOra { get; set; }
public bool GINOP623 { get; set; }
public bool EFOP31716EselyteremtesAKoznevelesben { get; set; }
public bool EFOP33717 { get; set; }
public bool TIOP11112120120001 { get; set; }
public bool DFHT { get; set; }
public bool Rahangolodas { get; set; }
public bool Testmozgas { get; set; }
public bool Muveszet { get; set; }
public bool Eletgyakorlat { get; set; }
public bool Logika { get; set; }
public bool TeOrad { get; set; }
public bool DigitalisAlapProgram { get; set; }
public bool EFOP23517201700038Miapalya { get; set; }
public bool TanevTananyaganakIsmetlese { get; set; }
public bool TanevTananyaganakKiegeszitese { get; set; }
public bool TanulokDigitalisKeszsegfejlesztese { get; set; }
public bool Projektmunka { get; set; }
public bool TanulokKompenzaciosIraskeszsegFejlesztese { get; set; }
public bool TanulokKompenzaciosOlvasasiKepessegFejlesztese { get; set; }
public bool TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese { get; set; }
public bool TanulokNyelviKepessegenekKompenzaciosFejlesztese { get; set; }
public bool TanulokOnmegismeresenekSegitese { get; set; }
public bool TanulokOnallosagraNevelese { get; set; }
public bool TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese { get; set; }
public bool TanulokOrientaciosTamogatasa { get; set; }
public bool TanulokSzocialitasanakFejlesztese { get; set; }
public bool TanulokTovabbhaladasatElokeszitoTevekenysegek { get; set; }
public bool PedagogusAltalJelzettEgyeniEsetkezeles { get; set; }
public bool ProjektmunkaTamogatasa { get; set; }
public bool DigitalisKeszsegfejlesztes { get; set; }
public bool KozossegiMunkaTamogatasa { get; set; }
public bool TanoraElokeszitesenekTamogatasa { get; set; }
public bool TanoraLebonyolitasanakTamogatasa { get; set; }
public bool NapkozisTevekenysegKeretebenEgyeniFejlesztes { get; set; }
public bool IsEgybefuggoGyakorlat { get; set; }
internal void Fill(TanoraCO co)
{
Bontott = co.Bontott;
NemzetisegiOra = co.NemzetisegiOra;
IsFelnottoktatasiSzerzodes = co.IsFelnottoktatasiSzerzodes;
OnlineOra = co.OnlineOra;
MindennaposTestneveles = co.MindennaposTestneveles;
IPRTanora = co.IPRTanora;
Differencialt = co.Differencialt;
Kooperativ = co.Kooperativ;
Meres = co.Meres;
Drama = co.Drama;
Tiop = co.Tiop;
ParhuzamosOra = co.ParhuzamosOra;
IktTanora = co.IktTanora;
TAMOP = co.TAMOP;
KIPOra = co.KIPOra;
VEKOP73317 = co.VEKOP73317;
KAPOra = co.KAPOra;
NemSzakrendszeru = co.NemSzakrendszeru;
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;
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;
}
internal void Fill(NaplozasCo co)
{
Bontott = co.OraTulajdosag.Bontott;
NemzetisegiOra = co.OraTulajdosag.NemzetisegiOra;
IsFelnottoktatasiSzerzodes = co.OraTulajdosag.IsFelnottoktatasiSzerzodes;
OnlineOra = co.OraTulajdosag.OnlineOra;
MindennaposTestneveles = co.OraTulajdosag.MindennaposTestneveles;
IPRTanora = co.OraTulajdosag.IPRTanora;
Differencialt = co.OraTulajdosag.Differencialt;
Kooperativ = co.OraTulajdosag.Kooperativ;
Meres = co.OraTulajdosag.Meres;
Drama = co.OraTulajdosag.Drama;
Tiop = co.OraTulajdosag.Tiop;
ParhuzamosOra = co.OraTulajdosag.ParhuzamosOra;
IktTanora = co.OraTulajdosag.IktTanora;
TAMOP = co.OraTulajdosag.TAMOP;
KIPOra = co.OraTulajdosag.KIPOra;
VEKOP73317 = co.OraTulajdosag.VEKOP73317;
KAPOra = co.OraTulajdosag.KAPOra;
NemSzakrendszeru = co.OraTulajdosag.NemSzakrendszeru;
Tulora = co.OraTulajdosag.Tulora;
Multikulturalis = co.OraTulajdosag.Multikulturalis;
EFOP32317 = co.OraTulajdosag.EFOP32317;
KomplexOra = co.OraTulajdosag.KomplexOra;
GINOP623 = co.OraTulajdosag.GINOP623;
EFOP31716EselyteremtesAKoznevelesben = co.OraTulajdosag.EFOP31716EselyteremtesAKoznevelesben;
EFOP33717 = co.OraTulajdosag.EFOP33717;
TIOP11112120120001 = co.OraTulajdosag.TIOP11112120120001;
DFHT = co.OraTulajdosag.DFHT;
Rahangolodas = co.OraTulajdosag.Rahangolodas;
Testmozgas = co.OraTulajdosag.Testmozgas;
Muveszet = co.OraTulajdosag.Muveszet;
Eletgyakorlat = co.OraTulajdosag.Eletgyakorlat;
Logika = co.OraTulajdosag.Logika;
TeOrad = co.OraTulajdosag.TeOrad;
DigitalisAlapProgram = co.OraTulajdosag.DigitalisAlapProgram;
EFOP23517201700038Miapalya = co.OraTulajdosag.EFOP23517201700038Miapalya;
TanevTananyaganakIsmetlese = co.OraTulajdosag.TanevTananyaganakIsmetlese;
TanevTananyaganakKiegeszitese = co.OraTulajdosag.TanevTananyaganakKiegeszitese;
TanulokDigitalisKeszsegfejlesztese = co.OraTulajdosag.TanulokDigitalisKeszsegfejlesztese;
Projektmunka = co.OraTulajdosag.Projektmunka;
TanulokKompenzaciosIraskeszsegFejlesztese = co.OraTulajdosag.TanulokKompenzaciosIraskeszsegFejlesztese;
TanulokKompenzaciosOlvasasiKepessegFejlesztese = co.OraTulajdosag.TanulokKompenzaciosOlvasasiKepessegFejlesztese;
TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese = co.OraTulajdosag.TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese;
TanulokNyelviKepessegenekKompenzaciosFejlesztese = co.OraTulajdosag.TanulokNyelviKepessegenekKompenzaciosFejlesztese;
TanulokOnmegismeresenekSegitese = co.OraTulajdosag.TanulokOnmegismeresenekSegitese;
TanulokOnallosagraNevelese = co.OraTulajdosag.TanulokOnallosagraNevelese;
TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese = co.OraTulajdosag.TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese;
TanulokOrientaciosTamogatasa = co.OraTulajdosag.TanulokOrientaciosTamogatasa;
TanulokSzocialitasanakFejlesztese = co.OraTulajdosag.TanulokSzocialitasanakFejlesztese;
TanulokTovabbhaladasatElokeszitoTevekenysegek = co.OraTulajdosag.TanulokTovabbhaladasatElokeszitoTevekenysegek;
PedagogusAltalJelzettEgyeniEsetkezeles = co.OraTulajdosag.PedagogusAltalJelzettEgyeniEsetkezeles;
ProjektmunkaTamogatasa = co.OraTulajdosag.ProjektmunkaTamogatasa;
DigitalisKeszsegfejlesztes = co.OraTulajdosag.DigitalisKeszsegfejlesztes;
KozossegiMunkaTamogatasa = co.OraTulajdosag.KozossegiMunkaTamogatasa;
TanoraElokeszitesenekTamogatasa = co.OraTulajdosag.TanoraElokeszitesenekTamogatasa;
TanoraLebonyolitasanakTamogatasa = co.OraTulajdosag.TanoraLebonyolitasanakTamogatasa;
NapkozisTevekenysegKeretebenEgyeniFejlesztes = co.OraTulajdosag.NapkozisTevekenysegKeretebenEgyeniFejlesztes;
}
}
}

View file

@ -0,0 +1,47 @@
using Kreta.BusinessLogic.HelperClasses;
namespace Kreta.BusinessLogic.Logic.Naplozas
{
internal class MulasztasBulkUpdateModel
{
public MulasztasBulkUpdateModel(MulasztasokCo co)
{
ID = co.ID;
Igazolt = co.Igazolt.HasValue ? co.Igazolt.Value ? "T" : "F" : null;
Megjegyzes = co.Megjegyzes;
Tipus = co.MulTip;
IgazolasTipusa = co.IgazolasTipus;
OraTanuloId = co.TanuloId;
TanitasiOrakId = co.OraId;
if (co.KesIdo.HasValue && co.KesIdo > 0)
{
KesesPercben = co.KesIdo.Value;
}
else
{
KesesPercben = null;
}
}
public DbMuvelet Op { get; set; }
public int? ID { get; set; }
public string Igazolt { get; set; }
public int? KesesPercben { get; set; }
public string Megjegyzes { get; set; }
public int? Tipus { get; set; }
public int? IgazolasTipusa { get; set; }
public int? OraTanuloId { get; set; }
public int? TanitasiOrakId { get; set; }
public enum DbMuvelet
{
Insert = 0,
Update = 1,
Delete = 2,
}
}
}

View file

@ -0,0 +1,158 @@
using System;
using System.Collections.Generic;
namespace Kreta.BusinessLogic.Logic.Naplozas
{
public class NaplozasCo
{
public NaplozasCo(int? szervezetTipusId = null)
{
OraAdat = new OraAdatModel();
Helyettesites = new HelyettesitesModel();
OraTulajdosag = new OraTulajdonsagModel();
Hazifeladat = new HazifeladatModel();
SzamonkeresElorejelzes = new SzamonkeresElorejelzesModel();
MulasztasList = new List<MulasztasModel>();
SzervezetTipusId = szervezetTipusId;
}
public bool IsEgyediNaplozas { get { return !OraAdat.OrarendiOraId.HasValue && !OraAdat.TanitasiOraId.HasValue; } }
public OraAdatModel OraAdat { get; set; }
public HelyettesitesModel Helyettesites { get; set; }
public OraTulajdonsagModel OraTulajdosag { get; set; }
public HazifeladatModel Hazifeladat { get; set; }
public SzamonkeresElorejelzesModel SzamonkeresElorejelzes { get; set; }
public List<MulasztasModel> MulasztasList { get; set; }
public int? SzervezetTipusId { get; set; }
public class OraAdatModel
{
public DateTime OraKezdete { get; set; }
public DateTime OraVege { get; set; }
public int? OrarendiOraId { get; set; }
public int? TanitasiOraId { get; set; }
public int? CsengetesirendOraId { get; set; }
public int? CsengetesirendId { get; set; }
public int? TanarId { get; set; }
public string Tema { get; set; }
public int? TemaTanmenetId { get; set; }
public int? TanulasiEgysegId { get; set; }
public int? FoglakozasId { get; set; }
public int? OsztalyCsoportId { get; set; }
public int? TantargyId { get; set; }
public int? TeremId { get; set; }
public bool IsSorszamozando { get; set; }
public bool IsTanorankivuli { get; set; }
public string Megjegyzes { get; set; }
public int? Oraszam { get; set; }
public List<int> CheckedOpenBoardFileIdList { get; set; }
public int? DigEszkozTipusId { get; set; }
public int? DigPlatformTipusId { get; set; }
public List<int> DigTamEszkozTipusIdList { get; set; }
}
public class HelyettesitesModel
{
public int? Id { get; set; }
public int? TanarId { get; set; }
public string Oka { get; set; }
public int? Tipus { get; set; }
}
public class MulasztasModel
{
public int? MulasztasId { get; set; }
public int TanuloId { get; set; }
public int? MulasztasTipus { get; set; }
public int? Keses { get; set; }
public bool HazifeladatHiany { get; set; }
public bool FelszerelesHiany { get; set; }
public bool Felmentes { get; set; }
public bool TanoraiDicseret { get; set; }
public int? HazifeladatHianyId { get; set; }
public int? FelszerelesHianyId { get; set; }
public int? FelmentesId { get; set; }
public int? TanoraiDicseretId { get; set; }
}
public class HazifeladatModel
{
public int? Id { get; set; }
public string Szoveg { get; set; }
public DateTime? Hatarido { get; set; }
public int? CsatolmanyId { get; set; }
}
public class SzamonkeresElorejelzesModel
{
public int? Id { get; set; }
public string Megnevezes { get; set; }
public int? ErtekelesModId { get; set; }
}
public class OraTulajdonsagModel
{
public bool Bontott { get; set; }
public bool NemzetisegiOra { get; set; }
public bool IsFelnottoktatasiSzerzodes { get; set; }
public bool OnlineOra { get; set; }
public bool MindennaposTestneveles { get; set; }
public bool IPRTanora { get; set; }
public bool Differencialt { get; set; }
public bool Kooperativ { get; set; }
public bool Meres { get; set; }
public bool Drama { get; set; }
public bool Tiop { get; set; }
public bool ParhuzamosOra { get; set; }
public bool IktTanora { get; set; }
public bool TAMOP { get; set; }
public bool NemSzakrendszeru { get; set; }
public bool Tulora { get; set; }
public bool Multikulturalis { get; set; }
public bool EFOP32317 { get; set; }
public bool KomplexOra { get; set; }
public bool KIPOra { get; set; }
public bool VEKOP73317 { get; set; }
public bool KAPOra { get; set; }
public bool GINOP623 { get; set; }
public bool EFOP31716EselyteremtesAKoznevelesben { get; set; }
public bool EFOP33717 { get; set; }
public bool TIOP11112120120001 { get; set; }
public bool DFHT { get; set; }
public bool Rahangolodas { get; set; }
public bool Testmozgas { get; set; }
public bool Muveszet { get; set; }
public bool Eletgyakorlat { get; set; }
public bool Logika { get; set; }
public bool TeOrad { get; set; }
public bool DigitalisAlapProgram { get; set; }
public bool EFOP23517201700038Miapalya { get; set; }
public bool TanevTananyaganakIsmetlese { get; set; }
public bool TanevTananyaganakKiegeszitese { get; set; }
public bool TanulokDigitalisKeszsegfejlesztese { get; set; }
public bool Projektmunka { get; set; }
public bool TanulokKompenzaciosIraskeszsegFejlesztese { get; set; }
public bool TanulokKompenzaciosOlvasasiKepessegFejlesztese { get; set; }
public bool TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese { get; set; }
public bool TanulokNyelviKepessegenekKompenzaciosFejlesztese { get; set; }
public bool TanulokOnmegismeresenekSegitese { get; set; }
public bool TanulokOnallosagraNevelese { get; set; }
public bool TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese { get; set; }
public bool TanulokOrientaciosTamogatasa { get; set; }
public bool TanulokSzocialitasanakFejlesztese { get; set; }
public bool TanulokTovabbhaladasatElokeszitoTevekenysegek { get; set; }
public bool PedagogusAltalJelzettEgyeniEsetkezeles { get; set; }
public bool ProjektmunkaTamogatasa { get; set; }
public bool DigitalisKeszsegfejlesztes { get; set; }
public bool KozossegiMunkaTamogatasa { get; set; }
public bool TanoraElokeszitesenekTamogatasa { get; set; }
public bool TanoraLebonyolitasanakTamogatasa { get; set; }
public bool NapkozisTevekenysegKeretebenEgyeniFejlesztes { get; set; }
}
}
}

View file

@ -0,0 +1,148 @@
using System;
using System.Collections.Generic;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.BusinessLogic.Interfaces;
using Kreta.BusinessLogic.Logic.Naplozas.Elokeszites;
using Kreta.BusinessLogic.Logic.Naplozas.Validacio;
using Kreta.Client.CoreApi;
using Kreta.Enums;
namespace Kreta.BusinessLogic.Logic.Naplozas
{
public class NaplozasLogic : NaplozasElokeszitesLogic
{
public NaplozasLogic(NaploValidacio validator, NaplozasCo input) : base(validator)
{
FillInnerModel(input);
}
public NaplozasLogic(NaploValidacio validator, NaplozasMobilCo input) : base(validator)
{
FillInnerModel(input);
}
private void FillInnerModel(NaplozasCo input)
{
Model = new NaplozasElokeszitesModel(ConnectionType.FelhasznaloId, input.SzervezetTipusId)
{
IsEgyediNaplozas = input.IsEgyediNaplozas
};
var osztalyHelper = new OsztalyHelper(ConnectionType);
var orarendiOraHelper = new OrarendiOraHelper(ConnectionType);
var orarendHelper = new OrarendHelper(ConnectionType);
if (!Model.IsEgyediNaplozas)
{
var thelper = new TanoraHelper(ConnectionType);
var oraCo = thelper.GetTanoraByOrarendiId(input.OraAdat.TanitasiOraId ?? input.OraAdat.OrarendiOraId.Value, input.OraAdat.OraKezdete.Date, input.OraAdat.TanitasiOraId.HasValue, isTanuloOrGondviselo: false);
var systemSettingsHelper = new SystemSettingsHelper(ConnectionType);
var helyettesitesEsetenFelugyeletAlapertelmezettenSorszamozando = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Helyettesites_eseten_felugyelet_alapertelmezetten_sorszamozando);
Model.OraAdat.Fill(oraCo, helyettesitesEsetenFelugyeletAlapertelmezettenSorszamozando);
Model.OraAdat.Fill(input);
SetTantargyOsztalycsoport();
SetOsztalyfonok(osztalyHelper);
SetElozoOraAdatai(orarendiOraHelper);
SetTemaLista(thelper);
SetMentessegList(orarendHelper);
Model.OraTulajdonsag.Fill(input);
Model.Helyettesites.Fill(oraCo);
Model.Helyettesites.Fill(input, Model.IsEgyediNaplozas);
Model.Hazifeladat.Fill(input);
Model.Mulasztas.Fill(input, Model.MaxKeses);
}
else
{
Model.OraAdat.Fill(input);
Model.OraTulajdonsag.Fill(input);
Model.Helyettesites.Fill(input, Model.IsEgyediNaplozas);
SetTantargyOsztalycsoport();
SetOsztalyfonok(osztalyHelper);
SetElozoOraAdatai(orarendiOraHelper);
SetMentessegList(orarendHelper);
Model.Hazifeladat.Fill(input);
Model.Mulasztas.Fill(input, Model.MaxKeses);
}
}
private void FillInnerModel(NaplozasMobilCo input)
{
var thelper = new TanoraHelper(ConnectionType);
var oraCo = thelper.GetTanoraByOrarendiId(input.OraAdat.TanitasiOraId ?? input.OraAdat.OrarendiOraId.Value, input.OraAdat.Datum, input.OraAdat.TanitasiOraId.HasValue, isTanuloOrGondviselo: false);
Model = new NaplozasElokeszitesModel(ConnectionType.FelhasznaloId);
var systemSettingsHelper = new SystemSettingsHelper(ConnectionType);
var helyettesitesEsetenFelugyeletAlapertelmezettenSorszamozando = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Helyettesites_eseten_felugyelet_alapertelmezetten_sorszamozando);
Model.OraAdat.Fill(oraCo, helyettesitesEsetenFelugyeletAlapertelmezettenSorszamozando);
Model.OraAdat.Fill(input);
SetOsztalyfonok(new OsztalyHelper(ConnectionType));
SetElozoOraAdatai(new OrarendiOraHelper(ConnectionType));
SetTemaLista(thelper);
SetMentessegList(new OrarendHelper(ConnectionType));
Model.OraTulajdonsag.Fill(oraCo);
Model.Helyettesites.Fill(oraCo);
Model.Hazifeladat.Fill(input);
Model.Mulasztas.Fill(ConnectionType, input, Model.MaxKeses, Model.OraAdat.TanitasiOraId);
}
/// INFO @DevKornel: Mobil használja
public NaplozasResultCo SaveNaplozas(IFileServiceHelper fileServiceHelper, ICoreApiClient coreApiClient)
{
if (Model.OraAdat.IsMobilNaplozott)
{
Validator.MobilValidateModel(Model);
}
else if (!Model.IsElmaradtOra)
{
Validator.ValidateModel(Model);
}
var tanoraCo = new TanoraCO();
Model.ConvertTo(tanoraCo);
//Ha van órarendióra akkor nem számít mi jön a felületről az óra kezdete és vége az órarendiórában lévő érték lesz
if (Model.OraAdat.OrarendiOraId.HasValue)
{
var oo = new OrarendiOraHelper(ConnectionType).GetOrarendiOraById(Model.OraAdat.OrarendiOraId.Value);
var tsKezd = new TimeSpan(oo.OraKezdete.Hour, oo.OraKezdete.Minute, 0);
var tsVeg = new TimeSpan(oo.OraVege.Hour, oo.OraVege.Minute, 0);
tanoraCo.OraKezd = tanoraCo.OraKezd.Date + tsKezd;
tanoraCo.OraVeg = tanoraCo.OraVeg.Date + tsVeg;
}
var mulasztasCoList = new List<MulasztasokCo>();
Model.ConvertTo(mulasztasCoList);
return new TanoraHelper(ConnectionType).TanoraNaplozas(tanoraCo, mulasztasCoList, fileServiceHelper, coreApiClient);
}
public void SaveNemMegtartottNaplozas(IFileServiceHelper fileServiceHelper, ICoreApiClient coreApiClient)
{
Model.OraAdat.IsElmaradt = true;
SaveNaplozas(fileServiceHelper, coreApiClient);
}
public void NaplozasValidacio()
{
Validator.NaplozasDatumValidacio(Model);
Validator.LezartNaploValidacio(Model);
}
}
}

View file

@ -0,0 +1,58 @@
using System;
using System.Collections.Generic;
namespace Kreta.BusinessLogic.Logic.Naplozas
{
public class NaplozasMobilCo
{
public NaplozasMobilCo()
{
OraAdat = new OraAdatModel();
Hazifeladat = new HazifeladatModel();
SzamonkeresElorejelzes = new SzamonkeresElorejelzesModel();
MulasztasList = new List<MulasztasModel>();
}
public OraAdatModel OraAdat { get; set; }
public HazifeladatModel Hazifeladat { get; set; }
public SzamonkeresElorejelzesModel SzamonkeresElorejelzes { get; set; }
public List<MulasztasModel> MulasztasList { get; set; }
public class OraAdatModel
{
public int? OrarendiOraId { get; set; }
public int? TanitasiOraId { get; set; }
public string Tema { get; set; }
public DateTime Datum { get; set; }
public bool IsElmaradt { get; set; }
public DateTime RogzitesDatuma { get; set; }
}
public class MulasztasModel
{
public int TanuloId { get; set; }
public int? MulasztasTipus { get; set; }
public int? Keses { get; set; }
public bool HazifeladatHiany { get; set; }
public bool FelszerelesHiany { get; set; }
public bool Felmentes { get; set; }
public bool TanoraiDicseret { get; set; }
}
public class HazifeladatModel
{
public int? Id { get; set; }
public string Szoveg { get; set; }
public DateTime? Hatarido { get; set; }
public int? CsatolmanyId { get; set; }
}
public class SzamonkeresElorejelzesModel
{
public int? Id { get; set; }
public string Megnevezes { get; set; }
public int? ErtekelesModId { get; set; }
}
}
}

View file

@ -0,0 +1,447 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.Common;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Logic;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.BusinessLogic.Logic.Naplozas.Elokeszites;
using Kreta.Core.ConnectionType;
using Kreta.Core.Validation.Exceptions;
using Kreta.Core.Validation.Exceptions.Enum;
using Kreta.DataAccessManual;
using Kreta.DataAccessManual.Interfaces;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
namespace Kreta.BusinessLogic.Logic.Naplozas.Validacio
{
public class NaploValidacio
{
private List<OrarendCO.ExtendedEvent> OrarendLista
{
get
{
var helper = new OrarendHelper(ConnectionType);
return helper.GetOrarendiOrakEsVagyNapirendekEsTanorak(_parameters.FelhasznaloSzerepkor, _parameters.From, _parameters.To, ConnectionType.FelhasznaloId, osztalyCsoportId: null, tanuloId: null, csakOrarend: false, OrarendTipusEnum.Minden, isTanuloOrGondviselo: false, EventColorEnum.Kek);
}
}
private readonly NaploValidacioParameters _parameters;
public IConnectionType ConnectionType
{
get
{
return _parameters.ConnectionType;
}
}
public NaploValidacio(NaploValidacioParameters parameters)
{
_parameters = parameters;
}
/// INFO @D.Kornél: Mobil használja
public void MobilValidateModel(NaplozasElokeszitesModel model)
{
OrarendCO.ExtendedEvent ora;
LezartNaploValidacio(model);
if (!model.IsTanora)
{
ora = GetOra(model);
CheckIsOraExists(ora);
HelyettesitettOra(ora);
}
else
{
ora = GetTanora(model);
CheckIsOraExists(ora);
//TODO: ha nem az övé vagy helyettese
}
KorabbanNaplozottOra(model, ora);
CheckElmaradtraNaplozas(model, ora);
if (!model.IsElmaradtOra)
{
ValidateMulasztasRekords(model);
TemaValidacio(model);
}
NaplozasDatumValidacio(model);
}
public void ValidateModel(NaplozasElokeszitesModel model)
{
if (!model.IsEgyediNaplozas)
{
if (model.IsTanora)
{
var ora = GetTanora(model);
CheckIsOraExists(ora);
//TODO: ha nem az övé vagy helyettese
}
else
{
OrarendCO.ExtendedEvent ora;
if (model.Helyettesites.IsKeresoAltalTalaltOra)
{
ora = GetHelyettesOra(model);
}
else
{
ora = GetOra(model);
}
CheckIsOraExists(ora);
KorabbanNaplozottOra(model, ora);
HelyettesitettOra(ora);
}
}
ValidateMulasztasRekords(model);
NaplozasDatumValidacio(model);
TemaValidacio(model);
}
public bool TeremUtkozesEllenorzes(NaplozasElokeszitesModel model)
{
bool teremutkozes;
int tanoraID, orarendiOraID, hetirend;
var helper = new TanoraHelper(ConnectionType);
if (!model.OraAdat.TeremId.HasValue)
{
throw new ValidationException(ValidationErrorType.Undefined, ErrorResource.MenteshezATeremMegadasaKotelezo);
}
if (model.IsEgyediNaplozas)
{
tanoraID = 0;
orarendiOraID = 0;
hetirend = (int)HetiRendTipusEnum.MindegyikHet;
}
else if (model.IsTanora)
{
tanoraID = model.OraAdat.TanitasiOraId.Value;
(var oraId, var hRend) = helper.GetOrarendIdAndHetirend(tanoraID);
if (oraId.HasValue)
{
orarendiOraID = oraId.Value;
if (hRend.HasValue)
{
hetirend = hRend.Value;
}
else
{
hetirend = (int)HetiRendTipusEnum.MindegyikHet;
}
}
else
{
orarendiOraID = 0;
hetirend = (int)HetiRendTipusEnum.MindegyikHet;
}
}
else
{
tanoraID = 0;
orarendiOraID = model.OraAdat.OrarendiOraId.Value;
var orarendiOraHelper = new OrarendiOraHelper(ConnectionType);
hetirend = orarendiOraHelper.GetHetirend(orarendiOraID);
}
teremutkozes = helper.TanitasiOraTeremUtkozesEllenorzes(tanoraID, orarendiOraID, model.OraAdat.TeremId.Value, (int)model.OraAdat.HetNapja, hetirend, model.OraAdat.OraKezdete, model.OraAdat.OraVege);
return teremutkozes;
}
public string GetOsztalyEsTanarOraiUtkozes(NaplozasElokeszitesModel model)
{
int osztalyCsoportId;
if (!model.OraAdat.OsztalyCsoportId.HasValue && model.OraAdat.FoglakozasId.HasValue)
{
var helper = new TantargyFelosztasHelper(ConnectionType);
var data = helper.GetTantargyFelosztas(model.OraAdat.FoglakozasId.Value);
osztalyCsoportId = data.OsztalyCsoportID;
}
else
{
osztalyCsoportId = model.OraAdat.OsztalyCsoportId.Value;
}
var tanorahelper = new TanoraHelper(ConnectionType);
var errorMsg = tanorahelper.GetOsztalyEsTanarOrai(model.OraAdat.TanarId.Value, osztalyCsoportId, model.OraAdat.OraKezdete, model.OraAdat.OraVege, model.OraAdat.TanitasiOraId, model.OraAdat.OrarendiOraId);
return errorMsg;
}
public OrarendCO.ExtendedEvent GetTanora(NaplozasElokeszitesModel model)
{
return OrarendLista.Find(x => x.id == model.OraAdat.TanitasiOraId && x.datum.Value.Date == model.OraAdat.OraKezdete.Date);
}
public void CheckElmaradtraNaplozas(NaplozasElokeszitesModel model, OrarendCO.ExtendedEvent ora)
{
if (ora.OraAllapota == TanoraAllapotaEnum.Elmaradt && !model.IsElmaradtOra)
{
throw new ValidationException(ValidationErrorType.ResourceAlreadyExists, ErrorResource.NaplozasSikertelenKorabbanMarElmaradtOrakentNaplozasraKerult);
}
if (ora.OraAllapota == TanoraAllapotaEnum.Naplozott && model.IsElmaradtOra)
{
throw new ValidationException(ValidationErrorType.ResourceAlreadyExists, ErrorResource.NaplozasSikertelenAzOraMarKorabbanNaplozasraKerult);
}
}
private void CheckIsOraExists(OrarendCO.ExtendedEvent ora)
{
if (ora == null)
{
throw new ValidationException(ValidationErrorType.ResourceNotFound, ErrorResource.NaplozasSikertelenAzOraMarNemLetezikAKivalasztottNapon);
}
}
private OrarendCO.ExtendedEvent GetHelyettesOra(NaplozasElokeszitesModel model)
{
var helper = new OrarendHelper(ConnectionType);
var date = model.OraAdat.OraKezdete.Date;
var helyettesOralista = helper.GetOrarendiOrakEsVagyNapirendekEsTanorak(_parameters.FelhasznaloSzerepkor, date, date.AddDays(1), model.OraAdat.TanarId, osztalyCsoportId: null, tanuloId: null, csakOrarend: false, OrarendTipusEnum.Minden, isTanuloOrGondviselo: false, EventColorEnum.Kek);
return helyettesOralista.Find(x => x.OrarendiOraId == model.OraAdat.OrarendiOraId);
}
private OrarendCO.ExtendedEvent GetOra(NaplozasElokeszitesModel model)
{
return OrarendLista.Find(x => x.OrarendiOraId == model.OraAdat.OrarendiOraId && x.datum.Value.Date == model.OraAdat.OraKezdete.Date);
}
private void HelyettesitettOra(OrarendCO.ExtendedEvent ora)
{
if (ora.OraAllapota == TanoraAllapotaEnum.Nem_naplozott && ora.helyettesitoId.HasValue && ora.helyettesitoId != ConnectionType.FelhasznaloId)
{
throw new ValidationException(ValidationErrorType.ResourceNotFound, ErrorResource.NaplozasSikertelenAzOraraHelyettesitesLettKiivaAzAdminAltal);
}
}
private void KorabbanNaplozottOra(NaplozasElokeszitesModel model, OrarendCO.ExtendedEvent ora)
{
if (model.OraAdat.TanitasiOraId.HasValue)
{
return;
}
if (ora.OraAllapota == TanoraAllapotaEnum.Nem_naplozott)
{
return;
}
if (ora.OraAllapota == TanoraAllapotaEnum.Elmaradt)
{
throw new ValidationException(ValidationErrorType.ResourceAlreadyExists, ErrorResource.NaplozasSikertelenKorabbanMarElmaradtOrakentNaplozasraKerult);
}
if (ora.OraAllapota == TanoraAllapotaEnum.Naplozott)
{
if (ora.helyettesitoId.HasValue && ora.helyettesitoId != ConnectionType.FelhasznaloId)
{
throw new ValidationException(ValidationErrorType.ResourceAlreadyExists, ErrorResource.NaplozasSikertelenAzOratKorabbanMarHelyettesitettkentNaploztaEgyMasikTanar);
}
throw new ValidationException(ValidationErrorType.ResourceAlreadyExists, ErrorResource.NaplozasSikertelenAzOraMarKorabbanNaplozasraKerult);
}
}
private void TemaValidacio(NaplozasElokeszitesModel model)
{
if (string.IsNullOrWhiteSpace(model.OraAdat.Tema))
{
throw new ValidationException(ValidationErrorType.Undefined, ErrorResource.NaplozasSikertelenTemaMegadasaKotelezo);
}
if (model.OraAdat.Tema.Length > 1000) /*db ben ez a max char jelenleg*/
{
throw new ValidationException(ValidationErrorType.Undefined, ErrorResource.TemaTulHosszu);
}
}
/// INFO @D.Kornél: használja a mobil
public void NaplozasDatumValidacio(NaplozasElokeszitesModel model)
{
if (!model.NaplozhatoDatum)
{
throw new ValidationException(ValidationErrorType.Undefined, ErrorResource.NaplozasSikertelenJovobeliDatumraNemLehetNaplozni);
}
if (model.OraAdat.OraKezdete >= model.OraAdat.OraVege)
{
throw new ValidationException(ValidationErrorType.Undefined, ErrorResource.OraKezdeteNagyobbMintAVege);
}
var isNaplozhatZarastolFuggetlenul = new NaplozarasLogic(ConnectionType).IsNaplozhatZarastolFuggetlenul(model.OraAdat.OraKezdete, model.OraAdat.OsztalyCsoportId);
if (!isNaplozhatZarastolFuggetlenul && new OrarendHelper(ConnectionType).GetNaplozarasDate(null) >= model.OraAdat.OraKezdete)
{
throw new ValidationException(ValidationErrorType.Undefined, ErrorResource.NaplozasSikertelenNemNaplozhatoNaplozarasMiatt);
}
if (model.OraAdat.OraVege.Date != model.OraAdat.OraKezdete.Date)
{
throw new ValidationException(ValidationErrorType.Undefined, OrarendResource.AtiveloNaplozasNemEngedelyezett);
}
var orarendHelper = new OrarendHelper(ConnectionType);
if (orarendHelper.GetIsMunkaszunetiNap(model.OraAdat.OraKezdete.Date, model.OraAdat.OsztalyCsoportId.Value))
{
throw new ValidationException(ValidationErrorType.Undefined, ErrorResource.MunkaszunetiNapraTanoraNemVehetoFel);
}
var sysSettingsHelper = new SystemSettingsHelper(ConnectionType);
DateTime? szakGyakKezdDatum, szakGyakVegDatum, utolsoTanitasiNap;
var tanevRendHelper = new TanevrendHelper(ConnectionType);
var tanevHelper = new TanevHelper(ConnectionType);
szakGyakKezdDatum = sysSettingsHelper.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_kezd_datum);
szakGyakVegDatum = sysSettingsHelper.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_veg_datum);
utolsoTanitasiNap = tanevHelper.GetTanevInfo().UtolsoTanitasiNap;
var isRendkivuliNap = tanevRendHelper.IsRendkivuliTanitasiNap(model.OraAdat.OraKezdete);
if (model.OraAdat.OraKezdete.Date > utolsoTanitasiNap)
{
if ((model.OraAdat.OraKezdete.Date < szakGyakKezdDatum || model.OraAdat.OraKezdete.Date > szakGyakVegDatum) && !isRendkivuliNap)
{
throw new ValidationException(ValidationErrorType.Undefined, ErrorResource.NaplozasSikertelenNyariNaplozasMiatt);
}
if (!isRendkivuliNap && !new CsoportHelper(ConnectionType).IsNyariSzakmaiGyakorlatos(model.OraAdat.OsztalyCsoportId.Value) && !model.SzervezetTipusId.HasValue)
{
throw new ValidationException(ValidationErrorType.Undefined, ErrorResource.EbbenAzIdoszakbanCsakOsszefuggoSzakmaiGyakorlatiCsoportotLehetNaplozni);
}
}
}
public void LezartNaploValidacio(NaplozasElokeszitesModel model)
{
if (model.OraAdat.OsztalyCsoportId.HasValue && new NaplozarasLogic(ConnectionType).GetLezartOsztalyokEsBontottCsoportjaik().Contains(model.OraAdat.OsztalyCsoportId.Value))
{
throw new ValidationException(ValidationErrorType.Undefined, ErrorResource.AzElektronikusNaploLezarva);
}
}
private void ValidateMulasztasRekords(NaplozasElokeszitesModel model)
{
if (model.IsElmaradtOra)
{
return;
}
Dal.CustomConnection.Run(ConnectionType, h =>
{
var jelenletList = model.IsEgyediNaplozas ? GetEgyediOraJavasoltJelenlet(model, h)
: model.IsTanora ?
GetTanitasiOraJavasoltJelenlet(model, h, oktatasNevelesKategoriaEnum: null) : GetOrarendiOraJavasoltJelenlet(model, h);
SetMulastasValuesToValid(model, jelenletList);
});
}
private void SetMulastasValuesToValid(NaplozasElokeszitesModel model, IEnumerable<IJavasoltJelenletTanuloGetResponseCo> javasoltJelenlet)
{
var invalidRecords = new List<MulasztasItem>();
var template = model.IsTanora ? new JavasoltJelenletTemplateLogic(TanoraAllapotaEnum.Naplozott) : new JavasoltJelenletTemplateLogic(TanoraAllapotaEnum.Nem_naplozott);
foreach (var item in model.Mulasztas.MulasztasList)
{
var tanuloMulasztas = javasoltJelenlet.SingleOrDefault(t => t.TanuloId == item.TanuloId);
if (tanuloMulasztas != null)
{
var tanuloMulasztasTemplate = template.GetCalculatedJelenletJavaslatConsideringSzuro(tanuloMulasztas.JavasoltJelenletTemplateTipusSzuroLista);
MulasztasTipusEnum mulasztasTypus;
if (item.Keses.HasValue && item.Keses > 0 && !item.MulasztasTipus.HasValue)
{
mulasztasTypus = MulasztasTipusEnum.keses;
}
else
{
if (item.MulasztasTipus.HasValue)
{
mulasztasTypus = (MulasztasTipusEnum)item.MulasztasTipus.Value;
}
else
{
mulasztasTypus = MulasztasTipusEnum.ures;
}
}
var mulasztasTemplate = tanuloMulasztasTemplate.SzuroElemLista.First(t => t.MulasztasTipusAdatszotar == mulasztasTypus);
if (!mulasztasTemplate.IsEnabled)
{
invalidRecords.Add(item);
}
}
else
{
invalidRecords.Add(item);
}
}
foreach (var item in invalidRecords)
{
model.Mulasztas.MulasztasList.Remove(item);
}
}
private IEnumerable<IJavasoltJelenletTanuloGetResponseCo> GetOrarendiOraJavasoltJelenlet(NaplozasElokeszitesModel model, IDalHandler h, OktNevelesiKategoriaEnum? oktatasNevelesKategoriaEnum = null)
{
var jelenletList = OrarendiOraSubqueries.ListJavasoltJelenlet(model.UserId, ConnectionType.IntezmenyId, ConnectionType.IntezmenyAzonosito, ConnectionType.TanevId, h, new Classes.MobileApi.Naplo.V2.Co.Get.Ora.OrarendiOra.JavasoltJelenlet.JavasoltJelenletGetRequestCo()
{
Key = new Classes.MobileApi.Naplo.V2.Co.Get.Ora.OrarendiOra.JavasoltJelenlet.JavasoltJelenletKeyGetRequestCo[]
{
new Classes.MobileApi.Naplo.V2.Co.Get.Ora.OrarendiOra.JavasoltJelenlet.JavasoltJelenletKeyGetRequestCo(){
OrarendiOraId = model.OraAdat.OrarendiOraId.Value,
OraKezdetDatuma = model.OraAdat.OraKezdete,
OraVegDatuma = model.OraAdat.OraVege,
IsHelyettesitesKeresoAltalTalaltOra = model.Helyettesites.IsKeresoAltalTalaltOra
}
}
}, oktatasNevelesKategoriaEnum);
return jelenletList[0].TanuloLista;
}
private IEnumerable<IJavasoltJelenletTanuloGetResponseCo> GetEgyediOraJavasoltJelenlet(NaplozasElokeszitesModel model, IDalHandler h, OktNevelesiKategoriaEnum? oktatasNevelesKategoriaEnum = OktNevelesiKategoriaEnum.NevelesOktatas)
{
var jelenletList = EgyediOraSubqueries.ListJavasoltJelenlet(model.UserId, ConnectionType.IntezmenyAzonosito, ConnectionType.TanevId, h, new Classes.MobileApi.Naplo.V2.Co.Get.Ora.EgyediOra.JavasoltJelenlet.JavasoltJelenletGetRequestCo()
{
Key = new Classes.MobileApi.Naplo.V2.Co.Get.Ora.EgyediOra.JavasoltJelenlet.JavasoltJelenletKeyGetRequestCo[]
{
new Classes.MobileApi.Naplo.V2.Co.Get.Ora.EgyediOra.JavasoltJelenlet.JavasoltJelenletKeyGetRequestCo()
{
OsztalyCsoportId = model.OraAdat.OsztalyCsoportId.Value,
TantargyId = model.OraAdat.TantargyId.Value,
OraKezdetDatuma = model.OraAdat.OraKezdete,
OraVegDatuma = model.OraAdat.OraVege
}
}
}, oktatasNevelesKategoriaEnum, ConnectionType.IntezmenyId);
return jelenletList[0].TanuloLista;
}
private IEnumerable<IJavasoltJelenletTanuloGetResponseCo> GetTanitasiOraJavasoltJelenlet(NaplozasElokeszitesModel model, IDalHandler h, OktNevelesiKategoriaEnum? oktatasNevelesKategoriaEnum = null)
{
var jelenletList = TanitasiOraSubqueries.ListJavasoltJelenlet(model.UserId, ConnectionType.IntezmenyId, ConnectionType.IntezmenyAzonosito, ConnectionType.TanevId, h, new Classes.MobileApi.Naplo.V2.Co.Get.Ora.TanitasiOra.JavasoltJelenlet.JavasoltJelenletGetRequestCo()
{
Key = new Classes.MobileApi.Naplo.V2.Co.Get.Ora.TanitasiOra.JavasoltJelenlet.JavasoltJelenletKeyGetRequestCo[]
{
new Classes.MobileApi.Naplo.V2.Co.Get.Ora.TanitasiOra.JavasoltJelenlet.JavasoltJelenletKeyGetRequestCo(){
TanitasiOraId = model.OraAdat.TanitasiOraId.Value
}
}
}, oktatasNevelesKategoriaEnum);
return jelenletList[0].TanuloLista;
}
}
}

View file

@ -0,0 +1,29 @@
using System;
using Kreta.Core.ConnectionType;
using Kreta.Enums;
namespace Kreta.BusinessLogic.Logic.Naplozas.Validacio
{
public class NaploValidacioParameters
{
private NaploValidacioParameters() { }
public NaploValidacioParameters(DateTime date, IConnectionType connectionType, SzerepkorTipusEnum? felhasznaloSzerepkor) : this(date.ToLocalTime(), date.ToLocalTime().AddDays(1), connectionType, felhasznaloSzerepkor) { }
public NaploValidacioParameters(DateTime from, DateTime to, IConnectionType connectionType, SzerepkorTipusEnum? felhasznaloSzerepkor)
{
From = from;
To = to;
ConnectionType = connectionType;
FelhasznaloSzerepkor = felhasznaloSzerepkor;
}
public DateTime From { get; private set; }
public DateTime To { get; private set; }
public IConnectionType ConnectionType { get; private set; }
public SzerepkorTipusEnum? FelhasznaloSzerepkor { get; private set; }
}
}