using System; using System.Collections.Generic; using System.Data; using System.Text; using Kreta.Core; using Kreta.DataAccess.Interfaces; using Kreta.DataAccessManual.Interfaces; 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 TanarDAL : DataAccessBase, ITanarDal { public TanarDAL(DalHandler handler) : base(handler) { } public TanarDAL(DalHandler handler, GridParameters parameters) : base(handler, parameters) { } public DataSet GetTanulotTanitoTanarok(int tanuloId) { const string commandText = @" SELECT DISTINCT tantargy.C_NEV as Tantargy ,tanar.C_NYOMTATASINEV as Tanar FROM T_TANULOCSOPORT tanuloCsoport INNER JOIN T_FOGLALKOZAS foglalkozas On foglalkozas.C_OSZTALYCSOPORTID = tanuloCsoport.C_OSZTALYCSOPORTID AND foglalkozas.TOROLT = 'F' INNER JOIN T_FELHASZNALO tanar On foglalkozas.C_TANARID = tanar.ID AND tanar.TOROLT = 'F' INNER JOIN T_TANTARGY tantargy On foglalkozas.C_TANTARGYID = tantargy.ID AND tantargy.TOROLT = 'F' WHERE tanuloCsoport.C_BELEPESDATUM < GETDATE() AND (tanuloCsoport.C_KILEPESDATUM is null or tanuloCsoport.C_KILEPESDATUM >= GETDATE()) AND tanuloCsoport.TOROLT = 'F' AND tanuloCsoport.C_TANULOID = :pUserId "; var prams = new List { new CommandParameter("pUserId", tanuloId) }; var ds = this.GetData(commandText, prams); return ds; } public DataSet GetProfil(int tanarId, int tanevId, Guid? userIdpUniqueId = null) { var commandText = @" SELECT f.ID Id ,f.C_NYOMTATASINEV Nev ,e.C_EMAILCIM MunkahelyiEmailCim ,e2.C_EMAILCIM PublikusEmailCim ,t.C_TELEFONSZAM MunkahelyiTelefonszam ,t2.C_TELEFONSZAM PublikusTelefonszam ,ia.C_ROVIDNEV IntezmenyNev ,mh.C_NEV MukodesiHelyNev ,fh.C_OKTATASINEVELESIFELADATTIPUS OktatasiNevelesiFeladatTipusId ,m.C_FELADATELLATASIHELYID FeladatEllatasiHelyId FROM T_MUNKAUGYIADATOK_OSSZES m INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = m.C_ALKALMAZOTTID AND f.TOROLT = 'F' LEFT JOIN T_EMAIL_OSSZES e ON e.C_FELHASZNALOID = f.ID AND e.C_ISPUBLIC = 'F' AND e.C_ALAPERTELMEZETT = 'T' AND e.TOROLT = 'F' LEFT JOIN T_EMAIL_OSSZES e2 ON e2.C_FELHASZNALOID = f.ID AND e2.C_ISPUBLIC = 'T' AND e2.TOROLT = 'F' LEFT JOIN T_TELEFON_OSSZES t ON t.C_FELHASZNALOID = f.ID AND t.C_ISPUBLIC = 'F' AND t.C_ALAPERTELMEZETT = 'T' AND t.TOROLT = 'F' LEFT JOIN T_TELEFON_OSSZES t2 ON t2.C_FELHASZNALOID = f.ID AND t2.C_ISPUBLIC = 'T' AND t2.TOROLT = 'F' INNER JOIN T_FELADATELLATASIHELY_OSSZES fh ON fh.ID = m.C_FELADATELLATASIHELYID AND fh.TOROLT = 'F' INNER JOIN T_MUKODESIHELY_OSSZES mh ON mh.C_INTEZMENYID = fh.C_INTEZMENYID AND mh.ID = fh.C_MUKODESIHELYID AND mh.TOROLT = 'F' INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.C_INTEZMENYID = mh.C_INTEZMENYID AND ia.TOROLT = 'F' WHERE" + (userIdpUniqueId.HasValue ? " f.C_IDPEGYEDIAZONOSITO = :pUserIdpUniqueId " : " m.C_ALKALMAZOTTID = :pUserId") + @" AND m.C_TANEVID = :pTanevId AND m.TOROLT = 'F'"; var parameters = new List { new CommandParameter("pUserId", tanarId), new CommandParameter("pTanevId", tanevId) }; if (userIdpUniqueId.HasValue) { parameters.Add(new CommandParameter("pUserIdpUniqueId", userIdpUniqueId)); } return GetData(commandText, parameters); } public DataSet GetTeacherPhones(int teacherId) { var pram = new List(); pram.Add(new CommandParameter("pTanarID", teacherId)); var commandText = @"SELECT ID ,C_TELEFONSZAM AS Phone ,C_ALAPERTELMEZETT AS ALAPERTELMEZETT ,C_LEIRAS AS Description ,C_TELEFONTIPUSA AS Type ,C_ISPUBLIC AS IsPublic FROM T_TELEFON_OSSZES WHERE C_FELHASZNALOID = :pTanarID AND TOROLT = 'F'"; var result = GetData(commandText, pram, "TYPE", "ALAPERTELMEZETT,IsPublic"); return result; } public DataSet GetTeacherEmails(int teacherId) { var pram = new List(); pram.Add(new CommandParameter("pTanarID", teacherId)); var commandText = @"SELECT ID ,C_EMAILTIPUSA AS Type ,C_EMAILCIM AS Email ,C_ALAPERTELMEZETT AS ALAPERTELMEZETT ,C_ISPUBLIC AS IsPublic ,C_ISHIBASANMEGADVA AS IsHibasanMegadva FROM T_EMAIL_OSSZES WHERE C_FELHASZNALOID = :pTanarID AND TOROLT = 'F'"; var result = GetData(commandText, pram, "TYPE", "ALAPERTELMEZETT,IsPublic,IsHibasanMegadva"); return result; } public DataSet GetTeacherAddressData(int teacherId) { var pram = new List(); pram.Add(new CommandParameter("pTanarID", teacherId)); var commandText = @"SELECT ID ,C_ORSZAG as Orszag ,C_IRANYITOSZAM AS IRANYITOSZAM ,C_MEGYE AS Megye ,C_VAROS AS VAROS ,C_CIMTIPUSA AS TIPUS ,C_KOZTERULET AS KOZTERULET ,C_HAZSZAM AS HAZSZAM ,C_EMELET AS EMELET ,C_AJTO AS AJTO ,C_KOZTERULETJELLEGENEV as KozteruletJellegeNev ,C_ALAPERTELMEZETT AS Alapertelmezett FROM T_CIM_OSSZES WHERE C_FELHASZNALOID = :pTanarID AND TOROLT = 'F'"; var result = GetData(commandText, pram, "Orszag,TIPUS", "Alapertelmezett"); return result; } public DataSet GetTeacherRoutines(int teacherId) { var pram = new List(); pram.Add(new CommandParameter("pTanarID", teacherId)); var commandText = @"SELECT FOG.ID, TT.C_NEV Tantargy, OCS.C_NEV OsztalyCsoport, FOG.C_ORASZAM HetiOraszam,C_FOGLALKOZASTIPUSA Foglalkozas FROM T_FOGLALKOZAS_OSSZES FOG INNER JOIN T_TANTARGY_OSSZES TT on FOG.C_TANTARGYID = TT.ID AND TT.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT_OSSZES OCS on FOG.C_OSZTALYCSOPORTID = OCS.ID AND OCS.TOROLT = 'F' WHERE FOG.C_TANARID = :pTanarID AND FOG.TOROLT = 'F'"; var result = GetData(commandText, pram, "Foglalkozas"); return result; } public DataSet GetTimeTableSubjects(int teacherId) { var pram = new List(); pram.Add(new CommandParameter("pTanarID", teacherId)); var commandText = @"SELECT OO.ID ,OO.C_HETIREND AS Hetirend ,OO.C_HETNAPJA AS HetNapja ,OO.C_ORASZAM AS Ora ,OCS.C_NEV AS OsztalyCsoport ,TT.C_Nev AS Tantargy ,OO.C_ORAERVENYESSEGKEZDETE AS ErvenyessegKezdete ,OO.C_ORAERVENYESSEGVEGE AS ErvenyessegVege ,TEREM.C_NEV AS Helyiseg FROM T_ORARENDIORA_OSSZES OO INNER JOIN T_TANTARGY_OSSZES TT on OO.C_TANTARGYID = TT.ID AND TT.TOROLT = 'F' INNER JOIN T_TEREM_OSSZES TEREM on OO.C_TEREMID = TEREM.ID AND TEREM.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT_OSSZES OCS on OCS.ID = OO.C_OSZTALYCSOPORTID AND OCS.TOROLT = 'F' WHERE OO.C_TANARID = @pTanarID AND OO.TOROLT = 'F'"; var result = GetData(commandText, pram, "HetNapja,Hetirend"); return result; } public DataSet GetTeacherSyllabus(int teacherId) { var pram = new List(); pram.Add(new CommandParameter("pTanarID", teacherId)); var commandText = @"SELECT TM.ID, OCS.C_NEV OsztalyCsoport, TT.C_NEV Tantargy, TM.C_ORASZAM Oraszam, TM.C_TEMA Tema FROM t_Tanmenet_OSSZES TM INNER JOIN T_OSZTALYCSOPORT_OSSZES OCS on TM.C_OSZTALYCSOPORTID = OCS.ID INNER JOIN T_TANTARGY_OSSZES TT on TM.C_TANTARGYID = TT.ID WHERE c_feltoltoid = :pTanarID AND TM.TOROLT = 'F'"; var result = GetData(commandText, pram); return result; } public DataSet GetTeacherRating(int teacherId) { var pram = new List { new CommandParameter("pErtekeloId", teacherId) }; var commandText = @" SELECT tanuloErtekeles.ID ID ,tantargy.C_NEV Tantargy ,tanuloFelhasznalo.C_NYOMTATASINEV Tanulo ,tanuloErtekeles.C_DATUM Datum ,tanuloErtekeles.C_ERTEKELESTEMA Tema ,tanuloErtekeles.C_ERTEKELESOSZTALYZATID OSZTALYZAT ,tanuloErtekeles.C_ERTEKELESSZOVEG ErtekelesSzoveg ,tanuloErtekeles.C_TIPUSID TIPUS ,osztalyCsoport.C_NEV OsztalyCsoport ,tantargy.C_TARGYKATEGORIA FROM T_TANULOERTEKELES_OSSZES tanuloErtekeles INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.ID = tanuloErtekeles.C_TANTARGYID AND tantargy.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON osztalyCsoport.ID = tanuloErtekeles.C_OSZTALYCSOPORTID AND osztalyCsoport.TOROLT = 'F' INNER JOIN T_FELHASZNALO_OSSZES tanuloFelhasznalo ON tanuloFelhasznalo.ID = tanuloErtekeles.C_TANULOID AND tanuloFelhasznalo.TOROLT = 'F' WHERE tanuloErtekeles.C_ERTEKELOID = :pErtekeloId AND tanuloErtekeles.TOROLT = 'F'"; var result = GetData(commandText, pram, "TIPUS,OSZTALYZAT"); return result; } public DataSet GetHeldSubject(int teacherId) { var pram = new List(); pram.Add(new CommandParameter("pTanarID", teacherId)); var commandText = @"SELECT TORA.ID, OCS.C_NEV OSZTALYCSOPORT, TT.C_NEV TANTARGY, TORA.C_TEMA TEMA, CASE WHEN TORA.C_HELYETTESITOTANARID = :pTanarID THEN 'T' ELSE 'F' END AS HELYETT, TORA.C_DATUM DATUM, TORA.C_ORASZAM ORASZAM FROM T_TanitasiOra_OSSZES TORA INNER JOIN T_TANTARGY_OSSZES TT on TORA.C_TANTARGYID= TT.ID INNER JOIN T_OSZTALYCSOPORT_OSSZES OCS on TORA.C_OSZTALYCSOPORTID = OCS.ID WHERE TORA.C_MEGTARTOTT = 'T' AND TORA.TOROLT = 'F' AND (TORA.C_TANARID = :pTanarID OR TORA.C_HELYETTESITOTANARID = :pTanarID)"; var result = GetData(commandText, pram, booleanColumns: "HELYETT"); return result; } public DataSet GetTeacherNames(int? kiveveTanarId = null, bool oktatasiAzonositoval = false, int? tanevId = null, bool csakNaploJogkorrel = false) { var kiveveTanar = kiveveTanarId.HasValue ? " AND T_FELHASZNALO_OSSZES.ID != :pKiveveTanarId " : string.Empty; var oktatasiAzon = oktatasiAzonositoval ? $" + isnull(' (' + T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO + ')','{Constants.General.HianyzoOktatasiAzonositoJeloles}')" : string.Empty; var tanevIdSzures = tanevId.IsEntityId() ? " AND t_alkalmazott_osszes.c_altanevid = :pTanevId " : string.Empty; var csakNaploJogkorrelSzures = csakNaploJogkorrel ? $@" INNER JOIN T_FELHASZNALO_SZEREPKOR fsz ON fsz.C_FELHASZNALOID = T_ALKALMAZOTT_OSSZES.ID INNER JOIN T_SZEREPKOR_OSSZES sz ON sz.ID = fsz.C_SZEREPKORID AND sz.TOROLT = 'F' INNER JOIN T_SZEREPKORTIPUS_OSSZES szkt ON szkt.ID = sz.C_SZEREPKORTIPUS AND szkt.ID = {(int)SzerepkorTipusEnum.Naplo} AND szkt.C_ALTANEVID = sz.C_TANEVID AND szkt.TOROLT = 'F'" : ""; var commandText = new StringBuilder($@"SELECT T_ALKALMAZOTT_OSSZES.ID AS ID, LTRIM(T_FELHASZNALO_OSSZES.C_NYOMTATASINEV) {oktatasiAzon} AS Nev FROM T_ALKALMAZOTT_OSSZES INNER JOIN T_FELHASZNALO_OSSZES on T_ALKALMAZOTT_OSSZES.ID = T_FELHASZNALO_OSSZES.ID {csakNaploJogkorrelSzures} WHERE T_ALKALMAZOTT_OSSZES.TOROLT = 'F' AND T_FELHASZNALO_OSSZES.TOROLT = 'F' AND LTRIM(T_FELHASZNALO_OSSZES.C_NYOMTATASINEV) + isnull(' (' + T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO + ')','') IS NOT NULL {kiveveTanar}{tanevIdSzures} ORDER BY IIF(T_FELHASZNALO_OSSZES.C_NEVSORREND = 'T', T_FELHASZNALO_OSSZES.C_UTONEV + ' '+ T_FELHASZNALO_OSSZES.C_VEZETEKNEV, T_FELHASZNALO_OSSZES.C_VEZETEKNEV + ' ' + T_FELHASZNALO_OSSZES.C_UTONEV) "); var parameters = new List(); if (kiveveTanarId.HasValue) { parameters.Add(new CommandParameter("pKiveveTanarId", kiveveTanarId.Value)); } if (tanevId.IsEntityId()) { parameters.Add(new CommandParameter("pTanevId", tanevId)); } DataSet ds = GetData(commandText.ToString(), parameters); return ds; } public DataSet GetAlkalmazottNames(int tanevId, int intezmenyId, bool oktatasiAzonositoval = false, bool isFromSzervezet = false, int? szervezetId = null, int? szervezetekHalmaza = null) { var fromSzervezetClause = isFromSzervezet ? @" INNER JOIN T_MUNKAUGYIADATOK_OSSZES mua ON mua.C_ALKALMAZOTTID = T_ALKALMAZOTT_OSSZES.ID AND mua.TOROLT = 'F' INNER JOIN ( T_SZERVEZET_OSSZES sz INNER JOIN ( SELECT * FROM fnGetLathatoSzervezetek(@pIntezmenyId, @pTanevId, @pSzervezetId, @pSzervezetekHalmaza) ) AS lathato ON lathato.ID = sz.ID ) ON sz.ID = mua.C_SZERVEZETID AND sz.TOROLT = 'F' " : @" INNER JOIN T_MUNKAUGYIADATOK_OSSZES mua ON mua.C_ALKALMAZOTTID = T_ALKALMAZOTT_OSSZES.ID AND mua.TOROLT = 'F' AND mua.C_SZERVEZETID IS NULL "; var commandText = $@" SELECT DISTINCT T_ALKALMAZOTT_OSSZES.ID AS ID, IIF ( T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO IS NULL, LTRIM(T_FELHASZNALO_OSSZES.C_NYOMTATASINEV){(oktatasiAzonositoval ? $" + '{Constants.General.HianyzoOktatasiAzonositoJeloles}'" : "")}, LTRIM(T_FELHASZNALO_OSSZES.C_NYOMTATASINEV) {(oktatasiAzonositoval ? " + ' (' + T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO + ')'" : "")} ) AS Nev ,IIF(T_FELHASZNALO_OSSZES.C_NEVSORREND = 'T', T_FELHASZNALO_OSSZES.C_UTONEV + ' ' + T_FELHASZNALO_OSSZES.C_VEZETEKNEV, T_FELHASZNALO_OSSZES.C_VEZETEKNEV + ' ' + T_FELHASZNALO_OSSZES.C_UTONEV) {(isFromSzervezet ? @" ,sz.C_NEV AS SzervezetNeve" : "")} FROM T_ALKALMAZOTT_OSSZES INNER JOIN T_FELHASZNALO_OSSZES on T_ALKALMAZOTT_OSSZES.ID = T_FELHASZNALO_OSSZES.ID {fromSzervezetClause} WHERE T_ALKALMAZOTT_OSSZES.TOROLT = 'F' AND T_FELHASZNALO_OSSZES.TOROLT = 'F' AND T_ALKALMAZOTT_OSSZES.C_ALTANEVID = :pTanevId ORDER BY IIF(T_FELHASZNALO_OSSZES.C_NEVSORREND = 'T', T_FELHASZNALO_OSSZES.C_UTONEV + ' ' + T_FELHASZNALO_OSSZES.C_VEZETEKNEV, T_FELHASZNALO_OSSZES.C_VEZETEKNEV + ' ' + T_FELHASZNALO_OSSZES.C_UTONEV)"; var parameters = new List { new CommandParameter("pTanevId", tanevId) }; if (isFromSzervezet) { parameters.Add(new CommandParameter("pIntezmenyId", intezmenyId)); parameters.Add(new CommandParameter("pSzervezetId", szervezetId.IsEntityId() ? szervezetId : (object)DBNull.Value)); parameters.Add(new CommandParameter("pSzervezetekHalmaza", szervezetekHalmaza ?? (object)DBNull.Value)); } var ds = GetData(commandText, parameters); return ds; } public DataSet GetTeacherStudents(int tanarId, int tanevId, int? foglalkozasId, int? foglalkozasTipus, double bukasAtlag, bool csakBukasraAllok, int? feladatKategoriaId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspGetTanarTanitottTanuloi"; command.Parameters.Add("pTanarId", tanarId).Value = tanarId; command.Parameters.Add("pTanevId", tanevId); command.Parameters.Add("pBukasAtlag", bukasAtlag); command.Parameters.Add("pCsakBukasraAllok", csakBukasraAllok); if (foglalkozasId.IsEntityId()) { command.Parameters.Add("pFoglalkozasId", foglalkozasId.Value); } if (foglalkozasTipus.IsEntityId()) { command.Parameters.Add("pFoglalkozasTipusId", foglalkozasTipus.Value); } if (feladatKategoriaId.IsEntityId()) { command.Parameters.Add("pFeladatKategoriaId", feladatKategoriaId.Value); } var ds = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } SetDNAME(ds.Tables[0], "Tipus"); DataTable dt = SortingAndPaging(ds.Tables[0], GridParameters); return dt.AsDataSet(); } } public DataSet GetTeacherNonStudents(int tanarId, int intezmenyId, int? tanevId, int? osztalyCsoportID) { var ds = new DataSet(); using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspGetTanarNemTanitottTanuloi"; command.Parameters.Add("pTanarId", SDADBType.Int).Value = tanarId; command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId; command.Parameters.Add("pIntezmenyId", SDADBType.Int).Value = intezmenyId; if (osztalyCsoportID.HasValue) { command.Parameters.Add("pOsztalycsoportId", SDADBType.Int).Value = osztalyCsoportID; } using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } DataTable dt = SortingAndPaging(ds.Tables[0], GridParameters); return dt.AsDataSet(); } } public DataSet KIRTanarokImport(string tanariAdatokXml, int feladatellatasiHelyId, int intezmenyId, int tanevId, int userId) { using (SDACommand command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "sp_KIRImportTanarok"; command.Parameters.Add("TanarokXML", tanariAdatokXml); command.Parameters.Add("FeladatellatasiHelyId ", feladatellatasiHelyId); command.Parameters.Add("intezmenyID", intezmenyId); command.Parameters.Add("tanevID", tanevId); command.Parameters.Add("userId", userId); var dts = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(dts); } DalHelper.Commit(); return dts; } } public DataSet GetPedagogusEletpalyamodell(int tanarId) { List paramlist = new List(); paramlist.Add(new CommandParameter("pTanarID", tanarId)); string CommandText = @" SELECT PedagogusEletpalyaModel.ID ID, PedagogusEletpalyaModel.C_FOKOZAT Fokozat, PedagogusEletpalyaModel.C_PORTFOLIOSTATUSZ Statusz, PedagogusEletpalyaModel.C_MINOSITESDATUM Datum FROM T_PEDAGOGUSELETPALYAMODELL_OSSZES PedagogusEletpalyaModel INNER JOIN T_ALKALMAZOTT_OSSZES Alk ON Alk.ID = PedagogusEletpalyaModel.C_TANARID WHERE PedagogusEletpalyaModel.TOROLT='F' AND Alk.TOROLT ='F' AND Alk.ID = :pTanarID"; DataSet ds = GetData(CommandText, paramlist, dictionaryItemColumns: "Fokozat,Statusz"); return ds; } public DataSet GetVegzettseg(int tanarId, int tanevId) { List paramlist = new List(); paramlist.Add(new CommandParameter(nameof(tanarId), tanarId)); paramlist.Add(new CommandParameter(nameof(tanevId), tanevId)); string CommandText = $@" SELECT Vegzettseg.ID ID ,Vegzettseg.C_VEGZETTSEGTIPUSID Vegzettseg ,Vegzettseg.C_EGYEB Egyeb FROM T_VEGZETTSEG_OSSZES Vegzettseg INNER JOIN T_ALKALMAZOTT_OSSZES Alk ON Alk.ID = Vegzettseg.C_TANARID WHERE Vegzettseg.TOROLT = 'F' AND Vegzettseg.C_TANEVID = @{nameof(tanevId)} AND Alk.TOROLT = 'F' AND Alk.ID = @{nameof(tanarId)} AND Alk.C_ALTANEVID = @{nameof(tanevId)} "; DataSet ds = GetData(CommandText, paramlist, dictionaryItemColumns: "Vegzettseg"); if (ds.Tables[0] != null) { ds.Tables[0].Columns.Add("Kepesites", typeof(string)); foreach (DataRow rows in ds.Tables[0].Rows) { rows["Kepesites"] = GetKepesites((int)rows["ID"], tanevId); } } return ds; } public DataSet GetKKMainGridVegzettseg(int tanarId) { List paramlist = new List(); paramlist.Add(new CommandParameter("pTanarID", tanarId)); string CommandText = @" select NEWID() Id, id EntityId, null VegzettsegTipusId, null Egyeb, null TancmuveszetiAg, null ZenemuveszetiAg, null KepzomuveszetiAg, null SzinmuveszetiAg, null KepesitesJellegeTipus, C_KKKEPESITESID KepesitesTipusId, null TeruletId from T_ALKALMAZOTT_OSSZES where TOROLT = 'F' and id = :pTanarID union select top 1 NEWID() Id, null EntityId, null VegzettsegTipusId, null Egyeb, null TancmuveszetiAg, null ZenemuveszetiAg, null KepzomuveszetiAg, null SzinmuveszetiAg, " + (int)KKKepesitesJellTipusEnum.Gyogypedagogus + @" KepesitesJellegeTipus, null KepesitesTipusId, C_KKGYOGYPEDTERTIPUSID Terulet from T_KKGYOGYPEDVEGZETTSEG_OSSZES where TOROLT = 'F' and C_ALKALMAZOTTID = :pTanarID union select top 1 NEWID() Id, null EntityId, null VegzettsegTipusId, null Egyeb, null TancmuveszetiAg, null ZenemuveszetiAg, null KepzomuveszetiAg, null SzinmuveszetiAg, " + (int)KKKepesitesJellTipusEnum.Tanito + @" KepesitesJellegeTipus, null KepesitesTipusId, C_KKTANIOTOMUVTERTIPUSID Terulet from T_KKTANITOVEZGETTSEG_OSSZES where TOROLT = 'F' and C_ALKALMAZOTTID = :pTanarID union select NEWID() Id, tanarV.ID EntityId, tanarV.C_KKTANARVEGZETTSEGID VegzettsegTipusId, C_EGYEB Egyeb, null TancmuveszetiAg, null ZenemuveszetiAg, null KepzomuveszetiAg, null SzinmuveszetiAg, " + (int)KKKepesitesJellTipusEnum.Tanar + @" KepesitesJellegeTipus, null KepesitesTipusId, null Terulet from T_KKTANARVEGZETTSEG_OSSZES tanarV where TOROLT = 'F' and C_ALKALMAZOTTID = :pTanarID union select distinct NEWID() Id, amiV.ID EntityId, amiV.C_KKAMIVEGZETTSEGTIPUSID VegzettsegTipusId, null Egyeb, tanc.C_AMITERULETTIPUSID TancmuveszetiAg, zene.C_AMITERULETTIPUSID ZenemuveszetiAg, kepzo.C_AMITERULETTIPUSID KepzomuveszetiAg, szin.C_AMITERULETTIPUSID SzinmuveszetiAg, " + (int)KKKepesitesJellTipusEnum.TanarAMI + @" KepesitesJellegeTipus, null KepesitesTipusId, null Terulet from T_KKAMIVEGZETTSEG_OSSZES amiV left join (select C_AMITERULETTIPUSID,C_KKAMIVEGZETTSEGID from T_KKTERULET_OSSZES where TOROLT = 'F' and C_AMITERULETTIPUSID = " + (int)KKAMITeruletTipusEnum.TancmuveszetiAg + @")tanc on tanc.C_KKAMIVEGZETTSEGID = amiV.ID left join (select C_AMITERULETTIPUSID,C_KKAMIVEGZETTSEGID from T_KKTERULET_OSSZES where TOROLT = 'F' and C_AMITERULETTIPUSID = " + (int)KKAMITeruletTipusEnum.ZenemuveszetiAg + @")zene on zene.C_KKAMIVEGZETTSEGID = amiV.ID left join (select C_AMITERULETTIPUSID,C_KKAMIVEGZETTSEGID from T_KKTERULET_OSSZES where TOROLT = 'F' and C_AMITERULETTIPUSID = " + (int)KKAMITeruletTipusEnum.KepzoEsIparmuveszetiAg + @")kepzo on kepzo.C_KKAMIVEGZETTSEGID = amiV.ID left join (select C_AMITERULETTIPUSID,C_KKAMIVEGZETTSEGID from T_KKTERULET_OSSZES where TOROLT = 'F' and C_AMITERULETTIPUSID = " + (int)KKAMITeruletTipusEnum.SzinEsBabmuveszetiAg + @")szin on szin.C_KKAMIVEGZETTSEGID = amiV.ID where TOROLT = 'F' and C_ALKALMAZOTTID = :pTanarID"; DataSet ds = GetData(CommandText, paramlist, dictionaryItemColumns: "VegzettsegTipusId,KepesitesJellegeTipus,KepesitesTipusId,TancmuveszetiAg,ZenemuveszetiAg,KepzomuveszetiAg,SzinmuveszetiAg,TeruletId"); return ds; } public string GetKepesites(int vegzettsegId, int tanevId) { List paramlist = new List(); paramlist.Add(new CommandParameter(nameof(vegzettsegId), vegzettsegId)); paramlist.Add(new CommandParameter(nameof(tanevId), tanevId)); string CommandText = $@" SELECT k.C_KEPESITESTIPUSID FROM T_VEGZETTSEG_OSSZES Vegzettseg INNER JOIN T_KEPESITES_VEGZETTSEG kp ON kp.C_VEGZETTSEGID = Vegzettseg.ID INNER JOIN T_KEPESITES_OSSZES k ON k.ID = kp.C_KEPESITESID AND k.TOROLT = 'F' WHERE Vegzettseg.ID = @{nameof(vegzettsegId)} AND Vegzettseg.TOROLT = 'F' AND Vegzettseg.C_TANEVID = @{nameof(tanevId)} AND k.C_TANEVID = @{nameof(tanevId)} "; DataSet ds = GetData(CommandText, paramlist, dictionaryItemColumns: "C_KEPESITESTIPUSID"); string dictionary = string.Empty; foreach (DataRow row in ds.Tables[0].Rows) { dictionary += row.Field("C_KEPESITESTIPUSID_DNAME") + ", "; } if (!string.IsNullOrWhiteSpace(dictionary)) { dictionary = dictionary.Remove(dictionary.Length - 2, 2); } return dictionary; } public DataSet GetTanarokForDDL(bool oktatasiAzonositoval = false, int? tanevId = null, bool isForMentor = false, bool isCsoportnelkuli = false, int? aktualisCsoportvezetoId = null) { var oktatasiAzonosito = oktatasiAzonositoval ? $" + isnull(' (' + f.c_oktatasiazonosito + ')','{Constants.General.HianyzoOktatasiAzonositoJeloles}')" : string.Empty; var tanevIdSzures = tanevId.IsEntityId() ? " AND f.c_tanevId = :pTanevID " : string.Empty; var oktatasiAzonositoOrder = oktatasiAzonositoval ? ", f.C_OKTATASIAZONOSITO" : string.Empty; var paramsList = new List(); var commandText = new StringBuilder($@" SELECT f.ID AS ID, f.C_NYOMTATASINEV {oktatasiAzonosito} AS Nev FROM T_ALKALMAZOTT_OSSZES a INNER JOIN T_FELHASZNALO_OSSZES f on f.ID = a.ID {(isForMentor ? "INNER JOIN T_MUNKAUGYIADATOK mua ON mua.C_ALKALMAZOTTID = a.ID AND mua.C_ISAPACZAIMENTOR = 'T' AND mua.C_TANEVID = f.C_TANEVID AND mua.TOROLT = 'F'" : string.Empty)} WHERE a.TOROLT = 'F' AND f.TOROLT = 'F' {(!isCsoportnelkuli ? string.Empty : " AND NOT EXISTS(SELECT TOP 1 1 FROM T_CSOPORT_OSSZES cs WHERE cs.C_CSOPORTVEZETOID = f.ID " + (aktualisCsoportvezetoId.HasValue ? " AND cs.C_CSOPORTVEZETOID <> " + aktualisCsoportvezetoId.ToString() : string.Empty) + " AND cs.C_ALTANEVID = f.C_TANEVID AND cs.TOROLT = 'F') ")} {tanevIdSzures} ORDER BY IIF(f.C_NEVSORREND = 'T', f.C_UTONEV + ' '+ f.C_VEZETEKNEV, f.C_VEZETEKNEV + ' ' + f.C_UTONEV){oktatasiAzonositoOrder}"); if (tanevId.IsEntityId()) { paramsList.Add(new CommandParameter("pTanevID", tanevId)); } var ds = GetData(commandText.ToString(), paramsList); return ds; } public DataSet GetTanarokByTanitottOsztalyForDDL(int osztalyId, int tanevId, bool oktatasiAzonositoval = false) { List parameters = new List(); parameters.Add(new CommandParameter("pOsztalyID", osztalyId)); parameters.Add(new CommandParameter("pTanevID", tanevId)); var commandText = string.Format(@" SELECT DISTINCT felh.ID AS ID, felh.C_NYOMTATASINEV {0} AS Nev, IIF(felh.C_NEVSORREND = 'T', felh.C_UTONEV + ' ' + felh.C_VEZETEKNEV, felh.C_VEZETEKNEV + ' ' + felh.C_UTONEV) as OrderName FROM T_FOGLALKOZAS_OSSZES f JOIN T_FELHASZNALO_OSSZES felh on felh.ID = f.C_TANARID WHERE f.TOROLT = 'F' AND f.C_TANEVID = :pTanevID AND felh.TOROLT = 'F' AND f.C_OSZTALYCSOPORTID = :pOsztalyID ORDER BY OrderName ", oktatasiAzonositoval ? " + isnull(' (' + f.c_oktatasiazonosito + ')','')" : ""); var ds = this.GetData(commandText, parameters); return ds; } public DataSet GetOsztalyfonokOsztalyfonokhelyettesForDDL(int tanevId, int intezmenyId) { var paramsList = new List(); var commandText = @"SELECT DISTINCT f.ID ID, f.C_NYOMTATASINEV Nev -- CASE f.ID -- WHEN o.C_OSZTALYFONOKID THEN 'Osztályfőnök' -- WHEN o.C_OFOHELYETTESID THEN 'Osztályfőnök helyettes' -- END Osztalyfonok FROM T_FELHASZNALO_OSSZES f INNER JOIN T_OSZTALY_OSSZES o ON o.C_OSZTALYFONOKID = f.ID OR o.C_OFOHELYETTESID = f.ID WHERE o.C_ALTANEVID = :pTanevId AND o.C_ALINTEZMENYID = :pIntezmenyId AND o.TOROLT = 'F' ORDER BY f.C_NYOMTATASINEV"; paramsList.Add(new CommandParameter("pTanevId", tanevId)); paramsList.Add(new CommandParameter("pIntezmenyId", intezmenyId)); var ds = GetData(commandText, paramsList); return ds; } public void Insert(IPedagogusEletpalyamodell dto) { var entity = (PedagogusEletpalyamodell)dto; var h = DalHelper.EletpalyaModell(); h.Insert(entity); DalHelper.Commit(); } public void UpdateAlkalmazottEletpalyaModell(IPedagogusEletpalyamodell dto) { var entity = (PedagogusEletpalyamodell)dto; var h = DalHelper.EletpalyaModell(); h.FullUpdate(entity); DalHelper.Commit(); } public void FullUpdate(IPedagogusEletpalyamodell dto) { var entity = (PedagogusEletpalyamodell)dto; entity.FullUpdate(); DalHelper.Commit(); } public void FullUpdate(IAlkalmazott alkalmazott, IMunkaugyiAdatok adatok) { var alkalmazottEntity = alkalmazott as Alkalmazott; var munkaugyiAdatokEntity = adatok as MunkaugyiAdatok; alkalmazottEntity.FullUpdate(); munkaugyiAdatokEntity.FullUpdate(); FollowUp(alkalmazottEntity); DalHelper.Commit(); } public DataSet GetPedagogusokOktatasiAzonositoja(int intezmenyId, int tanevId, bool torolt = false) { using (SDACommand command = new SDACommand()) { var paramlist = new List { new CommandParameter("pTorolt", torolt ? 'T' : 'F'), new CommandParameter("pIntezmenyId", intezmenyId), new CommandParameter("pTanevId", tanevId) }; var commandText = @" SELECT DISTINCT felhasznalo.ID C_PEDAGOGUSID, felhasznalo.C_OKTATASIAZONOSITO C_OKTATASIAZONOSITO FROM T_FELHASZNALO_OSSZES felhasznalo WHERE felhasznalo.C_INTEZMENYID = :pIntezmenyId AND felhasznalo.C_TANEVID = :pTanevId AND felhasznalo.TOROLT = :pTorolt"; DataSet ds = GetData(commandText, paramlist); return ds; } } public string GetTanarNev(int id) { using (SDACommand command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.Parameters.Add(nameof(id), id); command.CommandText = $@" SELECT C_NYOMTATASINEV FROM T_FELHASZNALO_OSSZES WHERE ID = @{nameof(id)} "; var result = command.ExecuteScalar(); return result != DBNull.Value ? result.ToString() : string.Empty; } } public int GetSzerepkorId(int jog, int tanevId) { using (SDACommand command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.Parameters.Add(nameof(jog), jog); command.Parameters.Add(nameof(tanevId), tanevId); command.CommandText = $@" SELECT TOP 1 ID FROM T_SZEREPKOR_OSSZES WHERE C_SZEREPKORTIPUS = @{nameof(jog)} AND C_TANEVID = @{nameof(tanevId)} AND TOROLT = 'F' "; var result = command.ExecuteScalar(); return result != DBNull.Value ? Convert.ToInt32(result) : 0; } } public DataSet GetUtolsoBeNemIrtOrak(int intezmenyId, int tanevId, int tanarId, int darab) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspGetUtolsoBeNemIrtOrak"; command.Parameters.Add("pIntezmenyId", intezmenyId); command.Parameters.Add("pTanevId", tanevId); command.Parameters.Add("pTanarId", tanarId); command.Parameters.Add("pDarab", darab); var ds = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } return ds; } } public DataSet GetKiirtHelyettesitesek(int intezmenyId, int tanevId, int tanarId, int darab) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspGetKiirtHelyettesitesek"; command.Parameters.Add("pIntezmenyId", intezmenyId); command.Parameters.Add("pTanevId", tanevId); command.Parameters.Add("pTanarId", tanarId); command.Parameters.Add("pDarab", darab); var ds = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } return ds; } } public DataSet GetBukasokSzama(int tanevId, int tanarId, int darab, double bukasAtlag) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspGetBukasokSzama"; command.Parameters.Add("pTanevId", tanevId); command.Parameters.Add("pTanarId", tanarId); command.Parameters.Add("pDarab", darab); command.Parameters.Add("pBukasAtlag", bukasAtlag); var ds = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } return ds; } } public DataSet GetMulasztasokSzama(int tanevId, int tanarId, bool isSzuperOsztalyFonok, int darab) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspGetMulasztasokSzama"; command.Parameters.Add("pTanevId", tanevId); command.Parameters.Add("pTanarId", tanarId); command.Parameters.Add("pIsSzuperOsztalyFonok", isSzuperOsztalyFonok); command.Parameters.Add("pDarab", darab); command.Parameters.Add("pMulasztasTipusKeses", (int)MulasztasTipusEnum.keses); command.Parameters.Add("pMulasztasTipusHianyzas", (int)MulasztasTipusEnum.hianyzas); var ds = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } return ds; } } public DataSet GetTanarokByOktNevKategoria(int tanevId, OktNevelesiKategoriaEnum? oktNevKategoria, int? felhasznaloId = null) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspGetTanarokByOktNevKategoria"; command.Parameters.Add("pTanevId", tanevId); if (oktNevKategoria.HasValue) { command.Parameters.Add("pOktNevKatTipus", (int)oktNevKategoria); } if (felhasznaloId.HasValue) { command.Parameters.Add("pFelhasznaloId", felhasznaloId); } var ds = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } var dv = ds.Tables[0].DefaultView; dv.Sort = "C_VEZETEKNEV, C_UTONEV"; var dt = dv.ToTable(); ds.Tables.RemoveAt(0); ds.Tables.Add(dt); return ds; } } public DataSet GetAlkalmazottNameBirthdays(int tanevId, bool isDualisKepzohelyiOktatok = false) { var commandText = $@" SELECT T_ALKALMAZOTT_OSSZES.ID AS ID, LTRIM(T_FELHASZNALO_OSSZES.C_NYOMTATASINEV) AS Nev, T_FELHASZNALO_OSSZES.C_SZULETESIDATUM AS SzuletesiDatum FROM T_ALKALMAZOTT_OSSZES INNER JOIN T_FELHASZNALO_OSSZES on T_ALKALMAZOTT_OSSZES.ID = T_FELHASZNALO_OSSZES.ID AND T_FELHASZNALO_OSSZES.TOROLT = 'F' INNER JOIN T_MUNKAUGYIADATOK_OSSZES mua ON mua.C_ALKALMAZOTTID = T_ALKALMAZOTT_OSSZES.ID AND mua.TOROLT = 'F' WHERE T_ALKALMAZOTT_OSSZES.TOROLT = 'F' AND T_ALKALMAZOTT_OSSZES.C_ALTANEVID = :pTanevId AND mua.C_SZERVEZETID IS {(isDualisKepzohelyiOktatok ? "NOT" : "")} NULL ORDER BY IIF(T_FELHASZNALO_OSSZES.C_NEVSORREND = 'T', T_FELHASZNALO_OSSZES.C_UTONEV + ' ' + T_FELHASZNALO_OSSZES.C_VEZETEKNEV, T_FELHASZNALO_OSSZES.C_VEZETEKNEV + ' ' + T_FELHASZNALO_OSSZES.C_UTONEV)"; var parameters = new List(); parameters.Add(new CommandParameter("pTanevId", tanevId)); parameters.Add(new CommandParameter("pIsDualisKepzohelyiOktatok", isDualisKepzohelyiOktatok.ToSDABoolean())); DataSet ds = GetData(commandText, parameters); return ds; } public int GetTanarId(DateTime datum, int? oraszam, int osztalyCsoportId, int tantargyId) { using (var sdaCommand = new SDACommand()) { sdaCommand.Connection = UserContext.Instance.SDAConnection; sdaCommand.Transaction = UserContext.Instance.SDATransaction; sdaCommand.CommandType = CommandType.StoredProcedure; sdaCommand.CommandText = "uspGetTanarId"; sdaCommand.Parameters.Add("pDatum", datum); sdaCommand.Parameters.Add("pOraszam", oraszam); sdaCommand.Parameters.Add("pOsztalyCsoportId", osztalyCsoportId); sdaCommand.Parameters.Add("pTantargyId", tantargyId); var ds = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = sdaCommand; adapter.Fill(ds); } return Convert.ToInt32(ds.Tables[0].Rows[0]["TanarId"]); } } } }