321 lines
14 KiB
C#
321 lines
14 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|