117 lines
6.4 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|