kreta/Kreta.BusinessLogic/Logic/Feljegyzes/FeljegyzesLogic.cs
2024-03-13 00:33:46 +01:00

117 lines
6.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Helpers;
using Kreta.Core;
using Kreta.Core.ConnectionType;
using Kreta.DataAccessManual;
using Kreta.DataAccessManual.Interfaces;
using Kreta.DataAccessManual.Util;
using Kreta.Enums;
using Kreta.KretaServer.SystemSettings;
namespace Kreta.BusinessLogic.Logic.Feljegyzes
{
public class FeljegyzesLogic
{
private readonly IConnectionType ConnectionType;
public FeljegyzesLogic(IConnectionType connectionType)
{
ConnectionType = connectionType;
}
/// INFO @DevKornel: Mobil használja
public void RemoveHiddenRowsFromFeljegyzesDataSet(DataTable dataTable, string columnHeader, int tanuloId)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
bool isVegzosOsztalyTanuloja = GetIsVegzosOsztalyTanuloja(tanuloId, h);
for (int i = dataTable.Rows.Count - 1; i >= 0; --i)
{
int tipusId = SDAConvert.ToInt32(dataTable.Rows[i][columnHeader]);
if (tipusId == (int)EsemenyTipusEnum.INegyedevesBizonyitvanybanMegjelenoTantestuletiFeljegyzesHatarozatDicseretFelmentesStb && IsINegyedevesJegyHidden() ||
tipusId == (int)EsemenyTipusEnum.IINegyedevesBizonyitvanybanMegjelenoTantestuletiFeljegyzesHatarozatDicseretFelmentesStb && IsIiNegyedevesJegyHidden() ||
tipusId == (int)EsemenyTipusEnum.FeleviBizonyitvanybanMegjelenoTantestuletiFeljegyzesHatarozatDicseretFelmentesStb && IsFeleviJegyHidden() ||
tipusId == (int)EsemenyTipusEnum.IIINegyedevesBizonyitvanybanMegjelenoTantestuletiFeljegyzesHatarozatDicseretFelmentesStb && IsIiiNegyedevesJegyHidden() ||
tipusId == (int)EsemenyTipusEnum.IVNegyedevesBizonyitvanybanMegjelenoTantestuletiFeljegyzesHatarozatDicseretFelmentesStb && IsIvNegyedevesJegyHidden(isVegzosOsztalyTanuloja) ||
tipusId == (int)EsemenyTipusEnum.EvVegiBizonyitvanybanMegjelenoTantestuletiFeljegyzesHatarozatDicseretFelmentesStb && IsEvvegiJegyHidden(isVegzosOsztalyTanuloja) ||
tipusId == (int)EsemenyTipusEnum.TorzslaponMegjelenoEgyebFeljegyzesVagyHatarozat)
{
dataTable.Rows.RemoveAt(i);
}
}
});
}
// INFO @DevKornél: Mobil használja
private bool GetIsVegzosOsztalyTanuloja(int tanuloId, IDalHandler h)
{
var isVegzosOsztalyTanuloja = false;
int? osztalyId = new TanuloHelper(new DalHandlerConnectionType(ConnectionType, h)).GetTanuloAlapkepzesesOsztalyId(tanuloId);
if (osztalyId.IsEntityId())
{
isVegzosOsztalyTanuloja = new OsztalyCsoportHelper(new DalHandlerConnectionType(ConnectionType, h)).GetIsVegzosOsztalyCsoport(osztalyId.Value);
}
return isVegzosOsztalyTanuloja;
}
private bool IsEvvegiJegyHidden(bool isVegzosOsztalyTanuloja)
{
//NOTE: Ha végzős, akkor a végzős évvégi jegy megjelenítés dátumát vesszük figyelembe, különben az évvégi jegy megjelenítés dátumát!
DateTime? megjelenitesDate = isVegzosOsztalyTanuloja ? SystemSettingsManager.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.Ev_vegi_jegyek_megjelenesenek_datuma_vegzos, ConnectionType.IntezmenyAzonosito, ConnectionType.TanevId) : SystemSettingsManager.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.Ev_vegi_jegyek_megjelenesenek_datuma, ConnectionType.IntezmenyAzonosito, ConnectionType.TanevId);
return megjelenitesDate > DateTime.UtcNow;
}
private bool IsINegyedevesJegyHidden()
{
DateTime? megjelenitesDate = SystemSettingsManager.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.I_Negyedeves_jegyek_megjelenesenek_datuma, ConnectionType.IntezmenyAzonosito, ConnectionType.TanevId);
return megjelenitesDate > DateTime.UtcNow;
}
private bool IsIiNegyedevesJegyHidden()
{
DateTime? megjelenitesDate = SystemSettingsManager.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.II_Negyedeves_jegyek_megjelenesenek_datuma, ConnectionType.IntezmenyAzonosito, ConnectionType.TanevId);
return megjelenitesDate > DateTime.UtcNow;
}
private bool IsFeleviJegyHidden()
{
DateTime? megjelenitesDate = SystemSettingsManager.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.Felevi_jegyek_megjelenesenek_datuma, ConnectionType.IntezmenyAzonosito, ConnectionType.TanevId);
return megjelenitesDate > DateTime.UtcNow;
}
private bool IsIiiNegyedevesJegyHidden()
{
DateTime? megjelenitesDate = SystemSettingsManager.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.III_Negyedeves_jegyek_megjelenesenek_datuma, ConnectionType.IntezmenyAzonosito, ConnectionType.TanevId);
return megjelenitesDate > DateTime.UtcNow;
}
private bool IsIvNegyedevesJegyHidden(bool isVegzosOsztalyTanuloja)
{
DateTime? megjelenitesDate;
DateTime? ivNegyedevesJegyMegjelenitesDate = SystemSettingsManager.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.IV_Negyedeves_jegyek_megjelenesenek_datuma, ConnectionType.IntezmenyAzonosito, ConnectionType.TanevId);
if (isVegzosOsztalyTanuloja)
{
//NOTE: Ha végzős, akkor a végzős évvégi jegy megjelenítés és a IV. negyedéves jegy megjelenítés dátum közül a korábbit vesszük figyelembe!
List<DateTime?> megjelenitesDateList = new List<DateTime?>
{
ivNegyedevesJegyMegjelenitesDate,
SystemSettingsManager.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.Ev_vegi_jegyek_megjelenesenek_datuma_vegzos, ConnectionType.IntezmenyAzonosito, ConnectionType.TanevId)
};
megjelenitesDate = megjelenitesDateList.OfType<DateTime>().Min();
}
else
{
//NOTE: Ha nem végzős, akkor a IV. negyedéves jegy megjelenítés dátumát vesszük figyelembe!
megjelenitesDate = ivNegyedevesJegyMegjelenitesDate;
}
return megjelenitesDate > DateTime.UtcNow;
}
}
}