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,104 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.Core.ConnectionType;
using Kreta.DataAccessManual;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
namespace Kreta.BusinessLogic.Classes
{
public class NaplozarasLogic
{
private readonly IConnectionType _connectionType;
public NaplozarasLogic(IConnectionType connectionType)
{
_connectionType = connectionType;
}
public bool ModosithatoNaplozarasMiatt(DateTime datum, int? osztalyId)
{
try
{
var ret = osztalyId.HasValue && GetLezartOsztalyokEsBontottCsoportjaik().Contains(osztalyId.Value);
if (!ret)
{
var naplozarasDatum = new OrarendHelper(_connectionType).GetNaplozarasDate(startDate: null);
return naplozarasDatum <= datum;
}
return false;
}
catch
{
return true;
}
}
public bool IsCsakErtekelesZarasaBeallitas()
{
return new SystemSettingsHelper(_connectionType)
.GetSystemSettingValue<NaplozarasErvenyessegiKoreEnum>(RendszerBeallitasTipusEnum.elektronikus_naplo_zarasanak_datuma_beallitas_ervenyesegi_kore) == NaplozarasErvenyessegiKoreEnum.CsakErtekelesZarasa;
}
public bool IsCsakNaplozasZarasaBeallitas()
{
return new SystemSettingsHelper(_connectionType)
.GetSystemSettingValue<NaplozarasErvenyessegiKoreEnum>(RendszerBeallitasTipusEnum.elektronikus_naplo_zarasanak_datuma_beallitas_ervenyesegi_kore) == NaplozarasErvenyessegiKoreEnum.CsakNaplozasZarasa;
}
public bool IsCsakErtekelesZarasaVagyErtekelesEsNaploZarasaBeallitas()
{
var naplozarasErvenyessegiKore = new SystemSettingsHelper(_connectionType).GetSystemSettingValue<NaplozarasErvenyessegiKoreEnum>(RendszerBeallitasTipusEnum.elektronikus_naplo_zarasanak_datuma_beallitas_ervenyesegi_kore);
return naplozarasErvenyessegiKore == NaplozarasErvenyessegiKoreEnum.CsakErtekelesZarasa || naplozarasErvenyessegiKore == NaplozarasErvenyessegiKoreEnum.ErtekelesEsNaploZarasa;
}
public bool IsNaplozhatZarastolFuggetlenul(DateTime date, int? osztalyId)
{
return (ModosithatoNaplozarasMiatt(date, osztalyId: null) || IsCsakErtekelesZarasaBeallitas())
&& (!osztalyId.HasValue || !GetLezartOsztalyokEsBontottCsoportjaik().Contains(osztalyId.Value));
}
public bool IsErtekelhetZarastolFuggetlenul(DateTime date, int? osztalyId)
{
return (ModosithatoNaplozarasMiatt(date, osztalyId: null) || IsCsakNaplozasZarasaBeallitas())
&& (!osztalyId.HasValue || !GetLezartOsztalyokEsBontottCsoportjaik().Contains(osztalyId.Value));
}
public List<int> GetLezartOsztalyokEsBontottCsoportjaik()
{
var lezartOsztalyokIdList = new SystemSettingsHelper(_connectionType).GetSystemSettingValue<List<string>>(RendszerBeallitasTipusEnum.lezart_osztalynaplok).Select(int.Parse).ToList();
return GetOsztalyokEsBontottCsoportjaik(lezartOsztalyokIdList);
}
private List<int> GetOsztalyokEsBontottCsoportjaik(List<int> osztalyIdList)
{
var list = new List<int>();
Dal.CustomConnection.Run(_connectionType, h =>
{
foreach (var osztalyId in osztalyIdList)
{
var ds = h.Osztaly().GetOsztalyEsBontottCsoportjai(osztalyId);
foreach (var row in ds.Tables[0].AsEnumerable())
{
var id = SDAConvert.ToInt32(row["Id"]);
if (!list.Contains(id))
{
list.Add(id);
}
}
}
});
return list;
}
}
}