using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using Kreta.Core; using Kreta.Core.Logic; using Kreta.DataAccess.Interfaces; using Kreta.DataAccessManual.Interfaces; using Kreta.DataAccessManual.ParameterClasses; using Kreta.DataAccessManual.Util; using Kreta.Enums; using Kreta.Enums.ManualEnums; using Kreta.Framework; using Kreta.Framework.Util; using Kreta.Resources; using SDA.DataProvider; using SDA.Kreta.Entities; namespace Kreta.DataAccessManual { internal class OsztalyCsoportDal : DataAccessBase, IOsztalyCsoportDal { public OsztalyCsoportDal(DalHandler handler, GridParameters parameters) : base(handler, parameters) { } public OsztalyCsoportDal(DalHandler handler) : base(handler) { } public DataSet GetOsztalyCSoportok(string osztaly, string csoport, int evfolyamTipus = -1, bool isCsoportTipusaKell = true) { const string commandText = @" Select ocs.ID, ocs.C_NEV AS Nev, ocs.C_EVFOLYAMTIPUSA Evfolyam, CASE WHEN Osztaly IS NOT NULL THEN :pOsztaly ELSE :pCsoport END AS GroupName, cs.C_TIPUSA AS CsoportTipusa From( SELECT [ID] ,[C_NEV] ,[C_EVFOLYAMTIPUSA] FROM [T_OSZTALYCSOPORT] Where TOROLT = 'F' AND T_OSZTALYCSOPORT.C_FELADATKATEGORIAID = @OktNevKatTipus) AS ocs Left Join (SELECT T_OSZTALY.[ID], 'T' AS Osztaly FROM [T_OSZTALY] INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = T_OSZTALY.ID AND OsztalyCsoport.C_FELADATKATEGORIAID = @OktNevKatTipus) AS o on o.ID = ocs.ID LEFT JOIN (SELECT T_CSOPORT.ID, C_TIPUSA FROM T_CSOPORT INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = T_CSOPORT.ID AND OsztalyCsoport.C_FELADATKATEGORIAID = @OktNevKatTipus WHERE T_CSOPORT.TOROLT = 'F') AS cs ON cs.ID = ocs.ID "; var prams = new List { new CommandParameter("pOsztaly", osztaly), new CommandParameter("pCsoport", csoport) ,new CommandParameter("OktNevKatTipus", (int)OktNevelesiKategoriaEnum.NevelesOktatas) }; if (evfolyamTipus.IsEntityId()) { prams.Add(new CommandParameter("pevfolyamTipus", evfolyamTipus)); } var ds = this.GetData(commandText, prams, dictionaryItemColumns: "CsoportTipusa"); if (isCsoportTipusaKell) { foreach (DataRow row in ds.Tables[0].Rows) { if (!string.IsNullOrWhiteSpace(row["CsoportTipusa_DNAME"] as string)) { row["Nev"] += (" - " + (row["CsoportTipusa_DNAME"] as string)); } } } return ds; } public bool IsOsztalyCsoportNemTanoraiCeluCsoport(int osztalyCsoportId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspGetIsOsztalyCsoportNemTanoraiCeluCsoport"; command.Parameters.Add("pOsztalyCsoportId", osztalyCsoportId); var result = Convert.ToBoolean(command.ExecuteScalar()); return result; } } public DataSet GetOsztalyCsoportokGroupedByKapcsolodas(int userId) { var commandParameterList = new Dictionary { { "felhasznaloId", userId } }; var result = GetOsztalyCsoportokDataSet("sp_GetFelhasznaloErintettOsztalyai", commandParameterList); return result; } public DataSet GetOsztalyCsoportokGroupedByFoglalkozas(int userId) { var osztalyGroupName = CommonResource.Osztaly; /*Osztály*/ var csoportGroupName = CommonResource.Csoport; /*Csoport*/ var commandParameterList = new Dictionary { { "felhasznaloId", userId }, { "osztaly", osztalyGroupName }, { "csoport", csoportGroupName } }; var result = GetOsztalyCsoportokDataSet("sp_GetFelhasznaloOsztalyaiByFoglalkozas", commandParameterList); return result; } public DataSet GetFelhasznaloOsztalyaiByFoglalkozasAndOsztfo(int intezmenyId, int tanevId, int userId, string osztalyGroupName, string csoportGroupName, bool isKellCsoportvezeto = false) { var commandParameterList = new Dictionary { { "pFelhasznaloId", userId }, { "pOsztalyGroupName", osztalyGroupName }, { "pCsoportGroupName", csoportGroupName }, { "pTanevId", tanevId }, { "pIntezmenyId", intezmenyId }, { "pIsKellCsoportVezeto", isKellCsoportvezeto } }; var result = GetOsztalyCsoportokDataSet("uspGetFelhasznaloOsztalyaiByFoglalkozasAndOsztfo", commandParameterList); return result; } public DataSet GetVezetettOsztalyCsoportokByAlkalmazott(int tanevId, int alkalmazottId) { 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 = "uspGetVezetettOsztalyCsoportokByAlkalmazott"; command.Parameters.Add("pAlkalmazottId", SDADBType.Int).Value = alkalmazottId; command.Parameters.Add("pTanevID", SDADBType.Int).Value = tanevId; using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } DataTable dt = SortingAndPaging(ds.Tables[0], GridParameters); return dt.AsDataSet(); } } public DataSet GetOsztalyCsoportokForFeljegyzesek(int userId) { var commandParameterList = new Dictionary { { "felhasznaloId", userId } }; var result = GetOsztalyCsoportokDataSet("sp_GetOsztalyCsoportokForFeljegyzesek", commandParameterList); return result; } public DataSet GetOsztalyCsoportokGrouped(int? feladatKategoriaId) { Dictionary paramList = new Dictionary(); if (feladatKategoriaId.IsEntityId()) { paramList.Add("pFeladatKategoriaId", feladatKategoriaId); } else { paramList.Add("pFeladatKategoriaId", DBNull.Value); } var result = GetOsztalyCsoportokDataSet("sp_GetAllOsztalyCsoport", paramList); return result; } public DataSet GetOsztalyCsoportokDataSet(string commandText, Dictionary commandParameterList) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = commandText; if (commandParameterList != null) { foreach (KeyValuePair commandParameter in commandParameterList) { command.Parameters.Add(commandParameter.Key, commandParameter.Value); } } var ds = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } DalHelper.Commit(); if (ds.Tables[0].Columns.Contains("CsoportTipusa")) { foreach (DataRow row in ds.Tables[0].Rows) { if (int.TryParse(row["CsoportTipusa"].ToString(), out int csoportTipusa)) { row["Nev"] += " - " + csoportTipusa.GetItemNameFromCache(UserContext.Instance.AktivTanevId); } } } return ds; } } public DataSet GetOsztalyCSoportokEvfolyamAlapjan(string osztaly, string csoport, int evfolyamTipus = -1) { var commandText = @" Select ocs.ID, ocs.C_NEV AS Nev, ocs.C_EVFOLYAMTIPUSA Evfolyam, CASE WHEN Osztaly IS NOT NULL THEN :pOsztaly ELSE :pCsoport END AS GroupName, cs.C_TIPUSA AS CsoportTipusa From( SELECT [ID] ,[C_NEV] ,[C_EVFOLYAMTIPUSA] FROM [T_OSZTALYCSOPORT] Where TOROLT = 'F' AND T_OSZTALYCSOPORT.C_FELADATKATEGORIAID = @OktNevKatTipus " + (evfolyamTipus.IsEntityId() ? " and C_EVFOLYAMTIPUSA = :pevfolyamTipus" : string.Empty) + @") AS ocs Left Join (SELECT T_OSZTALY.[ID], 'T' AS Osztaly FROM [T_OSZTALY] INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = T_OSZTALY.ID AND OsztalyCsoport.C_FELADATKATEGORIAID = @OktNevKatTipus) AS o on o.ID = ocs.ID LEFT JOIN (SELECT T_CSOPORT.ID, C_TIPUSA FROM T_CSOPORT INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = T_CSOPORT.ID AND OsztalyCsoport.C_FELADATKATEGORIAID = @OktNevKatTipus WHERE T_CSOPORT.TOROLT = 'F') AS cs ON cs.ID = ocs.ID "; var prams = new List { new CommandParameter("pOsztaly", osztaly), new CommandParameter("pCsoport", csoport), new CommandParameter("pevfolyamTipus", evfolyamTipus) ,new CommandParameter("OktNevKatTipus", (int)OktNevelesiKategoriaEnum.NevelesOktatas) }; var ds = this.GetData(commandText, prams, dictionaryItemColumns: "CsoportTipusa"); foreach (DataRow row in ds.Tables[0].Rows) { if (!string.IsNullOrWhiteSpace(row["CsoportTipusa_DNAME"] as string)) { row["Nev"] += (" - " + (row["CsoportTipusa_DNAME"] as string)); } } return ds; } public DataSet GetOsztalyCsoportListByEvfolyam(int intezmenyId, int tanevId, string osztaly, string csoport, int evfolyamTipus = -1, int? tanarId = null, bool isOsszefuggoSzakGyak = false, int? feladatKategoriaId = null, bool? csakOsztalyEsTanoraJelleguCsoport = null, bool? isDualisKepzes = null, int? szervezetId = null, int? szervezetAdatokHalmaza = null) { if (isDualisKepzes.HasValue && isDualisKepzes.Value) { isOsszefuggoSzakGyak = false; } var isWhereClauseNeeded = isOsszefuggoSzakGyak || csakOsztalyEsTanoraJelleguCsoport == true || isDualisKepzes == true; var commandText = @" SELECT CASE WHEN ocs.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(ocs.C_NEV,9) AS INT) ELSE 2147483647 END NumberOrder ,CASE WHEN LEFT(ocs.C_NEV, 1) BETWEEN '0' AND '9' AND ocs.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(ocs.C_NEV, 1, PATINDEX('%[^0-9]%', ocs.C_NEV) - 1),9) AS INT) ELSE 2147483647 END NumberAndTextOrder ,ocs.ID AS ID ,ocs.C_NEV AS Nev ,ocs.C_EVFOLYAMTIPUSA AS Evfolyam ,CASE WHEN Osztaly IS NOT NULL THEN :pOsztaly ELSE :pCsoport END AS GroupName ,cs.C_TIPUSA AS CsoportTipusa FROM ( SELECT DISTINCT ocsossz.[ID] ,ocsossz.[C_NEV] ,ocsossz.[C_EVFOLYAMTIPUSA] ,ocsossz.C_TANEVID FROM [T_OSZTALYCSOPORT_OSSZES] as ocsossz " + (tanarId.HasValue ? " INNER JOIN T_FOGLALKOZAS_OSSZES foglalkozas ON ocsossz.ID = foglalkozas.C_OSZTALYCSOPORTID AND foglalkozas.C_TANARID = :pTanarId AND foglalkozas.TOROLT = 'F' AND foglalkozas.C_TANEVID = ocsossz.C_TANEVID " + " INNER JOIN T_FOGLALKOZAS_OSSZES DualisFoglalkozas ON ocsossz.ID = DualisFoglalkozas.C_OSZTALYCSOPORTID AND DualisFoglalkozas.TOROLT = 'F' AND DualisFoglalkozas.C_TANEVID = ocsossz.C_TANEVID" + (isDualisKepzes == true ? " AND DualisFoglalkozas.C_FOGLALKOZASTIPUSA = 8999" : " AND DualisFoglalkozas.C_FOGLALKOZASTIPUSA <> 8999 ") : string.Empty) + $@" WHERE ocsossz.C_TANEVID = :pTanevId AND ocsossz.TOROLT = 'F' AND (ocsossz.C_FELADATKATEGORIAID = @{nameof(feladatKategoriaId)} OR @{nameof(feladatKategoriaId)} IS NULL)" + (evfolyamTipus.IsEntityId() ? " AND C_EVFOLYAMTIPUSA = :pevfolyamTipus" : string.Empty) + $@") AS ocs LEFT JOIN ( SELECT T_OSZTALY_OSSZES.[ID] ,'T' AS Osztaly ,T_OSZTALY_OSSZES.C_ALTANEVID FROM [T_OSZTALY_OSSZES] INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = T_OSZTALY_OSSZES.ID AND OsztalyCsoport.TOROLT = 'F' AND OsztalyCsoport.C_TANEVID = T_OSZTALY_OSSZES.C_ALTANEVID AND (OsztalyCsoport.C_FELADATKATEGORIAID = @{nameof(feladatKategoriaId)} OR @{nameof(feladatKategoriaId)} IS NULL)) AS o ON o.ID = ocs.ID AND o.C_ALTANEVID = ocs.C_TANEVID LEFT JOIN ( SELECT T_CSOPORT_OSSZES.ID ,T_CSOPORT_OSSZES.C_TIPUSA ,T_CSOPORT_OSSZES.C_ALTANEVID FROM T_CSOPORT_OSSZES INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = T_CSOPORT_OSSZES.ID AND OsztalyCsoport.TOROLT = 'F' AND OsztalyCsoport.C_TANEVID = T_CSOPORT_OSSZES.C_ALTANEVID AND (OsztalyCsoport.C_FELADATKATEGORIAID = @{nameof(feladatKategoriaId)} OR @{nameof(feladatKategoriaId)} IS NULL) {(isDualisKepzes == true && szervezetId.IsEntityId() && szervezetAdatokHalmaza != (int)SzervezetAdatokHalmazaEnum.Szervezet ? "INNER JOIN (SELECT ID FROM fnGetLathatoSzervezetek(:pIntezmenyId, :pTanevId, :pSzervezetId, :pSzervezetAdatokHalmaza)) lathatok ON lathatok.ID = T_CSOPORT_OSSZES.C_SZERVEZETID" : string.Empty)} WHERE T_CSOPORT_OSSZES.TOROLT = 'F' {(isDualisKepzes == true && szervezetId.IsEntityId() && szervezetAdatokHalmaza == (int)SzervezetAdatokHalmazaEnum.Szervezet ? $" AND T_CSOPORT_OSSZES.C_SZERVEZETID = :pSzervezetId" : string.Empty)} ) AS cs ON cs.ID = ocs.ID AND cs.C_ALTANEVID = ocs.C_TANEVID " + (isWhereClauseNeeded ? " WHERE 1=1 " : string.Empty) + (isOsszefuggoSzakGyak ? " AND cs.C_TIPUSA = :pSzakmaiGyakorlatiCsoportTipus" : string.Empty) + (csakOsztalyEsTanoraJelleguCsoport == true ? " AND (Osztaly IS NOT NULL OR (Osztaly IS NULL AND cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(:pTanevId)))) " : string.Empty) + (isDualisKepzes == true ? " AND cs.C_TIPUSA = 8831" : string.Empty) + @" ORDER BY GroupName DESC, NumberOrder ASC, NumberAndTextOrder ASC, ocs.C_NEV ASC, CsoportTipusa ASC"; var prams = new List { new CommandParameter("pOsztaly", osztaly), new CommandParameter("pCsoport", csoport), new CommandParameter("pevfolyamTipus", evfolyamTipus), new CommandParameter("pTanevId", tanevId), new CommandParameter("pSzakmaiGyakorlatiCsoportTipus", (int)CsoportTipusEnum.OsszefuggoSzakmaiGyakorlatiCsoport) }; if (tanarId.HasValue) { prams.Add(new CommandParameter("pTanarId", tanarId.Value)); } if (feladatKategoriaId.IsEntityId()) { prams.Add(new CommandParameter(nameof(feladatKategoriaId), feladatKategoriaId)); } else { prams.Add(new CommandParameter(nameof(feladatKategoriaId), DBNull.Value)); } if (isDualisKepzes == true && szervezetId.IsEntityId() && szervezetAdatokHalmaza.HasValue) { prams.Add(new CommandParameter("pIntezmenyId", intezmenyId)); prams.Add(new CommandParameter("pSzervezetId", szervezetId.Value)); prams.Add(new CommandParameter("pSzervezetAdatokHalmaza", szervezetAdatokHalmaza.Value)); } var ds = GetData(commandText, prams, dictionaryItemColumns: "CsoportTipusa"); foreach (DataRow row in ds.Tables[0].Rows) { if (!string.IsNullOrWhiteSpace(row["CsoportTipusa_DNAME"] as string)) { row["Nev"] += " - " + (row["CsoportTipusa_DNAME"] as string); } } return ds; } public DataSet GetCsoportListByCsoportVezeto(int tanevId, int tanarId, bool isTanoraiCeluCsoportok, int tanoraiCsoportTipusId, bool isSzuperOsztalyfonok, bool? szervezetTipusId = null, int? szervezetId = null) { var prams = new List { new CommandParameter("pTanevId", tanevId), new CommandParameter("pTanarId", tanarId), new CommandParameter("pTanoraiCsoportTipusId", tanoraiCsoportTipusId) }; var commandText = @" SELECT Csoport.ID Id ,OsztalyCsoport.C_NEV Nev ,'Csoport' GroupName FROM T_CSOPORT_OSSZES Csoport INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON Csoport.ID = OsztalyCsoport.ID LEFT JOIN T_SZERVEZET_OSSZES Szervezet ON Szervezet.ID = Csoport.C_SZERVEZETID AND Szervezet.C_TANEVID = Csoport.C_ALTANEVID WHERE Csoport.C_ALTANEVID = :pTanevId AND Csoport.TOROLT = 'F' AND OsztalyCsoport.C_TANEVID = :pTanevId AND OsztalyCsoport.TOROLT = 'F'"; if (!isTanoraiCeluCsoportok) { commandText += @"AND (C_TIPUSA != :pTanoraiCsoportTipusId)"; } if (!isSzuperOsztalyfonok) { commandText += @"AND (C_CSOPORTVEZETOID = :pTanarId)"; } if(szervezetTipusId.HasValue) { prams.Add(new CommandParameter("pSzervezetTipusId", szervezetTipusId)); commandText += @" AND Szervezet.C_TIPUS = :pSzervezetTipusId"; } else { commandText += @" AND Szervezet.C_TIPUS IS NULL "; } if(szervezetId.HasValue) { prams.Add(new CommandParameter("pSzervezetId", szervezetId)); commandText += @" AND C_SZERVEZETID = :pSzervezetId"; } else { commandText += @" AND C_SZERVEZETID IS NULL "; } return GetData(commandText, prams); } public DataSet GetOsztalyCsoportokEvfolyamAndTanevAlapjan(int tanevId, string osztaly, string csoport, int evfolyamTipus = -1) { var commandText = @" SELECT CASE WHEN ocs.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(ocs.C_NEV,9) AS INT) ELSE 2147483647 END NumberOrder, CASE WHEN LEFT(ocs.C_NEV, 1) BETWEEN '0' AND '9' AND ocs.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(ocs.C_NEV, 1, PATINDEX('%[^0-9]%', ocs.C_NEV) - 1),9) AS INT) ELSE 2147483647 END NumberAndTextOrder, ocs.ID, ocs.C_NEV AS Nev, ocs.C_EVFOLYAMTIPUSA Evfolyam, CASE WHEN Osztaly IS NOT NULL THEN :pOsztaly ELSE :pCsoport END AS GroupName, cs.C_TIPUSA AS CsoportTipusa FROM ( SELECT T_OSZTALYCSOPORT_OSSZES.[ID] ,T_OSZTALYCSOPORT_OSSZES.[C_NEV] ,T_OSZTALYCSOPORT_OSSZES.[C_EVFOLYAMTIPUSA] FROM [T_OSZTALYCSOPORT_OSSZES] WHERE C_TANEVID = :pTanevId AND TOROLT = 'F' AND T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = @OktNevKatTipus " + (evfolyamTipus.IsEntityId() ? " and C_EVFOLYAMTIPUSA = :pevfolyamTipus" : string.Empty) + @") AS ocs LEFT JOIN (SELECT T_OSZTALY_OSSZES.ID, 'T' AS Osztaly FROM T_OSZTALY_OSSZES INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = T_OSZTALY_OSSZES.ID AND OsztalyCsoport.C_FELADATKATEGORIAID = @OktNevKatTipus AND OsztalyCsoport.TOROLT = 'F' AND OsztalyCsoport.C_TANEVID = T_OSZTALY_OSSZES.C_ALTANEVID WHERE T_OSZTALY_OSSZES.TOROLT = 'F' AND T_OSZTALY_OSSZES.C_ALTANEVID = :pTanevId ) AS o on o.ID = ocs.ID LEFT JOIN (SELECT T_CSOPORT_OSSZES.ID, C_TIPUSA FROM T_CSOPORT_OSSZES INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = T_CSOPORT_OSSZES.ID AND OsztalyCsoport.C_FELADATKATEGORIAID = @OktNevKatTipus AND OsztalyCsoport.TOROLT = 'F' AND OsztalyCsoport.C_TANEVID = T_CSOPORT_OSSZES.C_ALTANEVID WHERE T_CSOPORT_OSSZES.TOROLT = 'F' AND T_CSOPORT_OSSZES.C_ALTANEVID = :pTanevId ) AS cs ON cs.ID = ocs.ID ORDER BY GroupName DESC, NumberOrder ASC, NumberAndTextOrder ASC, ocs.C_NEV ASC, CsoportTipusa ASC"; var prams = new List { new CommandParameter("pTanevId", tanevId), new CommandParameter("pOsztaly", osztaly), new CommandParameter("pCsoport", csoport), new CommandParameter("pevfolyamTipus", evfolyamTipus) ,new CommandParameter("OktNevKatTipus", (int)OktNevelesiKategoriaEnum.NevelesOktatas) }; var ds = this.GetData(commandText, prams, dictionaryItemColumns: "CsoportTipusa"); foreach (DataRow row in ds.Tables[0].Rows) { if (!string.IsNullOrWhiteSpace(row["CsoportTipusa_DNAME"] as string)) { row["Nev"] += (" - " + (row["CsoportTipusa_DNAME"] as string)); } } return ds; } /// INFO @DevKornel: Mobil használja public DataSet GetOsztalyCsoportok(int tanevId, int? feladatKategoriaId, bool isAktiv = false, bool isFromSzervezet = false, List osztalyfonokIds = null, List tanuloIds = null, int? oktatasiNevelesiFeladatId = null) { 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 = "uspGetTanuloOsztalyCsoportjai"; command.Parameters.Add("pTanuloIds", SqlLogic.ParseListToParameter(tanuloIds)); command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId; command.Parameters.Add("pIsAktiv", SDADBType.Int).Value = isAktiv ? 1 : 0; command.Parameters.Add("pIsFromSzervezet", SDADBType.Int).Value = isFromSzervezet ? 1 : 0; command.Parameters.Add("pOsztalyfonokIds", SqlLogic.ParseListToParameter(osztalyfonokIds)); command.Parameters.Add("pFeladatKategoriaId", feladatKategoriaId.IsEntityId() ? (int)feladatKategoriaId : (object)DBNull.Value); command.Parameters.Add("pOktatasiNevelesiFeladatId", oktatasiNevelesiFeladatId.HasValue ? (int)oktatasiNevelesiFeladatId : (object)DBNull.Value); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } SetDNAME(ds.Tables[0], "EvFolyamTipus,CsoportTipus,KepzesiForma,FeladatKategoriaId,OktatasiNevelesiFeladatId"); SetBoolFields(ds.Tables[0], "IsCsoport"); DataTable dt = SortingAndPaging(ds.Tables[0], GridParameters); return dt.AsDataSet(); } } public DataSet GetOsztalyCsoportokWithTanev(int tanevId) { const string commandText = @" SELECT CASE WHEN ocs.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(ocs.C_NEV,9) AS INT) ELSE 2147483647 END NumberOrder, CASE WHEN LEFT(ocs.C_NEV, 1) BETWEEN '0' AND '9' AND ocs.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(ocs.C_NEV, 1, PATINDEX('%[^0-9]%', ocs.C_NEV) - 1),9) AS INT) ELSE 2147483647 END NumberAndTextOrder, ocs.ID ,ocs.C_NEV AS OsztalyCsoport ,t.C_NEV AS Tanev ,cs.C_TIPUSA AS CsoportTipusa ,ocs.C_EVFOLYAMTIPUSA AS Evfolyam ,dic.C_ORDER FROM ( SELECT [ID] ,[C_NEV] ,[C_TANEVID] ,[C_EVFOLYAMTIPUSA] FROM [T_OSZTALYCSOPORT_OSSZES] Where [TOROLT] = 'F') AS ocs INNER JOIN ( SELECT [ID] ,[C_NEV] FROM [T_TANEV_OSSZES] WHERE [TOROLT] = 'F' AND ID = :pTanevId) AS t On t.ID = ocs.C_TANEVID LEFT JOIN (SELECT ID, C_TIPUSA FROM T_CSOPORT_OSSZES WHERE TOROLT = 'F' AND C_ALTANEVID = :pTanevId) AS cs ON cs.ID = ocs.ID LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dic ON dic.ID = ocs.C_EVFOLYAMTIPUSA AND dic.TOROLT = 'F' AND dic.C_TANEVID = t.ID ORDER BY NumberOrder ASC, NumberAndTextOrder ASC, ocs.C_NEV ASC "; var prams = new List { new CommandParameter("pTanevId", tanevId) }; var ds = GetData(commandText, prams, dictionaryItemColumns: "CsoportTipusa"); foreach (DataRow row in ds.Tables[0].Rows) { if (!string.IsNullOrWhiteSpace(row["CsoportTipusa_DNAME"] as string)) { row["OsztalyCsoport"] += (" - " + (row["CsoportTipusa_DNAME"] as string)); } } return ds; } public DataSet GetOsztalyCsoportokTanoranKivuliFoglalkozasokhozWithGroup(bool csakOsztalyEsTanoraJelleguCsoport, int tanevId) { var prams = new List { new CommandParameter("pTanevId", tanevId) }; string commandText = $@" SELECT ocs.ID ,ocs.C_NEV AS OsztalyCsoport ,t.C_NEV AS Tanev ,cs.C_TIPUSA AS CsoportTipusa FROM ( SELECT ID ,C_NEV ,C_TANEVID FROM [T_OSZTALYCSOPORT_OSSZES] WHERE [TOROLT] = 'F' AND C_TANEVID = :pTanevId) AS ocs LEFT JOIN (SELECT ID, C_NEV FROM [T_TANEV_OSSZES] WHERE [TOROLT] = 'F' AND ID = :pTanevId) AS t ON t.ID = ocs.C_TANEVID LEFT JOIN (SELECT ID, C_TIPUSA FROM T_CSOPORT_OSSZES WHERE TOROLT = 'F' AND C_ALTANEVID = :pTanevId) AS cs ON cs.ID = ocs.ID LEFT JOIN (SELECT T_OSZTALY_OSSZES.ID FROM T_OSZTALY_OSSZES INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = T_OSZTALY_OSSZES.ID WHERE T_OSZTALY_OSSZES.TOROLT = 'F') Osztaly ON Osztaly.ID = ocs.ID "; if (csakOsztalyEsTanoraJelleguCsoport) commandText += " WHERE Osztaly.ID IS NOT NULL OR (Osztaly.ID IS NULL AND C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId)))"; var ds = GetData(commandText, prams, dictionaryItemColumns: "CsoportTipusa"); foreach (DataRow row in ds.Tables[0].Rows) { if (!string.IsNullOrWhiteSpace(row["CsoportTipusa_DNAME"] as string)) { row["OsztalyCsoport"] += (" - " + (row["CsoportTipusa_DNAME"] as string)); } } return ds; } public DataSet GetOsztalyokOsztalyfonokAlapjan(int osztalyfonokVagyHelyettesId) { var parameters = new List() { new CommandParameter("pOsztalyfonokId", osztalyfonokVagyHelyettesId) ,new CommandParameter("OktNevKatTipus", (int)OktNevelesiKategoriaEnum.NevelesOktatas) }; const string commandText = @" SELECT T_OSZTALYCSOPORT.ID, T_OSZTALYCSOPORT.C_NEV Nev, T_OSZTALYCSOPORT.C_EVFOLYAMTIPUSA Evfolyam FROM T_OSZTALYCSOPORT JOIN (SELECT T_OSZTALY.ID FROM T_OSZTALY INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = T_OSZTALY.ID AND OsztalyCsoport.C_FELADATKATEGORIAID = @OktNevKatTipus WHERE T_OSZTALY.C_OFOHELYETTESID = :pOsztalyfonokId OR T_OSZTALY.C_OSZTALYFONOKID = :pOsztalyfonokId) OSZTALY ON OSZTALY.ID = T_OSZTALYCSOPORT.ID JOIN T_DICTIONARYITEMBASE dic on dic.ID = T_OSZTALYCSOPORT.C_EVFOLYAMTIPUSA and dic.TOROLT = 'F' WHERE T_OSZTALYCSOPORT.TOROLT = 'F' AND T_OSZTALYCSOPORT.C_FELADATKATEGORIAID = @OktNevKatTipus ORDER BY dic.C_ORDER ASC, Nev ASC "; return GetData(commandText, parameters); } public DataSet GetKapcsolodoOsztalyCsoportokByTanarId(int tanarId, bool osztalyKell, bool csoportKell, bool tartottOraKell, OktNevelesiKategoriaEnum? feladatKategoria, string osztalyGroupName = null, string csoportGroupName = null) { var commandParameterList = new List { new CommandParameter("pTanarId", tanarId), new CommandParameter("pOsztalyKell", osztalyKell), new CommandParameter("pCsoportKell", csoportKell), new CommandParameter("pTartottOraKell", tartottOraKell), feladatKategoria.HasValue ? new CommandParameter("pOktNevKatTipus", (int) feladatKategoria) : new CommandParameter("pOktNevKatTipus", DBNull.Value), !string.IsNullOrWhiteSpace(osztalyGroupName) ? new CommandParameter("pOsztalyGroupName", osztalyGroupName) : new CommandParameter("pOsztalyGroupName", DBNull.Value), !string.IsNullOrWhiteSpace(csoportGroupName) ? new CommandParameter("pCsoportGroupName", csoportGroupName) : new CommandParameter("pCsoportGroupName", DBNull.Value), new CommandParameter("pTipusId", (int)GeneratedAdatszotarTipusEnum.EvfolyamTipus) }; string commandText = @" DECLARE @defaultEvfolyamId int SELECT @defaultEvfolyamId = (SELECT TOP 1 ID FROM T_DICTIONARYITEMBASE WHERE C_DICTIONARYTYPEID = :pTipusId AND C_VALUE = 1) DECLARE @kapcsolodoOsztalyCsoportok TABLE (ID int) INSERT INTO @kapcsolodoOsztalyCsoportok (ID) EXEC sp_GetTanarKapcsolodoOsztalyai @tanarId = :pTanarId ,@osztalyKell = :pOsztalyKell ,@csoportKell = :pCsoportKell ,@tartottOraKell = :pTartottOraKell ,@feladatKategoriaId = :pOktNevKatTipus SELECT DISTINCT CASE WHEN ocs.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(ocs.C_NEV, 9) AS int) ELSE 2147483647 END AS NumberOrder ,CASE WHEN LEFT(ocs.C_NEV, 1) BETWEEN '0' AND '9' AND ocs.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(ocs.C_NEV, 1, PATINDEX('%[^0-9]%', ocs.C_NEV) - 1),9) AS int) ELSE 2147483647 END AS NumberAndTextOrder ,ocs.ID AS ID ,ocs.C_NEV AS Nev ,ocs.C_EVFOLYAMTIPUSA AS Evfolyam " + (string.IsNullOrWhiteSpace(osztalyGroupName) || string.IsNullOrWhiteSpace(csoportGroupName) ? ",NULL AS GroupName" : @", CASE WHEN :pOsztalyGroupName IS NOT NULL AND :pCsoportGroupName IS NOT NULL THEN CASE WHEN o.ID IS NOT NULL THEN :pOsztalyGroupName ELSE :pCsoportGroupName END ELSE dib2.C_NAME END AS GroupName") + @" FROM T_OSZTALYCSOPORT ocs INNER JOIN @kapcsolodoOsztalyCsoportok kocs ON kocs.ID = ocs.ID INNER JOIN T_DICTIONARYITEMBASE dib ON dib.ID = ISNULL(ocs.C_EVFOLYAMTIPUSA, @defaultEvfolyamId) AND dib.TOROLT = 'F' LEFT JOIN T_OSZTALY o ON o.ID = ocs.ID AND o.TOROLT = 'F' "+(string.IsNullOrWhiteSpace(osztalyGroupName) || string.IsNullOrWhiteSpace(csoportGroupName) ? "" : "INNER JOIN T_DICTIONARYITEMBASE_OSSZES dib2 ON dib2.ID = ocs.C_FELADATKATEGORIAID AND dib2.C_TANEVID=ocs.C_TANEVID AND dib2.TOROLT='F'") + @" WHERE ocs.TOROLT = 'F' AND (:pOktNevKatTipus IS NULL OR ocs.C_FELADATKATEGORIAID = :pOktNevKatTipus) ORDER BY GroupName DESC ,NumberOrder ASC ,NumberAndTextOrder ASC ,Nev ASC "; return GetData(commandText, commandParameterList); } public DataSet GetOsztalyokOsztalyfonokAlapjan(int osztalyfonokVagyHelyettesId, int intezmenyId, int tanevId) { var parameters = new List() { new CommandParameter("pOsztalyfonokId", osztalyfonokVagyHelyettesId), new CommandParameter("pIntezmenyId", intezmenyId), new CommandParameter("pTanevId", tanevId) ,new CommandParameter("OktNevKatTipus", (int)OktNevelesiKategoriaEnum.NevelesOktatas) }; const string commandText = @" SELECT ocs.ID as ID ,ocs.C_NEV as Nev ,ocs.C_EVFOLYAMTIPUSA AS Evfolyam FROM T_OSZTALYCSOPORT_OSSZES ocs INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND (o.C_OFOHELYETTESID = :pOsztalyfonokId OR o.C_OSZTALYFONOKID = :pOsztalyfonokId) AND o.TOROLT='F' AND ocs.C_TANEVID = o.C_ALTANEVID WHERE ocs.TOROLT='F' AND ocs.C_TANEVID = :pTanevId AND ocs.C_FELADATKATEGORIAID = @OktNevKatTipus "; return GetData(commandText, parameters); } public DataSet GetOsztalyCsoportFoglalkozasAlapjan(int foglalkozasId) { const string commandText = @"select t_osztalycsoport.id ID, t_osztalycsoport.c_nev OsztalyCsoportNev from t_foglalkozas inner join t_osztalycsoport on t_foglalkozas.c_osztalycsoportid=t_osztalycsoport.id AND t_osztalycsoport.C_FELADATKATEGORIAID = @OktNevKatTipus where t_foglalkozas.id= :pFoglalkozasID"; var parameters = new List() { new CommandParameter("pFoglalkozasID", foglalkozasId) ,new CommandParameter("OktNevKatTipus", (int)OktNevelesiKategoriaEnum.NevelesOktatas) }; DataSet ds = GetData(commandText, parameters); return ds; } public List GetTanuloMindenkoriOsztalyCsoportjai(int tanuloId) { string commandText = $@" SELECT C_OSZTALYCSOPORTID ID FROM T_TANULOCSOPORT tanuloCsoport WHERE tanuloCsoport.TOROLT = 'F' AND tanuloCsoport.C_TANULOID = @{nameof(tanuloId)}"; var commandParameters = new List() { new CommandParameter(nameof(tanuloId), tanuloId) }; DataSet ds = GetData(commandText, commandParameters); return ds.Tables[0].AsEnumerable().Select(r => r.Field("ID")).ToList(); } public bool IsTanuloOsztalyCsoportTagja(int tanuloId, int osztalyCsoportId, DateTime? datum = null) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.Parameters.Add(nameof(tanuloId), tanuloId); command.Parameters.Add(nameof(osztalyCsoportId), osztalyCsoportId); command.Parameters.Add(nameof(datum), datum ?? DateTime.Today); command.CommandText = $@" SELECT ID FROM T_TANULOCSOPORT tanuloCsoport WHERE tanuloCsoport.C_TANULOID = @{nameof(tanuloId)} AND tanuloCsoport.C_OSZTALYCSOPORTID = @{nameof(osztalyCsoportId)} AND tanuloCsoport.C_BELEPESDATUM <= @{nameof(datum)} AND (tanuloCsoport.C_KILEPESDATUM IS NULL OR tanuloCsoport.C_KILEPESDATUM >= @{nameof(datum)}) "; var commandResult = command.ExecuteScalar(); bool result = (commandResult != null && commandResult != DBNull.Value); return result; } } public List GetTanuloOsztalyCsoportjaiIdList(int tanuloId, DateTime? datum = null) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; var parameters = new List { new CommandParameter(nameof(tanuloId), tanuloId), new CommandParameter(nameof(datum), datum ?? DateTime.Now) }; command.CommandText = $@" SELECT C_OSZTALYCSOPORTID ID FROM T_TANULOCSOPORT tanuloCsoport WHERE tanuloCsoport.C_TANULOID = @{nameof(tanuloId)} AND tanuloCsoport.C_BELEPESDATUM <= @{nameof(datum)} AND (tanuloCsoport.C_KILEPESDATUM IS NULL OR tanuloCsoport.C_KILEPESDATUM >= @{nameof(datum)}) AND tanuloCsoport.TOROLT = 'F' "; var ds = GetData(command.CommandText, parameters); return ds.Tables[0].AsEnumerable().Select(r => r.Field("ID")).ToList(); } } public DataSet GetTanuloBesorolasData(int intezmenyId, int tanevId, int tanuloId, int osztalyCsoportId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; var parameters = new List { new CommandParameter(nameof(intezmenyId), intezmenyId), new CommandParameter(nameof(tanevId), tanevId), new CommandParameter(nameof(tanuloId), tanuloId), new CommandParameter(nameof(osztalyCsoportId), osztalyCsoportId) }; command.CommandText = $@" SELECT tanuloCsoport.C_TANULOID ,tanuloCsoport.C_KILEPESDATUM ,tanuloCsoport.C_BELEPESDATUM ,felhasznalo.C_NYOMTATASINEV FROM T_TANULOCSOPORT_OSSZES tanuloCsoport LEFT JOIN T_FELHASZNALO_OSSZES felhasznalo ON felhasznalo.C_INTEZMENYID = @{nameof(intezmenyId)} AND felhasznalo.C_TANEVID = @{nameof(tanevId)} AND felhasznalo.TOROLT = 'F' AND felhasznalo.ID = tanuloCsoport.C_TANULOID WHERE tanuloCsoport.C_INTEZMENYID = @{nameof(intezmenyId)} AND tanuloCsoport.C_TANEVID = @{nameof(tanevId)} AND tanuloCsoport.TOROLT = 'F' AND tanuloCsoport.C_TANULOID = @{nameof(tanuloId)} AND tanuloCsoport.C_OSZTALYCSOPORTID = @{nameof(osztalyCsoportId)} "; var ds = GetData(command.CommandText, parameters); return ds; } } public DataSet GetTanuloBesorolasaiKisorolasaiDatumDataByTanuloIdList(List tanuloIdList, int osztalyCsoportId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; var parameters = new List { new CommandParameter(nameof(osztalyCsoportId), osztalyCsoportId) }; command.CommandText = $@" SELECT tanuloCsoport.C_TANULOID ,tanuloCsoport.C_KILEPESDATUM ,tanuloCsoport.C_BELEPESDATUM ,T_FELHASZNALO_OSSZES.C_NYOMTATASINEV FROM T_TANULOCSOPORT_OSSZES tanuloCsoport LEFT JOIN T_FELHASZNALO_OSSZES ON T_FELHASZNALO_OSSZES.ID = tanuloCsoport.C_TANULOID AND T_FELHASZNALO_OSSZES.TOROLT ='F' AND T_FELHASZNALO_OSSZES.C_TANEVID = tanuloCsoport.C_TANEVID WHERE tanuloCsoport.C_TANULOID IN ( {string.Join(",", tanuloIdList.ToArray())} ) AND tanuloCsoport.C_OSZTALYCSOPORTID = @{nameof(osztalyCsoportId)} AND tanuloCsoport.TOROLT = 'F'"; var ds = GetData(command.CommandText, parameters); return ds; } } /// INFO @DevKornel: Mobil használja public bool GetIsVegzosOsztalyCsoport(int osztalyCsoportId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.Parameters.Add("pOsztalyCsoportId", osztalyCsoportId); command.CommandText = @" SELECT ID FROM T_OSZTALYCSOPORT_OSSZES WHERE TOROLT = 'F' AND C_TANEVID = (SELECT ID FROM T_TANEV_OSSZES WHERE TOROLT = 'F' AND C_AKTIV = 'T') AND C_VEGZOSEVFOLYAM = 'T' AND ID = @pOsztalyCsoportId "; var result = command.ExecuteScalar(); bool ret = (result != null && result != DBNull.Value); return ret; } } public DataSet GetOsztalyCsoportDataSet(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) }; const string commandText = @" SELECT ocs.ID AS Id ,ocs.C_NEV AS Nev ,ocs.C_VEGZOSEVFOLYAM AS IsVegzosEvfolyam ,ocs.C_FELADATKATEGORIAID AS FeladatKategoriaId ,ocs.C_IMPORTALT AS Importalt ,IIF(o.ID IS NULL, 'F', 'T') AS IsOsztaly ,cs.C_OSZTALYBONTASID AS OsztalyBontasId ,cs.C_ISAUTOEGYENICSOPORT AS IsAutoEgyeniCsoport ,dib.C_ORDER AS EvfolyamTipusOrder ,ocs.C_FELADATELLATASIHELYID AS FeladatellatasiHelyId FROM T_OSZTALYCSOPORT_OSSZES ocs INNER JOIN T_DICTIONARYITEMBASE_OSSZES dib ON dib.ID = ocs.C_EVFOLYAMTIPUSA AND dib.C_TANEVID = ocs.C_TANEVID AND dib.TOROLT = 'F' LEFT JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.C_ALTANEVID = ocs.C_TANEVID AND o.TOROLT = 'F' LEFT JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID AND cs.C_ALTANEVID = ocs.C_TANEVID AND cs.TOROLT = 'F' WHERE ocs.C_TANEVID = :pTanevId AND ocs.TOROLT = 'F' AND (:pOktNevelesiKategoriaId IS NULL OR ocs.C_FELADATKATEGORIAID = :pOktNevelesiKategoriaId) "; return GetData(commandText, commandParameterList); } public bool GetIsOsztalyCsoportBontott(int osztalyCsoportId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.Parameters.Add("pOsztalyCsoportId", osztalyCsoportId); command.CommandText = @" SELECT COUNT(*) Counter FROM T_CSOPORT INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = T_CSOPORT.ID WHERE T_CSOPORT.TOROLT = 'F' AND T_CSOPORT.ID = :pOsztalyCsoportId AND T_CSOPORT.C_OSZTALYBONTASID IS NOT NULL "; var result = command.ExecuteScalar(); bool ret = Convert.ToInt32(result) == 1; return ret; } } public int? GetCsoportTipusByOsztalyCsoportId(int osztalyCsoportId, int intezmenyId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.Parameters.Add("pOsztalyCsoportId", osztalyCsoportId); command.Parameters.Add("pIntezmenyId", intezmenyId); command.CommandText = @" SELECT CASE WHEN T_CSOPORT_Osszes.C_TIPUSA is null THEN osztaly.OsztalyTipus Else T_CSOPORT_Osszes.C_TIPUSA END CsoportTipus FROM T_OSZTALYCSOPORT_Osszes left JOIN T_CSOPORT_Osszes ON T_CSOPORT_Osszes.ID = T_OSZTALYCSOPORT_Osszes.ID AND T_CSOPORT_Osszes.TOROLT = 'F' AND T_OSZTALYCSOPORT_Osszes.C_TANEVID = T_CSOPORT_Osszes.C_ALTANEVID left JOIN (select 1034 OsztalyTipus, T_OSZTALY_OSSZES.ID, T_OSZTALY_OSSZES.C_ALTANEVID from T_OSZTALY_OSSZES WHERE T_OSZTALY_OSSZES.TOROLT = 'F' ) osztaly ON osztaly.ID = T_OSZTALYCSOPORT_Osszes.ID AND osztaly.C_ALTANEVID = T_OSZTALYCSOPORT_Osszes.C_TANEVID WHERE T_OSZTALYCSOPORT_Osszes.c_intezmenyid = :pIntezmenyId and T_OSZTALYCSOPORT_Osszes.Torolt = 'F' and T_OSZTALYCSOPORT_Osszes.ID = :pOsztalyCsoportId "; var result = command.ExecuteScalar(); int? ret = null; if (result != null && result != DBNull.Value) { ret = Convert.ToInt32(result); } return ret; } } public bool GetIsCsoport(int osztalyCsoportId) { var parameters = new List { new CommandParameter("pOsztalyCsoportId", osztalyCsoportId) }; const string commandText = @" SELECT T_CSOPORT_OSSZES.ID ID FROM T_CSOPORT_OSSZES INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = T_CSOPORT_OSSZES.ID AND OsztalyCsoport.TOROLT = 'F' AND OsztalyCsoport.C_TANEVID = T_CSOPORT_OSSZES.C_ALTANEVID WHERE T_CSOPORT_OSSZES.TOROLT = 'F' AND T_CSOPORT_OSSZES.ID = :pOsztalyCsoportId "; var ds = GetData(commandText, parameters); return ds.Tables[0].Rows.Count > 0; } public bool GetIsCsoportTipusAlapjan(int osztalyCsoportId, int csoportTipusId) { var parameters = new List { new CommandParameter("pOsztalyCsoportId", osztalyCsoportId), new CommandParameter("pCsoportTipusId", csoportTipusId) }; const string commandText = @" SELECT cs.ID ID FROM T_CSOPORT_OSSZES cs INNER JOIN T_OSZTALYCSOPORT_OSSZES AS ocs ON ocs.ID = cs.ID AND ocs.TOROLT = 'F' AND ocs.C_TANEVID = cs.C_ALTANEVID WHERE cs.TOROLT = 'F' AND cs.ID = :pOsztalyCsoportId AND cs.C_TIPUSA = :pCsoportTipusId "; var ds = GetData(commandText, parameters); return ds.Tables[0].Rows.Count > 0; } public bool GetIsOsztaly(int osztalyCsoportId) { var parameters = new List { new CommandParameter("pOsztalyCsoportId", osztalyCsoportId), }; const string commandText = @" SELECT T_OSZTALY_OSSZES.ID ID FROM T_OSZTALY_OSSZES INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = T_OSZTALY_OSSZES.ID AND OsztalyCsoport.TOROLT = 'F' AND OsztalyCsoport.C_TANEVID = T_OSZTALY_OSSZES.C_ALTANEVID WHERE T_OSZTALY_OSSZES.TOROLT = 'F' AND T_OSZTALY_OSSZES.ID = :pOsztalyCsoportId "; var ds = GetData(commandText, parameters); return ds.Tables[0].Rows.Count > 0; } public DataSet GetCsoportTanuloinakSzakmajegyzeke(int tanevId, int csoportId, DateTime datum) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; var parameters = new List { new CommandParameter(nameof(tanevId), tanevId), new CommandParameter(nameof(csoportId), csoportId), new CommandParameter(nameof(datum), datum) }; command.CommandText = $@" SELECT ocs.C_NEV as 'CsoportNeve' ,tta.C_SZAKMATIPUSID as 'SzakmaTipusId' ,tta.C_SZAKMAIRANYTIPUSID as 'SzakmairanyTipusId' FROM T_OSZTALYCSOPORT_OSSZES ocs INNER JOIN T_TANULOCSOPORT_OSSZES cstcs ON ocs.ID = cstcs.C_OSZTALYCSOPORTID AND cstcs.C_TANEVID = ocs.C_TANEVID AND cstcs.TOROLT = ocs.TOROLT AND (cstcs.C_KILEPESDATUM IS NULL OR cstcs.C_KILEPESDATUM > @{nameof(datum)}) INNER JOIN T_TANULOCSOPORT_OSSZES otcs ON cstcs.C_TANULOID = otcs.C_TANULOID AND otcs.C_TANEVID = cstcs.C_TANEVID AND otcs.TOROLT = cstcs.TOROLT AND (otcs.C_KILEPESDATUM IS NULL OR otcs.C_KILEPESDATUM > @{nameof(datum)}) INNER JOIN T_OSZTALY_OSSZES o ON o.ID = otcs.C_OSZTALYCSOPORTID AND o.C_ALTANEVID = otcs.C_TANEVID AND o.TOROLT = otcs.TOROLT INNER JOIN T_OSZTALYCSOPORT_OSSZES ocso ON o.ID = ocso.ID AND ocso.C_TANEVID = o.C_ALTANEVID AND ocso.TOROLT = o.TOROLT AND ocso.C_FELADATKATEGORIAID = 7553 INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON otcs.ID = tta.C_TANULOCSOPORTID AND tta.C_TANEVID = otcs.C_TANEVID AND tta.TOROLT = otcs.TOROLT WHERE ocs.ID = @{nameof(csoportId)} AND ocs.C_TANEVID = @{nameof(tanevId)} AND ocs.TOROLT = 'F' GROUP BY ocs.C_NEV, tta.C_SZAKMATIPUSID, tta.C_SZAKMAIRANYTIPUSID "; var ds = GetData(command.CommandText, parameters); return ds; } } public DataSet GetTanulokSzakmajegyzeke(int tanevId, List tanuloIds, DateTime datum) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; var parameters = new List { new CommandParameter(nameof(tanevId), tanevId), new CommandParameter(nameof(datum), datum), }; command.CommandText = $@" SELECT tta.C_SZAKMATIPUSID as 'SzakmaTipusId' ,tta.C_SZAKMAIRANYTIPUSID as 'SzakmairanyTipusId' ,IIF(fh.C_NEVSORREND = 'T', fh.C_UTONEV + ' ' + fh.C_VEZETEKNEV, fh.C_VEZETEKNEV + ' ' + fh.C_UTONEV) as 'NevElotagNelkul' FROM T_TANULOTANUGYIADATOK_OSSZES tta INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = tta.C_TANULOCSOPORTID AND tcs.C_TANEVID = tta.C_TANEVID AND tcs.TOROLT = tta.TOROLT AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > @{nameof(datum)}) INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.Id = tcs.C_TANULOID and fh.C_TANEVID = tcs.C_TANEVID AND fh.TOROLT = tcs.TOROLT INNER JOIN T_OSZTALY_OSSZES o ON o.ID = tcs.C_OSZTALYCSOPORTID AND o.C_ALTANEVID = tcs.C_TANEVID AND o.TOROLT = tcs.TOROLT INNER JOIN T_OSZTALYCSOPORT ocs ON o.ID = ocs.ID AND ocs.C_FELADATKATEGORIAID = 7553 AND ocs.C_TANEVID = o.C_ALTANEVID AND ocs.TOROLT = o.TOROLT WHERE tta.TOROLT = 'F' AND tta.C_TANEVID = @{nameof(tanevId)} AND tcs.C_TANULOID IN ({string.Join(",", tanuloIds)}) "; var ds = GetData(command.CommandText, parameters); return ds; } } #region Export public DataSet GetCsoportokMindenAdataForExport(int tanevId, OktNevelesiKategoriaEnum? feladatKategoria, CsoportSearchPco pco, bool isSelectedTanev21_22OrLater, bool isSzakkepzoIntezmeny, DateTime? aktualisTanevElsoTanitasiNapja = null) { const string csoportAlias = "csoport"; const string osztalycsoportAlias = "osztalycsoport"; const string bontasAlias = "osztalybontas"; var parameters = new List { new CommandParameter("pTanevId", tanevId), new CommandParameter(nameof(aktualisTanevElsoTanitasiNapja), aktualisTanevElsoTanitasiNapja) }; var kovetkezoTanev = aktualisTanevElsoTanitasiNapja > DateTime.Now; if (feladatKategoria.HasValue) { parameters.Add(new CommandParameter(nameof(feladatKategoria), (int)feladatKategoria)); } else { parameters.Add(new CommandParameter(nameof(feladatKategoria), DBNull.Value)); } StringBuilder whereClause = pco.ToWhereClause(parameters, bontasAlias, osztalycsoportAlias, csoportAlias); string munkarendSelectCommand = string.Empty, munkarendJoinCommand = string.Empty; if (isSelectedTanev21_22OrLater) { if (isSzakkepzoIntezmeny && feladatKategoria != OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas) { munkarendSelectCommand = $@" ,{osztalycsoportAlias}.C_FELADATKATEGORIAID csoportFeladatkategoriaId ,ISNULL(kepzes.C_NAME, '-') AS 'AmiMunkarend' ,munkarend.* ,'' Munkarend "; munkarendJoinCommand = $@" OUTER APPLY ( SELECT COUNT(DISTINCT ISNULL(tta.C_TANTERVIJELLEGID, 0)) AS MunkarendCount ,MAX(tta.C_TANTERVIJELLEGID) AS MunkarendMax FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcs.id AND tta.TOROLT ='F' INNER JOIN T_TANULOCSOPORT_OSSZES tcs2 ON tcs2.C_TANULOID = tcs.C_TANULOID AND tcs2.Torolt = 'F' INNER JOIN T_OSZTALY_OSSZES o ON o.ID = tcs.C_OSZTALYCSOPORTID AND o.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs on ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F' WHERE tcs.C_BELEPESDATUM <= :pDate AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > :pDate) AND tcs.TOROLT = 'F' AND tcs2.C_OSZTALYCSOPORTID = csoport.ID AND ocs.C_FELADATKATEGORIAID = osztalycsoport.C_FELADATKATEGORIAID ) munkarend "; } } else { munkarendSelectCommand = $@" ,ISNULL(kepzes.C_NAME, '-') AS 'Képzés' "; } parameters.Add(new CommandParameter("pDate", kovetkezoTanev ? aktualisTanevElsoTanitasiNapja : DateTime.Now)); StringBuilder command = new StringBuilder($@" SELECT {osztalycsoportAlias}.C_NEV AS 'Csoport neve' , IIF({osztalycsoportAlias}.C_ISGYOGYPEDAGOGIAILOGOPEDIAI = 'F','Nem','Igen') AS 'Gyógypedagógiai/logopédiai' , IIF({osztalycsoportAlias}.C_ISTECHNIKAI = 'F','Nem','Igen') AS 'Technikai csoport' , IIF({csoportAlias}.C_TIPUSA IS NULL, '-', csoporttipusa.C_NAME) AS [Csoporttípus] , feladatellatasihely.C_NAME AS '{IntezmenyResource.EllatottKoznevelesiFeladat}' , tanev.C_NEV AS 'Tanév' , IIF({csoportAlias}.C_OSZTALYBONTASID IS NULL, 'Nincs', {bontasAlias}.C_NEV) AS 'Osztálybontás' , IIF({osztalycsoportAlias}.C_EVFOLYAMTIPUSA IS NULL, '-', evfolyamtipusa.C_NAME) AS [Évfolyam neve] , IIF({osztalycsoportAlias}.C_TEREMID IS NULL, '-', terem.C_NEV) AS [Terem] , IIF({csoportAlias}.C_CSOPORTVEZETOID IS NULL, '-', csoportvezeto.C_NYOMTATASINEV) AS [Csoportvezető] , ISNULL({osztalycsoportAlias}.C_MEGJEGYZES, '-') AS [Megjegyzés] , IIF({osztalycsoportAlias}.C_VEGZOSEVFOLYAM = 'T', 'Igen', 'Nem') AS 'Végzős évfolyamú csoport' , IIF({osztalycsoportAlias}.C_TERVEZETTLETSZAM IS NULL, '-', {osztalycsoportAlias}.C_TERVEZETTLETSZAM) AS [Tervezett létszám] , ISNULL(convert(varchar(10),{csoportAlias}.C_CSOPORTNAPLOMEGNYITASA,120), '-') AS [Csoportnapló megnyitás dátuma] , ISNULL(convert(varchar(10),{csoportAlias}.C_CSOPORTNAPLOZARASA,120), '-') AS [Csoportnapló lezárás dátuma] , (SELECT COUNT(1) FROM T_TANULOCSOPORT_OSSZES tcs WHERE tcs.C_OSZTALYCSOPORTID = {csoportAlias}.ID AND TOROLT = 'F' AND C_BELEPESDATUM <= " + (!kovetkezoTanev ? @"GETDATE() " : $@" CONVERT(date, @{nameof(aktualisTanevElsoTanitasiNapja)})") + $@" AND (C_KILEPESDATUM IS NULL OR C_KILEPESDATUM > " + (!kovetkezoTanev ? @"GETDATE() " : $@"CONVERT(date, @{nameof(aktualisTanevElsoTanitasiNapja)}) ") + $@")) AS '{(feladatKategoria == OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas ? TanuloResource.NovendekekSzama : OsztalyCsoportResource.TanulokSzama)}' , ISNULL({csoportAlias}.C_CSOPORTNAPLOLEIRAS, '-') AS 'Csoport leírása' ,csoportvezeto.C_OKTATASIAZONOSITO as '{ AlkalmazottResource.PedagogusOktatasiAzonosito }' {munkarendSelectCommand} FROM T_CSOPORT_OSSZES {csoportAlias} INNER JOIN T_OSZTALYCSOPORT_OSSZES {osztalycsoportAlias} ON {csoportAlias}.ID = {osztalycsoportAlias}.ID AND ({osztalycsoportAlias}.C_FELADATKATEGORIAID = @{nameof(feladatKategoria)} OR @{nameof(feladatKategoria)} IS NULL) AND {osztalycsoportAlias}.TOROLT = 'F' AND {osztalycsoportAlias}.C_TANEVID = {csoportAlias}.C_ALTANEVID LEFT JOIN T_DICTIONARYITEMBASE_OSSZES csoporttipusa ON csoporttipusa.ID = {csoportAlias}.C_TIPUSA AND csoporttipusa.C_TANEVID = :pTanevId AND csoporttipusa.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyamtipusa ON evfolyamtipusa.ID = {osztalycsoportAlias}.C_EVFOLYAMTIPUSA AND evfolyamtipusa.C_TANEVID = :pTanevId AND evfolyamtipusa.TOROLT = 'F' LEFT JOIN T_TANEV_OSSZES tanev ON {osztalycsoportAlias}.C_TANEVID = tanev.ID AND tanev.TOROLT = 'F' LEFT JOIN T_FELHASZNALO_OSSZES csoportvezeto ON csoportvezeto.ID = {csoportAlias}.C_CSOPORTVEZETOID AND csoportvezeto.TOROLT = 'F' AND csoportvezeto.C_TANEVID = :pTanevId LEFT JOIN T_TEREM_OSSZES terem ON terem.ID = {osztalycsoportAlias}.C_TEREMID AND terem.TOROLT = 'F' AND terem.C_TANEVID = :pTanevId LEFT JOIN T_OSZTALYCSOPORT_OSSZES {bontasAlias} ON {bontasAlias}.ID = {csoportAlias}.C_OSZTALYBONTASID AND ({bontasAlias}.C_FELADATKATEGORIAID = @{nameof(feladatKategoria)} OR @{nameof(feladatKategoria)} IS NULL) AND {bontasAlias}.TOROLT = 'F' AND {bontasAlias}.C_TANEVID = {csoportAlias}.C_ALTANEVID LEFT JOIN T_FELADATELLATASIHELY_OSSZES feladatellatasi ON feladatellatasi.ID = {osztalycsoportAlias}.C_FELADATELLATASIHELYID AND feladatellatasi.TOROLT = 'F' AND feladatellatasi.C_TANEVID = :pTanevId LEFT JOIN T_DICTIONARYITEMBASE_OSSZES feladatellatasihely ON feladatellatasihely.ID = feladatellatasi.C_OKTATASINEVELESIFELADATTIPUS AND feladatellatasihely.C_TANEVID = :pTanevId AND feladatellatasihely.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES kepzes ON kepzes.ID = {osztalycsoportAlias}.C_KEPZESIFORMA AND kepzes.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND kepzes.TOROLT = 'F' {munkarendJoinCommand} WHERE {csoportAlias}.TOROLT = 'F' AND {csoportAlias}.C_ALTANEVID = :pTanevId {whereClause} ORDER BY evfolyamtipusa.C_VALUE, {osztalycsoportAlias}.C_NEV "); return GetData(command.ToString(), parameters); } public DataSet GetEvfolyamAktualisLetszamadataiExcelExport(int tanevId, OktNevelesiKategoriaEnum feladatKategoria, OsztalySearchPco pco, DateTime aktualisTanevElsoTanitasiNapja) { /*TODO:Tobb Osztaly*//*OM-1625*/ const string osztalycsoportAlias = "osztalycsoport"; const string osztalyAlias = "csoport"; var parameters = new List { new CommandParameter("pTanevId", tanevId), new CommandParameter(nameof(aktualisTanevElsoTanitasiNapja), aktualisTanevElsoTanitasiNapja) }; var kovetkezoTanev = aktualisTanevElsoTanitasiNapja > DateTime.Now; StringBuilder whereClause = pco.ToWhereClause(parameters, osztalycsoportAlias, osztalyAlias); var command = new StringBuilder($@" SELECT IIF({osztalycsoportAlias}.C_EVFOLYAMTIPUSA IS NULL, '-', evfolyamtipusa.C_NAME) AS 'Évfolyam neve' , COUNT(tanulocsoport.C_TANULOID) AS '{(feladatKategoria == OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas ? TanuloResource.NovendekekSzama : OsztalyCsoportResource.TanulokSzama)}' FROM T_OSZTALY_OSSZES AS {osztalyAlias} INNER JOIN T_OSZTALYCSOPORT_OSSZES AS {osztalycsoportAlias} ON {osztalycsoportAlias}.ID = {osztalyAlias}.ID AND {osztalycsoportAlias}.TOROLT = 'F' AND {osztalyAlias}.C_ALTANEVID = {osztalycsoportAlias}.C_TANEVID LEFT JOIN T_TANULOCSOPORT_OSSZES AS tanulocsoport on {osztalyAlias}.ID = tanulocsoport.C_OSZTALYCSOPORTID AND tanulocsoport.C_BELEPESDATUM <= " + (!kovetkezoTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(aktualisTanevElsoTanitasiNapja)}) ") + $@" AND (tanulocsoport.C_KILEPESDATUM IS NULL OR tanulocsoport.C_KILEPESDATUM > " + (!kovetkezoTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(aktualisTanevElsoTanitasiNapja)}) ") + $@") AND tanulocsoport.TOROLT = 'F' AND {osztalyAlias}.C_ALTANEVID = tanulocsoport.C_TANEVID LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyamtipusa ON evfolyamtipusa.ID = {osztalycsoportAlias}.C_EVFOLYAMTIPUSA AND evfolyamtipusa.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND evfolyamtipusa.TOROLT = 'F' WHERE {osztalyAlias}.TOROLT = 'F' AND {osztalyAlias}.C_ALTANEVID = :pTanevId {whereClause} GROUP BY C_EVFOLYAMTIPUSA, evfolyamtipusa.C_NAME, evfolyamtipusa.C_VALUE ORDER BY evfolyamtipusa.C_VALUE"); return GetData(command.ToString(), parameters); } public DataSet GetOsztalyokMindenAdataExcelExport(int tanevId, OktNevelesiKategoriaEnum feladatKategoria, OsztalySearchPco pco, DateTime aktualisTanevElsoTanitasiNapja, bool isSelectedTanev21_22OrLater, bool isSzakkepzoIntezmeny) { const string osztalycsoportAlias = "osztalycsoport"; const string osztalyAlias = "osztaly"; var parameters = new List { new CommandParameter("pTanevId", tanevId), new CommandParameter(nameof(aktualisTanevElsoTanitasiNapja), aktualisTanevElsoTanitasiNapja) }; var kovetkezoTanev = aktualisTanevElsoTanitasiNapja > DateTime.Now; StringBuilder whereClause = pco.ToWhereClause(parameters, osztalycsoportAlias, osztalyAlias); string jegyzekSelectCommand, jegyzekJoinCommand; string munkarendSelectCommand, munkarendJoinCommand; if (isSelectedTanev21_22OrLater) { jegyzekSelectCommand = $@" ,jegyzek.* "; jegyzekJoinCommand = $@" OUTER APPLY ( SELECT COUNT(DISTINCT tta.C_AGAZATID) AS AgazatCount ,MAX(tta.C_AGAZATID) AS AgazatMax ,COUNT(DISTINCT tta.C_SZAKKEPESITESID) AS SzakkepesitesCount ,MAX(tta.C_SZAKKEPESITESID) AS SzakkepesitesMax ,COUNT(DISTINCT tta.C_RESZSZAKKEPESITESID) AS ReszszakkepesitesCount ,MAX(tta.C_RESZSZAKKEPESITESID) AS ReszszakkepesitesMax ,COUNT(DISTINCT tta.C_SZAKMACSOPORTID) AS SzakmacsoportCount ,MAX(tta.C_SZAKMACSOPORTID) AS SzakmacsoportMax ,COUNT(DISTINCT tta.C_AGAZATUJSZKTTIPUSID) AS AgazatSzktCount ,MAX(tta.C_AGAZATUJSZKTTIPUSID) AS AgazatSzktMax ,COUNT(DISTINCT tta.C_SZAKMATIPUSID) AS SzakmaTipusCount ,MAX(tta.C_SZAKMATIPUSID) AS SzakmaTipusMax ,COUNT(DISTINCT tta.C_SZAKMAIRANYTIPUSID) AS SzakmairanyTipusCount ,MAX(tta.C_SZAKMAIRANYTIPUSID) AS SzakmairanyTipusMax ,COUNT(DISTINCT tta.C_TANULMANYITERULETNKTTIPUSID) AS TanulmanyiTeruletCount ,MAX(tta.C_TANULMANYITERULETNKTTIPUSID) AS TanulmanyiTeruletMax ,COUNT(DISTINCT tta.C_SZAKKEPESITESNKTTIPUSID) AS SzakkepesitesNktCount ,MAX(tta.C_SZAKKEPESITESNKTTIPUSID) AS SzakkepesitesNktMax ,COUNT(DISTINCT tta.C_SZAKIRANYNKTTIPUSID) AS SzakiranyCount ,MAX(tta.C_SZAKIRANYNKTTIPUSID) AS SzakiranyMax ,COUNT(DISTINCT tta.C_AGAZATRESZSZAKMATIPUSID) AS AgazatReszszakmaCount ,MAX(tta.C_AGAZATRESZSZAKMATIPUSID) AS AgazatReszszakmaMax ,COUNT(DISTINCT tta.C_SZAKMARESZSZAKMATIPUSID) AS SzakmaReszszakmaCount ,MAX(tta.C_SZAKMARESZSZAKMATIPUSID) AS SzakmaReszszakmaMax ,COUNT(DISTINCT tta.C_RESZSZAKMATIPUSID) AS ReszszakmaCount ,MAX(tta.C_RESZSZAKMATIPUSID) AS ReszszakmaMax FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcs.ID WHERE tcs.C_OSZTALYCSOPORTID = osztaly.ID AND tcs.C_BELEPESDATUM <= :pDate AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > :pDate) ) jegyzek "; if (isSzakkepzoIntezmeny) { munkarendSelectCommand = $@" ,munkarend.* ,'' Munkarend "; munkarendJoinCommand = $@" OUTER APPLY ( SELECT COUNT(DISTINCT tta.C_TANTERVIJELLEGID) AS MunkarendCount ,MAX(tta.C_TANTERVIJELLEGID) AS MunkarendMax FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.TOROLT = 'F' WHERE tcs.C_OSZTALYCSOPORTID = osztaly.ID AND tcs.C_BELEPESDATUM <= :pDate AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > :pDate) AND tcs.TOROLT = 'F' ) munkarend "; } else { munkarendSelectCommand = $@" ,ISNULL(kepzes.C_NAME, '-') AS 'Képzés' "; munkarendJoinCommand = $@" LEFT JOIN T_DICTIONARYITEMBASE_OSSZES kepzes ON kepzes.ID = {osztalycsoportAlias}.C_KEPZESIFORMA AND kepzes.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND kepzes.TOROLT = 'F' "; } parameters.Add(new CommandParameter("pDate", kovetkezoTanev ? aktualisTanevElsoTanitasiNapja : DateTime.Now)); } else { jegyzekSelectCommand = $@" ,ISNULL(agazat.C_NAME, '-') AS '{ OsztalyCsoportResource.AgazatTipusa }' ,ISNULL(szakkepesites.C_NAME, '-') AS '{ OsztalyCsoportResource.SzakkepesitesTipusa }' ,ISNULL(reszszakkepesites.C_NAME, '-') AS '{ OsztalyCsoportResource.ReszszakkepesitesTipusa }' ,ISNULL(szakmacsoport.C_NAME, '-') AS '{ OsztalyCsoportResource.SzakmacsoportTipusa }' ,ISNULL(szktagazattipus.C_NAME, '-') AS '{ OsztalyCsoportResource.UjSzktAgazatTipusa }' ,ISNULL(szktszakmatipus.C_NAME, '-') AS '{ OsztalyCsoportResource.UjSzktSzakmaTipusa }' ,ISNULL(szktszakmairanytipus.C_NAME, '-') AS '{ OsztalyCsoportResource.UjSzktSzakmairanyTipusa }' ,ISNULL(nkttanulmanyiterulet.C_NAME, '-') AS '{ OsztalyCsoportResource.NktTanulmanyiTerulet }' ,ISNULL(nktszakkepesites.C_NAME, '-') AS '{ OsztalyCsoportResource.NktSzakkepesites }' ,ISNULL(nktszakirany.C_NAME, '-') AS '{ OsztalyCsoportResource.NktSzakirany }' "; jegyzekJoinCommand = $@" LEFT JOIN T_DICTIONARYITEMBASE_OSSZES agazat ON agazat.ID = {osztalyAlias}.C_AGAZAT AND agazat.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND agazat.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szakkepesites ON szakkepesites.ID = {osztalyAlias}.C_SZAKKEPESITES AND szakkepesites.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND szakkepesites.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES reszszakkepesites ON reszszakkepesites.ID = {osztalyAlias}.C_RESZSZAKKEPESITES AND reszszakkepesites.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND reszszakkepesites.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szakmacsoport ON szakmacsoport.ID = {osztalyAlias}.C_SZAKMACSOPORT AND szakmacsoport.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND szakmacsoport.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szktagazattipus ON szktagazattipus.ID = {osztalyAlias}.C_AGAZATUJSZKTTIPUSID AND szktagazattipus.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND szktagazattipus.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szktszakmatipus ON szktszakmatipus.ID = {osztalyAlias}.C_SZAKMATIPUSID AND szktszakmatipus.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND szktszakmatipus.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szktszakmairanytipus ON szktszakmairanytipus.ID = {osztalyAlias}.C_SZAKMAIRANYTIPUSID AND szktszakmairanytipus.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND szktszakmairanytipus.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES nkttanulmanyiterulet ON nkttanulmanyiterulet.ID = {osztalyAlias}.C_TANULMANYITERULETNKTTIPUSID AND nkttanulmanyiterulet.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND nkttanulmanyiterulet.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES nktszakkepesites ON nktszakkepesites.ID = {osztalyAlias}.C_SZAKKEPESITESNKTTIPUSID AND nktszakkepesites.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND nktszakkepesites.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES nktszakirany ON nktszakirany.ID = {osztalyAlias}.C_SZAKIRANYNKTTIPUSID AND nktszakirany.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND nktszakirany.TOROLT = 'F' "; munkarendSelectCommand = $@" ,ISNULL(kepzes.C_NAME, '-') AS 'Képzés' "; munkarendJoinCommand = $@" LEFT JOIN T_DICTIONARYITEMBASE_OSSZES kepzes ON kepzes.ID = {osztalycsoportAlias}.C_KEPZESIFORMA AND kepzes.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND kepzes.TOROLT = 'F' "; } var command = $@" SELECT {osztalycsoportAlias}.C_NEV AS 'Osztály neve' ,ISNULL(evfolyamtipusa.C_NAME, '-') AS 'Évfolyam neve' ,ISNULL(tanev.C_NEV, '-') AS 'Tanév' ,ISNULL(osztalyfonok.C_NYOMTATASINEV, '-') AS 'Osztályfőnök' ,ISNULL(ofohelyettes.C_NYOMTATASINEV, '-') AS 'Osztályfőnök-helyettes' {munkarendSelectCommand} ,ISNULL(tanterv.C_NEV, '-') AS '{(feladatKategoria == OktNevelesiKategoriaEnum.Kollegium ? OsztalyCsoportResource.NevelesiTerv : OsztalyCsoportResource.Tanterv)}' ,ISNULL(terem.C_NEV, '-') AS 'Osztályterem' ,ISNULL({osztalycsoportAlias}.C_MEGJEGYZES, '-') AS 'Megjegyzés' ,IIF({osztalycsoportAlias}.C_VEGZOSEVFOLYAM = 'T', 'Igen', 'Nem') AS 'Végzős évfolyamú osztály' ,IIF({osztalycsoportAlias}.C_KERESZTFELEVES = 'T', 'Igen', 'Nem') AS 'Keresztféléves' ,ISNULL({osztalycsoportAlias}.C_TERVEZETTLETSZAM, '-') AS 'Tervezett létszám' ,ISNULL(convert(varchar(10),{osztalyAlias}.C_OSZTALYNAPLOMEGNYITASA,120), '-') AS 'Osztálynapló megnyitás dátuma' ,ISNULL(convert(varchar(10),{osztalyAlias}.C_OSZTALYNAPLOZARASA,120), '-') AS 'Osztálynapló lezárás dátuma' ,(SELECT COUNT(1) FROM T_TANULOCSOPORT_OSSZES tcs WHERE tcs.C_OSZTALYCSOPORTID = {osztalyAlias}.ID AND TOROLT = 'F' AND C_BELEPESDATUM <= " + (!kovetkezoTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(aktualisTanevElsoTanitasiNapja)}) ") + $@" AND (C_KILEPESDATUM IS NULL OR C_KILEPESDATUM > " + (!kovetkezoTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(aktualisTanevElsoTanitasiNapja)}) ") + $@")) AS '{(feladatKategoria == OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas ? TanuloResource.NovendekekSzama : OsztalyCsoportResource.TanulokSzama)}' ,ISNULL({osztalyAlias}.C_OSZTALYNAPLOLEIRASA, '-') AS 'Osztály leírása' ,ISNULL({osztalyAlias}.C_SPECIALISJELLEMZO, '-') AS 'Speciális jellemző' ,ISNULL(osztalyfonok.C_OKTATASIAZONOSITO, '-') AS '{ AlkalmazottResource.PedagogusOktatasiAzonosito }' ,ISNULL(oktatasinevelesifeladattipus.C_NAME, '-') AS 'Oktatási-nevelési feladat típusa' ,ISNULL(feladatkategoria.C_NAME, '-') AS 'Feladatkategória típusa' ,ISNULL(intezmenyadatok.C_NEV, '-') AS 'Intézmény neve' ,IIF({osztalycsoportAlias}.C_ISTECHNIKAI = 'T', 'Igen', 'Nem') AS 'Technikai osztály' ,ISNULL(gimnaziumevfolyamtipus.C_NAME, '-') AS 'Gimnázium évfolyam típusa' ,IIF({osztalyAlias}.C_KETTANNYELVU = 'T', 'Igen', 'Nem') AS '{ OsztalyCsoportResource.Kettannyelvu }' ,IIF({osztalycsoportAlias}.C_ISGYOGYPEDAGOGIAILOGOPEDIAI = 'T', 'Igen', 'Nem') AS 'Gyógypedagógiai/Logopédiai osztály' ,IIF({osztalyAlias}.C_NEMZETISEGI = 'T', 'Igen', 'Nem') AS 'Nemzetiségi osztály' ,IIF({osztalyAlias}.C_NYELVIELOKESZITO = 'T', 'Igen', 'Nem') AS '{ OsztalyCsoportResource.NyelviElokeszitoOsztaly }' ,IIF({osztalyAlias}.C_SPORT = 'T', 'Igen', 'Nem') AS 'Sport osztály' ,IIF({osztalyAlias}.C_AJTEHETTSEGGONDOZOPROGRAM = 'T', 'Igen', 'Nem') AS 'AJ tehettséggondozó program' ,IIF({osztalyAlias}.C_AJPROGRAM = 'T', 'Igen', 'Nem') AS 'AJ program' ,IIF({osztalyAlias}.C_VEGYESEVFOLYAMU = 'T', 'Igen', 'Nem') AS 'Vegyes évfolyamú osztály' ,ISNULL({osztalyAlias}.C_VEGYESEVFOLYAMUTANTERV, '-') AS 'Vegyes évfolyamú tanterv' ,IIF({osztalyAlias}.C_VEGYESSZAKKEPZESU = 'T', 'Igen', 'Nem') AS 'Vegyes szakképzésű osztály' ,ISNULL(szmkhelyettes.C_NEV, '-') AS 'Szülői munkaközösség képviselő helyettes' ,ISNULL(szmk.C_NEV, '-') AS 'Szülői munkaközösség képviselő' ,ISNULL({osztalyAlias}.C_OSZTALYPENZBANKSZAMLASZAMA, '-') AS Bankszámlaszám ,ISNULL({osztalyAlias}.C_OSZTALYPENZBANKSZAMLASZAMKED, '-') AS 'Bankszámlaszám kedvezményezett' {jegyzekSelectCommand} FROM T_OSZTALY_OSSZES {osztalyAlias} INNER JOIN T_OSZTALYCSOPORT_OSSZES {osztalycsoportAlias} ON {osztalyAlias}.C_ALINTEZMENYID = {osztalycsoportAlias}.C_INTEZMENYID AND {osztalyAlias}.ID = {osztalycsoportAlias}.ID AND {osztalycsoportAlias}.TOROLT = 'F' AND {osztalyAlias}.C_ALTANEVID = {osztalycsoportAlias}.C_TANEVID LEFT JOIN T_FELADATELLATASIHELY feladatellatasihely ON feladatellatasihely.ID = {osztalycsoportAlias}.C_FELADATELLATASIHELYID AND feladatellatasihely.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND feladatellatasihely.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES oktatasinevelesifeladattipus ON oktatasinevelesifeladattipus.ID = feladatellatasihely.C_OKTATASINEVELESIFELADATTIPUS AND oktatasinevelesifeladattipus.C_TANEVID = feladatellatasihely.C_TANEVID AND oktatasinevelesifeladattipus.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyamtipusa ON evfolyamtipusa.ID = {osztalycsoportAlias}.C_EVFOLYAMTIPUSA AND evfolyamtipusa.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND evfolyamtipusa.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES feladatkategoria ON feladatkategoria.ID = {osztalycsoportAlias}.C_FELADATKATEGORIAID AND feladatkategoria.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND feladatkategoria.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES gimnaziumevfolyamtipus ON gimnaziumevfolyamtipus.ID = {osztalyAlias}.C_GIMNAZIUMIEVFOLYAMTIPUSID AND gimnaziumevfolyamtipus.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND gimnaziumevfolyamtipus.TOROLT = 'F' LEFT JOIN T_TANTERV_OSSZES tanterv ON tanterv.ID = {osztalyAlias}.C_TANTERVID AND tanterv.C_INTEZMENYID = {osztalyAlias}.C_ALINTEZMENYID AND tanterv.TOROLT = 'F' AND tanterv.C_TANEVID = {osztalycsoportAlias}.C_TANEVID LEFT JOIN T_TANEV_OSSZES tanev ON {osztalycsoportAlias}.C_TANEVID = tanev.ID AND tanev.C_INTEZMENYID = {osztalyAlias}.C_ALINTEZMENYID AND tanev.TOROLT = 'F' LEFT JOIN T_FELHASZNALO_OSSZES osztalyfonok ON osztalyfonok.ID = {osztalyAlias}.C_OSZTALYFONOKID AND osztalyfonok.C_INTEZMENYID = {osztalyAlias}.C_ALINTEZMENYID AND osztalyfonok.C_TANEVID = :pTanevId AND osztalyfonok.TOROLT = 'F' LEFT JOIN T_FELHASZNALO_OSSZES ofohelyettes ON ofohelyettes.ID = {osztalyAlias}.C_OFOHELYETTESID AND ofohelyettes.C_INTEZMENYID = {osztalyAlias}.C_ALINTEZMENYID AND ofohelyettes.C_TANEVID = :pTanevId AND ofohelyettes.TOROLT = 'F' LEFT JOIN T_GONDVISELO_OSSZES szmk ON szmk.ID = {osztalyAlias}.C_SZMKKEPVISELOID AND szmk.C_INTEZMENYID = {osztalyAlias}.C_ALINTEZMENYID AND szmk.C_TANEVID = :pTanevId AND szmk.TOROLT = 'F' LEFT JOIN T_GONDVISELO_OSSZES szmkhelyettes ON szmkhelyettes.ID = {osztalyAlias}.C_SZMKKEPVISELOHELYETTESID AND szmkhelyettes.C_INTEZMENYID = {osztalyAlias}.C_ALINTEZMENYID AND szmkhelyettes.C_TANEVID = :pTanevId AND szmkhelyettes.TOROLT = 'F' LEFT JOIN T_TEREM_OSSZES terem ON terem.ID = {osztalycsoportAlias}.C_TEREMID AND terem.C_INTEZMENYID = {osztalycsoportAlias}.C_INTEZMENYID AND terem.C_TANEVID = :pTanevId AND terem.TOROLT = 'F' LEFT JOIN T_INTEZMENYADATOK_OSSZES intezmenyadatok ON intezmenyadatok.C_INTEZMENYID = {osztalycsoportAlias}.C_INTEZMENYID AND intezmenyadatok.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND intezmenyadatok.TOROLT = 'F' {jegyzekJoinCommand} {munkarendJoinCommand} WHERE {osztalyAlias}.TOROLT = 'F' AND {osztalyAlias}.C_ALTANEVID = :pTanevId {whereClause} ORDER BY evfolyamtipusa.C_VALUE, evfolyamtipusa.C_NAME"; return GetData(command.ToString(), parameters); } public DataSet GetOsztalybaJaroTanulokExcelExport(int tanevId, OsztalySearchPco pco, DateTime? aktualisTanevElsoTanitasiNapja = null) { const string osztalycsoportAlias = "osztcsop"; const string osztalyAlias = "oszt"; var parameters = new List { new CommandParameter("pTanevId", tanevId), new CommandParameter(nameof(aktualisTanevElsoTanitasiNapja), aktualisTanevElsoTanitasiNapja) }; var kovetkezoTanev = aktualisTanevElsoTanitasiNapja > DateTime.Now; StringBuilder whereClause = pco.ToWhereClause(parameters, osztalycsoportAlias, osztalyAlias); var command = new StringBuilder($@" SELECT {osztalycsoportAlias}.C_NEV AS '{ TanuloResource.Osztaly }' , felh.C_NYOMTATASINEV AS '{ TanuloResource.Nev }' , felh.C_OKTATASIAZONOSITO as '{ TanuloResource.OktatasiAzonosito }' FROM T_TANULOCSOPORT_OSSZES tancsop INNER JOIN T_OSZTALY_OSSZES {osztalyAlias} ON {osztalyAlias}.ID = tancsop.C_OSZTALYCSOPORTID AND {osztalyAlias}.TOROLT = 'F' AND {osztalyAlias}.C_ALTANEVID = tancsop.C_TANEVID INNER JOIN T_OSZTALYCSOPORT_OSSZES {osztalycsoportAlias} ON {osztalycsoportAlias}.ID = {osztalyAlias}.ID AND {osztalycsoportAlias}.TOROLT = 'F' AND {osztalycsoportAlias}.C_TANEVID = {osztalyAlias}.C_ALTANEVID INNER JOIN T_DICTIONARYITEMBASE_OSSZES dib ON {osztalycsoportAlias}.C_EVFOLYAMTIPUSA = dib.ID AND dib.C_TANEVID=:pTanevId AND dib.TOROLT = 'F' LEFT JOIN T_FELHASZNALO_OSSZES felh ON felh.ID = tancsop.C_TANULOID AND felh.C_TANEVID = :pTanevId AND felh.TOROLT = 'F' WHERE tancsop.C_TANEVID = :pTanevId AND tancsop.TOROLT = 'F' AND tancsop.C_BELEPESDATUM <= " + (!kovetkezoTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(aktualisTanevElsoTanitasiNapja)}) ") + $@" AND (tancsop.C_KILEPESDATUM IS NULL OR tancsop.C_KILEPESDATUM > " + (!kovetkezoTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(aktualisTanevElsoTanitasiNapja)}) ") + $@") {whereClause} ORDER BY dib.C_VALUE, {osztalycsoportAlias}.C_NEV, felh.C_NYOMTATASINEV"); return GetData(command.ToString(), parameters); } public DataSet GetCsoportbaJaroTanulokExcelExport(int tanevId, OktNevelesiKategoriaEnum? feladatKategoria, CsoportSearchPco pco, DateTime? tanevElsoTanitasiNapja = null) { var parameters = new List { new CommandParameter("pTanevId", tanevId), }; if (tanevElsoTanitasiNapja.HasValue) { parameters.Add(new CommandParameter(nameof(tanevElsoTanitasiNapja), tanevElsoTanitasiNapja)); } var isActiveTanev = !tanevElsoTanitasiNapja.HasValue; if (feladatKategoria.HasValue) { parameters.Add(new CommandParameter(nameof(feladatKategoria), (int)feladatKategoria)); } else { parameters.Add(new CommandParameter(nameof(feladatKategoria), DBNull.Value)); } const string osztalycsoportAlias = "osztcsop"; const string csoportAlias = "csop"; StringBuilder whereClause = pco.ToWhereClause(parameters, null, osztalycsoportAlias, csoportAlias); string command = $@" SELECT {osztalycsoportAlias}.C_NEV AS 'Csoport neve' , felh.C_NYOMTATASINEV AS '{ TanuloResource.Nev }' ,felh.C_OKTATASIAZONOSITO as '{ TanuloResource.OktatasiAzonosito }' ,osztalycsoport.C_NEV AS 'Osztály' FROM T_TANULOCSOPORT_OSSZES tancsop INNER JOIN T_CSOPORT_OSSZES {csoportAlias} ON {csoportAlias}.ID = tancsop.C_OSZTALYCSOPORTID AND {csoportAlias}.TOROLT = 'F' AND {csoportAlias}.C_ALTANEVID = tancsop.C_TANEVID INNER JOIN T_OSZTALYCSOPORT_OSSZES {osztalycsoportAlias} ON {osztalycsoportAlias}.ID = {csoportAlias}.ID AND ({osztalycsoportAlias}.C_FELADATKATEGORIAID = @{nameof(feladatKategoria)} OR @{nameof(feladatKategoria)} IS NULL) AND {osztalycsoportAlias}.TOROLT = 'F' AND {osztalycsoportAlias}.C_TANEVID = {csoportAlias}.C_ALTANEVID INNER JOIN T_DICTIONARYITEMBASE_OSSZES dib ON {osztalycsoportAlias}.C_EVFOLYAMTIPUSA = dib.ID AND dib.C_TANEVID = :pTanevId AND dib.TOROLT = 'F' INNER JOIN T_FELHASZNALO_OSSZES felh ON felh.ID = tancsop.C_TANULOID AND felh.C_TANEVID = :pTanevId AND felh.TOROLT = 'F' INNER JOIN T_TANULOCSOPORT_OSSZES tanoszt ON tancsop.C_TANULOID = tanoszt.C_TANULOID AND tanoszt.C_TANEVID = :pTanevId AND tanoszt.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalycsoport ON osztalycsoport.ID = tanoszt.C_OSZTALYCSOPORTID AND (osztalycsoport.C_FELADATKATEGORIAID = @{nameof(feladatKategoria)} OR @{nameof(feladatKategoria)} IS NULL) AND osztalycsoport.TOROLT = 'F' AND osztalycsoport.C_TANEVID = tanoszt.C_TANEVID INNER JOIN T_OSZTALY_OSSZES osztaly ON osztaly.ID = osztalycsoport.ID AND osztaly.TOROLT = 'F' AND osztalycsoport.C_TANEVID = osztaly.C_ALTANEVID WHERE tancsop.C_TANEVID = :pTanevId AND tancsop.TOROLT = 'F' AND tancsop.C_BELEPESDATUM <= " + (isActiveTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(tanevElsoTanitasiNapja)}) ") + $@" AND (tancsop.C_KILEPESDATUM IS NULL OR tancsop.C_KILEPESDATUM > " + (isActiveTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(tanevElsoTanitasiNapja)}) ") + $@") AND tanoszt.C_BELEPESDATUM <= " + (isActiveTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(tanevElsoTanitasiNapja)}) ") + $@" AND (tanoszt.C_KILEPESDATUM IS NULL OR tanoszt.C_KILEPESDATUM > " + (isActiveTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(tanevElsoTanitasiNapja)}) ") + $@") {whereClause} ORDER BY dib.C_VALUE, {osztalycsoportAlias}.C_NEV, felh.C_NYOMTATASINEV "; return GetData(command, parameters); } #endregion public List GetOsztalybontasosCsoportok(int osztalyId, int tanevId) { var list = new List(); var dal = this.DalHelper.Csoport(); var ds = dal.GetOsztalybontasosCsoportok(osztalyId, tanevId); foreach (DataRow row in ds.Tables[0].Rows) { var cs = OsztalyCsoport.GiveAnInstance(); cs.LoadByID(Convert.ToInt32(row.Field("ID"))); list.Add(cs); } return list; } public List GetTanuloOsztalyCsoportjai(int tanuloId, DateTime? datum = null) { var list = new List(); var osztalyCsoportIdList = GetTanuloOsztalyCsoportjaiIdList(tanuloId, datum); foreach (var osztalyCsoportId in osztalyCsoportIdList) { var cs = OsztalyCsoport.GiveAnInstance(); cs.LoadByID(osztalyCsoportId); list.Add(cs); } return list; } public IOsztalyCsoport Get() { return OsztalyCsoport.GiveAnInstance(); } public IOsztalyCsoport Get(int id) { var entity = OsztalyCsoport.GiveAnInstance(); entity.LoadByID(id); return entity; } [Obsolete("Tároltra kell cserélni minél hamarabb")] public IOsztalyCsoport GetSpecific(string condition, Dictionary commandParameters = null) { var entity = Osztaly.LoadWithFilter(condition, commandParameters).FirstOrDefault(); return entity; } public bool IsOsztaly(int osztcsopId, int tanevId) { var ocs = this.DalHelper.Osztaly().GetSpecific(" and T_OSZTALY_OSSZES.TOROLT = 'F' and T_OSZTALY_OSSZES.ID = " + osztcsopId, tanevId); return ocs != null; } public DataSet GetCsoportokCsoportvezetoAlapjan(int userId, bool showTanoraCeluCsoportok) { var parameters = new List { new CommandParameter("pFelhasznaloId", userId), }; string command = @" SELECT osztalyCsoport.ID ID ,osztalyCsoport.C_NEV Nev ,csoport.C_TIPUSA CsoportTipusa ,osztalyCsoport.C_EVFOLYAMTIPUSA Evfolyam FROM T_OSZTALYCSOPORT osztalyCsoport INNER JOIN T_CSOPORT csoport ON csoport.ID = osztalyCsoport.ID WHERE osztalyCsoport.TOROLT = 'F' AND csoport.C_CSOPORTVEZETOID = :pFelhasznaloId "; if (!showTanoraCeluCsoportok) { command += " AND csoport.C_TIPUSA NOT IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(osztalyCsoport.C_TANEVID))"; } command += " ORDER BY CsoportTipusa, Evfolyam"; return GetData(command, parameters); } public List GetKapcsolodoOsztalyBontasokkal(int osztalyCsoportId) { var commandParameters = new List { new CommandParameter(nameof(osztalyCsoportId), osztalyCsoportId) }; string commandText = $@" SELECT @{nameof(osztalyCsoportId)} AS ID /* Önmaga */ UNION SELECT ID /* Osztály esetén, a bontott csoportok */ FROM T_CSOPORT WHERE C_OSZTALYBONTASID = @{nameof(osztalyCsoportId)} UNION SELECT C_OSZTALYBONTASID AS ID /* Csoport esetén, a ha bontott, akkor az osztálya */ FROM T_CSOPORT WHERE ID = @{nameof(osztalyCsoportId)} AND C_OSZTALYBONTASID IS NOT NULL UNION SELECT ID /* Csoport esetén, a ha bontott, akkor az osztályának a többi csoportbontása */ FROM T_CSOPORT WHERE C_OSZTALYBONTASID IN ( SELECT C_OSZTALYBONTASID FROM T_CSOPORT WHERE ID = @{nameof(osztalyCsoportId)} ) "; DataSet ds = GetData(commandText, commandParameters); return ds.Tables[0].AsEnumerable().Select(r => r.Field("ID")).ToList(); } public int? GetOsztalyfonokElsonekMegtalaltOsztalya(int tanarId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.Parameters.Add(nameof(tanarId), tanarId); command.CommandText = $@" SELECT TOP 1 osztaly.ID FROM T_OSZTALY osztaly INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = osztaly.ID AND OsztalyCsoport.TOROLT = 'F' WHERE osztaly.C_OSZTALYFONOKID= @{nameof(tanarId)} AND osztaly.TOROLT = 'F' "; var result = command.ExecuteScalar(); int? ret = null; if (result != null && result != DBNull.Value) { ret = Convert.ToInt32(result); } return ret; } } public bool HasTanitasiOra(int osztalyCsoportId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.Parameters.Add(nameof(osztalyCsoportId), osztalyCsoportId); command.CommandText = $@" SELECT 1 FROM T_TANITASIORA TanitasiOra WHERE TanitasiOra.TOROLT = 'F' AND TanitasiOra.C_OSZTALYCSOPORTID = @{nameof(osztalyCsoportId)}"; var result = command.ExecuteScalar(); return result != null && result != DBNull.Value && Convert.ToInt32(result) > 0; } } public bool HasTanuloBesorolas(int osztalyCsoportId, bool checkOsztalybontottCsoportok = false) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.Parameters.Add(nameof(osztalyCsoportId), osztalyCsoportId); command.CommandText = $@" IF EXISTS( SELECT 1 FROM T_TANULOCSOPORT_OSSZES tcs WHERE tcs.C_OSZTALYCSOPORTID = @{nameof(osztalyCsoportId)} AND tcs.TOROLT = 'F' AND (tcs.C_BELEPESDATUM <> tcs.C_KILEPESDATUM OR C_KILEPESDATUM IS NULL) " + (checkOsztalybontottCsoportok ? $@" UNION SELECT 1 FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = tcs.C_OSZTALYCSOPORTID AND cs.C_OSZTALYBONTASID = @{nameof(osztalyCsoportId)} AND cs.TOROLT = 'F' WHERE tcs.TOROLT = 'F' AND (tcs.C_BELEPESDATUM <> tcs.C_KILEPESDATUM OR C_KILEPESDATUM IS NULL) " : string.Empty) + @" ) SELECT 1 ELSE SELECT 0 "; var result = command.ExecuteScalar(); int.TryParse(result?.ToString(), out int res); return res == 1; } } public DataSet GetExistsHianyzasErtekelesFeljegyzesSorolaskor(List pTanuloIdList, DateTime pSorolasDatum, int? pOsztalyCsoportId = null, bool pHianyzasKovetes = false, bool pErtekelesKovetes = false, bool pFeljegyzesKovetes = false) { var parameters = new List { new CommandParameter("pSorolasDatum", pSorolasDatum) }; string pTanuIds = string.Join(",", pTanuloIdList); string command = @" SELECT t.ID,fh.C_NYOMTATASINEV AS TANULONEV "; command += pHianyzasKovetes ? ",h.HIANYZASOKSZAMA AS HIANYZASOKSZAMA" : ",NULL AS HIANYZASOKSZAMA"; command += pErtekelesKovetes ? ",ert.ERTEKELESEKSZAMA AS ERTEKELESEKSZAMA" : ",NULL AS ERTEKELESEKSZAMA"; command += pFeljegyzesKovetes ? ",e.FELJEGYZESEMSZAMA AS FELJEGYZESEMSZAMA" : ",NULL AS FELJEGYZESEMSZAMA"; command += @" FROM T_TANULO t INNER JOIN T_FELHASZNALO fh ON fh.ID = t.ID "; if (pHianyzasKovetes) { command += @" LEFT JOIN ( SELECT tm.C_ORATANULOIID AS TANULOIID ,COUNT(1) AS HIANYZASOKSZAMA FROM T_TANULOMULASZTAS tm INNER JOIN T_TANITASIORA tora ON tora.ID = tm.C_TANITASIORAKID INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID = tora.C_OSZTALYCSOPORTID AND tm.C_ORATANULOIID = tcs.C_TANULOID INNER JOIN (SELECT tancsop.C_TANULOID,o.ID,tancsop.C_KILEPESDATUM, tancsop.C_BELEPESDATUM FROM T_TANULOCSOPORT tancsop INNER JOIN T_OSZTALY o ON o.ID = tancsop.C_OSZTALYCSOPORTID) oszt ON oszt.C_TANULOID = tm.C_ORATANULOIID AND (oszt.C_KILEPESDATUM IS NULL OR oszt.C_KILEPESDATUM > tora.C_DATUM) AND (oszt.C_BELEPESDATUM <= tora.C_DATUM) WHERE (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > tora.C_DATUM) AND (tcs.C_BELEPESDATUM <= tora.C_DATUM) AND tm.C_Igazolt = 'F' AND tora.C_DATUM >= :pSorolasDatum AND tm.C_ORATANULOIID IN (" + pTanuIds + ") "; command += pOsztalyCsoportId != null ? "AND tcs.C_OSZTALYCSOPORTID = " + pOsztalyCsoportId.ToString() : string.Empty; command += @" AND tm.Torolt = 'F' GROUP BY tm.C_ORATANULOIID ) h ON h.TANULOIID = t.ID "; } if (pErtekelesKovetes) { command += @" LEFT JOIN ( SELECT te.C_TANULOID AS TANULOIID ,COUNT(1) AS ERTEKELESEKSZAMA FROM T_TANULOERTEKELES te INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID = te.C_OSZTALYCSOPORTID AND te.C_TANULOID = tcs.C_TANULOID INNER JOIN (SELECT tancsop.C_TANULOID,o.ID,tancsop.C_KILEPESDATUM, tancsop.C_BELEPESDATUM FROM T_TANULOCSOPORT tancsop INNER JOIN T_OSZTALY o ON o.ID = tancsop.C_OSZTALYCSOPORTID) oszt ON oszt.C_TANULOID = te.C_TANULOID AND (oszt.C_KILEPESDATUM IS NULL OR oszt.C_KILEPESDATUM > te.C_DATUM) AND (oszt.C_BELEPESDATUM <= te.C_DATUM) WHERE (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > te.C_DATUM) AND (tcs.C_BELEPESDATUM <= te.C_DATUM) AND te.C_DATUM >= :pSorolasDatum AND te.C_TANULOID IN (" + pTanuIds + ") "; command += pOsztalyCsoportId != null ? "AND tcs.C_OSZTALYCSOPORTID = " + pOsztalyCsoportId.ToString() : string.Empty; command += @" AND te.Torolt = 'F' GROUP BY te.C_TANULOID ) ert ON ert.TANULOIID = t.ID "; } if (pFeljegyzesKovetes) { command += @" LEFT JOIN ( SELECT tte.C_TANULOID AS TANULOIID ,COUNT(1) AS FELJEGYZESEMSZAMA FROM T_TANULO_TANULOESEMENY tte INNER JOIN T_TANULOESEMENY te ON te.ID = tte.C_TANULOESEMENYID AND te.Torolt = 'F' WHERE 1 = 1 AND te.C_ESEMENYDATUMA >= :pSorolasDatum AND tte.C_TANULOID IN (" + pTanuIds + @") GROUP BY tte.C_TANULOID ) e ON e.TANULOIID = t.ID "; } command += @" WHERE t.TOROLT = 'F' AND (h.HIANYZASOKSZAMA IS NOT NULL OR ert.ERTEKELESEKSZAMA IS NOT NULL OR e.FELJEGYZESEMSZAMA IS NOT NULL) AND t.ID IN (" + pTanuIds + @") ORDER BY t.ID "; return GetData(command, parameters); } /// INFO @DevKornel: Mobil használja public int GetOsztalyCsoportFeladatKategoria(int osztalyCsoportId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.Parameters.Add(nameof(osztalyCsoportId), osztalyCsoportId); command.CommandText = $@" SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @{nameof(osztalyCsoportId)} AND TOROLT = 'F' "; var result = command.ExecuteScalar(); if (int.TryParse(result?.ToString(), out int res)) { return res; } return -1; } } public int GetOsztalyCsoportOktatasNevelesiFeladatTipus(int osztalyCsoportId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.Parameters.Add(nameof(osztalyCsoportId), osztalyCsoportId); command.CommandText = $@" SELECT fh.C_OKTATASINEVELESIFELADATTIPUS FROM T_OSZTALYCSOPORT_OSSZES ocs INNER JOIN T_FELADATELLATASIHELY_OSSZES fh ON ocs.C_FELADATELLATASIHELYID = fh.ID AND fh.TOROLT = 'F' WHERE ocs.ID = @{nameof(osztalyCsoportId)} AND ocs.TOROLT = 'F' "; var result = command.ExecuteScalar(); if (int.TryParse(result?.ToString(), out int res)) { return res; } return -1; } } public DataSet GetOsztalyTanuloinakGondviseloi(int tanevId, int osztalyId, DateTime pDatum) { var commandParameterList = new List { new CommandParameter(nameof(osztalyId), osztalyId), new CommandParameter("pDatum", pDatum), new CommandParameter("pTanevId", tanevId) }; string commandText = $@" SELECT Gondviselo.ID AS GondviseloId ,Gondviselo.C_NEV AS GondviseloNev FROM T_TANULOCSOPORT_OSSZES TanuloCsoport INNER JOIN T_GONDVISELO_OSSZES Gondviselo ON Gondviselo.C_TANULOID = TanuloCsoport.C_TANULOID AND Gondviselo.TOROLT = 'F' AND Gondviselo.C_TANEVID = TanuloCsoport.C_TANEVID WHERE TanuloCsoport.C_OSZTALYCSOPORTID = @{nameof(osztalyId)} AND TanuloCsoport.C_BELEPESDATUM <= :pDatum AND(TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM > GETDATE()) AND TanuloCsoport.TOROLT = 'F' AND TanuloCsoport.C_TANEVID = :pTanevId"; DataSet dataSet = GetData(commandText, commandParameterList); return dataSet; } public DataSet GetOsztalyokByMuveszetiAg(MuveszetiAgEnum muveszetiAg, int tanevId) { var commandParameterList = new List { new CommandParameter(nameof(muveszetiAg), (int)muveszetiAg), new CommandParameter(nameof(tanevId), tanevId) }; string commandText = $@" SELECT ocs.ID FROM T_OSZTALYCSOPORT_OSSZES ocs INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.TOROLT = 'F' AND ocs.C_TANEVID = o.C_ALTANEVID WHERE ocs.C_TANEVID = @{nameof(tanevId)} AND ocs.C_MUVESZETIAGID = @{nameof(muveszetiAg)} AND ocs.TOROLT = 'F' "; return GetData(commandText, commandParameterList); } public DataSet GetOsztalyCsoportokFeladatKategoria(string osztalyIdString) { string commandText = $@" SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID IN ({osztalyIdString}) "; return GetData(commandText); } public DataSet GetOsztalyCsoportokOktatasNevelesiFeladatTipus(string osztalyIdString) { string commandText = $@" SELECT fh.C_OKTATASINEVELESIFELADATTIPUS FROM T_OSZTALYCSOPORT_OSSZES ocs INNER JOIN T_FELADATELLATASIHELY_OSSZES fh ON ocs.C_FELADATELLATASIHELYID = fh.ID AND fh.TOROLT = 'F' WHERE ocs.ID IN ({osztalyIdString}) AND ocs.TOROLT = 'F' "; return GetData(commandText); } public DataSet GetOsztalybontasosCsoportokOsztalyAdatokkal(string csoportIdString, int tanevId) { var paramList = new List() { new CommandParameter(nameof(tanevId), tanevId) }; string commandText = $@" SELECT oszalybontottOsztalya.C_EVFOLYAMTIPUSA AS OsztalybontottOsztalyanakEvfolyama ,oszalybontottOsztalya.C_FELADATELLATASIHELYID AS OsztalybontottOsztalyanakFeladatellatasiHelye ,oszalybontottOsztalya.C_ISGYOGYPEDAGOGIAILOGOPEDIAI AS OsztalybontottOsztalyanakGyogypedagogiaiLogopediai ,oszalybontottOsztalya.C_ISTECHNIKAI AS OsztalybontottOsztalyanakTechnikai ,csoport.C_NEV AS CsoportNev FROM T_CSOPORT_OSSZES cs INNER JOIN T_OSZTALYCSOPORT_OSSZES csoport ON csoport.ID = cs.ID AND csoport.TOROLT = 'F' AND cs.C_ALTANEVID = csoport.C_TANEVID INNER JOIN T_OSZTALYCSOPORT_OSSZES oszalybontottOsztalya ON oszalybontottOsztalya.ID = cs.C_OSZTALYBONTASID AND oszalybontottOsztalya.TOROLT = 'F' AND cs.C_ALTANEVID = oszalybontottOsztalya.C_TANEVID WHERE cs.ID IN ({csoportIdString}) AND cs.TOROLT = 'F' AND cs.C_ALTANEVID = @{nameof(tanevId)} "; return GetData(commandText, paramList); } public DataSet GetAutoEgyeniCsoportok(string csoportIDArrayString, int tanevId) { var paramList = new List() { new CommandParameter(nameof(tanevId), tanevId) }; string commandText = $@" SELECT csoport.C_NEV AS CsoportNev FROM T_CSOPORT_OSSZES cs INNER JOIN T_OSZTALYCSOPORT_OSSZES csoport ON csoport.ID = cs.ID AND csoport.TOROLT = 'F' AND cs.C_ALTANEVID = csoport.C_TANEVID WHERE cs.ID IN ({csoportIDArrayString}) AND cs.C_ISAUTOEGYENICSOPORT = 'T' AND cs.TOROLT = 'F' AND cs.C_ALTANEVID = @{nameof(tanevId)} "; return GetData(commandText, paramList); } public DataSet GetTanuloOsztalyDataSetByOsztalyCsoportId(int tanevId, int osztalyCsoportId) { using (var sdaCommand = new SDACommand()) { sdaCommand.Connection = UserContext.Instance.SDAConnection; sdaCommand.Transaction = UserContext.Instance.SDATransaction; sdaCommand.CommandType = CommandType.StoredProcedure; sdaCommand.CommandText = "uspGetTanuloOsztalyDataSetByOsztalyCsoportId"; sdaCommand.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId; sdaCommand.Parameters.Add("pOsztalyCsoportId", SDADBType.Int).Value = osztalyCsoportId; var dataSet = new DataSet(); using (var sdaDataAdapter = new SDADataAdapter()) { sdaDataAdapter.SelectCommand = sdaCommand; sdaDataAdapter.Fill(dataSet); } return dataSet; } } public DataSet GetKapcsolodoOsztalyCsoportok(int osztalyCsoportId) { var paramList = new List { new CommandParameter(nameof(osztalyCsoportId), osztalyCsoportId) }; var commandText = $"SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@{nameof(osztalyCsoportId)})"; return GetData(commandText, paramList); } public DataSet GetCsoportBesorolasModositasValidacio(int tanevId, int csoportId, int tanuloId, DateTime datumTol, DateTime datumIg, OktNevelesiKategoriaEnum? feladatKategoria, bool isTorolhetosegVizsgalat) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspValidateCsoportbaSorolasModositasa"; command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId; command.Parameters.Add("pCsoportId", SDADBType.Int).Value = csoportId; command.Parameters.Add("pTanuloId", SDADBType.Int).Value = tanuloId; command.Parameters.Add("pDatumTol", SDADBType.DateTime).Value = datumTol; command.Parameters.Add("pDatumIg", SDADBType.DateTime).Value = datumIg; command.Parameters.Add("pIsTorolhetosegVizsgalat", isTorolhetosegVizsgalat); if (feladatKategoria.HasValue) { command.Parameters.Add("pFeladatKategoriaId", SDADBType.Int).Value = (int)feladatKategoria; } var ds = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } return ds; } } public DataSet GetOsztalyCsoportNev(string osztalyCsoportNev, int? id, int tanevId) { var prams = new List { new CommandParameter(nameof(osztalyCsoportNev), osztalyCsoportNev), new CommandParameter(nameof(tanevId), tanevId) }; string commandText = $@" SELECT o.ID OsztalyId, cs.ID CsoportId, ocs.C_FELADATKATEGORIAID KategoriaId FROM T_OSZTALYCSOPORT_OSSZES ocs LEFT JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID LEFT JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID WHERE ocs.TOROLT = 'F' AND ocs.C_TANEVID = @{nameof(tanevId)} AND ocs.C_NEV = @{nameof(osztalyCsoportNev)} "; if (id.HasValue) { prams.Add(new CommandParameter(nameof(id), id)); commandText += $" AND ocs.ID <> @{nameof(id)}"; } return GetData(commandText, prams); } public DataSet GetOsztalyBesorolasModositasValidacio(int tanevId, int fromOsztalyId, int toOsztalyId, int tanuloId, DateTime datumTol, DateTime datumIg, OktNevelesiKategoriaEnum feladatKategoria, bool isTorolhetosegVizsgalat, bool isCheckMaxOsztalyReturnKilepes) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspValidateOsztalybaSorolasModositasa"; command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId; command.Parameters.Add("pFromOsztalyId", SDADBType.Int).Value = fromOsztalyId; command.Parameters.Add("pToOsztalyId", SDADBType.Int).Value = toOsztalyId; command.Parameters.Add("pTanuloId", SDADBType.Int).Value = tanuloId; command.Parameters.Add("pDatumTol", SDADBType.DateTime).Value = datumTol; command.Parameters.Add("pDatumIg", SDADBType.DateTime).Value = datumIg; command.Parameters.Add("pFeladatKategoriaId", SDADBType.Int).Value = (int)feladatKategoria; command.Parameters.Add("pIsTorolhetosegVizsgalat", isTorolhetosegVizsgalat); command.Parameters.Add("pIsCheckMaxOsztalyReturnKilepes", isCheckMaxOsztalyReturnKilepes); var ds = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } return ds; } } public DataSet GetTanuloOsztalyEsFeladatkategoriaList(int tanuloId, int tanevId, int intezmenyId, DateTime? datum = null) { var result = new DataSet(); using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; var parameters = new List { new CommandParameter("pTanuloId", tanuloId), new CommandParameter("pDatum", datum ?? DateTime.Now), new CommandParameter("pIntezmenyId", intezmenyId), new CommandParameter("pTanevId", tanevId) }; command.CommandText = $@" SELECT C_OSZTALYCSOPORTID ID ,ocs.C_FELADATKATEGORIAID FeladatKategoriaId FROM T_TANULOCSOPORT_OSSZES tanuloCsoport INNER JOIN T_OSZTALY_OSSZES o ON o.ID = tanuloCsoport.C_OSZTALYCSOPORTID AND o.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.TOROLT = 'F' WHERE tanuloCsoport.C_TANULOID = :pTanuloId AND tanuloCsoport.C_BELEPESDATUM <= :pDatum AND (tanuloCsoport.C_KILEPESDATUM IS NULL OR tanuloCsoport.C_KILEPESDATUM >= :pDatum) AND tanuloCsoport.C_INTEZMENYID = :pIntezmenyId AND tanuloCsoport.C_TANEVID = :pTanevId AND tanuloCsoport.TOROLT = 'F' "; result = GetData(command.CommandText, parameters); } return result; } public DateTime? GetVegzosUtolsoNapByOsztalycsoportId(string azonosito, int tanevId, int intezmenyId, int osztalycsoportId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.Parameters.Add(nameof(azonosito), azonosito); command.Parameters.Add(nameof(tanevId), tanevId); command.Parameters.Add(nameof(intezmenyId), intezmenyId); command.Parameters.Add(nameof(osztalycsoportId), osztalycsoportId); command.CommandText = $@"SELECT [kr_{azonosito}_schema].fnGetOsztalyVegzosTanitasiNap({osztalycsoportId}, {intezmenyId}, {tanevId})"; var result = command.ExecuteScalar(); DateTime? ret = null; if (result != null && result != DBNull.Value) { ret = Convert.ToDateTime(result); } return ret; } } public DataSet GetOsztalyCsoportAdatokDataSet() { using (var sdaCommand = new SDACommand()) { sdaCommand.Connection = UserContext.Instance.SDAConnection; sdaCommand.Transaction = UserContext.Instance.SDATransaction; sdaCommand.CommandType = CommandType.StoredProcedure; sdaCommand.CommandText = "uspGetOsztalyCsoportAdatok"; var result = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = sdaCommand; adapter.Fill(result); } return result; } } } }