kreta/Kreta.DataAccessManual/FeljegyzesDal.cs
2024-03-13 00:33:46 +01:00

943 lines
40 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Kreta.Core;
using Kreta.Core.FeatureToggle;
using Kreta.Core.Logic;
using Kreta.DataAccess.Interfaces;
using Kreta.DataAccessManual.DataAccessObjects.Feljegyzes;
using Kreta.DataAccessManual.Interfaces;
using Kreta.DataAccessManual.ParameterClasses;
using Kreta.DataAccessManual.Util;
using Kreta.Enums;
using Kreta.Framework;
using Kreta.Framework.Util;
using Kreta.Resources;
using SDA.DataProvider;
using SDA.Kreta.Entities;
namespace Kreta.DataAccessManual
{
internal class FeljegyzesDal : DataAccessBase, IFeljegyzesDal
{
public FeljegyzesDal(DalHandler handler, GridParameters parameters) : base(handler, parameters)
{
}
public FeljegyzesDal(DalHandler handler) : base(handler)
{
}
public ITanuloEsemeny Get()
{
return TanuloEsemeny.GiveAnInstance();
}
[Obsolete("Tároltra kell cserélni minél hamarabb")]
public ITanuloEsemeny GetSpecific(string condition, int tanevId)
{
var entity = TanuloEsemeny.LoadWithFilter(condition + $" AND C_TANEVID = {tanevId}").FirstOrDefault();
return entity;
}
public ITanuloEsemeny Get(int id)
{
var entity = TanuloEsemeny.GiveAnInstance();
entity.LoadByID(id);
return entity;
}
public void Insert(ITanuloEsemeny dto)
{
var entity = dto as TanuloEsemeny;
entity.IsErtesitesElkuldve = !FeatureContext.Instance.IsEnabled(Constants.FeatureName.SendFeljegyzesNotification);
entity.Insert();
dto.ID = entity.ID;
DalHelper.Commit();
}
public void FullUpdate(ITanuloEsemeny dto)
{
var entity = dto as TanuloEsemeny;
entity.FullUpdate();
DalHelper.Commit();
}
public void DeleteFeljegyzes(int id)
{
var entity = Get(id) as TanuloEsemeny;
entity.Tanulo.RemoveAll();
entity.OsztalyCsoport.RemoveAll();
var fogadooraList = GetFogadooraByFeljegyzesId(id);
entity.TanuloEsemenyNyelv.DeleteAll();
foreach (var fogadooraId in fogadooraList)
{
var fogadooraEntity = DalHelper.Fogadoora().Get(fogadooraId);
fogadooraEntity.TanuloEsemeny = null;
}
Delete(entity);
}
public List<int> GetFogadooraByFeljegyzesId(int feljegyzesId)
{
var paramlist = new List<CommandParameter>
{
new CommandParameter("pFeljegyzesId", feljegyzesId),
};
var commandText = new StringBuilder(@"
SELECT ID FROM T_FOGADOORA WHERE TOROLT = 'F' AND C_TANULOESEMENYID = :pFeljegyzesId");
var ds = this.GetData(commandText.ToString(), paramlist);
var list = ds.Tables[0].AsEnumerable()
.Select(r => r.Field<int>("ID"))
.ToList();
return list;
}
public void DeleteBeiras(int id, int tanuloId)
{
var entity = Get(id) as TanuloEsemeny;
entity.TanuloEsemenyNyelv.DeleteAll();
if (entity.Tanulo.Count == 1 && entity.OsztalyCsoport.Count == 0)
{
entity.Torolt = true;
entity.Update();
DalHelper.Commit();
}
else
{
throw new Exception(ErrorResource.BeirasoknakCsakEgyTanulojaEsNullaOsztalyaLehet);
}
}
public void DeleteElektronikusUzenetForTanulo(int id, int tanuloId)
{
var entity = Get(id) as TanuloEsemeny;
var tanuloEntity = DalHelper.Tanulo().Get(tanuloId) as Tanulo;
entity.RemoveFromTanulo(tanuloEntity);
if (entity.Tanulo.Count == 0)
{
entity.OsztalyCsoport.RemoveAll();
Delete(entity);
}
else
{
entity.Mindenkinek = false;
entity.Update();
DalHelper.Commit();
}
}
public void Delete(ITanuloEsemeny dto)
{
var entity = dto as TanuloEsemeny;
entity.TanuloEsemenyNyelv.DeleteAll();
entity.Delete();
DalHelper.Commit();
}
public DataSet GetFeljegyzesBeirasokData(int intezmenyId, int tanevId, int osztalyCsoportId, DateTime startDate, int tanarId)
{
var ds = new DataSet();
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "sp_GetFeljegyzesBeirasokData";
command.Parameters.Add("pOsztalyCsoportId", SDADBType.Int).Value = osztalyCsoportId;
command.Parameters.Add("pStartDate", SDADBType.DateTime).Value = startDate;
command.Parameters.Add("pTanarId", SDADBType.Int).Value = tanarId;
command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId;
command.Parameters.Add("pIntezmenyId", SDADBType.Int).Value = intezmenyId;
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
}
SetBoolFields(ds.Tables[0], "Modosithato");
DataTable dt = SortingAndPaging(ds.Tables[0], GridParameters);
return dt.AsDataSet();
}
public DataSet GetFeljegyzesBeirasokReszletek(int intezmenyId, int? tanevId, int tanuloId, int tanarId, bool toroltElemek)
{
var ds = new DataSet();
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "sp_GetFeljegyzesBeirasokReszletek";
command.Parameters.Add("pIntezmenyId", SDADBType.Int).Value = intezmenyId;
command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId;
command.Parameters.Add("pTanuloId", SDADBType.Int).Value = tanuloId;
command.Parameters.Add("pToroltElemek", SDADBType.Char).Value = toroltElemek ? 'T' : 'F';
command.Parameters.Add("pTanarId", SDADBType.Int).Value = tanarId;
command.Parameters.Add("pEsemenyTipusElektronikusUzenetId", SDADBType.Int).Value = (int)EsemenyTipusEnum.ElektronikusUzenet;
command.Parameters.Add("pEsemenyTipusFaliujsagBejegyzesId", SDADBType.Int).Value = (int)EsemenyTipusEnum.FaliujsagBejegyzes;
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
}
SetDNAME(ds.Tables[0], "Tipus");
SetBoolFields(ds.Tables[0], "Torolt,Modosithato");
DataTable dt = SortingAndPaging(ds.Tables[0], GridParameters);
return dt.AsDataSet();
}
public DataSet GetFeljegyzesElektronikusUzenetekNaploNezetData(int intezmenyId, int tanevId, int osztalyCsoportId, DateTime startDate, int tanarId)
{
var ds = new DataSet();
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "sp_GetFeljegyzesElektronikusUzenetekNaploNezetData";
command.Parameters.Add("pOsztalyCsoportId", SDADBType.Int).Value = osztalyCsoportId;
command.Parameters.Add("pStartDate", SDADBType.DateTime).Value = startDate;
command.Parameters.Add("pTanarId", SDADBType.Int).Value = tanarId;
command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId;
command.Parameters.Add("pIntezmenyId", SDADBType.Int).Value = intezmenyId;
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
}
SetBoolFields(ds.Tables[0], "Modosithato");
DataTable dt = SortingAndPaging(ds.Tables[0], GridParameters);
return dt.AsDataSet();
}
public DataSet GetFeljegyzesElektronikusUzenetekNaploNezetReszletek(int intezmenyId, int? tanevId, int tanuloId, int tanarId, bool toroltElemek)
{
var ds = new DataSet();
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "sp_GetFeljegyzesElektronikusUzenetekNaploNezetReszletek";
command.Parameters.Add("pIntezmenyId", SDADBType.Int).Value = intezmenyId;
command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId;
command.Parameters.Add("pTanuloId", SDADBType.Int).Value = tanuloId;
command.Parameters.Add("pToroltElemek", SDADBType.Char).Value = toroltElemek ? 'T' : 'F';
command.Parameters.Add("pTanarId", SDADBType.Int).Value = tanarId;
command.Parameters.Add("pEsemenyTipusElektronikusUzenetId", SDADBType.Int).Value = (int)EsemenyTipusEnum.ElektronikusUzenet;
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
}
SetDNAME(ds.Tables[0], "Tipus");
SetBoolFields(ds.Tables[0], "Torolt,Modosithato");
DataTable dt = SortingAndPaging(ds.Tables[0], GridParameters);
return dt.AsDataSet();
}
public DataSet GetFeljegyzesElektronikusUzenetekListaNezetData(int intezmenyId, int tanevId, int osztalyCsoportId, int tanarId)
{
var ds = new DataSet();
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "sp_GetFeljegyzesElektronikusUzenetekListaNezetData";
command.Parameters.Add("pIntezmenyId", SDADBType.Int).Value = intezmenyId;
command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId;
command.Parameters.Add("pOsztalyCsoportId", SDADBType.Int).Value = osztalyCsoportId;
command.Parameters.Add("pTanarId", SDADBType.Int).Value = tanarId;
command.Parameters.Add("pEsemenyTipusElektronikusUzenetId", SDADBType.Int).Value = (int)EsemenyTipusEnum.ElektronikusUzenet;
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
}
SetBoolFields(ds.Tables[0], "IsFaliujsagMegjelenes");
DataTable dt = SortingAndPaging(ds.Tables[0], GridParameters);
return dt.AsDataSet();
}
public DataSet GetFeljegyzesElektronikusUzenetekModifyPopupData(int osztalyCsoportId)
{
var ds = new DataSet();
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "sp_GetFeljegyzesElektronikusUzenetekModifyPopupData";
command.Parameters.Add("pOsztalyCsoportId", SDADBType.Int).Value = osztalyCsoportId;
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
}
DataTable dt = SortingAndPaging(ds.Tables[0], GridParameters);
return dt.AsDataSet();
}
public DataSet GetFeljegyzesFaliujsagBejegyzesekData(int tanarId, int esemenyTipusFaliujsagBejegyzesId)
{
var ds = new DataSet();
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "sp_GetFeljegyzesFaliujsagBejegyzesekData";
command.Parameters.Add("pTanarId", SDADBType.Int).Value = tanarId;
command.Parameters.Add("pEsemenyTipusFaliujsagBejegyzesId", SDADBType.Int).Value = (int)EsemenyTipusEnum.FaliujsagBejegyzes;
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
}
SetBoolFields(ds.Tables[0], "IsFaliujsagMegjelenes");
DataTable dt = SortingAndPaging(ds.Tables[0], GridParameters);
return dt.AsDataSet();
}
public DataSet GetFeljegyzesFaliujsagBejegyzesekPopupData()
{
var ds = new DataSet();
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "sp_GetFeljegyzesFaliujsagBejegyzesekPopupData";
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
}
DataTable dt = SortingAndPaging(ds.Tables[0], GridParameters);
return dt.AsDataSet();
}
public void AddTanulo(ITanuloEsemeny entity, int tanuloId)
{
var tanuloEntity = DalHelper.Tanulo().Get(tanuloId) as Tanulo;
(entity as TanuloEsemeny).AddToTanulo(tanuloEntity);
}
public void AddOsztalyCsoport(ITanuloEsemeny entity, int osztalyCsoportId)
{
var osztalyCsoportEntity = DalHelper.OsztalyCsoport().Get(osztalyCsoportId) as OsztalyCsoport;
(entity as TanuloEsemeny).AddToOsztalyCsoport(osztalyCsoportEntity);
}
public void RemoveTanulo(ITanuloEsemeny entity, int tanuloId)
{
var tanuloEntity = DalHelper.Tanulo().Get(tanuloId) as Tanulo;
(entity as TanuloEsemeny).RemoveFromTanulo(tanuloEntity);
}
public void RemoveOsztalyCsoport(ITanuloEsemeny entity, int osztalyCsoportId)
{
var osztalyCsoportEntity = DalHelper.OsztalyCsoport().Get(osztalyCsoportId) as OsztalyCsoport;
(entity as TanuloEsemeny).RemoveFromOsztalyCsoport(osztalyCsoportEntity);
}
public DataSet GetLegutobbiFeljegyzesek(int tanuloId)
{
/*TODO:Tobb Osztaly*//*OM-1563*/
var command = new StringBuilder(@"
SELECT TOP 6
T_TANULOESEMENY.ID Id
,T_TANULOESEMENY.C_ESEMENYDATUMA EsemenyDatuma
,T_TANULOESEMENY.C_TIPUS Tipus
,T_FELHASZNALO.C_NYOMTATASINEV Tanar
FROM
T_TANULOESEMENY
INNER JOIN
T_TANULO_TANULOESEMENY ON
T_TANULOESEMENY.ID = T_TANULO_TANULOESEMENY.C_TANULOESEMENYID
INNER JOIN
T_FELHASZNALO ON
T_TANULOESEMENY.C_FELJEGYZOID = T_FELHASZNALO.ID
WHERE
T_TANULOESEMENY.TOROLT = 'F'
AND T_TANULO_TANULOESEMENY.C_TANULOID = :pTanuloId
ORDER BY
T_TANULOESEMENY.C_ESEMENYDATUMA DESC");
var parameters = new List<CommandParameter> {
new CommandParameter("pTanuloId", tanuloId)
};
DataSet ds = GetData(command.ToString(), parameters, "Tipus");
return ds;
}
/// INFO @DevKornel: Mobil használja
public DataSet GetTanuloFeljegyzesei(int tanuloId, DateTime? fromDate = null, DateTime? toDate = null, int? id = null, OktNevelesiKategoriaEnum? feladatKategoria = null)
{
var parameters = new List<CommandParameter> {
new CommandParameter("pTanuloId", tanuloId)
};
if (feladatKategoria.HasValue)
{
parameters.Add(new CommandParameter("pFeladatKategoriaId", (int)feladatKategoria));
}
var command = new StringBuilder(@"
SELECT DISTINCT
te.ID ID
,te.C_ESEMENYDATUMA Datum
,te.C_TIPUS Tipus
,f.C_NYOMTATASINEV Tanar
,IIF(f.C_NEVSORREND = 'T',
f.C_UTONEV + ' ' + f.C_VEZETEKNEV,
f.C_VEZETEKNEV + ' ' + f.C_UTONEV) TanarElotagNelkul
,tte.C_TANULOID TanuloId
,te.C_TARTALOM Tartalom
,te.C_MEGJEGYZES Megjegyzes
,te.CREATED KeszitesDatuma
,te.C_TARGY Cim
,CASE WHEN f.C_NYOMTATASINEV = 'Rendszerüzenet'
THEN NULL
ELSE COALESCE(tanitasiOra.C_OSZTALYCSOPORTID, ocste.C_OSZTALYCSOPORTID, NULL)
END OsztalyCsoportId
FROM T_TANULOESEMENY te
INNER JOIN T_TANULO_TANULOESEMENY tte ON te.ID = tte.C_TANULOESEMENYID
INNER JOIN T_FELHASZNALO f ON te.C_FELJEGYZOID = f.ID
LEFT JOIN T_TANITASIORA tanitasiOra ON tanitasiOra.ID = te.C_TANITASIORAID
LEFT JOIN T_OSZTALYCSOPORT ocs ON tanitasiOra.C_OSZTALYCSOPORTID = ocs.ID
LEFT JOIN T_OSZTALYCSOPORT_TANULOESEMENY ocste ON te.ID = ocste.C_TANULOESEMENYID AND ocste.C_OSZTALYCSOPORTID = ocs.ID
WHERE te.TOROLT = 'F'
AND tte.C_TANULOID = :pTanuloId" +
(feladatKategoria.HasValue ?
@" AND (ocs.C_FELADATKATEGORIAID = :pFeladatKategoriaId OR ocs.C_FELADATKATEGORIAID IS NULL)" : ""));
if (id.HasValue)
{
command.Append(@" AND :pId = te.ID");
parameters.Add(new CommandParameter("pId", id.Value));
}
if (fromDate.HasValue)
{
command.Append(@" AND :pFromDate <= te.C_ESEMENYDATUMA");
parameters.Add(new CommandParameter("pFromDate", fromDate.Value));
}
if (toDate.HasValue)
{
command.Append(@" AND te.C_ESEMENYDATUMA <= :pToDate");
parameters.Add(new CommandParameter("pToDate", toDate.Value));
}
DataSet ds = GetData(command.ToString(), parameters, "Tipus");
return ds;
}
public DataSet FeljegyzesekKereses(FeljegyzesekKeresesePCO feljegyzesekKeresesePco, int intezmenyId)
{
using (var sdaCommand = new SDACommand())
{
sdaCommand.Connection = UserContext.Instance.SDAConnection;
sdaCommand.Transaction = UserContext.Instance.SDATransaction;
sdaCommand.CommandType = CommandType.StoredProcedure;
sdaCommand.CommandText = "uspFeljegyzesekKereses";
if (feljegyzesekKeresesePco.OsztalyId.IsEntityId())
{
sdaCommand.Parameters.Add("pOsztalyId", feljegyzesekKeresesePco.OsztalyId);
}
if (feljegyzesekKeresesePco.FeladatKategoriaId.IsEntityId())
{
sdaCommand.Parameters.Add("OktNevKatTipus", feljegyzesekKeresesePco.FeladatKategoriaId);
}
if (feljegyzesekKeresesePco.FeladatEllatasiHelyId.IsEntityId())
{
sdaCommand.Parameters.Add("pFeladatEllatasiHelyId", feljegyzesekKeresesePco.FeladatEllatasiHelyId);
}
if (feljegyzesekKeresesePco.TanuloId.IsEntityId())
{
sdaCommand.Parameters.Add("pTanuloId", feljegyzesekKeresesePco.TanuloId);
}
if (feljegyzesekKeresesePco.OsztalyCsoportId.IsEntityId())
{
sdaCommand.Parameters.Add("pOsztalyCsoportId", feljegyzesekKeresesePco.OsztalyCsoportId);
}
if (feljegyzesekKeresesePco.FeljegyzoId.IsEntityId())
{
sdaCommand.Parameters.Add("pFeljegyzoId", feljegyzesekKeresesePco.FeljegyzoId);
}
if (feljegyzesekKeresesePco.TipusId.IsEntityId())
{
sdaCommand.Parameters.Add("pTipus", feljegyzesekKeresesePco.TipusId);
}
if (feljegyzesekKeresesePco.DatumTol.HasValue && feljegyzesekKeresesePco.DatumTol.Value != DateTime.MinValue)
{
sdaCommand.Parameters.Add("pDatumTol", feljegyzesekKeresesePco.DatumTol);
}
if (feljegyzesekKeresesePco.DatumIg.HasValue && feljegyzesekKeresesePco.DatumIg.Value != DateTime.MinValue)
{
sdaCommand.Parameters.Add("pDatumIg", feljegyzesekKeresesePco.DatumIg);
}
if (feljegyzesekKeresesePco.RogzitesDatumTol.HasValue && feljegyzesekKeresesePco.RogzitesDatumTol.Value != DateTime.MinValue)
{
sdaCommand.Parameters.Add("pRogzitesDatumTol", feljegyzesekKeresesePco.RogzitesDatumTol);
}
if (feljegyzesekKeresesePco.RogzitesDatumIg.HasValue && feljegyzesekKeresesePco.RogzitesDatumIg.Value != DateTime.MinValue)
{
sdaCommand.Parameters.Add("pRogzitesDatumIg", feljegyzesekKeresesePco.RogzitesDatumIg);
}
if (!string.IsNullOrWhiteSpace(feljegyzesekKeresesePco.FeljegyzesSzovege))
{
sdaCommand.Parameters.Add("pFeljegyzesSzovege", SDADBType.String).Value = feljegyzesekKeresesePco.FeljegyzesSzovege;
}
if (feljegyzesekKeresesePco.SzervezetTipusId.IsEntityId())
{
sdaCommand.Parameters.Add("pSzervezetTipusId", SDADBType.Int).Value = feljegyzesekKeresesePco.SzervezetTipusId;
}
if (feljegyzesekKeresesePco.SzervezetIdList?.Any() ?? false)
{
var pSzervezetIdListString = string.Join(",", feljegyzesekKeresesePco.SzervezetIdList.Select(x => x.ToString()));
sdaCommand.Parameters.Add("pSzervezetIdListString", SDADBType.String).Value = pSzervezetIdListString;
}
if (!string.IsNullOrWhiteSpace(feljegyzesekKeresesePco.SzervezetNev))
{
sdaCommand.Parameters.Add("pSzervezetNev", SDADBType.String).Value = feljegyzesekKeresesePco.SzervezetNev.ToLowerInvariant();
}
if (!string.IsNullOrWhiteSpace(feljegyzesekKeresesePco.SzervezetAzonosito))
{
sdaCommand.Parameters.Add("pSzervezetAzonosito", SDADBType.String).Value = feljegyzesekKeresesePco.SzervezetAzonosito.ToLowerInvariant();
}
var isElektronikusUzenet = feljegyzesekKeresesePco.TipusId.HasValue && feljegyzesekKeresesePco.TipusId == (int)EsemenyTipusEnum.ElektronikusUzenet;
sdaCommand.Parameters.Add("pIsKellKapcsolodoCsoportok", feljegyzesekKeresesePco.IsKellKapcsolodoCsoportok);
sdaCommand.Parameters.Add("pIsElektronikusUzenet", isElektronikusUzenet);
sdaCommand.Parameters.Add("pElektronikusUzenetTipusEnum", (int)EsemenyTipusEnum.ElektronikusUzenet);
sdaCommand.Parameters.Add("pTanevId", SDADBType.Int).Value = feljegyzesekKeresesePco.TanevId;
sdaCommand.Parameters.Add("pIntezmenyId", SDADBType.Int).Value = intezmenyId;
var dataSet = new DataSet();
using (var sdaDataAdapter = new SDADataAdapter())
{
sdaDataAdapter.SelectCommand = sdaCommand;
sdaDataAdapter.Fill(dataSet);
}
SetDNAME(dataSet.Tables[0], "Tipus");
return dataSet;
}
}
public DataSet FaliujsagKereses(FeljegyzesekKeresesePCO feljegyzesekKeresesePCO)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetFaliujsagBejegyzesekData";
command.Parameters.Add("pTanevId", SDADBType.Int).Value = feljegyzesekKeresesePCO.TanevId;
if (feljegyzesekKeresesePCO.FeladatKategoriaId.IsEntityId())
{
command.Parameters.Add("pOktNevKatTipus", SDADBType.Int).Value = feljegyzesekKeresesePCO.FeladatKategoriaId.Value;
}
if (feljegyzesekKeresesePCO.FeladatEllatasiHelyId.IsEntityId())
{
command.Parameters.Add("pFeladatEllatasiHelyId", SDADBType.Int).Value = feljegyzesekKeresesePCO.FeladatEllatasiHelyId.Value;
}
if (feljegyzesekKeresesePCO.OsztalyCsoportId.IsEntityId())
{
command.Parameters.Add("pOsztalyCsoportId", SDADBType.Int).Value = feljegyzesekKeresesePCO.OsztalyCsoportId.Value;
}
command.Parameters.Add("pIsKellKapcsolodoCsoportok", feljegyzesekKeresesePCO.IsKellKapcsolodoCsoportok);
if (feljegyzesekKeresesePCO.FeljegyzoId.IsEntityId())
{
command.Parameters.Add("pFeljegyzoId", SDADBType.Int).Value = feljegyzesekKeresesePCO.FeljegyzoId.Value;
}
if (feljegyzesekKeresesePCO.DatumTol.HasValue && feljegyzesekKeresesePCO.DatumTol.Value != DateTime.MinValue)
{
command.Parameters.Add("pDatumTol", SDADBType.DateTime).Value = feljegyzesekKeresesePCO.DatumTol.Value;
}
if (feljegyzesekKeresesePCO.DatumIg.HasValue && feljegyzesekKeresesePCO.DatumIg.Value != DateTime.MinValue)
{
command.Parameters.Add("pDatumIg", SDADBType.DateTime).Value = feljegyzesekKeresesePCO.DatumIg.Value;
}
command.Parameters.Add("pTipus", SDADBType.Int).Value = (int)EsemenyTipusEnum.FaliujsagBejegyzes;
var ds = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
SetDNAME(ds.Tables[0], "Tipus");
return ds;
}
}
/// INFO @DevKornel: Mobil használja
public void SetFeljegyzesAsKikuldott(int feljegyzesId)
{
var commandText = @"UPDATE T_TANULOESEMENY SET
C_ISERTESITESELKULDVE = 'T',
LASTCHANGED = GETDATE(),
SERIAL = SERIAL + 1
WHERE ID = :pId";
using (var command = UserContext.Instance.SDAConnection.CreateCommand(commandText))
{
command.Transaction = UserContext.Instance.SDATransaction;
command.Parameters.Add("pId", feljegyzesId);
command.ExecuteNonQuery();
DalHelper.Commit();
}
}
public DataSet GetFaliujsagExcelExport(FeljegyzesekKeresesePCO feljegyzesekKeresesePCO)
{
List<CommandParameter> parameters = new List<CommandParameter>();
StringBuilder command = new StringBuilder(@"
SELECT DISTINCT
ocs.C_NEV AS [Osztály / Csoport],
CONVERT(nvarchar(25), T_TANULOESEMENY.C_ESEMENYDATUMA, 102) AS [Feljegyzés dátuma],
T_TANULOESEMENY.C_TARTALOM AS [Feljegyzés szövege],
IIF(FELJEGYZO.C_NEVSORREND = 'T',
FELJEGYZO.C_UTONEV + ' ' + FELJEGYZO.C_VEZETEKNEV,
FELJEGYZO.C_VEZETEKNEV + ' ' + FELJEGYZO.C_UTONEV) AS [Feljegyző neve],
T_TANULOESEMENY.C_MEGJEGYZES AS [Megjegyzés]
FROM T_TANULOESEMENY
INNER JOIN T_OSZTALYCSOPORT_TANULOESEMENY ON T_OSZTALYCSOPORT_TANULOESEMENY.C_TANULOESEMENYID = T_TANULOESEMENY.ID
INNER JOIN T_FELHASZNALO FELJEGYZO ON FELJEGYZO.ID = T_TANULOESEMENY.C_FELJEGYZOID AND FELJEGYZO.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = T_OSZTALYCSOPORT_TANULOESEMENY.C_OSZTALYCSOPORTID
AND ocs.TOROLT = 'F'
AND (@OktNevKatTipus IS NULL OR ocs.C_FELADATKATEGORIAID = @OktNevKatTipus)
AND (@pFeladatEllatasiHelyId IS NULL OR ocs.C_FELADATELLATASIHELYID = @pFeladatEllatasiHelyId)
LEFT JOIN T_OSZTALY ON T_OSZTALY.ID = ocs.ID AND T_OSZTALY.TOROLT = 'F'
WHERE T_TANULOESEMENY.TOROLT = 'F' ");
if (feljegyzesekKeresesePCO.FeladatKategoriaId.IsEntityId())
{
parameters.Add(new CommandParameter("OktNevKatTipus", feljegyzesekKeresesePCO.FeladatKategoriaId));
}
else
{
parameters.Add(new CommandParameter("OktNevKatTipus", DBNull.Value));
}
if (feljegyzesekKeresesePCO.FeladatEllatasiHelyId.HasValue)
{
parameters.Add(new CommandParameter("pFeladatEllatasiHelyId", feljegyzesekKeresesePCO.FeladatEllatasiHelyId));
}
else
{
parameters.Add(new CommandParameter("pFeladatEllatasiHelyId", DBNull.Value));
}
if (feljegyzesekKeresesePCO.OsztalyCsoportId.HasValue && !string.IsNullOrWhiteSpace(feljegyzesekKeresesePCO.OsztalyCsoportId.Value.ToString()))
{
parameters.Add(new CommandParameter("pOsztalyCsoportId", feljegyzesekKeresesePCO.OsztalyCsoportId));
command.AppendFormat(@" AND ocs.ID IN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(:pOsztalyCsoportId))");
}
if (feljegyzesekKeresesePCO.FeljegyzoId.HasValue && feljegyzesekKeresesePCO.FeljegyzoId.Value > 0)
{
command.AppendFormat(@" AND T_TANULOESEMENY.C_FELJEGYZOID = :pFeljegyzoId ");
parameters.Add(new CommandParameter("pFeljegyzoId", feljegyzesekKeresesePCO.FeljegyzoId));
}
if (feljegyzesekKeresesePCO.DatumTol.HasValue && feljegyzesekKeresesePCO.DatumTol.Value != DateTime.MinValue)
{
command.AppendFormat(@" AND T_TANULOESEMENY.C_ESEMENYDATUMA >= :pDatumTol ");
parameters.Add(new CommandParameter("pDatumTol", feljegyzesekKeresesePCO.DatumTol));
}
if (feljegyzesekKeresesePCO.DatumIg.HasValue && feljegyzesekKeresesePCO.DatumIg.Value != DateTime.MinValue)
{
command.AppendFormat(@" AND T_TANULOESEMENY.C_ESEMENYDATUMA <= :pDatumIg ");
parameters.Add(new CommandParameter("pDatumIg", feljegyzesekKeresesePCO.DatumIg));
}
command.AppendFormat(@" AND T_TANULOESEMENY.C_TIPUS = " + ((int)EsemenyTipusEnum.FaliujsagBejegyzes).ToString() + " ");
DataSet ds = GetData(command.ToString(), parameters);
return ds;
}
public bool CheckUgyiratszamExists(string ugyiratszam)
{
var result = false;
using (SDACommand command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.Text;
command.Parameters.Add("pUgyiratszam", ugyiratszam);
command.CommandText = @"
SELECT COUNT(ID)
FROM T_IGAZOLAS
WHERE
TOROLT = 'F'
AND C_UGYIRATSZAM = ':pUgyiratszam'
";
var cmdResult = command.ExecuteScalar();
if (cmdResult.ToString() == "1")
result = true;
return result;
}
}
/// INFO @DevKornel: Mobil használja
public Dictionary<int, bool> GetIsFeljegyzeshezTartozoOsztalyAlapkepzesesByFeljegyzesIdDictionary(List<int> feljegyzesIdFilters)
{
var response = new Dictionary<int, bool>();
List<CommandParameter> parameters = new List<CommandParameter>
{
new CommandParameter("pFeladatKategoriaId", (int)OktNevelesiKategoriaEnum.NevelesOktatas),
};
string commandText = $@"SELECT
Esemeny.ID,
IIF(OsztalyCsoport.C_FELADATKATEGORIAID = :pFeladatKategoriaId OR OsztalyCsoportFaliujsag.C_FELADATKATEGORIAID = :pFeladatKategoriaId OR (OsztalyCsoport.C_FELADATKATEGORIAID IS NULL AND OsztalyCsoportFaliujsag.C_FELADATKATEGORIAID IS NULL), 1, 0) IsFeljegyzeshezTartozoOsztalyAlapkepzesesVagyTanulohoz
FROM T_TANULOESEMENY Esemeny
LEFT JOIN T_TANITASIORA Tanora ON Tanora.ID = Esemeny.C_TANITASIORAID
LEFT JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = Tanora.C_OSZTALYCSOPORTID
LEFT JOIN T_OSZTALYCSOPORT_TANULOESEMENY OsztalyCsoportTanuloEsemeny ON Esemeny.ID = OsztalyCsoportTanuloEsemeny.C_TANULOESEMENYID
LEFT JOIN T_OSZTALYCSOPORT OsztalyCsoportFaliujsag ON OsztalyCsoportFaliujsag.ID = OsztalyCsoportTanuloEsemeny.C_OSZTALYCSOPORTID
WHERE Esemeny.ID IN ({string.Join(",", feljegyzesIdFilters)})";
DataSet ds = GetData(commandText, parameters);
foreach (DataRow item in ds.Tables[0].Rows)
{
response.Add(item.Field<int>("Id"), item.Field<int>("IsFeljegyzeshezTartozoOsztalyAlapkepzesesVagyTanulohoz") == 1);
}
return response;
}
/// INFO @DevKornel: Mobil használja
public DataTable GetFaliujsagonMegjelenoBejegyzesek(int userId, DateTime? date, OktNevelesiKategoriaEnum? feladatKategoria, int? startindex = null, int? count = null)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "sp_GetFaliujsagBejegyzesek";
command.Parameters.Add("pUserId", userId);
command.Parameters.Add("pDate", date ?? DateTime.Today);
command.Parameters.Add("pEsemenyTipusFaliujsagBejegyzes", EsemenyTipusEnum.FaliujsagBejegyzes);
if (feladatKategoria.HasValue)
{ command.Parameters.Add("pFeladatKategoriaId", (int)feladatKategoria); }
else
{ command.Parameters.Add("pFeladatKategoriaId", DBNull.Value); }
var dts = new DataTable();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
if (startindex.HasValue && count.HasValue)
{
adapter.Fill(dts, startindex.Value, startindex.Value + count.Value - 1);
}
else
{
adapter.Fill(dts);
}
}
SetDNAME(dts, "Munkakor");
return dts;
}
}
public DataSet GetAllSchemaRendszeruzenetFeljegyzesNotification()
{
using (var sdaCommand = new SDACommand())
{
sdaCommand.Connection = UserContext.Instance.SDAConnection;
sdaCommand.Transaction = UserContext.Instance.SDATransaction;
sdaCommand.CommandType = CommandType.StoredProcedure;
sdaCommand.CommandText = "uspGetAllSchemaKikuldendoRendszeruzenet";
var result = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = sdaCommand;
adapter.Fill(result);
}
return result;
}
}
public List<FeljegyzesDao> GetAllSchemaFeljegyzesNotification()
{
var result = new List<FeljegyzesDao>();
var ds = new DataSet();
using (var sdaCommand = new SDACommand())
{
sdaCommand.Connection = UserContext.Instance.SDAConnection;
sdaCommand.Transaction = UserContext.Instance.SDATransaction;
sdaCommand.CommandType = CommandType.StoredProcedure;
sdaCommand.CommandText = "uspGetAllSchemaKikuldendoFeljegyzes";
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = sdaCommand;
adapter.Fill(ds);
}
}
foreach (var item in ds.Tables[0].ToDaoList<FeljegyzesDao>())
{
result.Add(item);
}
return result;
}
public void SetFeljegyzesAsKikuldott(IEnumerable<int> idList)
{
if (!idList.Any())
{
return;
}
using (SDACommand command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspSetFeljegyzesAsKikuldott";
command.Parameters.Add("item_list", SqlLogic.ParseListToParameter(idList.ToList()));
command.ExecuteNonQuery();
DalHelper.Commit();
}
}
public void UpdateBeirasNyelv(ITanuloEsemenyNyelv dto)
{
var entity = dto as TanuloEsemenyNyelv;
entity.Update();
DalHelper.Commit();
}
public void InsertBeirasNyelv(ITanuloEsemenyNyelv dto)
{
var entity = dto as TanuloEsemenyNyelv;
entity.Insert();
dto.ID = entity.ID;
DalHelper.Commit();
}
public ITanuloEsemenyNyelv GetBeirasNyelv()
{
return TanuloEsemenyNyelv.GiveAnInstance();
}
public void DeleteBeirasNyelv(int Id)
{
var entity = Get(Id) as TanuloEsemeny;
entity.TanuloEsemenyNyelv.DeleteAll();
DalHelper.Commit();
}
}
}