395 lines
15 KiB
C#
395 lines
15 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|