104 lines
4 KiB
C#
104 lines
4 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|