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,395 @@
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<string, string> 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<string, string> 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<string, string> 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<string, string> 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<string, string> 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<string, string> GetTanoranKivuliFoglalkozasok(int? tanarId, int? stringResourceId = null)
{
IDictionary<string, string> result = new Dictionary<string, string>();
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);
}
}
}