kreta/Kreta.BusinessLogic/Helpers/SZIRAdatszolgHelper.cs
2024-03-13 00:33:46 +01:00

560 lines
21 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses.SZIRAdatszolgaltatasCOs;
using Kreta.Client.SzirApi;
using Kreta.Client.SzirApi.Request;
using Kreta.Core;
using Kreta.Core.ConnectionType;
using Kreta.DataAccessManual;
using Kreta.Enums.ManualEnums;
namespace Kreta.BusinessLogic.Helpers
{
public class SZIRAdatszolgHelper : LogicBase
{
public SZIRAdatszolgHelper(IConnectionType connectionType) : base(connectionType) { }
public DataSet GetIntezmenyiData()
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var ds = dal.GetIntezmenyiData(IntezmenyId, TanevId);
return ds;
});
}
public DataSet GetAMIData()
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var ds = dal.GetAMIData(IntezmenyId, TanevId);
return ds;
});
}
public DataSet GetKollegiumData()
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var ds = dal.GetKollegiumData(IntezmenyId, TanevId);
return ds;
});
}
public DataSet GetOktatoData()
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var ds = dal.GetOktatoData(IntezmenyId, TanevId);
return ds;
});
}
public DataSet GetNemOktatoData()
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var ds = dal.GetNemOktatoData(IntezmenyId, TanevId);
return ds;
});
}
public DataSet GetInfraData()
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var ds = dal.GetInfraData(IntezmenyId, TanevId);
return ds;
});
}
public DataSet GetNemAllamiData()
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var ds = dal.GetNemAllamiData(TanevId);
return ds;
});
}
public DataSet GetSZIRAdatszolgGrid()
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var ds = dal.GetSZIRAdatszolgGrid(TanevId);
return ds;
});
}
public DataSet GetNemAllamiGrid()
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var ds = dal.GetNemAllamiGrid(TanevId);
return ds;
});
}
public bool IsAdatokRendbenABekuldeshez()
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var ds = dal.GetIsAdatokRendbenABekuldeshez(IntezmenyId, TanevId);
// Ha a lekérdezett adatok közül bármelyik tábla is üres az már hiba
foreach (DataTable item in ds.Tables)
{
if (item.Rows.Count == 0)
{
return false;
}
}
return true;
});
}
public void SetSZIRAdatszolgGrid(int? szirId, int feladatellatasiHelyId, int okostelefon, int tablet, int notebook, int asztaliGep)
{
Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var entity = szirId.HasValue ? dal.Get(szirId.Value) : dal.Get();
entity.FeladatEllatasiHelyId = feladatellatasiHelyId;
entity.OkostelefonokSzama = okostelefon;
entity.TabletekSzama = tablet;
entity.NotebookokSzama = notebook;
entity.AsztaliGepekSzama = asztaliGep;
if (szirId.HasValue)
{
dal.Update(entity);
}
else
{
dal.Insert(entity);
}
});
}
public DataSet GetOsztalyData()
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var ds = dal.GetOsztalyData(IntezmenyId, TanevId);
return ds;
});
}
public DataSet GetTanuloEvElejeData()
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var ds = dal.GetTanuloEvElejeData(IntezmenyId, TanevId);
return ds;
});
}
public DataSet GetTanuloEvVegeData(int elozoTanevId)
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var ds = dal.GetTanuloEvVegeData(IntezmenyId, elozoTanevId);
return ds;
});
}
public List<KonyvtarAdatszolgaltatasItemCo> GetKonyvtarItemCoList()
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var ds = dal.GetKonyvtarData(IntezmenyId, TanevId);
var result = new List<KonyvtarAdatszolgaltatasItemCo>();
result.AddRange(ds.Tables[0].AsEnumerable().Select(x => new KonyvtarAdatszolgaltatasItemCo(x)));
return result;
});
}
public void SaveKonyvtarAdatszolgaltatasRow(int? szirId, int? nyitoadat, int? nyitoadatNemzetisegi, int? gyarapodas, int? forgalom, int kategoriaId)
{
Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var entity = szirId.HasValue ? dal.GetKonyvtar(szirId.Value) : dal.GetKonyvtar();
entity.Nyitoadat = nyitoadat;
entity.NyitoadatNemzetisegi = nyitoadatNemzetisegi;
entity.Gyarapodas = gyarapodas;
entity.Forgalom = forgalom;
if (szirId.HasValue)
{
dal.Update(entity);
}
else
{
entity.SzirStatKonyvtarKategoriaId = kategoriaId;
dal.Insert(entity);
}
});
}
public bool IsPanelsEditable()
{
var now = DateTime.Today;
var idonBelul = now >= Constants.SZIRAdatszolgaltatasDatum && now <= Constants.SZIRAdatszolgaltatasVegeDatum;
var isBekuldott = GetBekuldesDatuma().HasValue;
return idonBelul && !isBekuldott;
}
public DateTime? GetBekuldesDatuma()
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
return h.IntezmenyAdatszolgaltatasDal().GetSZIRStatVeglegesitesDatuma(TanevId);
});
}
public bool SetSZIRBekuldes()
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var intezmeny = h.IntezmenyDal().Get(IntezmenyId);
var intezmenyAdatszolgaltatas = intezmeny.IntezmenyAdatszolgaltatas.Where(x => !x.Torolt && x.TanevId == TanevId).FirstOrDefault();
if (intezmenyAdatszolgaltatas != default)
{
intezmenyAdatszolgaltatas.VeglegesSzirStatDatuma = DateTime.Now;
intezmenyAdatszolgaltatas.SzirStatVeglegesitoId = FelhasznaloId;
h.IntezmenyAdatszolgaltatasDal().FullUpdate(intezmenyAdatszolgaltatas);
return true;
}
return false;
});
}
public List<TanuloEvVegeItemCo> GetTanuloEvVegeCoList(int elozoTanevId, TanuloEvVegeSearchCo co)
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var ds = dal.GetTanuloEvVegeList(elozoTanevId, co.ConvertToPco());
return ds.Tables[0].AsEnumerable().Select(x => new TanuloEvVegeItemCo(x)).ToList();
});
}
public void SaveTanuloEvVege(int elozoTanevId, TanuloEvVegeSaveCo co)
{
Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var id = dal.GetSzirStatTanuloId(elozoTanevId, co.TanuloId, co.FelhelyId);
var entity = id.HasValue ? dal.GetTanulo(id.Value) : dal.GetTanulo();
entity.TanuloId = co.TanuloId;
entity.FeladatEllatasiHelyId = co.FelhelyId;
entity.TanevId = elozoTanevId;
entity.IsSikeresTanulmanyok = co.IsSikeresTanulmanyok;
entity.IsSikeresErettsegi = false;
entity.IsSikeresSzakmaiVizsga = false;
entity.IsSikeresSzakmaiViszgaSzak1 = co.IsSikeresSzakmaiVizsgaSzak1;
entity.IsSikeresSzakmaiViszgaSzak2 = co.IsSikeresSzakmaiVizsgaSzak2;
entity.IsSikeresSzakmaiViszgaSzak3 = co.IsSikeresSzakmaiVizsgaSzak3;
entity.IsSikeresAgazatiAlapvizsga = co.IsSikeresAgazatiAlapVizsga;
if (id.HasValue)
{
dal.Update(entity);
}
else
{
dal.Insert(entity);
}
});
}
public void SaveNemAllami(NemAllamiCo co)
{
Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var szirStatNemAllamiOktKoltsId = dal.GetSzirStatNemAllamiOktKoltsIdFromFeladatEllatasihelyId(co.Id);
var entity = szirStatNemAllamiOktKoltsId.HasValue ? dal.GetSzirStatNemAllamiOktKolts(szirStatNemAllamiOktKoltsId.Value) : dal.GetSzirStatNemAllamiOktKolts();
entity.AAOszlop = co.AAOszlop;
entity.ABOszlop = co.ABOszlop;
entity.ACOszlop = co.ACOszlop;
entity.ADOszlop = co.ADOszlop;
entity.AEOszlop = co.AEOszlop;
entity.AFOszlop = co.AFOszlop;
entity.AGOszlop = co.AGOszlop;
entity.AHOszlop = co.AHOszlop;
entity.GOszlop = co.GOszlop;
entity.HOszlop = co.HOszlop;
entity.IOszlop = co.IOszlop;
entity.JOszlop = co.JOszlop;
entity.KOszlop = co.KOszlop;
entity.LOszlop = co.LOszlop;
entity.MOszlop = co.MOszlop;
entity.NOszlop = co.NOszlop;
entity.OOszlop = co.OOszlop;
entity.POszlop = co.POszlop;
entity.QOszlop = co.QOszlop;
entity.ROszlop = co.ROszlop;
entity.SOszlop = co.SOszlop;
entity.TOszlop = co.TOszlop;
entity.UOszlop = co.UOszlop;
entity.VOszlop = co.VOszlop;
entity.WOszlop = co.WOszlop;
entity.FeladatEllatasiHelyId = co.Id;
if (szirStatNemAllamiOktKoltsId.HasValue)
{
dal.Update(entity);
}
else
{
dal.Insert(entity);
}
});
}
public NemAllamiCo GetNemAllamiCo(int feladatEllatasiHelyId)
{
var result = new NemAllamiCo();
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var szirStatNemAllamiOktKoltsId = dal.GetSzirStatNemAllamiOktKoltsIdFromFeladatEllatasihelyId(feladatEllatasiHelyId);
if (!szirStatNemAllamiOktKoltsId.HasValue)
{
return new NemAllamiCo() { Id = feladatEllatasiHelyId };
}
var entity = dal.GetSzirStatNemAllamiOktKolts(szirStatNemAllamiOktKoltsId.Value);
result.AAOszlop = entity.AAOszlop;
result.ABOszlop = entity.ABOszlop;
result.ACOszlop = entity.ACOszlop;
result.ADOszlop = entity.ADOszlop;
result.AEOszlop = entity.AEOszlop;
result.AFOszlop = entity.AFOszlop;
result.AGOszlop = entity.AGOszlop;
result.AHOszlop = entity.AHOszlop;
result.GOszlop = entity.GOszlop;
result.HOszlop = entity.HOszlop;
result.IOszlop = entity.IOszlop;
result.JOszlop = entity.JOszlop;
result.KOszlop = entity.KOszlop;
result.LOszlop = entity.LOszlop;
result.MOszlop = entity.MOszlop;
result.NOszlop = entity.NOszlop;
result.OOszlop = entity.OOszlop;
result.POszlop = entity.POszlop;
result.QOszlop = entity.QOszlop;
result.ROszlop = entity.ROszlop;
result.SOszlop = entity.SOszlop;
result.TOszlop = entity.TOszlop;
result.UOszlop = entity.UOszlop;
result.VOszlop = entity.VOszlop;
result.WOszlop = entity.WOszlop;
result.Id = entity.FeladatEllatasiHelyId;
return result;
});
}
public int Get(int feladatEllatasiHelyId)
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var entity = dal.GetSzirStatNemAllamiOktKoltsIdFromFeladatEllatasihelyId(feladatEllatasiHelyId);
return -1;
});
}
public bool SendNemAllamiVeglegesites(ISzirApiClient client, string intezmenyAzonosito, int tanevSorszam)
{
var data = Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.SZIRAdatszolgDAL();
var ds = dal.GetNemAllamiData(TanevId);
return ds;
});
var felhelyData = new List<FeladatEllatasiHelyRequest>();
foreach(DataRow row in data.Tables[0].Rows)
{
var felhelyDetails = new FeladatEllatasiHelyRequest()
{
FeladatellatasiHelyId = SDAConvert.ToInt32(row["Id"]),
AllamiTamogatasOsszesen = (float)SDAConvert.ToDouble(row["AAOszlop"]),
AllamiTamogatasEtkezesiDij = (float)SDAConvert.ToDouble(row["ABOszlop"]),
BefizetettOsszesen = (float)SDAConvert.ToDouble(row["ACOszlop"]),
BefizetettTeritesiDij = (float)SDAConvert.ToDouble(row["ADOszlop"]),
BefizetettTeritesiErtkezesiDij = (float)SDAConvert.ToDouble(row["AEOszlop"]),
BefizetettTandij = (float)SDAConvert.ToDouble(row["AFOszlop"]),
BefizetettEgyeb = (float)SDAConvert.ToDouble(row["AGOszlop"]),
FenntartoiHozzajarulas = (float)SDAConvert.ToDouble(row["AHOszlop"]),
SajatBevetelek = (float)SDAConvert.ToDouble(row["GOszlop"]),
SzemelyiJelleguBerkoltseg = (float)SDAConvert.ToDouble(row["HOszlop"]),
SzemelyiJelleguBerkoltsegPedOktato = (float)SDAConvert.ToDouble(row["IOszlop"]),
SzemelyiJelleguBerkoltsegNoks = (float)SDAConvert.ToDouble(row["JOszlop"]),
SzemelyiJelleguBerkoltsegEgyeb = (float)SDAConvert.ToDouble(row["KOszlop"]),
SzemelyiJelleguJarulek = (float)SDAConvert.ToDouble(row["LOszlop"]),
SzemelyiJelleguJarulekPedOktato = (float)SDAConvert.ToDouble(row["MOszlop"]),
SzemelyiJelleguJarulekNoks = (float)SDAConvert.ToDouble(row["NOszlop"]),
SzemelyiJelleguJarulekEgyeb = (float)SDAConvert.ToDouble(row["OOszlop"]),
SzemelyiJelleguSzemelyiEgyebKifizetes = (float)SDAConvert.ToDouble(row["POszlop"]),
SzemelyiJelleguSzemelyiEgyebKifizetesPedOktato = (float)SDAConvert.ToDouble(row["QOszlop"]),
SzemelyiJelleguEgyebKifizetes = (float)SDAConvert.ToDouble(row["ROszlop"]),
OraadoKifizetesek = (float)SDAConvert.ToDouble(row["SOszlop"]),
DologiKifizetesek = (float)SDAConvert.ToDouble(row["TOszlop"]),
FejlesztesiKifizetesek = (float)SDAConvert.ToDouble(row["UOszlop"]),
FelujitasiKiadasok = (float)SDAConvert.ToDouble(row["VOszlop"]),
BeruhazasiKiadasok = (float)SDAConvert.ToDouble(row["WOszlop"])
};
felhelyData.Add(felhelyDetails);
}
var model = new AdatszolgRequest()
{
IntezmenyAzonosito = intezmenyAzonosito,
TanevId = tanevSorszam,
StatuszAllapot = (int)NemAllamiStatuszEnum.AdatszolgaltatasVeglegesitve,
FeladatEllatasiHelyek = felhelyData
};
var _ = client.SendAdatszolg(model);
return true;
}
public bool SendNemAllamiBekuldes(ISzirApiClient client, string intezmenyAzonosito, int tanevSorszam, NemAllamiCo co)
{
var felhelyData = new List<FeladatEllatasiHelyRequest>();
var felhelyDetails = new FeladatEllatasiHelyRequest()
{
FeladatellatasiHelyId = co.Id,
AllamiTamogatasOsszesen = (float)co.AAOszlop,
AllamiTamogatasEtkezesiDij = (float)co.ABOszlop,
BefizetettOsszesen = (float)co.ACOszlop,
BefizetettTeritesiDij = (float)co.ADOszlop,
BefizetettTeritesiErtkezesiDij = (float)co.AEOszlop,
BefizetettTandij = (float)co.AFOszlop,
BefizetettEgyeb = (float)co.AGOszlop,
FenntartoiHozzajarulas = (float)co.AHOszlop,
SajatBevetelek = (float)co.GOszlop,
SzemelyiJelleguBerkoltseg = (float)co.HOszlop,
SzemelyiJelleguBerkoltsegPedOktato = (float)co.IOszlop,
SzemelyiJelleguBerkoltsegNoks = (float)co.JOszlop,
SzemelyiJelleguBerkoltsegEgyeb = (float)co.KOszlop,
SzemelyiJelleguJarulek = (float)co.LOszlop,
SzemelyiJelleguJarulekPedOktato = (float)co.MOszlop,
SzemelyiJelleguJarulekNoks = (float)co.NOszlop,
SzemelyiJelleguJarulekEgyeb = (float)co.OOszlop,
SzemelyiJelleguSzemelyiEgyebKifizetes = (float)co.POszlop,
SzemelyiJelleguSzemelyiEgyebKifizetesPedOktato = (float)co.QOszlop,
SzemelyiJelleguEgyebKifizetes = (float)co.ROszlop,
OraadoKifizetesek = (float)co.SOszlop,
DologiKifizetesek = (float)co.TOszlop,
FejlesztesiKifizetesek = (float)co.UOszlop,
FelujitasiKiadasok = (float)co.VOszlop,
BeruhazasiKiadasok = (float)co.WOszlop
};
felhelyData.Add(felhelyDetails);
var model = new AdatszolgRequest()
{
IntezmenyAzonosito = intezmenyAzonosito,
TanevId = tanevSorszam,
StatuszAllapot = (int)NemAllamiStatuszEnum.AdatszolgaltatasBekuldve,
FeladatEllatasiHelyek = felhelyData
};
var _ = client.SendAdatszolg(model);
return true;
}
public bool IsNemAllamiJogosult(ISzirApiClient client, int tanevSorszam, string intezmenyAzonosito)
{
var statuszRequest = new StatuszRequest() { TanevId = tanevSorszam, IntezmenyAzonosito = intezmenyAzonosito };
var statuszAdat = client.GetStatusz(statuszRequest).Adat;
var isJogosult = true;
foreach (var statusz in statuszAdat)
{
isJogosult = !statusz.Zarolt;
}
return isJogosult;
}
public bool IsSzirStatAdatszolgBekuldeseDisabled(ISzirApiClient client, int tanevSorszam, string intezmenyAzonosito)
{
var statuszRequest = new StatuszRequest() { TanevId = tanevSorszam, IntezmenyAzonosito = intezmenyAzonosito };
var statuszAdat = client.GetStatusz(statuszRequest).Adat;
var result = true;
foreach (var statusz in statuszAdat)
{
result = statusz.Zarolt;
}
return result;
}
public bool IsVezetoAlkalmazott(int felhasznaloId)
{
var ds = new AlkalmazottHelper(ConnectionType).GetAlkalmazottNeveEsEmailCime(null,
Constants.SzirStatVezetoiOraszamokTipusIdList, felhasznaloId);
return ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0;
}
}
}