init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
185
Kreta.BusinessLogic/Logic/Mulasztas/MulasztasLogic.cs
Normal file
185
Kreta.BusinessLogic/Logic/Mulasztas/MulasztasLogic.cs
Normal file
|
@ -0,0 +1,185 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Helpers.SystemSettings;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Enums.ManualEnums.SystemSettings;
|
||||
using Kreta.Resources;
|
||||
|
||||
namespace Kreta.BusinessLogic.Logic.Mulasztas
|
||||
{
|
||||
public class MulasztasLogic
|
||||
{
|
||||
private readonly IConnectionType ConnectionType;
|
||||
|
||||
public MulasztasLogic(IConnectionType connectionType)
|
||||
{
|
||||
ConnectionType = connectionType;
|
||||
}
|
||||
|
||||
public DataSet GetMulasztasok(int osztalycsoportId, int tanoraId, DateTime oraKezdete, DateTime oraVege, int targyId, int tanarId, bool hianyzokAutoKitoltes, SzervezetTipusEnum? szervezetTipus = null)
|
||||
{
|
||||
var systemHelper = new SystemSettingsHelper(ConnectionType);
|
||||
var tantargyHelper = new TantargyHelper(ConnectionType);
|
||||
var tanevHelper = new TanevHelper(ConnectionType);
|
||||
var osztalyCsoportHelper = new OsztalyCsoportHelper(ConnectionType);
|
||||
|
||||
var magantanuloMulasztasKezeles = (SystemSettingMagantanuloMulasztas)systemHelper.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.Magantanulo_oralatogatas_aloli_mentessegenek_kezelese);
|
||||
var parhuzamosOraKezeles = systemHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.A_foglalkozasok_mulasztasi_adatai_megadasanal_a_parhuzamos_orakkal_valo_utkozes_vizsgalata);
|
||||
var csakMegtartott = systemHelper.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.Naplozaskor_mulasztas_szazalek_szamitas) == 1 ? 0 : 1;
|
||||
var alapertelmezettMulasztasTipus = (MulasztasTipusEnum)systemHelper.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.alapertelmezett_statusz_naplozasok_eseteben);
|
||||
|
||||
if (osztalyCsoportHelper.GetCsoportTipusByOsztalyCsoportId(osztalycsoportId) == CsoportTipusEnum.apaczai_mentorcsoport)
|
||||
{
|
||||
alapertelmezettMulasztasTipus = MulasztasTipusEnum.ures;
|
||||
}
|
||||
|
||||
var tanevCo = tanevHelper.GetTanevInfo();
|
||||
var isGyakorlatiTantargy = tantargyHelper.IsGyakorlatiTantargy(targyId);
|
||||
var parhuzamosOranNaplozottak = new MulasztasHelper(ConnectionType).ListParhuzamosOranNaplozottMulasztasTanuloId(oraKezdete, oraVege, tanoraId);
|
||||
|
||||
var elozoOranhianyzottTanulok = hianyzokAutoKitoltes ? new TanuloHelper(ConnectionType).GetElozoOranHianyzottTanulok(oraKezdete, osztalycsoportId) : null;
|
||||
var tantargybolElozoOranHianyzottTanulok = new OrarendiOraHelper(ConnectionType).GetElozoOranHianyzottTanulo(targyId, osztalycsoportId, oraKezdete);
|
||||
|
||||
var ds = osztalyCsoportHelper.GetMulasztasEsFelmentesOsztalyCsoportTanuloi(osztalycsoportId, tanoraId, targyId, tanarId, oraKezdete.Date, csakMegtartott, tanevCo, alapertelmezettMulasztasTipus);
|
||||
ds.Tables[0].Columns.Add("elozoOranHianyzott", typeof(bool));
|
||||
|
||||
foreach (DataRow row in ds.Tables[0].Rows)
|
||||
{
|
||||
SetAmiTooltipsAndInfos(row);
|
||||
CheckMagantanuloFelmentes(row, magantanuloMulasztasKezeles, isGyakorlatiTantargy, oraKezdete);
|
||||
SetParhuzamosOraFelmentett(row, parhuzamosOraKezeles, parhuzamosOranNaplozottak);
|
||||
if ((row["MulasztasId"] == DBNull.Value) && hianyzokAutoKitoltes)
|
||||
{ SetMulasztasHianyzasFromLastLesson(row, elozoOranhianyzottTanulok); }
|
||||
SetMulasztasIgazolas(row);
|
||||
SetMulasztasEloreRogzitettIgazolas(row, tanoraId);
|
||||
SetElozoOranHianyzottTanulo(row, tantargybolElozoOranHianyzottTanulok);
|
||||
SetMulasztasTipusUresOraMentesseg(row, oraKezdete, tanoraId);
|
||||
}
|
||||
|
||||
return ds;
|
||||
}
|
||||
|
||||
private void CheckMagantanuloFelmentes(DataRow row, SystemSettingMagantanuloMulasztas magantanuloMulasztasKezeles, bool isGyakorlatiTantargy, DateTime oraKezdete)
|
||||
{
|
||||
var magantanulosagKezdete = SDAConvert.ToDateTime(row["MagantanulosagKezdete"]);
|
||||
var magantanulosagVege = SDAConvert.ToDateTime(row["MagantanulosagVege"]);
|
||||
if (SDAConvert.ToBoolean(row["IsMagantanulo_BOOL"]) && (magantanulosagKezdete.HasValue == false || magantanulosagKezdete.Value.Date <= oraKezdete.Date) && (!magantanulosagVege.HasValue || magantanulosagVege >= oraKezdete.Date))
|
||||
{
|
||||
if (SDAConvert.ToBoolean(row["OraMentesseg_BOOL"]) || (magantanuloMulasztasKezeles != SystemSettingMagantanuloMulasztas.KotelezoMegjelenie && (magantanuloMulasztasKezeles != SystemSettingMagantanuloMulasztas.CsakGyakorlaton || !isGyakorlatiTantargy)))
|
||||
{
|
||||
row["OraMentesseg"] = "T";
|
||||
row["OraMentesseg_BOOL"] = true;
|
||||
row["Oka"] = row["Oka"] + " " + OrarendResource.Magantanulo;
|
||||
}
|
||||
else
|
||||
{
|
||||
row["OraMentesseg"] = "F";
|
||||
row["OraMentesseg_BOOL"] = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SetParhuzamosOraFelmentett(DataRow row, bool parhuzamosOraKezeles, List<int> parhuzamosOranNaplozottak)
|
||||
{
|
||||
if (!parhuzamosOraKezeles)
|
||||
return;
|
||||
|
||||
if (parhuzamosOranNaplozottak.Count > 0 && parhuzamosOranNaplozottak.Contains(SDAConvert.ToInt32(row["ID"])))
|
||||
{
|
||||
row["OraMentesseg"] = "T";
|
||||
row["OraMentesseg_BOOL"] = true;
|
||||
row["Oka"] = row["Oka"] + " " + OrarendResource.ParhuzamosOranMarNaploztak;
|
||||
}
|
||||
}
|
||||
|
||||
private void SetMulasztasHianyzasFromLastLesson(DataRow row, List<int> elozoOranhianyzottTanulok)
|
||||
{
|
||||
if (elozoOranhianyzottTanulok?.Count > 0)
|
||||
{
|
||||
if (elozoOranhianyzottTanulok.Contains(SDAConvert.ToInt32(row["ID"])))
|
||||
{
|
||||
row["MulasztasTipus"] = (int)MulasztasTipusEnum.hianyzas;
|
||||
row["MulasztasTipus_DNAME"] = MulasztasTipusEnum.hianyzas.GetDisplayName(ConnectionType.TanevId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SetMulasztasIgazolas(DataRow row)
|
||||
{
|
||||
var igazoltMulasztas = SDAConvert.ToBooleanFromTF(row["Igazolt"], NullValue: false);
|
||||
if (igazoltMulasztas)
|
||||
{
|
||||
row["Oka"] = row["Oka"] + " " + OrarendResource.ATanulonakVanRogzitveIgazolasa;
|
||||
}
|
||||
}
|
||||
|
||||
private void SetElozoOranHianyzottTanulo(DataRow row, List<int> tantargybolElozoOranHianyzottTanulok)
|
||||
{
|
||||
if (tantargybolElozoOranHianyzottTanulok.Any())
|
||||
{
|
||||
if (tantargybolElozoOranHianyzottTanulok.Contains(row.Field<int>("ID")))
|
||||
{
|
||||
row["elozoOranHianyzott"] = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
row["elozoOranHianyzott"] = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SetMulasztasEloreRogzitettIgazolas(DataRow row, int tanoraId)
|
||||
{
|
||||
if (tanoraId < 0)
|
||||
{
|
||||
if (row["RogzitettIgazolas"].ToString() == "T" && string.IsNullOrWhiteSpace(SDAConvert.ToString(row["MulasztasId"])))
|
||||
{
|
||||
row["MulasztasTipus"] = (int)MulasztasTipusEnum.hianyzas;
|
||||
row["MulasztasTipus_DNAME"] = MulasztasTipusEnum.hianyzas.GetDisplayName(ConnectionType.TanevId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SetMulasztasTipusUresOraMentesseg(DataRow row, DateTime oraKezdete, int tanoraId)
|
||||
{
|
||||
// csak nem naplózott óráknál kell
|
||||
if (tanoraId < 0)
|
||||
{
|
||||
var magantanulosagKezdete = SDAConvert.ToDateTime(row["MagantanulosagKezdete"]);
|
||||
var magantanulosagVege = SDAConvert.ToDateTime(row["MagantanulosagVege"]);
|
||||
if (SDAConvert.ToBoolean(row["OraMentesseg_BOOL"]) ||
|
||||
(SDAConvert.ToBoolean(row["IsMagantanulo_BOOL"]) && (magantanulosagKezdete.HasValue == false || magantanulosagKezdete.Value.Date <= oraKezdete.Date) && (!magantanulosagVege.HasValue || magantanulosagVege >= oraKezdete.Date)))
|
||||
{
|
||||
row["MulasztasTipus"] = (int)MulasztasTipusEnum.ures;
|
||||
row["MulasztasTipus_DNAME"] = MulasztasTipusEnum.ures.GetDisplayName(ConnectionType.TanevId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SetAmiTooltipsAndInfos(DataRow row)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(row.Field<string>("EvfolyamId_DNAME")))
|
||||
{
|
||||
row["TanuloNev"] = row.Field<string>("TanuloNev").Substring(0, row.Field<string>("TanuloNev").Length - 1) +
|
||||
" - " +
|
||||
row.Field<string>("EvfolyamId_DNAME") + ", " +
|
||||
row.Field<string>("AmiTagozatId_DNAME") + ")";
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(row.Field<string>("AmiFotargyId_DNAME")))
|
||||
{ row["AmiFotargyId_DNAME"] = "-"; }
|
||||
if (string.IsNullOrWhiteSpace(row.Field<string>("AmiTagozatId_DNAME")))
|
||||
{ row["AmiTagozatId_DNAME"] = "-"; }
|
||||
if (string.IsNullOrWhiteSpace(row.Field<string>("AmiTantargyKotelezosegId_DNAME")))
|
||||
{ row["AmiTantargyKotelezosegId_DNAME"] = "-"; }
|
||||
if (string.IsNullOrWhiteSpace(row.Field<string>("EvfolyamId_DNAME")))
|
||||
{ row["EvfolyamId_DNAME"] = "-"; }
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue