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,819 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Exceptions;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.Core;
using Kreta.Core.ConnectionType;
using Kreta.Core.Exceptions;
using Kreta.DataAccess.Interfaces;
using Kreta.DataAccessManual;
using Kreta.DataAccessManual.Interfaces;
using Kreta.DataAccessManual.Util;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework;
using Kreta.Framework.Entities;
using Kreta.Resources;
namespace Kreta.BusinessLogic.Helpers
{
public class TanevrendHelper : LogicBase
{
public TanevrendHelper(IConnectionType connectionType) : base(connectionType) { }
public DataSet GetTanevredhezTartozoOsztCsopList(int tanevrendId = -1, int? feladatKategoriaId = null, int? mukodesiHelyId = null, int? feladatEllatasiHelyId = null)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TanevRendjeDal(GridParameters);
return dal.GetTanevredhezTartozoOsztCsopList(TanevId, tanevrendId, feladatKategoriaId, mukodesiHelyId, feladatEllatasiHelyId);
});
}
/// INFO @DevKornel: Mobil használja
public DataSet GetTanevrendekOsztalyCsoportokkal(DateTime? start = null, DateTime? end = null, int? tanuloId = null)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TanevRendjeDal(GridParameters);
return dal.ListTanevRendekOsztalyCsoportokkal(TanevId, start, end, tanuloId);
});
}
/// INFO @DevKornel: Mobil használja
public TanevRendjeListsCO GetTanevRendjeLists(DataTable tanevrendek)
{
var result = new TanevRendjeListsCO();
foreach (DataRow row in tanevrendek.Rows)
{
DateTime datum = Convert.ToDateTime(row["Datum"]);
var ocsId = SDAConvert.ToInt32(row["OsztalyCsoportId"]);
var isOrarendiNap = SDAConvert.ToBooleanFromTF(row["OrarendiNap"]) && !OrarendHelper.NemTanitasiNapTipusok.Contains(SDAConvert.ToInt32(row["NapTip"]));
if (ocsId < 1)
{
if (!isOrarendiNap)
{
result.GlobalTiltas.Add(datum);
}
else
{
result.GlobalEngedelyezes.Add(datum);
}
}
else
{
if (isOrarendiNap)
{
result.OcsEngedelyezes.Add(new Tuple<DateTime, int>(datum, ocsId));
}
else
{
result.OcsTiltas.Add(new Tuple<DateTime, int>(datum, ocsId));
}
}
}
return result;
}
public Dictionary<string, string> GetTanevHetirendTipusok()
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TanevRendjeDal();
var ds = dal.GetTanevHetirendTipusok(TanevId);
var dictionary = new Dictionary<string, string>();
if (ds != null && ds.Tables[0].Rows != null)
{
foreach (DataRow row in ds.Tables[0].Rows)
dictionary.Add(row["HetirendId"].ToString(), row["Hetirend"].ToString());
}
return dictionary;
});
}
public TanevrendCO GetTanevrendById(int tanevRendId)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var entity = h.TanevRendjeDal().Get(tanevRendId);
var co = new TanevrendCO();
co.ID = entity.ID;
co.Tanev = entity.TanevId;
co.TanevNeve = entity.Tanev.Nev;
if (entity.HetNapja != null)
{
co.Nap = entity.HetNapja;
}
co.NapTip = entity.NapTipusa;
co.Hetirend = entity.HetiRend;
co.Megjegyzes = entity.Megjegyzes;
co.Datum = entity.Datum;
co.OsszesCsop = entity.OsszesCsoportraVonatkozik ?? false;
co.CsengetesiRend = entity.CsengetesiRendId;
co.ElteroOrarendSzerintiTanitasNapDatum = entity.ElteroNapDatuma;
co.UresOrarend = entity.IsUresOrarend;
if (co.CsengetesiRend == -1)
{
co.CsengetesiRend = GetTanevrendDefaultCsengetesiRend(entity.TanevId);
}
if (!co.OsszesCsop)
{
co.Csoportok = GetTanevRendjeOsztalyCsoportokText(entity.ID);
}
else
{
co.Csoportok = "Összes osztály és csoport";
}
var dal = h.TanevRendjeDal();
co.IsElteroNapModosithato = !dal.GetKezzelrogzitettOrarendiOra(entity.Datum);
return co;
});
}
public string GetTanevRendjeOsztalyCsoportokText(int tanevRendjeId)
{
Dictionary<int, string> tanevRendjeOsztalyCsoportokDictionary = GetTanevRendjeOsztalyCsoportokDictionary(new List<int> { tanevRendjeId });
string result = tanevRendjeOsztalyCsoportokDictionary.FirstOrDefault(x => x.Key == tanevRendjeId).Value;
return result;
}
public Dictionary<int, string> GetTanevRendjeOsztalyCsoportokDictionary(List<int> tanevRendjeIds)
{
DataSet dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.TanevRendjeDal().GetTanevRendjeOsztalyCsoportok(TanevId, tanevRendjeIds));
var result = new Dictionary<int, string>();
foreach (DataRow dataRow in dataSet.Tables[0].Rows)
{
int id = SDAConvert.ToInt32(dataRow["ID"]);
string osztalyCsoportNev = SDAConvert.ToString(dataRow["OsztalyCsoportNev"]);
if (result.ContainsKey(id))
{
result[id] += $@", {osztalyCsoportNev}";
}
else
{
result.Add(id, osztalyCsoportNev);
}
}
return result;
}
public bool IsTanitasiNap(DateTime date, int? osztalycsoportId)
{
var osztalyTanevrendjei = GetOsztalycsoportTanevrendje(date, osztalycsoportId ?? 0);
if (osztalyTanevrendjei.Any(x => !x.Globalis && (OrarendHelper.NemTanitasiNapTipusok.Contains(x.Naptipus) || !x.OrarendiNap)))
{
return false; //ha van benne az osztályra szabott tiltás
}
if (osztalyTanevrendjei.Any(x => !x.Globalis && !OrarendHelper.NemTanitasiNapTipusok.Contains(x.Naptipus)))
{
return true; //ha van benne az osztályra szabott engedélyezés
}
if (osztalyTanevrendjei.Any(x => x.Globalis && !OrarendHelper.NemTanitasiNapTipusok.Contains(x.Naptipus)))
{
return true; //ha van benne globalis engedélyezés
}
if (osztalyTanevrendjei.Any(x => x.Globalis && (OrarendHelper.NemTanitasiNapTipusok.Contains(x.Naptipus) || !x.OrarendiNap)))
{
return false; //ha van benne globalis tiltás
}
var foglalkozasok_Rogzitese_Hetvegere = new SystemSettingsHelper(ConnectionType).GetSystemSettingValue<FoglalkozasokRogziteseHetvegere>(RendszerBeallitasTipusEnum.Foglalkozasok_Rogzitese_Hetvegere);
switch (foglalkozasok_Rogzitese_Hetvegere)
{
case FoglalkozasokRogziteseHetvegere.Engedelyezett:
return true;
case FoglalkozasokRogziteseHetvegere.CsakSzombat:
return date.DayOfWeek != DayOfWeek.Sunday;
case FoglalkozasokRogziteseHetvegere.NemEngedelyezett:
default:
return date.DayOfWeek != DayOfWeek.Saturday && date.DayOfWeek != DayOfWeek.Sunday;
}
}
public bool IsOrarendiNap(DateTime date, int? osztalycsoportId, bool isFromSzervezet = false)
{
if (isFromSzervezet)
{
return true;
}
var osztalyTanevrendjei = GetOsztalycsoportTanevrendje(date, osztalycsoportId ?? 0);
if (osztalyTanevrendjei.Any(x => !x.Globalis && !x.OrarendiNap))
{
return false; //ha van benne az osztályra szabott tiltás
}
if (osztalyTanevrendjei.Any(x => !x.Globalis && x.OrarendiNap))
{
return true; //ha van benne az osztályra szabott engedélyezés
}
if (osztalyTanevrendjei.Any(x => x.Globalis && !x.OrarendiNap))
{
return false; //ha van benne globalis tiltás
}
if (osztalyTanevrendjei.Any(x => x.Globalis && x.OrarendiNap))
{
return true; //ha van benne globalis engedélyezés
}
var foglalkozasok_Rogzitese_Hetvegere = new SystemSettingsHelper(ConnectionType).GetSystemSettingValue<FoglalkozasokRogziteseHetvegere>(RendszerBeallitasTipusEnum.Foglalkozasok_Rogzitese_Hetvegere);
switch (foglalkozasok_Rogzitese_Hetvegere)
{
case FoglalkozasokRogziteseHetvegere.Engedelyezett:
return true;
case FoglalkozasokRogziteseHetvegere.CsakSzombat:
return date.DayOfWeek != DayOfWeek.Sunday;
case FoglalkozasokRogziteseHetvegere.NemEngedelyezett:
default:
return date.DayOfWeek != DayOfWeek.Saturday && date.DayOfWeek != DayOfWeek.Sunday;
}
}
public List<TanevrendOsztalycsoportCO> GetOsztalycsoportTanevrendje(DateTime? date, int osztalycsoportId, bool? osszesCsoportVonatkozokat = null)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TanevRendjeDal();
var ds = dal.GetOsztalycsoportTanevrendje(date, osztalycsoportId, IntezmenyId, TanevId, osszesCsoportVonatkozokat);
var result = new List<TanevrendOsztalycsoportCO>();
foreach (DataRow rend in ds.Tables[0].Rows)
{
var item = new TanevrendOsztalycsoportCO
{
TanevrendId = SDAConvert.ToInt32(rend["ID"]),
Hetirend = SDAConvert.ToInt32(rend["C_HETIREND"]),
Csengetesirend = SDAConvert.ToInt32(rend["C_CSENGETESIRENDID"]),
Naptipus = SDAConvert.ToInt32(rend["C_NAPTIPUSA"]),
HetNapja = SDAConvert.ToInt32(rend["C_HETNAPJA"]),
OrarendiNap = SDAConvert.ToBooleanFromTF(rend["C_ORARENDINAP"]),
Globalis = SDAConvert.ToBooleanFromTF(rend["C_OSSZESCSOPORTRAVONATKOZIK"]),
Datum = SDAConvert.ToDateTime(rend["C_DATUM"]).Value
};
result.Add(item);
}
return result;
});
}
public List<OrarendCO.Event> GetTanevRendjeCalendarData(DateTime start, DateTime end)
{
var tanevEsemenyeiDS = Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var orarendiOraDal = h.OrarendiOra();
return orarendiOraDal.GetTanevEsemenyeiOrarend(start, end);
});
var tanevEsemenyeiLista = new List<OrarendCO.Event>();
foreach (DataRow row in tanevEsemenyeiDS.Tables[0].Rows)
{
DateTime datum = Convert.ToDateTime(row["Datum"]);
var orarendiEvent = new OrarendCO.Event();
orarendiEvent.allDay = true;
orarendiEvent.start = datum;
orarendiEvent.end = datum + new TimeSpan(10, 10, 10);
orarendiEvent.title = (SDAConvert.ToInt32(row["KapcsCsopSzam"]) <= 0 ? row["NapTip_DNAME"].ToString() : "*" + row["NapTip_DNAME"].ToString());
orarendiEvent.Tema = SDAConvert.ToString(row["Megjegyzes"]);
orarendiEvent.id = SDAConvert.ToInt32(row["ID"]);
orarendiEvent.color = SetColorByType(Convert.ToInt32(row["NapTip"]));
tanevEsemenyeiLista.Add(orarendiEvent);
}
return tanevEsemenyeiLista;
}
public DateTime GetUtolsoTanitasiNapDate()
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var result = h.TanevRendjeDal().GetUtolsoTanitasiNapDate(IntezmenyId, TanevId);
return result;
});
}
public DateTime? GetNapDate(NapTipusEnum napEnum, bool returnDefaultValue = true)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var result = h.TanevRendjeDal().GetNapDate(IntezmenyId, TanevId, napEnum, returnDefaultValue);
return result;
});
}
public DateTime GetNapDate(NapTipusEnum napEnum)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var result = h.TanevRendjeDal().GetNapDate(IntezmenyId, TanevId, napEnum);
return result.Value;
});
}
public DateTime GetElsoTanitasiNapDate()
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var result = h.TanevRendjeDal().GetElsoTanitasiNapDate(IntezmenyId, TanevId);
return result;
});
}
public bool HasTanitasiNap(DateTime date)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var naptariNapHelper = new NaptariNapHelper(new DalHandlerConnectionType(ConnectionType, h));
var tanitasiNapIdList = naptariNapHelper.GetTanitasiNapIdList();
return h.TanevRendjeDal().HasTanitasiNap(new DateTime(date.Year, date.Month, date.Day), tanitasiNapIdList, TanevId);
});
}
public int GetTanevrendDefaultCsengetesiRend(int tanevId)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TanevRendjeDal();
return dal.GetTanevrendDefaultCsengetesiRend(tanevId);
});
}
public string GetTanevrendValueString(int tanevId, int? id)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TanevRendjeDal();
return dal.GetTanevrendCsengetesiRendValue(id, tanevId);
});
}
public List<int> GetMarFelvettKiemeltTanevEsemenyek()
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TanevRendjeDal();
return dal.GetMarFelvettKiemeltTanevEsemenyTipusok(TanevId);
});
}
public DataSet GetTanevrendByCsengRend(int csRendId)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TanevRendjeDal(GridParameters);
return dal.GetTanevrendekByCsengetesiRend(TanevId, csRendId);
});
}
public bool GetVanTanevRendjeEsemenyNemKotottMunkaido(DateTime startDatum, DateTime endDatum)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TanevRendjeDal();
return dal.GetVanTanevRendjeEsemenyNemKotottMunkaido(TanevId, startDatum, endDatum);
});
}
public void CheckTanevRendjeUtkozes(DateTime datum, List<int> selectedOsztalyCsoportIdList, bool IsGlobalis, int? tanevrendjeId)
{
var tanevrendek = GetVanTanevRendje(datum, tanevrendjeId);
if (IsGlobalis)
{
if (tanevrendek.Any(a => !a.OsztalyCsoportId.HasValue))
{
throw new BlException(OrarendResource.MarVanTanevrendjeEsemeny);
}
}
else
{
var osztalyUtkozesek = tanevrendek.Where(a => a.OsztalyCsoportId.HasValue && selectedOsztalyCsoportIdList.Contains(a.OsztalyCsoportId.Value)).ToList();
if (osztalyUtkozesek.Any())
{
var hibaUzenet = OrarendResource.OsztalyCsoporthozMarTartozikTanevRend + string.Join(",", osztalyUtkozesek.Select(a => a.OsztalyCsoportNev));
throw new BlException(hibaUzenet);
}
}
}
public bool HasTanevRendjeEsemeny(DateTime datum, int? osztalyId)
{
var tanevrendek = GetVanTanevRendje(datum, null);
if (osztalyId.HasValue)
{
var masOsztalyokTanevrendjei = tanevrendek.Where(a => a.OsztalyCsoportId.HasValue && a.OsztalyCsoportId.Value != osztalyId).ToList();
tanevrendek = tanevrendek.Except(masOsztalyokTanevrendjei).ToList();
}
var tanevrendlist = tanevrendek.Where(x => x.IsRendkivuliTanitasiNap || (x.HetNapja != 0 && x.HetNapja != x.AlapHetnapja) || x.IsUresOrarend).ToList();
var result = tanevrendlist.Where(x => x.NapTipusaId != (int)NapTipusEnum.elso_tanitasi_nap && x.NapTipusaId != (int)NapTipusEnum.utolso_tanitasi_nap).Any();
return result;
}
private List<TanevrendOsztalyokkalCO> GetVanTanevRendje(DateTime datum, int? alapTanevrendId)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TanevRendjeDal();
var ds = dal.GetTanevRendjeByDatum(datum, TanevId, IntezmenyId);
var tanevRendek = new List<TanevrendOsztalyokkalCO>();
foreach (DataRow item in ds.Tables[0].Rows)
{
var tanevrendId = SDAConvert.ToInt32(item["TanevrendId"]);
if (alapTanevrendId == tanevrendId)
{
continue;
}
var rend = new TanevrendOsztalyokkalCO();
rend.TanevrendId = tanevrendId;
rend.IsGlobal = SDAConvert.ToBooleanFromTF(item["IsGlobal"]);
rend.OsztalyCsoportId = item["OsztalyCsoportId"] != DBNull.Value ? SDAConvert.ToInt32(item["OsztalyCsoportId"]) : (int?)null;
rend.OsztalyCsoportNev = item["OsztalyCsoportNev"] != DBNull.Value ? item["OsztalyCsoportNev"].ToString() : string.Empty;
rend.HetNapja = SDAConvert.ToInt32(item["HetNapja"]);
rend.NapTipusaId = SDAConvert.ToInt32(item["NapTipusa"]);
rend.AlapHetnapja = SDAConvert.ToInt32(item["EredetiHetNapja"]);
rend.IsRendkivuliTanitasiNap = SDAConvert.ToInt32(item["NapTipusa"]) == (int)NapTipusEnum.RendkivuliTanitasiNap;
rend.IsUresOrarend = SDAConvert.ToBooleanFromTF(item["IsUresOrarend"]);
tanevRendek.Add(rend);
}
return tanevRendek;
});
}
public void DeleteTanevRendjeByID(int tanevRendId, bool isKezzelRogzitesTorles)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TanevRendjeDal();
var entity = dal.Get(tanevRendId);
if (entity.NapTipusa == (int)Enums.NapTipusEnum.elso_tanitasi_nap || entity.NapTipusa == (int)Enums.NapTipusEnum.elso_felev_vege
|| entity.NapTipusa == (int)Enums.NapTipusEnum.utolso_tanitasi_nap)
{
//A tanév első tanítási napja, az első félévének vége és a tanév utolsó napja nem törölhető!
throw new CannotBeDeletedException(TanevResource.ATanevElsoTanitasiNapjaAzElsoFelevenekVegeEsATanevUtolsoNapjaNemTorolheto);
}
var tanevDal = h.TanevRendjeDal();
/*Ha van kapcsolódó osztály a tanévrendéhez akkor azokat a kapcsolatokat törölni kell*/
if (entity.OsztalyCsoport.Count > 0)
{
foreach (var item in entity.OsztalyCsoport)
{
tanevDal.DeleteEgyediNapOsztalycsoport(tanevRendId, item.ID, FelhasznaloId);
}
dal.RemoveKapcsolodoOsztalyCsoportok(entity);
}
tanevDal.DeleteEgyediNap(tanevRendId, isKezzelRogzitesTorles, FelhasznaloId);
tanevDal.Delete(entity);
var adatszotarDal = h.AdatszotarDAL();
adatszotarDal.GenerateNaptariNapok(IntezmenyId, TanevId);
dal.GenerateOrarend(entity.IntezmenyId, entity.TanevId, null, entity.Datum, entity.NapTipusa);
});
}
public void SaveOrUpdateTanevRendje(TanevrendCO co, Dictionary<int, bool> osztalyCsoportDic, List<int> selectedOsztalyCsoportIdList)
{
try
{
Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.TanevRendjeDal();
var entity = dal.Get();
bool isModification = (co.ID.IsEntityId());
bool egyediNapValtozott = false;
bool datumValtozott = false;
bool uresOrarendValtozott = false;
bool mindenkireVonatkozikValtozott = false;
if (isModification)
{
entity = dal.Get(co.ID.Value);
egyediNapValtozott = entity.EgyediNap != co.IsEgyediNap;
datumValtozott = entity.ElteroNapDatuma != co.ElteroOrarendSzerintiTanitasNapDatum;
uresOrarendValtozott = entity.IsUresOrarend != co.UresOrarend;
mindenkireVonatkozikValtozott = entity.OsszesCsoportraVonatkozik != co.OsszesCsop;
}
entity.Aktiv = true;
entity.Datum = co.Datum;
entity.OrarendiNap = co.OrarendiNap;
entity.Megjegyzes = co.Megjegyzes;
entity.OsszesCsoportraVonatkozik = co.OsszesCsop;
entity.TanevId = co.Tanev;
entity.HetNapja = co.Nap;
entity.EgyediNap = co.IsEgyediNap;
entity.IsUresOrarend = co.UresOrarend;
entity.ElteroNapDatuma = co.ElteroOrarendSzerintiTanitasNapDatum;
if (co.NapTip.HasValue && co.NapTip > 0)
{
entity.NapTipusa = co.NapTip.Value;
}
if (co.Hetirend.HasValue)
{
entity.HetiRend = co.Hetirend.Value;
}
if (co.CsengetesiRend.HasValue && co.CsengetesiRend.Value > 0)
{
entity.CsengetesiRendId = co.CsengetesiRend.Value;
}
else
{
entity.CsengetesiRendId = -1;
}
if (isModification)
{
dal.FullUpdate(entity, !co.OsszesCsop, osztalyCsoportDic, TanevId, FelhasznaloId, co.OsszesCsop);
if (egyediNapValtozott)
{
if (co.IsEgyediNap == false)
{
dal.DeleteEgyediNap(entity.ID, true, FelhasznaloId);
}
else if (!co.UresOrarend)
{
dal.InsertEgyediNap(entity.ID, co.IntezmenyId, co.Tanev);
}
}
else if (!egyediNapValtozott && co.IsEgyediNap && (datumValtozott || co.UresOrarend))
{
if (co.UresOrarend && !uresOrarendValtozott && !mindenkireVonatkozikValtozott)
{
if (!co.OsszesCsop)
{
foreach (var item in osztalyCsoportDic.Where(x => x.Value == true))
{
dal.DeleteEgyediNapOsztalycsoport(entity.ID, item.Key, FelhasznaloId);
}
foreach (var item in osztalyCsoportDic.Where(x => x.Value == false))
{
dal.InsertEgyediNapOsztalycsoport(entity.ID, item.Key, entity.IntezmenyId, entity.TanevId);
}
}
}
else
dal.DeleteEgyediNap(entity.ID, true, FelhasznaloId);
if (!co.UresOrarend)
dal.InsertEgyediNap(entity.ID, co.IntezmenyId, co.Tanev);
}
else if (!egyediNapValtozott && co.IsEgyediNap && co.OsszesCsop)
{
dal.DeleteEgyediNap(entity.ID, false, FelhasznaloId);
dal.InsertEgyediNap(entity.ID, co.IntezmenyId, co.Tanev);
}
else if (!egyediNapValtozott && co.IsEgyediNap && !co.OsszesCsop)
{
dal.DeleteEgyediNap(entity.ID, false, FelhasznaloId);
foreach (var item in selectedOsztalyCsoportIdList)
{
dal.InsertEgyediNapOsztalycsoport(entity.ID, item, entity.IntezmenyId, entity.TanevId);
}
}
}
else
{
var tanevrendjeId = dal.Insert(entity, !co.OsszesCsop, osztalyCsoportDic, TanevId, FelhasznaloId);
if (!co.UresOrarend && co.OsszesCsop)
{
if (co.IsEgyediNap)
{
dal.InsertEgyediNap(entity.ID, co.IntezmenyId, co.Tanev);
}
}
else
{
if (co.UresOrarend && !co.OsszesCsop)
{
foreach (var item in osztalyCsoportDic)
{
dal.DeleteEgyediNapOsztalycsoport(entity.ID, item.Key, FelhasznaloId);
}
}
}
}
var adatszotarDal = h.AdatszotarDAL();
adatszotarDal.GenerateNaptariNapok(IntezmenyId, TanevId);
if (entity.NapTipusa == (int)NapTipusEnum.elso_tanitasi_nap ||
entity.NapTipusa == (int)NapTipusEnum.utolso_tanitasi_nap)
{
NemTanitasiIdoszakbaTartozoTanitasiOrakTorlese(h, entity);
}
dal.GenerateOrarend(entity.IntezmenyId, entity.TanevId, null, entity.Datum, entity.NapTipusa);
});
}
catch (EntityDeleteFailedException e)
{
throw new BlException(IntezmenyResource.NemModositahatoATanevRendjeMertABeallitottDatumertekOlyanOratTorolneAzOraErvenyessegiIdejeMiattAmelynekKapcsolataVan, e);
}
catch (Exception e)
{
throw new BlException(StringResourcesUtil.GetString(4945) /*Nem sikerült a mentés!*/, e);
}
}
public bool IsRendkivuliTanitasiNap(DateTime datum)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TanevRendjeDal();
return dal.IsRendkivuliTanitasiNap(TanevId, datum);
});
}
private void NemTanitasiIdoszakbaTartozoTanitasiOrakTorlese(IDalHandler handler, ITanevRendje entity)
{
NapTipusEnum tanevRendTipus = (NapTipusEnum)entity.NapTipusa;
var dal = handler.OrarendiOra();
if (tanevRendTipus == NapTipusEnum.elso_tanitasi_nap)
{
dal.DeleteTanevKezdeteElttiOrak(entity.Datum, TanevId);
}
if (tanevRendTipus == NapTipusEnum.utolso_tanitasi_nap)
{
dal.DeleteTanevVegeUtaniOrak(entity.Datum.AddDays(1), TanevId);
}
}
private string SetColorByType(int typeId)
{
switch (typeId)
{
case (int)NapTipusEnum.tanitasi_nap:
return "#CCCCCC";
case (int)NapTipusEnum.teli_szunet:
case (int)NapTipusEnum.tavaszi_szunet:
case (int)NapTipusEnum.oszi_szunet:
case (int)NapTipusEnum.tanitasi_szunet:
return "#91F578";
case (int)NapTipusEnum.munkaszuneti_nap:
return "#90AD89";
case (int)NapTipusEnum.unnepnap:
return "#A65A5A";
case (int)NapTipusEnum.roviditett_orakat_tartalmazo_tanitasi_nap:
return "#99C4F2";
case (int)NapTipusEnum.tanitas_nelkuli_munkanap:
return "#007BFF";
default:
return "#FCD158";
}
}
public bool IsTanoraOrNapirendRogzitheto(int naptipusId)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TanevRendjeDal();
return dal.IsTanoraOrNapirendRogzitheto(naptipusId, IntezmenyId, TanevId);
});
}
public void InsertTanevRendjeNewBontottCsoport(int osztalyId, int bontottCsoportId)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TanevRendjeDal();
dal.InsertTanevRendjeNewBontottCsoport(osztalyId, bontottCsoportId);
dal.GenerateOrarend(IntezmenyId, TanevId, bontottCsoportId, null, null);
});
}
public void DeleteTanevRendjeNewBontottCsoport(int osztalyId, int bontottCsoportId, int modifierId)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TanevRendjeDal();
dal.DeleteTanevRendjeNewBontottCsoport(osztalyId, bontottCsoportId, modifierId);
dal.GenerateOrarend(IntezmenyId, TanevId, bontottCsoportId, null, null);
});
}
public bool EnabledNemKotottMunkaidoRogzitese(DateTime date)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TanevRendjeDal();
var ds = dal.EnabledNemKotottMunkaidoRogzitese(date, IntezmenyId, TanevId);
if (ds.Tables[0].Rows.Count == 0 || !SDAConvert.ToBooleanFromTF(ds.Tables[0].Rows[0]["C_OSSZESCSOPORTRAVONATKOZIK"]))
{
return true;
}
var enabledNemKotottMunkaidoRogzitese = SDAConvert.ToBooleanFromTF(ds.Tables[0].Rows[0]["C_ISLENEMKOTOTTMUNKAIDO"]);
return enabledNemKotottMunkaidoRogzitese;
});
}
public List<TanevrendOsztalyokkalNaptipusTulajdonsagokkalCO> GetTanevRendjeNaptipusTulajdonsagokkal(int? osztalyCsoportId = null)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TanevRendjeDal();
var ds = dal.GetTanevRendjeNaptipusTulajdonsagokkal(TanevId, osztalyCsoportId);
return ds.Tables[0].AsEnumerable().Select(row => new TanevrendOsztalyokkalNaptipusTulajdonsagokkalCO()
{
TanevrendId = SDAConvert.ToInt32(row["ID"]),
Datum = SDAConvert.ToDateTime(row["C_DATUM"]),
Hetirend = SDAConvert.ToInt32(row["C_HETIREND"]),
HetNapja = SDAConvert.ToInt32(row["C_HETNAPJA"]),
Naptipus = SDAConvert.ToInt32(row["C_NAPTIPUSA"]),
IsEgyediNap = SDAConvert.ToBooleanFromTF(row["C_EGYEDINAP"]),
ElteroNapDatuma = SDAConvert.ToDateTime(row["C_ELTERONAPDATUMA"]),
OsztalyCsoportId = SDAConvert.ToNullableInt32(row["C_OSZTALYCSOPORTID"]),
OsztalyCsoportNev = SDAConvert.ToString(row["C_NEV"]),
IsTanitasi = SDAConvert.ToBooleanFromTF(row["C_ISTANORAI"]),
IsTanoranKivuli = SDAConvert.ToBooleanFromTF(row["C_ISTANORANKIVULI"]),
OrarendiNap = SDAConvert.ToBooleanFromTF(row["C_ORARENDINAP"]),
Globalis = SDAConvert.ToBooleanFromTF(row["C_OSSZESCSOPORTRAVONATKOZIK"]),
}).ToList();
});
}
public List<TanevRendjeItemCo> GetTanevRendjeCoList()
{
DataSet dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.TanevRendjeDal().GetTanevRendjeData(TanevId));
var result = new List<TanevRendjeItemCo>();
foreach (DataRow dataRow in dataSet.Tables[0].Rows)
{
var co = new TanevRendjeItemCo(dataRow);
result.Add(co);
}
Dictionary<int, string> tanevRendjeOsztalyCsoportokDictionary = GetTanevRendjeOsztalyCsoportokDictionary(result.Select(x => x.Id).ToList());
foreach (TanevRendjeItemCo co in result)
{
var erintettOsztalyCsoportText = tanevRendjeOsztalyCsoportokDictionary.SingleOrDefault(x => x.Key == co.Id).Value ?? string.Empty;
if (!co.IsOsszesCsoportraVonatkozik)
{
if (co.VonatkozoOsztalyCsoportSzam > 1)
{
co.ErintettOsztalyCsoportText = IntezmenyResource.Tobb;
}
else if (co.VonatkozoOsztalyCsoportSzam == 1)
{
co.ErintettOsztalyCsoportText = erintettOsztalyCsoportText;
}
}
else
{
co.ErintettOsztalyCsoportText = IntezmenyResource.Osszes;
}
}
return result;
}
}
}