using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using Kreta.Core; using Kreta.DataAccess.Interfaces; using Kreta.DataAccessManual.Interfaces; using Kreta.DataAccessManual.ParameterClasses; using Kreta.DataAccessManual.Util; using Kreta.Enums; using Kreta.Framework; using Kreta.Framework.Util; using SDA.DataProvider; using SDA.Kreta.Entities; namespace Kreta.DataAccessManual { internal class OsztalyDal : DataAccessBase, IOsztalyDal { public OsztalyDal(DalHandler handler, GridParameters parameters) : base(handler, parameters) { } public OsztalyDal(DalHandler handler) : base(handler) { } public DataSet OsztalyExport(OsztalySearchPco pco, int tanevId, DateTime? aktualisTanevElsoTanitasiNapja = null) { var paramsList = new List() { new CommandParameter(nameof(tanevId), tanevId), new CommandParameter(nameof(aktualisTanevElsoTanitasiNapja), aktualisTanevElsoTanitasiNapja) }; var kovetkezoTanev = aktualisTanevElsoTanitasiNapja > DateTime.Now; var command = new StringBuilder($@"select T_OSZTALY_OSSZES.ID ,T_OSZTALYCSOPORT_OSSZES.C_NEV as OsztalyNev ,T_OSZTALYCSOPORT_OSSZES.C_VEGZOSEVFOLYAM as VegzosEvFolyam ,T_TANEV_OSSZES.C_NEV as TanEv ,T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA as Evfolyam ,T_FELHASZNALO_OSSZES.C_NYOMTATASINEV as OsztalyFonok ,ISNULL(TanulokSzama,0) as TanulokSzama ,T_TANTERV_OSSZES.C_NEV as TanTerv ,T_TEREM_OSSZES.C_NEV TeremNev ,T_DICTIONARYITEMBASE_OSSZES.C_VALUE EvfolyamSorszama ,T_OSZTALYCSOPORT_OSSZES.C_MUVESZETIAGID AS MuveszetiAgId from T_OSZTALY_OSSZES inner join T_OSZTALYCSOPORT_OSSZES on T_OSZTALYCSOPORT_OSSZES.ID = T_OSZTALY_OSSZES.ID and T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F' left join T_TEREM_OSSZES on T_TEREM_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TEREMID and T_TEREM_OSSZES.TOROLT = 'F' left join T_FELHASZNALO_OSSZES on T_FELHASZNALO_OSSZES.ID = T_OSZTALY_OSSZES.C_OSZTALYFONOKID and T_FELHASZNALO_OSSZES.TOROLT = 'F' left join T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID and T_TANEV_OSSZES.TOROLT = 'F' left join T_TANTERV_OSSZES on T_TANTERV_OSSZES.ID = T_OSZTALY_OSSZES.C_TANTERVID and T_TANTERV_OSSZES.TOROLT = 'F' left join T_DICTIONARYITEMBASE_OSSZES on T_DICTIONARYITEMBASE_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA and T_DICTIONARYITEMBASE_OSSZES.C_INTEZMENYID = T_OSZTALYCSOPORT_OSSZES.C_INTEZMENYID and T_DICTIONARYITEMBASE_OSSZES.C_TANEVID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID and T_DICTIONARYITEMBASE_OSSZES.TOROLT = 'F' left join ( SELECT COUNT(DISTINCT [C_TANULOID]) AS TanulokSzama ,[C_OSZTALYCSOPORTID] FROM [T_TANULOCSOPORT_OSSZES] WHERE TOROLT='F' AND C_BELEPESDATUM <= " + (!kovetkezoTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(aktualisTanevElsoTanitasiNapja)}) ") + $@" AND (C_KILEPESDATUM IS NULL or C_KILEPESDATUM > CONVERT(DATE, " + (!kovetkezoTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(aktualisTanevElsoTanitasiNapja)}) ") + $@")) GROUP BY [C_OSZTALYCSOPORTID]) AS TC ON TC.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_OSSZES.ID where T_OSZTALY_OSSZES.TOROLT = 'F' and T_OSZTALY_OSSZES.C_ALTANEVID = @{nameof(tanevId)} "); // whereClause kifejtése: command.Append(pco.ToWhereClause(paramsList)); return this.GetData(command.ToString(), paramsList, "Evfolyam,MuveszetiAgId", "VegzosEvFolyam"); } public DataSet GetOsztalyokForDDL(bool kellTanev = false, int? tanarId = null) { var commandText = @"Select DISTINCT T_OSZTALYCSOPORT_OSSZES.ID, T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA Evfolyam," + (kellTanev ? " T_OSZTALYCSOPORT_OSSZES.C_NEV + ' (' + T_TANEV_OSSZES.C_NEV + ')' Nev " : " T_OSZTALYCSOPORT_OSSZES.C_NEV Nev ") + @"from T_OSZTALYCSOPORT_OSSZES inner join T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID " + (tanarId.HasValue ? @" INNER JOIN T_FOGLALKOZAS_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID " : " ") + @"where T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F' and T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = @OktNevKatTipus and T_TANEV_OSSZES.TOROLT = 'F' and (T_TANEV_OSSZES.C_AKTIV = 'T' or T_TANEV_OSSZES.C_KOVETKEZO = 'T')" + (tanarId.HasValue ? @" AND T_FOGLALKOZAS_OSSZES.C_TANARID = :pTanarID " : " "); var param = new List(); param.Add(new CommandParameter("OktNevKatTipus", (int)OktNevelesiKategoriaEnum.NevelesOktatas)); if (tanarId.HasValue) { param.Add(new CommandParameter("pTanarID", tanarId.Value)); } var ds = this.GetData(commandText, param); return ds; } public DataSet GetOnlyOsztalyokForDDL(int tanevId, int? tanarId = default(int?), OktNevelesiKategoriaEnum? feladatKategoria = null, bool forSzirStatTanulo = false) { var commandText = @" Select DISTINCT CASE WHEN T_OSZTALYCSOPORT_OSSZES.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(T_OSZTALYCSOPORT_OSSZES.C_NEV,9) AS INT) ELSE 2147483647 END NumberOrder, CASE WHEN LEFT(T_OSZTALYCSOPORT_OSSZES.C_NEV, 1) BETWEEN '0' AND '9' AND T_OSZTALYCSOPORT_OSSZES.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(T_OSZTALYCSOPORT_OSSZES.C_NEV, 1, PATINDEX('%[^0-9]%', T_OSZTALYCSOPORT_OSSZES.C_NEV) - 1),9) AS INT) ELSE 2147483647 END NumberAndTextOrder, T_OSZTALYCSOPORT_OSSZES.ID, dic.C_ORDER, T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA Evfolyam, T_OSZTALYCSOPORT_OSSZES.C_NEV Nev from T_OSZTALYCSOPORT_OSSZES inner join T_OSZTALY_OSSZES on T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID inner join T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID inner join T_DICTIONARYITEMBASE_OSSZES dic on dic.ID = T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA and dic.TOROLT = 'F' AND dic.C_TANEVID = T_TANEV_OSSZES.ID " + (forSzirStatTanulo ? $@" INNER JOIN T_FELADATELLATASIHELY_OSSZES fhely ON fhely.C_TANEVID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID AND fhely.TOROLT = 'F' AND fhely.ID = T_OSZTALYCSOPORT_OSSZES.C_FELADATELLATASIHELYID AND fhely.C_OKTATASINEVELESIFELADATTIPUS NOT IN ({(int)OktatasiNevelesiFeladatEnum.kollegium}, {(int)OktatasiNevelesiFeladatEnum.kollegium_nemzetisegi_})" : " ") + (tanarId.HasValue ? @" INNER JOIN T_FOGLALKOZAS_OSSZES ON T_OSZTALY_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID" : " ") + @" where T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F' and T_TANEV_OSSZES.TOROLT = 'F' and T_OSZTALYCSOPORT_OSSZES.C_TANEVID = :pTanevId and (T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = @OktNevKatTipus OR @OktNevKatTipus IS NULL) " + (tanarId.HasValue ? @" AND T_FOGLALKOZAS_OSSZES.C_TANARID = :pTanarID " : " ") + @" ORDER BY NumberOrder ASC, NumberAndTextOrder ASC, T_OSZTALYCSOPORT_OSSZES.C_NEV ASC "; var param = new List(); param.Add(new CommandParameter("pTanevId", tanevId)); if (feladatKategoria.HasValue) { param.Add(new CommandParameter("OktNevKatTipus", (int)feladatKategoria)); } else { param.Add(new CommandParameter("OktNevKatTipus", DBNull.Value)); } if (tanarId.HasValue) { param.Add(new CommandParameter("pTanarID", tanarId.Value)); } var ds = this.GetData(commandText, param); return ds; } public DataSet GetOsztalyCsoportjai(int osztalyId, OktNevelesiKategoriaEnum kategoria) { var param = new List { new CommandParameter("pKategoriaId", (int)kategoria), new CommandParameter("pOsztalyId", osztalyId) }; const string commandText = @" SELECT DISTINCT ocs.ID AS ID ,ocs.C_NEV AS CsopNev FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_TANULOCSOPORT_OSSZES tcs2 ON tcs2.C_TANULOID = tcs.C_TANULOID INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs2.C_OSZTALYCSOPORTID INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID WHERE tcs.C_OSZTALYCSOPORTID = :pOsztalyId AND tcs.TOROLT = 'F' AND tcs2.TOROLT = 'F' AND ocs.C_FELADATKATEGORIAID = :pKategoriaId "; DataSet ds = GetData(commandText, param); return ds; } public DataSet OsztalyKereses(OsztalySearchPco pco, int? tanevId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspGetOsztalyData"; command.Parameters.Add("pSearchDate", pco.SearchDate); command.Parameters.Add("pTanevId", tanevId); var ds = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } SetDNAME(ds.Tables[0], "Evfolyam,MuveszetiAgId"); SetBoolFields(ds.Tables[0], "VegzosEvFolyam"); return ds; } } public int GetOsztalyfonokByOsztalyId(int osztalyId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = @"select C_OSZTALYFONOKID from T_OSZTALY where TOROLT = 'F' and ID = :pOsztalyID"; command.Parameters.Add("pOsztalyID", osztalyId); var result = command.ExecuteScalar(); return result != null && result != DBNull.Value && (int)result > 0 ? (int)result : -1; } } public DataSet GetOsztalyokByTanevForDDL(int tanevId, int? feladatKategoriaId = null) { var pList = new List(); pList.Add(new CommandParameter("pTanevId", tanevId)); if (feladatKategoriaId.IsEntityId()) pList.Add(new CommandParameter(nameof(feladatKategoriaId), feladatKategoriaId)); else pList.Add(new CommandParameter(nameof(feladatKategoriaId), DBNull.Value)); var commandText = $@" Select T_OSZTALYCSOPORT_OSSZES.ID, T_OSZTALYCSOPORT_OSSZES.C_NEV Nev, T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA Evfolyam from T_OSZTALYCSOPORT_OSSZES join T_OSZTALY_OSSZES on T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID join T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID join T_DICTIONARYITEMBASE dic on dic.ID = T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA and dic.TOROLT = 'F' where T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F' and T_TANEV_OSSZES.TOROLT = 'F' and T_TANEV_OSSZES.ID = :pTanevId AND (T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = @{nameof(feladatKategoriaId)} OR @{nameof(feladatKategoriaId)} IS NULL) ORDER BY Nev ASC, dic.C_ORDER ASC "; var ds = this.GetData(commandText, pList); return ds; } public IOsztaly Get() { return Osztaly.GiveAnInstance(); } [Obsolete("Tároltra kell cserélni minél hamarabb")] public IOsztaly GetSpecific(string condition, int tanevId) { var entity = Osztaly.LoadWithFilter(condition + $" AND C_ALTANEVID = {tanevId}").FirstOrDefault(); return entity; } public IOsztaly Get(int id) { var entity = Osztaly.GiveAnInstance(); entity.LoadByID(id); return entity; } public void Insert(IOsztaly dto) { var entity = dto as Osztaly; entity.Importalt = false; entity.Insert(); dto.ID = entity.ID; DalHelper.Commit(); } public void FullUpdate(IOsztaly dto) { var original = Get(dto.ID); var isOrarendUpdateneeded = (original.VegzosEvfolyam != dto.VegzosEvfolyam || original.Keresztfeleves != dto.Keresztfeleves) && dto.OrarendiOra.Count > 0; var entity = dto as Osztaly; entity.Importalt = false; entity.FullUpdate(); if (isOrarendUpdateneeded) { DalHelper.OrarendiOra().UpdateOrarend(dto.IntezmenyId, dto.TanevId, null, null, null, dto.ID); } DalHelper.Commit(); } public void Delete(IOsztaly dto, int intezmenyId, int tanevId, bool updateTanoraEvesSorszam = true) { var entity = dto as Osztaly; entity.Importalt = false; var tanuloCsoportDal = DalHelper.TanuloCsoport(); foreach (var tanuloCsoport in entity.Tanulo) { tanuloCsoportDal.Delete(tanuloCsoport.ID); } entity.Tanmenet.RemoveAll(); entity.TanevRendje.ToList().ForEach(tr => { tr.OsztalyCsoport.Remove(entity); if (tr.OsztalyCsoport.Count == 0) { tr.Delete(); } }); entity.TanuloEsemeny.ToList().ForEach(te => { te.Tanulo.RemoveAll(); te.OsztalyCsoport.Remove(entity); if (te.OsztalyCsoport.Count == 0) { te.Delete(); } }); DeleteOsztalyCsoportTanuloEsemny(entity.ID); entity.Hetes.DeleteAll(); entity.DKT_Feladat.DeleteAll(); var oraSorszamozasHalmazDAL = DalHelper.OraSorszamozasHalmaz(); foreach (var osszerendeles in entity.OraSorszamozasHalmazOsszerendeles) { oraSorszamozasHalmazDAL.DeleteOsszerendeles(osszerendeles.ID, intezmenyId, tanevId, updateTanoraEvesSorszam: false); } entity.Delete(); if (updateTanoraEvesSorszam) { DalHelper.TanitasiOra().UpdateTanitasiOraEvesSorszamTeljesTanev(intezmenyId, tanevId); } DalHelper.Commit(); } public void UpdateOsztalyTanuloiSzakkepzesesAdatok(int osztalyId, SzakkepzesesAdatokPCO szakosAdatok) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "sp_UpdateOsztalyTanuloiSzakkepzesesAdatok"; command.Parameters.Add(nameof(osztalyId), osztalyId); command.Parameters.Add(nameof(szakosAdatok.Szakmacsoport), szakosAdatok.Szakmacsoport); command.Parameters.Add(nameof(szakosAdatok.Agazat), szakosAdatok.Agazat); command.Parameters.Add(nameof(szakosAdatok.Szakkepesites), szakosAdatok.Szakkepesites); command.Parameters.Add(nameof(szakosAdatok.Reszszakkepesites), szakosAdatok.Reszszakkepesites); command.ExecuteNonQuery(); DalHelper.Commit(); } } public DataSet GetOsztalyNKTesSZKTSzakkepzesesAdatok(int osztalyId) { var param = new List() { new CommandParameter(nameof(osztalyId), osztalyId) }; var commandText = $@" SELECT osztaly.C_SZAKMACSOPORT AS Szakmacsoport, osztaly.C_AGAZAT AS Agazat, osztaly.C_SZAKKEPESITES AS Szakkepesites, osztaly.C_RESZSZAKKEPESITES AS Reszszakkepesites, osztaly.C_SZAKIRANYNKTTIPUSID AS SzakiranyNKTTipus, osztaly.C_SZAKKEPESITESNKTTIPUSID AS SzakkepesitesNKTTipus, osztaly.C_TANULMANYITERULETNKTTIPUSID AS TanulmanyiTeruletNKTTipus FROM T_OSZTALY osztaly WHERE osztaly.ID = @{nameof(osztalyId)} "; var ds = this.GetData(commandText, param); return ds; } public DataSet GetOsztalySzakkepzoAdatok(int osztalyId) { var param = new List() { new CommandParameter(nameof(osztalyId), osztalyId) }; var commandText = $@" SELECT osztaly.C_JOGVISZONYTIPUSID AS Jogviszony FROM T_OSZTALY osztaly WHERE osztaly.ID = @{nameof(osztalyId)} "; var ds = this.GetData(commandText, param); return ds; } public DataSet GetOsztalyDataSet(int tanevId, int? oktNevelesiKategoriaId = null) { var commandParameterList = new List { new CommandParameter("pTanevId", tanevId), oktNevelesiKategoriaId.IsEntityId() ? new CommandParameter("pOktNevelesiKategoriaId", oktNevelesiKategoriaId.Value) : new CommandParameter("pOktNevelesiKategoriaId", DBNull.Value) }; string commandText = @" SELECT osztaly.ID as Id ,osztalyCsoport.C_NEV as Nev ,osztalyCsoport.C_IMPORTALT as Importalt ,ISNULL(osztaly.C_OSZTALYFONOKID, osztaly.C_OFOHELYETTESID) as OsztalyfonokId ,osztalyCsoport.C_TEREMID as TeremId FROM T_OSZTALY_OSSZES osztaly INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON osztalyCsoport.TOROLT = 'F' AND osztalyCsoport.C_TANEVID = osztaly.C_ALTANEVID AND osztalyCsoport.ID = osztaly.ID AND (@pOktNevelesiKategoriaId IS NULL OR osztalyCsoport.C_FELADATKATEGORIAID = @pOktNevelesiKategoriaId) WHERE osztaly.TOROLT = 'F' AND osztaly.C_ALTANEVID = :pTanevId"; return GetData(commandText, commandParameterList); } public DataSet GetOsztalyokForDDL(int? tanevId, int? tanarId = null, bool? szuperOsztalyfonok = null, OktNevelesiKategoriaEnum? feladatKategoria = null) { /*TODO:Tobb Osztaly*//*OM-1628*/ var commandText = @" Select DISTINCT CASE WHEN T_OSZTALYCSOPORT_OSSZES.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(T_OSZTALYCSOPORT_OSSZES.C_NEV,9) AS INT) ELSE 2147483647 END NumberOrder, CASE WHEN LEFT(T_OSZTALYCSOPORT_OSSZES.C_NEV, 1) BETWEEN '0' AND '9' AND T_OSZTALYCSOPORT_OSSZES.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(T_OSZTALYCSOPORT_OSSZES.C_NEV, 1, PATINDEX('%[^0-9]%', T_OSZTALYCSOPORT_OSSZES.C_NEV) - 1),9) AS INT) ELSE 2147483647 END NumberAndTextOrder, T_OSZTALYCSOPORT_OSSZES.ID, dic.C_ORDER, T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA Evfolyam, T_OSZTALYCSOPORT_OSSZES.C_NEV Nev from T_OSZTALYCSOPORT_OSSZES inner join T_OSZTALY_OSSZES on T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID inner join T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID inner join T_DICTIONARYITEMBASE_OSSZES dic on dic.ID = T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA and dic.TOROLT = 'F' " + (tanevId.IsEntityId() ? @"and dic.C_TANEVID = :pTanevId" : " ") + @" where T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F' and (T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = @OktNevKatTipus OR @OktNevKatTipus IS NULL) and T_TANEV_OSSZES.TOROLT = 'F' " + (tanevId.IsEntityId() ? @"and T_OSZTALYCSOPORT_OSSZES.C_TANEVID = :pTanevId" : " ") + @" and (T_TANEV_OSSZES.C_AKTIV = 'T' or T_TANEV_OSSZES.C_KOVETKEZO = 'T')" + (tanarId.HasValue && szuperOsztalyfonok.HasValue && !szuperOsztalyfonok.Value ? @" AND (T_OSZTALY_OSSZES.C_OSZTALYFONOKID = :pTanarID OR T_OSZTALY_OSSZES.C_OFOHELYETTESID = :pTanarID) " : " ") + @" ORDER BY NumberOrder ASC, NumberAndTextOrder ASC, T_OSZTALYCSOPORT_OSSZES.C_NEV ASC "; var param = new List(); if (feladatKategoria.HasValue) { param.Add(new CommandParameter("OktNevKatTipus", (int)feladatKategoria)); } else { param.Add(new CommandParameter("OktNevKatTipus", DBNull.Value)); } if (tanevId.IsEntityId()) { param.Add(new CommandParameter("pTanevId", tanevId)); } if (tanarId.HasValue) { param.Add(new CommandParameter("pTanarID", tanarId.Value)); } var ds = this.GetData(commandText, param); return ds; } public DataSet GetOsztalyokCsoportokForDDL(int? tanevId, int? tanarId = null, bool? szuperOsztalyfonok = false, OktNevelesiKategoriaEnum? feladatKategoria = null) { /*TODO:Tobb Osztaly*//*OM-1628*/ var commandText = @" Select DISTINCT CASE WHEN T_OSZTALYCSOPORT_OSSZES.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(T_OSZTALYCSOPORT_OSSZES.C_NEV,9) AS INT) ELSE 2147483647 END NumberOrder, CASE WHEN LEFT(T_OSZTALYCSOPORT_OSSZES.C_NEV, 1) BETWEEN '0' AND '9' AND T_OSZTALYCSOPORT_OSSZES.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(T_OSZTALYCSOPORT_OSSZES.C_NEV, 1, PATINDEX('%[^0-9]%', T_OSZTALYCSOPORT_OSSZES.C_NEV) - 1),9) AS INT) ELSE 2147483647 END NumberAndTextOrder, T_OSZTALYCSOPORT_OSSZES.ID, dic.C_ORDER, T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA Evfolyam, T_OSZTALYCSOPORT_OSSZES.C_NEV Nev, CASE WHEN cs.ID IS NULL THEN 0 ELSE 1 END Csoport from T_OSZTALYCSOPORT_OSSZES inner join T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID inner join T_DICTIONARYITEMBASE_OSSZES dic on dic.ID = T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA and dic.TOROLT = 'F' " + (tanevId.IsEntityId() ? @"and dic.C_TANEVID = :pTanevId" : " ") + @" LEFT JOIN T_OSZTALY_OSSZES on T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID LEFT JOIN T_CSOPORT_OSSZES cs ON T_OSZTALYCSOPORT_OSSZES.ID = cs.ID where T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F' and (T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = @OktNevKatTipus OR @OktNevKatTipus IS NULL) and T_TANEV_OSSZES.TOROLT = 'F' " + (tanevId.IsEntityId() ? @"and T_OSZTALYCSOPORT_OSSZES.C_TANEVID = :pTanevId" : " ") + @" and (T_TANEV_OSSZES.C_AKTIV = 'T' or T_TANEV_OSSZES.C_KOVETKEZO = 'T')" + (tanarId.HasValue && szuperOsztalyfonok.HasValue ? @" AND (" + (szuperOsztalyfonok.Value ? "cs.ID IS NULL OR" : "T_OSZTALY_OSSZES.C_OSZTALYFONOKID = :pTanarID OR T_OSZTALY_OSSZES.C_OFOHELYETTESID = :pTanarID OR") + @" cs.C_CSOPORTVEZETOID = :pTanarID) " : " ") + @" ORDER BY Csoport ASC, NumberOrder ASC, NumberAndTextOrder ASC, T_OSZTALYCSOPORT_OSSZES.C_NEV ASC "; var param = new List(); if (feladatKategoria.HasValue) { param.Add(new CommandParameter("OktNevKatTipus", (int)feladatKategoria)); } else { param.Add(new CommandParameter("OktNevKatTipus", DBNull.Value)); } if (tanevId.IsEntityId()) { param.Add(new CommandParameter("pTanevId", tanevId)); } if (tanarId.HasValue) { param.Add(new CommandParameter("pTanarID", tanarId.Value)); } var ds = this.GetData(commandText, param); return ds; } public DataSet GetOsztalyEsBontottCsoportjai(int osztalyId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.Text; command.CommandText = @" SELECT kocs.ID AS Id FROM fnGetKapcsolodoOsztalycsoportok(@osztalyCsoportId) kocs LEFT JOIN T_CSOPORT cs ON cs.ID = kocs.ID AND cs.C_OSZTALYBONTASID IS NULL WHERE cs.ID IS NULL "; command.Parameters.Add("osztalyCsoportId", SDADBType.Int).Value = osztalyId; var ds = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } return ds; } } /// /// Törli az osztály/csoporthoz tartozó rendszerüzenet felhasználós tanulóeseményeket. /// private void DeleteOsztalyCsoportTanuloEsemny(int osztalyCsoportId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.Text; command.CommandText = "DELETE FROM T_OSZTALYCSOPORT_TANULOESEMENY WHERE C_OSZTALYCSOPORTID = :pOsztalyCsoportId"; command.Parameters.Add("pOsztalyCsoportId", osztalyCsoportId); command.ExecuteNonQuery(); } } public DataSet GetOsztalyTanuloinakKepzesiJellemzoi(int tanevId, int intezmenyId, int osztalyId, int jegyzekTipus, bool isAktivTanev) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspGetOsztalyTanuloinakKepzesiJellemzoi"; command.Parameters.Add("pTanevId", tanevId); command.Parameters.Add("pIntezmenyId", intezmenyId); command.Parameters.Add("pOsztalyId", osztalyId); command.Parameters.Add("pJegyzekTipus", jegyzekTipus); command.Parameters.Add("pIsAktivTanev", isAktivTanev); var ds = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } return ds; } } public DataSet GetOsztalyTanuloiByKepzesiJellemzok(TanuloKepzesiJellemzoPco pco, int tanevId, int intezmenyId, bool isAktivTanev) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspGetOsztalyTanuloiByKepzesiJellemzok"; command.Parameters.Add("pTanevId", tanevId); command.Parameters.Add("pIntezmenyId", intezmenyId); command.Parameters.Add("pOsztalyId", pco.OsztalyId); command.Parameters.Add("pJegyzekTipus", pco.JegyzekTipus); command.Parameters.Add("pIsAktivTanev", isAktivTanev); if (pco.AgazatId.HasValue) { command.Parameters.Add("pAgazatId", pco.AgazatId); } if (pco.AgazatUjSzktTipusId.HasValue) { command.Parameters.Add("pAgazatUjSzktTipusId", pco.AgazatUjSzktTipusId); } if (pco.ReszszakkepesitesId.HasValue) { command.Parameters.Add("pReszszakkepesitesId", pco.ReszszakkepesitesId); } if (pco.SzakiranyNktTipusId.HasValue) { command.Parameters.Add("pSzakiranyNktTipusId", pco.SzakiranyNktTipusId); } if (pco.SzakkepesitesId.HasValue) { command.Parameters.Add("pSzakkepesitesId", pco.SzakkepesitesId); } if (pco.SzakkepesitesNktTipusId.HasValue) { command.Parameters.Add("pSzakkepesitesNktTipusId", pco.SzakkepesitesNktTipusId); } if (pco.SzakmacsoportId.HasValue) { command.Parameters.Add("pSzakmacsoportId", pco.SzakmacsoportId); } if (pco.SzakmairanyTipusId.HasValue) { command.Parameters.Add("pSzakmairanyTipusId", pco.SzakmairanyTipusId); } if (pco.SzakmaTipusId.HasValue) { command.Parameters.Add("pSzakmaTipusId", pco.SzakmaTipusId); } if (pco.TanulmanyiTeruletNktTipusId.HasValue) { command.Parameters.Add("pTanulmanyiTeruletNktTipusId", pco.TanulmanyiTeruletNktTipusId); } if (pco.AgazatReszSzakmaTipusId.HasValue) { command.Parameters.Add("pAgazatReszSzakmaTipusId", pco.AgazatReszSzakmaTipusId); } if (pco.SzakmaReszSzakmaTipusId.HasValue) { command.Parameters.Add("pSzakmaReszSzakmaTipusId", pco.SzakmaReszSzakmaTipusId); } if (pco.ReszSzakmaTipusId.HasValue) { command.Parameters.Add("pReszSzakmaTipusId", pco.ReszSzakmaTipusId); } var ds = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } return ds; } } public DataSet GetOsztalyTanuloinakSzamaKepzesiJellemzokSzerint(int osztalyId, int tanevId, int intezmenyId, bool isAktivTanev) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspGetOsztalyTanuloinakSzamaKepzesiJellemzokSzerint"; command.Parameters.Add("pTanevId", tanevId); command.Parameters.Add("pIntezmenyId", intezmenyId); command.Parameters.Add("pOsztalyId", osztalyId); command.Parameters.Add("pIsAktivTanev", isAktivTanev); var ds = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } return ds; } } public DataSet GetOsztalyMunkarendSzama(int osztalyCsoportId, bool isAktivTanev) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspGetOsztalyTanuloinakMunkarendje"; command.Parameters.Add("pIsAktivTanev", isAktivTanev); command.Parameters.Add("pOsztalyCsoportId", osztalyCsoportId); var ds = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } return ds; } } public DataSet GetOsztalyTanuloiByMunkarend(int osztalycsoportId, bool hasMunkarend, bool isAktivTanev) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspGetOsztalyTanuloiByMunkarend"; command.Parameters.Add("pOsztalycsoportId", osztalycsoportId); command.Parameters.Add("pHasMunkarend", hasMunkarend); command.Parameters.Add("pIsAktivTanev", isAktivTanev); var ds = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } return ds; } } public void UpdateOsztalyTanuloiReszszakepzesAdatokToNull(int osztalyId, int tanevId, int intezmenyId, int felhasznaloId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspUpdateOsztalyTanuloiReszszakepzesAdatok"; command.Parameters.Add("pOsztalyId", osztalyId); command.Parameters.Add("pTanevId", tanevId); command.Parameters.Add("pIntezmenyId", intezmenyId); command.Parameters.Add("pModifier", felhasznaloId); command.ExecuteNonQuery(); DalHelper.Commit(); } } public void UpdateOsztalySZMKKepviseloIdToNull(int osztalyId, int tanevId, int intezmenyId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.Text; command.CommandText = @"UPDATE T_OSZTALY SET C_SZMKKEPVISELOID = NULL WHERE (ID = :pOsztalyId AND C_ALINTEZMENYID = :pIntezmenyId AND C_ALTANEVID = :pTanevId)"; command.Parameters.Add("pOsztalyId", osztalyId); command.Parameters.Add("pTanevId", tanevId); command.Parameters.Add("pIntezmenyId", intezmenyId); command.ExecuteNonQuery(); DalHelper.Commit(); } } public void UpdateOsztalySZMKKepviseloHelyettesIdToNull(int osztalyId, int tanevId, int intezmenyId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.Text; command.CommandText = @"UPDATE T_OSZTALY SET C_SZMKKEPVISELOHELYETTESID = NULL WHERE (ID = :pOsztalyId AND C_ALINTEZMENYID = :pIntezmenyId AND C_ALTANEVID = :pTanevId)"; command.Parameters.Add("pOsztalyId", osztalyId); command.Parameters.Add("pTanevId", tanevId); command.Parameters.Add("pIntezmenyId", intezmenyId); command.ExecuteNonQuery(); DalHelper.Commit(); } } } }