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 GetFogadooraByFeljegyzesId(int feljegyzesId) { var paramlist = new List { 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("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 { 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 { 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 parameters = new List(); 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 GetIsFeljegyzeshezTartozoOsztalyAlapkepzesesByFeljegyzesIdDictionary(List feljegyzesIdFilters) { var response = new Dictionary(); List parameters = new List { 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("Id"), item.Field("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 GetAllSchemaFeljegyzesNotification() { var result = new List(); 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()) { result.Add(item); } return result; } public void SetFeljegyzesAsKikuldott(IEnumerable 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(); } } }