using System; using System.Collections.Generic; using System.Data; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Utils; using Kreta.Core; using Kreta.Core.ConnectionType; using Kreta.DataAccess.Interfaces; using Kreta.DataAccessManual; using Kreta.DataAccessManual.Util; using Kreta.Enums; using Kreta.Framework.Util; namespace Kreta.BusinessLogic.Helpers { public class FoglalkozasHelper : LogicBase { public FoglalkozasHelper(IConnectionType connectionType) : base(connectionType) { } public IDictionary GetSablonok(int osztalyId) { var result = Dal.CustomConnection.Run(ConnectionType, h => { if (GridParameters == null) { GridParameters = new GridParameters(); } GridParameters.OrderBy = "Evfolyam ASC, Tantargy ASC, Tagozat ASC"; var dal = h.Foglalkozas(GridParameters); return dal.GetSablonok(TanevId, osztalyId); }); return LogicUtil.CreateDropdownContent(result, "ID", "SablonNev", sort: false); } public DataSet GetSablon(int sablonId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Foglalkozas(); return dal.GetSablon(sablonId); }); } public DataSet GetOsztalyCsoportFoglalkozasai(int id, OktNevelesiKategoriaEnum? kategoria) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Foglalkozas(GridParameters); return dal.GetOsztalyCsoportFoglalkozasai(id, TanevId, kategoria); }); } public DataSet GetTanuloCsoportosFoglalkozasai(int tanuloId, int osztalyId, OktNevelesiKategoriaEnum? kategoria) { var amiEgyeniCsoportok = Constants.AMIEgyeniCsoportok; return Dal.CustomConnection.Run(ConnectionType, h => { if (GridParameters == null) { GridParameters = new GridParameters(); } GridParameters.OrderBy = "Osztaly ASC, Tantargy ASC, Tanar ASC"; var tanevElsoNapja = new TanevHelper(new DalHandlerConnectionType(ConnectionType, h)).GetTanevKezdete(); var dal = h.Foglalkozas(GridParameters); return dal.GetTanuloFoglalkozasai(tanuloId, osztalyId, TanevId, egyeni: false, amiEgyeniCsoportok, kategoria, tanevElsoNapja); }); } public DataSet GetTanuloEgyeniFoglalkozasai(int tanuloId, int osztalyId, OktNevelesiKategoriaEnum? kategoria) { var amiEgyeniCsoportok = Constants.AMIEgyeniCsoportok; return Dal.CustomConnection.Run(ConnectionType, h => { if (GridParameters == null) { GridParameters = new GridParameters(); } GridParameters.OrderBy = "Osztaly ASC, Tantargy ASC, Tanar ASC"; var tanevElsoNapja = new TanevHelper(new DalHandlerConnectionType(ConnectionType, h)).GetTanevKezdete(); var dal = h.Foglalkozas(GridParameters); return dal.GetTanuloFoglalkozasai(tanuloId, osztalyId, TanevId, egyeni: true, amiEgyeniCsoportok, kategoria, tanevElsoNapja); }); } public TantargyFoglalkozasCO GetFoglalkozas(int foglalkozasId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Foglalkozas(GridParameters); var entity = dal.Get(foglalkozasId); var result = new TantargyFoglalkozasCO { ID = foglalkozasId, OsztalyCsoportId = entity.OsztalyCsoportId, OsztalyCsoportNev = entity.OsztalyCsoport.Nev, TantargyNev = entity.Tantargy.Nev, TantargyId = entity.Tantargy.ID, IsOsztalyfonoki = entity.Tantargy.TargyKategoria == (int)TargyKategoriaTipusEnum.osztalyfonoki_elet_es_palyatervezes, Oraszam = entity.Oraszam }; return result; }); } public string GetTanarokTanoranKivuliFoglalkozashoz(int tanoranKivuliFoglalkozasId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Foglalkozas(GridParameters); var ret = ""; var ds = dal.GetTanarokTanoranKivuliFoglalkozashoz(tanoranKivuliFoglalkozasId, TanevId); foreach (DataRow row in ds.Tables[0].Rows) { ret += row["TanarNev"] + Environment.NewLine; } return ret; }); } public void SaveTanoranKivuliFoglalkozas(FoglalkozasCO co) { ValidateFoglalkozasCO(co); Dal.CustomConnection.Run(ConnectionType, h => { var orarendiOraDal = h.OrarendiOra(GridParameters); IOrarendiOra ora = co.ID.HasValue ? orarendiOraDal.Get(co.ID.Value) : orarendiOraDal.Get(); switch (co.Kezdete.Value.DayOfWeek) { case DayOfWeek.Monday: ora.HetNapja = (int)HetNapjaTipusEnum.Hetfo; break; case DayOfWeek.Tuesday: ora.HetNapja = (int)HetNapjaTipusEnum.Kedd; break; case DayOfWeek.Wednesday: ora.HetNapja = (int)HetNapjaTipusEnum.Szerda; break; case DayOfWeek.Thursday: ora.HetNapja = (int)HetNapjaTipusEnum.Csutortok; break; case DayOfWeek.Friday: ora.HetNapja = (int)HetNapjaTipusEnum.Pentek; break; case DayOfWeek.Saturday: ora.HetNapja = (int)HetNapjaTipusEnum.Szombat; break; case DayOfWeek.Sunday: ora.HetNapja = (int)HetNapjaTipusEnum.Vasarnap; break; } ora.Bontott = co.Bontott; ora.Hetirend = co.Hetirend; ora.IKTTanora = co.IKTTanora; ora.IPRTanora = co.IPRTanora; ora.Kooperativ = co.Kooperativ; ora.Meres = co.Meres; ora.MindennaposTestneveles = co.MindennaposTestneveles; ora.NemSzakrendszeruOra = co.NemSzakrendszeruOra; ora.NemzetisegiOra = co.NemzetisegiOra; ora.IsFelnottoktatasiSzerzodes = co.IsFelnottoktatasiSzerzodes; if (co.ErvenyessegKezdete.HasValue) ora.OraErvenyessegKezdete = co.ErvenyessegKezdete.Value; if (co.ErvenyessegVege.HasValue) ora.OraErvenyessegVege = co.ErvenyessegVege.Value; ora.OraKezdete = co.Kezdete.Value; ora.OraVege = co.Vege.Value; ora.Differencialt = co.Differencialt; ora.Drama = co.Drama; ora.ParhuzamosOra = co.ParhuzamosOra; ora.Sorszamozando = co.Sorszamozando; ora.TAMOPOra = co.TAMOPOra; ora.KIPOra = co.KIPOra; ora.VEKOP73317 = co.VEKOP73317; ora.KAPOra = co.KAPOra; ora.TanarId = co.TanarID; ora.OraTulajdonosId = co.TanarID; //Tanórán kivüli foglalkozás esetében nincs óraszám, mert nem csengetési rendhez kötött! ora.Oraszam = 0; if (co.TanoranKivuliFoglalkozas.HasValue) { ora.FoglalkozasId = co.TanoranKivuliFoglalkozas.Value; var foglalkozasDal = h.Foglalkozas(); var f = foglalkozasDal.Get(co.TanoranKivuliFoglalkozas.Value); ora.TantargyId = f.TantargyId; ora.OsztalyCsoportId = f.OsztalyCsoportId; } else { if (co.OsztalyCsoportId.HasValue) { ora.OsztalyCsoportId = co.OsztalyCsoportId.Value; } if (co.TantargyId.HasValue) { ora.TantargyId = co.TantargyId.Value; } } ora.TeremId = co.TeremID.Value; ora.TIOP12 = co.Tiop; ora.Tulora = co.Tulora; if (co.ID.HasValue) { orarendiOraDal.FullUpdate(ora); } else { orarendiOraDal.Insert(ora); } }); } public int SaveFoglalkozas(int tantargyId, int osztalyCsoportId, int tanarId, double oraszam = 1D, bool isOsszevontOra = false, bool isNemzetisegiOra = false) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Foglalkozas(); var entity = dal.Get(); entity.TanevId = TanevId; entity.FoglalkozasTipusa = (int)FoglalkozasTipusEnum.tanora; entity.Oraszam = oraszam; entity.Nev = null; entity.ErtekelesKell = false; entity.MulasztasKell = false; entity.TanarFelveheti = false; entity.TantargyId = tantargyId; entity.OsztalyCsoportId = osztalyCsoportId; entity.TanarId = tanarId; entity.IsOsszevontOra = isOsszevontOra; entity.IsNemzetisegi = isNemzetisegiOra; dal.Insert(entity); return entity.ID; }); } public string GetFoglalkozasNeve(int foglalkozasId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Foglalkozas(); var f = dal.Get(foglalkozasId); return f.Tantargy.Nev + "_" + f.OsztalyCsoport.Nev; }); } public IDictionary GetTanarFoglalkozasok(int tanarId, string typeId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Foglalkozas(); var ds = dal.GetTanarFoglalkozasok(tanarId, TanevId, typeId); return LogicUtil.CreateDropdownContent(ds, "ID", "Nev", null, false); }); } public IDictionary GetTanarNemTanitottFoglalkozasok(int tanarId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Foglalkozas(); var ds = dal.GetTanarNemTanitottFoglalkozasok(tanarId, TanevId); return LogicUtil.CreateDropdownContent(ds, "OCSID", "Nev", null, false); }); } public IDictionary GetOsszesFoglalkozas() { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Foglalkozas(); var ds = dal.GetOsszesFoglalkozas(TanevId, null); return LogicUtil.CreateDropdownContent(ds, "ID", "Nev"); }); } public IDictionary GetTanarFoglalkozasTipusok(int felhasznaloId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Foglalkozas(); var ds = dal.GetTanarFoglalkozasTipusok(felhasznaloId, TanevId); return LogicUtil.CreateDropdownContent(ds, "Tipus", "Tipus_DNAME", StringResourcesUtils.GetString(2672)); }); } public IDictionary GetTanoranKivuliFoglalkozasok(int? tanarId, int? stringResourceId = null) { IDictionary result = new Dictionary(); var ds = Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Foglalkozas(); return dal.GetTanoranKivuliFoglalkozasok(tanarId, TanevId); }); if (stringResourceId.HasValue) { result.Add("", StringResourcesUtils.GetString(stringResourceId.Value)); } foreach (DataRow row in ds.Tables[0].Rows) { var id = row["ID"].ToString(); var value = $"{row["FoglalkozasNev"]} ({row["FoglalkozasTipusa_DNAME"]}) - {row["TantargyNev"]} - {row["OsztalyCsoportNev"]}"; result.Add(id, value); } return result; } public FoglalkozasTipusEnum GetFoglalkozasTipusByOsztalyCsoportTipus(CsoportTipusEnum osztalyCsoportTipus, bool? isBontott) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Foglalkozas(); var result = dal.GetFoglalkozasTipusByOsztalyCsoportTipus((int)osztalyCsoportTipus, isBontott); return result.HasValue ? (FoglalkozasTipusEnum)result : FoglalkozasTipusEnum.na; }); } private void ValidateFoglalkozasCO(FoglalkozasCO co) { if (co.UseFoglalkozas && co.TanoranKivuliFoglalkozas.HasValue == false) { throw new ArgumentNullException("TanoranKivuliFoglalkozas"); } if (!co.UseFoglalkozas) { if (co.OsztalyCsoportId.HasValue == false) { throw new ArgumentNullException("OsztalyCsoportId"); } if (co.TantargyId.HasValue == false) { throw new ArgumentNullException("TantargyId"); } } if (co.Kezdete.HasValue == false) { throw new ArgumentNullException("Kezdete"); } if (co.Vege.HasValue == false) { throw new ArgumentNullException("Vege"); } if (co.TeremID.HasValue == false) { throw new ArgumentNullException("TeremID"); } } public (double oraszam, double ttfKorrekcioOraszam) GetFoglalkozasOsszOraszamok(bool IsFromSzervezet = false) { var ds = Dal.CustomConnection.Run(ConnectionType, h => h.Foglalkozas().GetFoglalkozasOsszOraszamok(TanevId, IsFromSzervezet)); var oraszam = SDAConvert.ToDouble(ds.Tables[0].Rows[0]["Oraszam"]); var ttfKorrekcioOraszam = SDAConvert.ToDouble(ds.Tables[0].Rows[0]["TtfKorrekcioOraszam"]); return (oraszam, ttfKorrekcioOraszam); } } }