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

192 lines
8 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Logic.Feljegyzes;
using Kreta.Core;
using Kreta.Core.ConnectionType;
using Kreta.DataAccessManual;
using Kreta.DataAccessManual.Util;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
namespace Kreta.BusinessLogic.Helpers
{
public class FeljegyzesekHelper : LogicBase
{
public FeljegyzesekHelper(IConnectionType connectionType) : base(connectionType) { }
public DataSet FeljegyzesekKeresese(FeljegyzesekKereseseCO feljegyzesekKereseseCo)
{
var result = Dal.CustomConnection.Run(ConnectionType, h =>
{
List<int> szervezetIdList = null;
if (feljegyzesekKereseseCo.SzervezetId.IsEntityId())
{
szervezetIdList = h.SzervezetDal(GridParameters).GetLathatoSzervezetek(IntezmenyId, TanevId, feljegyzesekKereseseCo.SzervezetId.Value, (int)SzervezetAdatokHalmazaEnum.SzervezetEsAlSzervezetek);
}
var pco = feljegyzesekKereseseCo.ToPco(TanevId, szervezetIdList);
// NOTE: több felület is használja ugyanazt a lekérdezést, viszont az elektronikus üzenetek listája felületen le lett szedve a Fel.Kat. és a Fel.hely
// szűrő, ezért a default FeladatKategoriaId-t ebben az esetben ki kell ütni
if (feljegyzesekKereseseCo.TipusId == (int)EsemenyTipusEnum.ElektronikusUzenet)
{
pco.FeladatKategoriaId = null;
}
var dataSet = h.Feljegyzes(GridParameters).FeljegyzesekKereses(pco, IntezmenyId);
return dataSet;
});
return result;
}
public List<FeljegyzesekItemCo> GetFeljegyzesekCoList(FeljegyzesekKereseseCO feljegyzesekKereseseCo)
{
var dataSet = FeljegyzesekKeresese(feljegyzesekKereseseCo);
var result = new List<FeljegyzesekItemCo>();
foreach (DataRow dataRow in dataSet.Tables[0].Rows)
{
var item = new FeljegyzesekItemCo(dataRow);
result.Add(item);
}
return result;
}
public DataSet FaliujsagKeresese(FeljegyzesekKereseseCO feljegyzesekKereseseCo)
{
var result = Dal.CustomConnection.Run(ConnectionType, h => h.Feljegyzes(GridParameters).FaliujsagKereses(feljegyzesekKereseseCo.ToPco(TanevId)));
return result;
}
public DataTable GetFaliujsagonMegjelenoBejegyzesek(DateTime? date, OktNevelesiKategoriaEnum? feladatKategoria, int? startindex = null, int? count = null)
{
var result = Dal.CustomConnection.Run(ConnectionType, h => h.Feljegyzes(GridParameters).GetFaliujsagonMegjelenoBejegyzesek(FelhasznaloId, date, feladatKategoria, startindex, count));
return result;
}
public FeljegyzesekCO GetFeljegyzesById(int feljegyzesId, int? tanuloId = null, int? osztalyId = null, string osztalyNev = null) => Dal.CustomConnection.Run(ConnectionType, h =>
{
var entity = h.Feljegyzes().Get(feljegyzesId);
var co = new FeljegyzesekCO
{
ID = entity.ID,
Datum = entity.EsemenyDatuma,
Tartalom = entity.Tartalom,
Tipus = entity.Tipus,
TipusNev = entity.Tipus.GetDisplayName<EsemenyTipusEnum>(TanevId),
Megjegyzes = entity.Megjegyzes,
TanarId = entity.FeljegyzoId,
Cim = entity.Targy,
FeljegyzesRogzitesenekDatuma = entity.RogzitesDatuma,
};
var isRendszeruzenetNev = entity.FeljegyzoId.IsEntityId() && !h.Alkalmazott().IsAlkalmazott(entity.FeljegyzoId, TanevId);
co.TanarNev = isRendszeruzenetNev ? Constants.SpecialUserName.Rendszeruzenet : entity.Feljegyzo.NyomtatasiNev;
if (tanuloId.IsEntityId())
{
var tanuloEntity = h.Tanulo().Get(tanuloId.Value);
co.TanuloId = tanuloEntity.ID;
co.TanuloNev = tanuloEntity.NyomtatasiNev;
}
var tanuloOsztalyaId = osztalyId.IsEntityId() ? osztalyId : entity.RogziteskoriOsztalyId;
if (tanuloOsztalyaId.IsEntityId())
{
var osztalyCsoportEntity = h.OsztalyCsoport().Get(tanuloOsztalyaId.Value);
co.OsztalyId = osztalyCsoportEntity.ID;
co.OsztalyNev = osztalyCsoportEntity.Nev;
}
if (!string.IsNullOrWhiteSpace(osztalyNev) && string.IsNullOrWhiteSpace(co.OsztalyNev))
{
co.OsztalyNev = osztalyNev;
}
return co;
});
public QuadrupleList<string, string, string, string> GetLegutobbiFeljegyzesek()
{
return Dal.CustomConnection.Run(ConnectionType, dalHandler =>
{
var feljegyzesQuadrupleList = new QuadrupleList<string, string, string, string>();
var dataTable = dalHandler.Feljegyzes().GetLegutobbiFeljegyzesek(FelhasznaloId).Tables[0];
new FeljegyzesLogic(new DalHandlerConnectionType(ConnectionType, dalHandler)).RemoveHiddenRowsFromFeljegyzesDataSet(dataTable, "Tipus", FelhasznaloId);
foreach (var row in dataTable.AsEnumerable())
{
feljegyzesQuadrupleList.Add(SDAConvert.ToString(row["Tipus_DNAME"]), SDAConvert.ToString(row["Tanar"]), SDAConvert.ToDateTime(row["EsemenyDatuma"])?.ToString("MMMM d."), SDAConvert.ToInt32(row["Id"]).ToString());
}
return feljegyzesQuadrupleList;
});
}
internal TanoraFeljegyzeseiCO GetTanoraFeljegyzesei(int? tanoraId) => Dal.CustomConnection.Run(ConnectionType, h =>
{
if (!tanoraId.HasValue || tanoraId < 1)
{
return new TanoraFeljegyzeseiCO();
}
var entity = h.TanitasiOra().Get(tanoraId.Value);
var result = new TanoraFeljegyzeseiCO();
foreach (var item in entity.TanuloEsemeny.Where(a => !a.Torolt))
{
var tanulo = item.Tanulo.FirstOrDefault(a => !a.Torolt);
if (tanulo != null)
{
result.Add(new TanoraFeljegyzeseCO() { FeljegyzesId = item.ID, FeljegyzesTipus = item.Tipus, TanuloId = tanulo.ID });
}
}
return result;
});
//public MemoryStream GetFeljegyzesExcelExport(FeljegyzesekKereseseCO searchModel)
//{
// return Dal.CustomConnection.Run(ConnectionType, dalHandler =>
// {
// DataSet dataSet = dalHandler.Feljegyzes().GetFeljegyzesekExcelExport(searchModel.ToPco());
// DataTable dataTable = dataSet.Tables[0];
// ExportLogic.TryCreateHeaderIfNotExist(dataTable);
// MemoryStream memoryStream = FeljegyzesLogic.GetExport(dataTable);
// return memoryStream;
// });
//}
//public MemoryStream GetFaliujsagExcelExport(FeljegyzesekKereseseCO searchModel)
//{
// return Dal.CustomConnection.Run(ConnectionType, dalHandler =>
// {
// DataSet dataSet = dalHandler.Feljegyzes().GetFaliujsagExcelExport(searchModel.ToPco());
// DataTable dataTable = dataSet.Tables[0];
// ExportLogic.TryCreateHeaderIfNotExist(dataTable);
// MemoryStream memoryStream = FeljegyzesLogic.GetExport(dataTable);
// return memoryStream;
// });
//}
public List<FeljegyzesekCO> GetFaliujsagFeljegyzesCoList(FeljegyzesekKereseseCO searchModel)
{
var coList = new List<FeljegyzesekCO>();
var ds = FaliujsagKeresese(searchModel);
foreach (var row in ds.Tables[0].AsEnumerable())
{
coList.Add(new FeljegyzesekCO(row));
}
return coList;
}
}
}