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

174 lines
8.5 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.Helpers.SystemSettings;
using Kreta.Core;
using Kreta.Core.ConnectionType;
using Kreta.DataAccess.Interfaces;
using Kreta.DataAccessManual;
using Kreta.DataAccessManual.Util;
using Kreta.Enums;
namespace Kreta.BusinessLogic.Helpers
{
public class SzamonkeresElorejelzesHelper : LogicBase
{
public SzamonkeresElorejelzesHelper(IConnectionType connectionType) : base(connectionType) { }
public List<int> GetModListAndComboItemColorNapiLimithez(int? OraGroupId, DateTime? Datum, int? OsztalyCsoportId, out string pBackgroudColor)
{
var helper = new SystemSettingsHelper(ConnectionType);
var szamonkeresModIdList = helper.GetSystemSettingValue<List<int>>(RendszerBeallitasTipusEnum.Ertekeles_Modok_Beallitasa_Napi_Limithez);
var napiSzamonkeresiLimit = helper.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.Napi_Szamonkeresi_Limit);
var szamonkeresLimitFigyelmeztetes = helper.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.Limit_Figyelmeztetesi_Tiltasi_Beallitas);
DataSet ds = new DataSet();
if (szamonkeresLimitFigyelmeztetes < 3)
{
ds = GetTanulokSzamonkeresElorejelzesei(new SzamonkeresElorejelzesSearchCO
{
OraGroupId = OraGroupId,
Datum = Datum,
NapiSzamonkeresLimit = napiSzamonkeresiLimit,
OsztalyCsoportId = OsztalyCsoportId,
ErtekelesModokLimithez = szamonkeresModIdList
});
}
bool hasOverLimit = napiSzamonkeresiLimit > 0 && szamonkeresLimitFigyelmeztetes != 3 && ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0;
string backgroudColor = !hasOverLimit ? "green" : szamonkeresLimitFigyelmeztetes == 2 ? "orange" : "red";
pBackgroudColor = backgroudColor;
return szamonkeresModIdList;
}
public DataSet GetSzamonkeresElorejelzesDetailDataSet(SzamonkeresElorejelzesSearchCO co, bool isKellKapcsolodoOsztalyok)
{
DataSet ds = Dal.CustomConnection.Run(ConnectionType, h =>
h.SzamonkeresElorejelzes(GridParameters).GetSzamonkeresElorejelzesDetailDataSet(IntezmenyId, TanevId, co.ConvertToPCo(), isKellKapcsolodoOsztalyok: isKellKapcsolodoOsztalyok));
return ds;
}
public DataSet GetTanulokSzamonkeresElorejelzesei(SzamonkeresElorejelzesSearchCO co)
{
DataSet ds = Dal.CustomConnection.Run(ConnectionType, h =>
h.SzamonkeresElorejelzes(GridParameters).GetTanulokSzamonkeresElorejelzesei(IntezmenyId, TanevId, co.ConvertToPCo()));
return ds;
}
public DataSet GetBejelentettSzamonkeresekGrid(SzamonkeresElorejelzesSearchCO co)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
OktNevelesiKategoriaEnum? kategoria = null;
if (co.OsztalyCsoportId.HasValue)
{
Enum.TryParse(new OsztalyCsoportHelper(new DalHandlerConnectionType(ConnectionType, h)).GetOsztalyCsoportFeladatKategoria(co.OsztalyCsoportId.Value).ToString(), out OktNevelesiKategoriaEnum osztalycsoportKategoria);
kategoria = osztalycsoportKategoria;
if (co.KapcsolodoCsoportok)
{
var osztalyCsoportHelper = new OsztalyCsoportHelper(new DalHandlerConnectionType(ConnectionType, h));
co.OsztalyCsoportIdsKapcsolodoCsoportokkal = osztalyCsoportHelper.ListOsztalyCsoportokKapcsolodoOsztalyCsoportjai(new List<int> { co.OsztalyCsoportId.Value }).ToList();
}
}
return h.SzamonkeresElorejelzes(GridParameters).GetBejelentettSzamonkeresekGrid(IntezmenyId, TanevId, co.ConvertToPCo(), kategoria);
});
}
public List<BejelentettSzamonkeresekItemCo> GetBejelentettSzamonkeresekCoList(SzamonkeresElorejelzesSearchCO co)
{
DataSet dataSet = GetBejelentettSzamonkeresekGrid(co);
var result = new List<BejelentettSzamonkeresekItemCo>();
foreach (DataRow dataRow in dataSet.Tables[0].Rows)
{
var item = new BejelentettSzamonkeresekItemCo(dataRow);
result.Add(item);
}
return result;
}
public QuadrupleList<string, string, string, string> GetLegutobbiBejelentettSzamonkeresek(int? pTanuloId)
{
var LegutobbiBejelentettSzamonkeresek = new QuadrupleList<string, string, string, string>();
var co = new SzamonkeresElorejelzesSearchCO { TanuloId = pTanuloId, CsakLegutobbi6 = true };
DataSet ds = Dal.CustomConnection.Run(ConnectionType, h =>
h.SzamonkeresElorejelzes(GridParameters).GetBejelentettSzamonkeresekGrid(IntezmenyId, TanevId, co.ConvertToPCo(), null));
foreach (var row in ds.Tables[0].AsEnumerable())
{
LegutobbiBejelentettSzamonkeresek.Add(SDAConvert.ToDateTime(row["SzamonkeresDatuma"])?.ToShortDateString(), SDAConvert.ToString(row["HetNapja_DNAME"]), SDAConvert.ToString(row["TargyNev"]), SDAConvert.ToString(row["ErtekelesModNev"]).ToString());
}
return LegutobbiBejelentettSzamonkeresek;
}
/// INFO: Mobil használja
public void SaveSzamonkeresElorejelzes(SzamonkeresElorejelzesCO co, int rogzitoId, int? intezmenyId = null)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.SzamonkeresElorejelzes();
var entity = dal.Get();
entity.SzamonkeresMegnevezes = co.Megnevezes?.Replace("'", "\"");
entity.OrarendiOraGroupId = co.OrarendiOraGroupId;
entity.SzamonkeresDatuma = co.Datum;
entity.SzamonkeresModId = co.SzamonkeresModId.Value;
entity.RogzitoId = rogzitoId;
entity.RogzitesDatuma = DateTime.Now.Date;
entity.IntezmenyId = intezmenyId ?? entity.IntezmenyId;
dal.Insert(entity);
});
}
public void DeleteSzamonkeresElorejelzes(int szamonkeresElorejelzesId)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.SzamonkeresElorejelzes();
dal.Delete(szamonkeresElorejelzesId);
});
}
/// INFO @DevKornel: Mobil használja
public List<ISzamonkeresElorejelzes> GetBejelentettSzamonkeresekByDateRange(DateTime start, DateTime end)
{
List<ISzamonkeresElorejelzes> bejelentettSzamonkeresek = new List<ISzamonkeresElorejelzes>();
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.SzamonkeresElorejelzes(GridParameters);
var ds = dal.GetBejelentettSzamonkeresekByDateRange(IntezmenyId, TanevId, start, end);
if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow row in ds.Tables[0].Rows)
{
var szamonkeresElorejelzes = dal.Get();
szamonkeresElorejelzes.ID = row["ID"] == DBNull.Value ? 0 : SDAConvert.ToInt32(row["ID"]);
szamonkeresElorejelzes.OrarendiOraGroupId = row["GroupId"] == DBNull.Value ? 0 : SDAConvert.ToInt32(row["GroupId"]);
szamonkeresElorejelzes.SzamonkeresDatuma = row["SzamonkeresDatum"] == DBNull.Value ? DateTime.MinValue : SDAConvert.ToDateTime(row["SzamonkeresDatum"]).Value;
szamonkeresElorejelzes.RogzitesDatuma = row["RogzitesDatum"] == DBNull.Value ? DateTime.MinValue : SDAConvert.ToDateTime(row["RogzitesDatum"]).Value;
szamonkeresElorejelzes.RogzitoId = row["RogzitoId"] == DBNull.Value ? 0 : SDAConvert.ToInt32(row["RogzitoId"]);
szamonkeresElorejelzes.SzamonkeresModId = row["SzamonkeresModId"] == DBNull.Value ? 0 : SDAConvert.ToInt32(row["SzamonkeresModId"]);
szamonkeresElorejelzes.SzamonkeresMegnevezes = row["SzamonkeresMegnevezes"].ToString();
bejelentettSzamonkeresek.Add(szamonkeresElorejelzes);
}
}
return bejelentettSzamonkeresek;
});
}
}
}