192 lines
8 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|