using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using Kreta.Core; using Kreta.Core.Domain; 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 FelhasznaloDal : DataAccessBase, IFelhasznaloDal { public FelhasznaloDal(DalHandler handler, GridParameters gridParameters) : base(handler, gridParameters) { } public string GetUserProfile() { //performance optimized query string profile = ""; using (SDA.DataProvider.SDACommand command = new SDA.DataProvider.SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = "select c_profile from t_userprofile where c_felhasznaloid = :pUSERID and TOROLT = 'F'"; command.Parameters.Add("pUSERID", SDA.DataProvider.SDADBType.Int).Value = UserContext.Instance.FelhasznaloId; using (SDA.DataProvider.SDADataReader reader = command.ExecuteReader()) { if (reader.Read()) { profile = System.Web.HttpUtility.HtmlDecode(reader.GetString(0, "")); } } } return profile; } public string GetUserProfile(int userId) { string profile = ""; using (SDACommand command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = "select c_profile from t_userprofile where c_felhasznaloid = :pUSERID and TOROLT = 'F'"; command.Parameters.Add("pUSERID", SDADBType.Int).Value = userId; using (SDADataReader reader = command.ExecuteReader()) { if (reader.Read()) { profile = System.Web.HttpUtility.HtmlDecode(reader.GetString(0, "")); } } } return profile; } public int GetUserDefaultLCID(int userId) { using (SDA.DataProvider.SDACommand cmd = new SDA.DataProvider.SDACommand()) { cmd.Connection = UserContext.Instance.SDAConnection; cmd.Transaction = UserContext.Instance.SDATransaction; cmd.CommandText = @"select C_ALAPERTELMEZETTLCID from t_felhasznalo where id = :pUserID and TOROLT = 'F'"; cmd.Parameters.Add("pUserID", userId); object data = cmd.ExecuteScalar(); return data != DBNull.Value ? Convert.ToInt32(data) : 0; } } public DataSet GetSajatAdatlapCim(int userId, bool isGondviselo) { var felhasznalo = isGondviselo ? "And [C_GONDVISELOID] = :pUserId And [C_GONDVISELOID] is not null" : " And [C_FELHASZNALOID] = :pUserId And [C_GONDVISELOID] is null"; var commandText = ($@" SELECT [ID] ,[C_CIMTIPUSA] as CimTipus ,[C_IRANYITOSZAM] as Irsz ,[C_VAROS] as Varos ,[C_KOZTERULET] as Kozterulet ,[C_KOZTERULETJELLEGENEV] as KozteruletJellegeNev ,[C_HAZSZAM] as HazSzam ,[C_EPULET] as Epulet ,[C_LEPCSOHAZ] as LepcsoHaz ,[C_EMELET] as Emelet ,[C_AJTO] as Ajto ,[C_ALAPERTELMEZETT] as Alapertelmezett FROM [T_CIM_OSSZES] where [TOROLT] ='F' {felhasznalo} "); var prams = new List { new CommandParameter("pUserId", userId) }; var ds = this.GetData(commandText, prams, "CimTipus", "Alapertelmezett"); return ds; } public DataSet GetTanuloAdatForGondviselo(int userId) { const string commandText = @" SELECT t.ID ,f.C_NYOMTATASINEV AS TanuloNev ,f.C_OKTATASIAZONOSITO AS OktAzon ,ocs.C_NEV AS OsztalyNev ,ofo.C_NYOMTATASINEV AS OsztalyfonokNev ,terem.C_NEV AS TeremNev FROM T_GONDVISELO_OSSZES g INNER JOIN T_TANULO t ON t.ID = g.C_TANULOID INNER JOIN T_FELHASZNALO f ON f.ID = t.ID INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_TANULOID = t.ID INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID INNER JOIN T_OSZTALY o ON o.ID = ocs.ID LEFT JOIN T_FELHASZNALO ofo ON ofo.ID = o.C_OSZTALYFONOKID LEFT JOIN T_TEREM terem ON terem.ID = ocs.C_TEREMID WHERE g.ID = :pUserId"; var prams = new List { new CommandParameter("pUserId", userId) }; var ds = this.GetData(commandText, prams); return ds; } public DataSet GetUserCim(int userId) { const string commandText = @" SELECT cim.[ID] AS ID ,[C_ORSZAG] AS Orszag ,[C_CIMTIPUSA] AS CimTipus ,[C_IRANYITOSZAM] AS Irsz ,[C_VAROS] AS Varos ,[C_KOZTERULET] AS Kozterulet ,[C_KOZTERULETJELLEGENEV] AS KozteruletJellegeNev ,[C_HAZSZAM] AS HazSzam ,[C_EPULET] AS Epulet ,[C_LEPCSOHAZ] AS LepcsoHaz ,[C_EMELET] AS Emelet ,[C_AJTO] AS Ajto ,[C_ALAPERTELMEZETT] AS Alapertelmezett ,[C_ISKOZPONTILAGSZINKRONIZALT] AS IsKozpontilagSzinkronizalt FROM [T_CIM_OSSZES] cim LEFT JOIN T_ALKALMAZOTT_OSSZES alkalmazott ON cim.C_FELHASZNALOID = alkalmazott.ID AND alkalmazott.TOROLT = 'F' WHERE cim.[TOROLT] ='F' AND [C_FELHASZNALOID] = :pUserId AND [C_GONDVISELOID] IS NULL "; var prams = new List { new CommandParameter("pUserId", userId) }; var ds = this.GetData(commandText, prams, "Orszag,CimTipus", "Alapertelmezett,IsKozpontilagSzinkronizalt"); return ds; } public DataSet GetUserEmailCim(int userId) { const string commandText = @" Select e.[ID] ,e.[C_EMAILTIPUSA] as Tipus ,e.[C_EMAILCIM] as EmailCim ,e.[C_ALAPERTELMEZETT] as Alapertelmezett ,e.[C_ISHIBASANMEGADVA] as IsHibasanMegadva From( SELECT [ID] FROM [T_FELHASZNALO_OSSZES] where [TOROLT] = 'F' And ID = :pUserId ) as f /*Left Join (SELECT [ID]*/ Join (SELECT [ID] ,[C_EMAILTIPUSA] ,[C_EMAILCIM] ,[C_ALAPERTELMEZETT] ,[C_FELHASZNALOID] ,[C_ISHIBASANMEGADVA] FROM [T_EMAIL_OSSZES] where [TOROLT] = 'F' And [C_FELHASZNALOID] is not null And [C_GONDVISELOID] is null) as e On e.C_FELHASZNALOID = f.ID "; var prams = new List { new CommandParameter("pUserId", userId) }; var ds = this.GetData(commandText, prams, "Tipus", "Alapertelmezett,IsHibasanMegadva"); return ds; } public DataSet GetUserTelefon(int userId) { const string commandText = @" Select t.[ID] ,t.[C_TELEFONTIPUSA] as Tipus ,t.[C_ALAPERTELMEZETT] as Alapertelmezett ,t.[C_TELEFONSZAM] as TelefonSzam From( SELECT [ID] FROM [T_FELHASZNALO_OSSZES] where [TOROLT] = 'F' And ID = :pUserId ) as f /*Left Join (SELECT [ID]*/ Join (SELECT [ID] ,[C_TELEFONTIPUSA] ,[C_TELEFONSZAM] ,[C_ALAPERTELMEZETT] ,[C_FELHASZNALOID] FROM [T_TELEFON_OSSZES] where [TOROLT] = 'F' And [C_FELHASZNALOID] is not null And [C_GONDVISELOID] is null) as t On t.C_FELHASZNALOID = f.ID "; var prams = new List { new CommandParameter("pUserId", userId) }; var ds = this.GetData(commandText, prams, "Tipus", "Alapertelmezett"); return ds; } public DataSet GetDatabases() { string commandText = @"SELECT name [DatabaseName] FROM sys.databases WHERE name LIKE 'Kreta_%' ORDER BY name"; DataSet ds = GetData(commandText); return ds; } public DataSet Check4TFelhOktAzonValidation(List tanevIds, int pCheckValidationType, string pSzuletesiNevSorrend, string pSzuletesiNevElotag, string pSzuletesiCsaladiNev, string pSzuletesiUtonev, string pAnyjaNevSorrend, string pAnyjaElotag, string pAnyjaCsaladiNev, string pAnyjaUtonev, string pSzuletesiHely, DateTime? pSzuletesiDatum, string pOktatasiAzonosito, string pBejelentkezesiNev, int? pFelvetelStatuszaFelveve = null, int? pFelvetelStatuszaNemFelveve = 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 = "uspCheck4TFelhOktAzonValidation"; command.Parameters.Add("pCheckValidationType", pCheckValidationType); if (string.IsNullOrWhiteSpace(pSzuletesiNevSorrend)) { command.Parameters.Add("pSzuletesiNevSorrend", DBNull.Value); } else { command.Parameters.Add("pSzuletesiNevSorrend", pSzuletesiNevSorrend); } if (string.IsNullOrWhiteSpace(pSzuletesiNevElotag)) { command.Parameters.Add("pSzuletesiElotag", DBNull.Value); } else { command.Parameters.Add("pSzuletesiElotag", pSzuletesiNevElotag); } if (string.IsNullOrWhiteSpace(pSzuletesiCsaladiNev)) { command.Parameters.Add("pSzuletesiVezeteknev", DBNull.Value); } else { command.Parameters.Add("pSzuletesiVezeteknev", pSzuletesiCsaladiNev); } if (string.IsNullOrWhiteSpace(pSzuletesiUtonev)) { command.Parameters.Add("pSzuletesiUtonev", DBNull.Value); } else { command.Parameters.Add("pSzuletesiUtonev", pSzuletesiUtonev); } if (string.IsNullOrWhiteSpace(pAnyjaNevSorrend)) { command.Parameters.Add("pAnyjaNevSorrend", DBNull.Value); } else { command.Parameters.Add("pAnyjaNevSorrend", pAnyjaNevSorrend); } if (string.IsNullOrWhiteSpace(pAnyjaElotag)) { command.Parameters.Add("pAnyjaNevElotag", DBNull.Value); } else { command.Parameters.Add("pAnyjaNevElotag", pAnyjaElotag); } if (string.IsNullOrWhiteSpace(pAnyjaCsaladiNev)) { command.Parameters.Add("pAnyjaVezeteknev", DBNull.Value); } else { command.Parameters.Add("pAnyjaVezeteknev", pAnyjaCsaladiNev); } if (string.IsNullOrWhiteSpace(pAnyjaUtonev)) { command.Parameters.Add("pAnyjaUtonev", DBNull.Value); } else { command.Parameters.Add("pAnyjaUtonev", pAnyjaUtonev); } if (string.IsNullOrWhiteSpace(pSzuletesiHely)) { command.Parameters.Add("pSzuletesiHely", DBNull.Value); } else { command.Parameters.Add("pSzuletesiHely", pSzuletesiHely); } if (!pSzuletesiDatum.HasValue) { command.Parameters.Add("pSzuletesiDatum", DBNull.Value); } else { command.Parameters.Add("pSzuletesiDatum", pSzuletesiDatum.Value); } command.Parameters.Add("pTanevIds", string.Join(",", tanevIds)); if (!pFelvetelStatuszaFelveve.HasValue) { command.Parameters.Add("pFelvetelStatuszaFelveve", DBNull.Value); } else { command.Parameters.Add("pFelvetelStatuszaFelveve", pFelvetelStatuszaFelveve); } if (!pFelvetelStatuszaNemFelveve.HasValue) { command.Parameters.Add("pFelvetelStatuszaNemFelveve", DBNull.Value); } else { command.Parameters.Add("pFelvetelStatuszaNemFelveve", pFelvetelStatuszaNemFelveve); } if (string.IsNullOrWhiteSpace(pOktatasiAzonosito)) { command.Parameters.Add("pOktatasiAzonosito", DBNull.Value); } else { command.Parameters.Add("pOktatasiAzonosito", pOktatasiAzonosito); } if (string.IsNullOrWhiteSpace(pBejelentkezesiNev)) { command.Parameters.Add("pBejelentkezesiNev", DBNull.Value); } else { command.Parameters.Add("pBejelentkezesiNev", pBejelentkezesiNev); } using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } } return ds; } public void OktAzon4TAlapjanFollowUp(int validationType, int entityId, int anotherTanevEntityId) { using (SDA.DataProvider.SDACommand command = UserContext.Instance.SDAConnection.CreateCommand()) { command.CommandType = CommandType.StoredProcedure; command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = "uspOktAzon4TAlapjanFollowUp"; command.Parameters.Add("pCheckValidationType", validationType); command.Parameters.Add("pEntityId", entityId); command.Parameters.Add("pAnotherTanevEntityId", anotherTanevEntityId); command.ExecuteNonQuery(); DalHelper.Commit(); } } public int? GetAktualisFelhasznaloBelepesID(string bejelentkezesiNev) { using (var command = UserContext.Instance.SDAConnection.CreateCommand()) { command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = @" SELECT ID FROM T_FELHASZNALOBELEPES WHERE UPPER(C_BEJELENTKEZESINEV) = UPPER(:pBejelentkezesiNev) AND TOROLT = 'F' AND EXISTS (SELECT 1 FROM T_TANEV WHERE TOROLT = 'F' AND C_AKTIV = 'T' AND T_TANEV.ID = C_TANEVID)"; command.Parameters.Add("pBejelentkezesiNev", bejelentkezesiNev); var result = command.ExecuteScalar(); if (result != DBNull.Value && result != null) { return (int)result; } return null; } } public string GetBejelentkezesiNev(Guid idpUniqueId) { using (var command = UserContext.Instance.SDAConnection.CreateCommand()) { command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = @" SELECT FelhasznaloBelepes.C_BEJELENTKEZESINEV FROM T_FELHASZNALOBELEPES FelhasznaloBelepes INNER JOIN T_FELHASZNALO Felhasznalo ON Felhasznalo.ID = FelhasznaloBelepes.C_FELHASZNALOID AND Felhasznalo.TOROLT = 'F' AND Felhasznalo.C_IDPEGYEDIAZONOSITO = :pIdpUniqueId WHERE FelhasznaloBelepes.TOROLT = 'F' AND FelhasznaloBelepes.C_GONDVISELOID IS NULL AND EXISTS (SELECT 1 FROM T_TANEV Tanev WHERE Tanev.TOROLT = 'F' AND Tanev.C_AKTIV = 'T' AND Tanev.ID = FelhasznaloBelepes.C_TANEVID) UNION ALL SELECT FelhasznaloBelepes.C_BEJELENTKEZESINEV FROM T_FELHASZNALOBELEPES FelhasznaloBelepes INNER JOIN T_GONDVISELO Gondviselo ON Gondviselo.ID = FelhasznaloBelepes.C_GONDVISELOID AND Gondviselo.TOROLT = 'F' AND Gondviselo.C_IDPEGYEDIAZONOSITO = :pIdpUniqueId WHERE FelhasznaloBelepes.TOROLT = 'F' AND EXISTS (SELECT 1 FROM T_TANEV Tanev WHERE Tanev.TOROLT = 'F' AND Tanev.C_AKTIV = 'T' AND Tanev.ID = FelhasznaloBelepes.C_TANEVID)"; command.Parameters.Add("pIdpUniqueId", idpUniqueId); string result = command.ExecuteScalar()?.ToString(); return result; } } public int? GetKovFelhasznaloBelepesID(string bejelentkezesiNev) { using (var command = UserContext.Instance.SDAConnection.CreateCommand()) { command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = @" SELECT TOP 1 ID FROM T_FELHASZNALOBELEPES_OSSZES fb WHERE UPPER(fb.C_BEJELENTKEZESINEV) = UPPER(:pBejelentkezesiNev) AND fb.TOROLT = 'F' AND EXISTS ( SELECT 1 FROM T_TANEV_OSSZES t WHERE t.TOROLT = 'F' AND t.C_AKTIV = 'F' AND t.ID = fb.C_TANEVID AND t.C_SORSZAM = (SELECT C_SORSZAM + 2 FROM T_TANEV where C_AKTIV = 'T' and TOROLT = 'F') ) "; command.Parameters.Add("pBejelentkezesiNev", bejelentkezesiNev); var result = command.ExecuteScalar(); if (result != DBNull.Value && result != null) { return (int)result; } return null; } } public string GetAktualisFelhasznaloBelepesJelszo(string bejelentkezesiNev) { using (var command = UserContext.Instance.SDAConnection.CreateCommand()) { command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = @" SELECT C_JELSZO FROM T_FELHASZNALOBELEPES WHERE UPPER(C_BEJELENTKEZESINEV) = UPPER(:pBejelentkezesiNev) AND TOROLT='F' AND EXISTS (SELECT 1 FROM T_TANEV WHERE TOROLT='F' AND C_AKTIV='T' AND T_TANEV.ID = C_TANEVID) "; command.Parameters.Add("pBejelentkezesiNev", bejelentkezesiNev); var result = command.ExecuteScalar(); if (result != DBNull.Value) return (string)result; return string.Empty; } } public void UpdateProfile(int felhasznaloId, string profileXml) { var entity = Felhasznalo.GiveAnInstance(); entity.LoadByID(felhasznaloId); UpdateProfile(entity, profileXml); } public void UpdateProfile(IFelhasznalo entity, string profileXml) { var entityFelhasznalo = (Felhasznalo)entity; var userProfile = entityFelhasznalo.UserProfile.SingleOrDefault(); if (userProfile == null) { userProfile = UserProfile.GiveAnInstance(); userProfile.FelhasznaloId = entity.ID; userProfile.Profile = profileXml; userProfile.OsszFeltolthetoFajlKb = Constants.General.MaxFeltolthetoAdatmennyisegInKByte; userProfile.TanevId = entity.TanevId; userProfile.Insert(); } else { userProfile.Profile = profileXml; userProfile.Update(); } DalHelper.Commit(); } public DataSet CheckOktatasiAzonositoFelhasznaloBelepesUtkozes(List tanevIds, string oktatasiAzonosito, string bejelentkezesiNev, int? felhasznaloId = null, bool isTanar = false) { var parameters = new List(); var felhasznaloJoin = isTanar ? "INNER JOIN T_ALKALMAZOTT_OSSZES a ON a.ID = f.ID AND a.TOROLT = 'F'" : "INNER JOIN T_TANULO_OSSZES t ON t.ID = f.ID AND t.TOROLT = 'F'"; var commandText = $@" SELECT fb.C_BEJELENTKEZESINEV, fb.C_GONDVISELOID, f.* FROM T_FELHASZNALO_OSSZES f LEFT JOIN T_FELHASZNALOBELEPES_OSSZES fb on fb.C_FELHASZNALOID = f.ID AND f.TOROLT = 'F' {felhasznaloJoin} WHERE f.TOROLT = 'F' AND f.C_TANEVID IN (" + string.Join(",", tanevIds) + @") AND (fb.C_BEJELENTKEZESINEV = :pBejelentkezesiNev OR f.C_OKTATASIAZONOSITO = :pOktatasiAzonosito) AND (:pFelhasznaloId IS NULL OR :pFelhasznaloId != f.ID) "; if (!string.IsNullOrWhiteSpace(oktatasiAzonosito)) { parameters.Add(new CommandParameter("pOktatasiAzonosito", oktatasiAzonosito)); } else { parameters.Add(new CommandParameter("pOktatasiAzonosito", DBNull.Value)); } if (!string.IsNullOrWhiteSpace(bejelentkezesiNev)) { parameters.Add(new CommandParameter("pBejelentkezesiNev", bejelentkezesiNev)); } else { parameters.Add(new CommandParameter("pBejelentkezesiNev", DBNull.Value)); } if (felhasznaloId.HasValue) { parameters.Add(new CommandParameter("pFelhasznaloId", felhasznaloId)); } else { parameters.Add(new CommandParameter("pFelhasznaloId", DBNull.Value)); } var ds = GetData(commandText, parameters); return ds; } public void Delete(int id) { var entity = Felhasznalo.GiveAnInstance(); entity.LoadByID(id); entity.FelhasznaloBelepes.DeleteAll(); entity.Cim.DeleteAll(); entity.Delete(); DalHelper.Commit(); } public void FullUpdate(IFelhasznalo dto) { var entity = dto as Felhasznalo; entity.FullUpdate(); DalHelper.Commit(); } public void Update(IFelhasznalo dto) { var entity = dto as Felhasznalo; entity.Update(); DalHelper.Commit(); } public IFelhasznalo Get() { return Felhasznalo.GiveAnInstance(); } public IFelhasznalo Get(int id) { var entity = Felhasznalo.GiveAnInstance(); entity.LoadByID(id); return entity; } public void Insert(IFelhasznalo dto) { var entity = dto as Felhasznalo; entity.Insert(); dto.ID = entity.ID; DalHelper.Felhasznalo().UpdateAllEgyediAzonosito(); DalHelper.Commit(); } public void Update(IFelhasznalo dto, bool handler) { var entity = dto as Felhasznalo; entity.Update(handler); DalHelper.Commit(); } public FelhasznaloDal(DalHandler handler) : base(handler) { } public void HozzaferesGeneralas(int intezmenyId, int aktivTanevID, int userId, string belepesiAdatokXML) { using (SDA.DataProvider.SDACommand command = UserContext.Instance.SDAConnection.CreateCommand()) { command.CommandType = CommandType.StoredProcedure; command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = "sp_HozzaferesGeneralas"; command.Parameters.Add("xml", belepesiAdatokXML); command.Parameters.Add("tanevID", aktivTanevID); command.Parameters.Add("intezmenyID", intezmenyId); command.Parameters.Add("userId", userId); command.ExecuteNonQuery(); DalHelper.Commit(); } } public void JelszoFrissites(int intezmenyId, int aktivTanevID, int userId, string belepesiAdatokXML, bool isTanulo, int modositoUserId) { using (SDA.DataProvider.SDACommand command = UserContext.Instance.SDAConnection.CreateCommand()) { command.CommandType = CommandType.StoredProcedure; command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; if (isTanulo) command.CommandText = "sp_JelszoResetTanulo"; else command.CommandText = "sp_JelszoResetGondviselo"; command.Parameters.Add("xml", belepesiAdatokXML); command.Parameters.Add("tanevID", aktivTanevID); command.Parameters.Add("intezmenyID", intezmenyId); command.Parameters.Add("userId", userId); command.Parameters.Add("modositoUserId", modositoUserId); command.ExecuteNonQuery(); DalHelper.Commit(); } } public bool CheckFelhasznaloHasSzerepkor(int felhasznaloId, int szerepkorTipusId) { bool result; using (SDACommand command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "sp_CheckFelhasznaloHasSzerepkor"; command.Parameters.Add("pFelhasznaloId", felhasznaloId); command.Parameters.Add("pSzerepkorTipusId", szerepkorTipusId); result = Convert.ToBoolean(command.ExecuteScalar()); } return result; } public int GetFelhasznaloIdByUserName(string userName, int intezmenyId, int tanevId) { using (var command = UserContext.Instance.SDAConnection.CreateCommand()) { command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = @" SELECT C_FELHASZNALOID FROM T_FELHASZNALOBELEPES WHERE UPPER(C_BEJELENTKEZESINEV) = UPPER(:pUserName) AND TOROLT='F' AND C_INTEZMENYID = :pIntezmenyId AND C_TANEVID = :pTanevId "; command.Parameters.Add("pUserName", userName); command.Parameters.Add("pIntezmenyId", intezmenyId); command.Parameters.Add("pTanevId", tanevId); var result = command.ExecuteScalar(); return (int)result; } } public DataSet GetAlkalmazottakByOktatasiAzonosito(string oktatasiAzonosito, int tanevId) { var parameters = new List { new CommandParameter("pOktatasiAzonosito", oktatasiAzonosito), new CommandParameter("pTanevId", tanevId) }; const string command = @" SELECT f.C_NYOMTATASINEV AS Nev FROM T_FELHASZNALO_OSSZES f INNER JOIN T_ALKALMAZOTT_OSSZES a ON a.ID = f.ID AND a.TOROLT = 'F' WHERE f.TOROLT = 'F' AND f.C_TANEVID = :pTanevId AND f.C_OKTATASIAZONOSITO = :pOktatasiAzonosito "; return GetData(command, parameters); } public DataSet GetTanulokByOktatasiAzonosito(string oktatasiAzonosito, int tanevId) { var parameters = new List { new CommandParameter("pOktatasiAzonosito", oktatasiAzonosito), new CommandParameter("pTanevId", tanevId) }; const string command = @" SELECT f.C_NYOMTATASINEV AS Nev FROM T_FELHASZNALO_OSSZES f INNER JOIN T_TANULO_OSSZES t ON t.ID = f.ID AND t.TOROLT = 'F' WHERE f.TOROLT = 'F' AND f.C_TANEVID = :pTanevId AND f.C_OKTATASIAZONOSITO = :pOktatasiAzonosito "; return GetData(command, parameters); } public string GetFelhasznaloOktatasiAzonosito(int id, int tanevId) { using (var command = UserContext.Instance.SDAConnection.CreateCommand()) { command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = @" SELECT C_OKTATASIAZONOSITO FROM T_FELHASZNALO_OSSZES WHERE TOROLT = 'F' AND C_TANEVID = :pTanevId AND ID = :pId "; command.Parameters.Add("pId", id); command.Parameters.Add("pTanevId", tanevId); var result = command.ExecuteScalar(); return result.ToString(); } } public string GetGondviseloFelhasznaloBelepesiNeve(int userId, int intezmenyId, int tanevId) { using (var command = UserContext.Instance.SDAConnection.CreateCommand()) { command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = @" SELECT fb.C_BEJELENTKEZESINEV FROM T_GONDVISELO g JOIN T_FELHASZNALOBELEPES fb ON fb.C_GONDVISELOID = g.ID WHERE g.ID = :pUserId AND fb.C_INTEZMENYID = :pIntezmenyId AND fb.C_TANEVID = :pTanevId AND fb.TOROLT = 'F' AND g.TOROLT = 'F' "; command.Parameters.Add("pUserId", userId); command.Parameters.Add("pIntezmenyId", intezmenyId); command.Parameters.Add("pTanevId", tanevId); var result = command.ExecuteScalar(); return (string)result; } } public bool IsCsokkentettGondviselo(int gondviseloId, int intezmenyId, int tanevId) { using (var command = UserContext.Instance.SDAConnection.CreateCommand()) { command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = @" SELECT g.C_ISCSOKKENTETTGONDVISELO FROM T_GONDVISELO g WHERE g.ID = :pUserId AND g.C_INTEZMENYID = :pIntezmenyId AND g.C_TANEVID = :pTanevId AND g.TOROLT = 'F' "; command.Parameters.Add("pUserId", gondviseloId); command.Parameters.Add("pIntezmenyId", intezmenyId); command.Parameters.Add("pTanevId", tanevId); var result = command.ExecuteScalar(); return result.ToString() == "T"; } } public string GetTanuloFelhasznaloBelepesiNeve(int userId, int intezmenyId, int tanevId) { using (var command = UserContext.Instance.SDAConnection.CreateCommand()) { command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = @" SELECT fb.C_BEJELENTKEZESINEV FROM T_FELHASZNALOBELEPES fb WHERE fb.C_FELHASZNALOID = :pUserId AND C_GONDVISELOID IS NULL AND fb.C_INTEZMENYID = :pIntezmenyId AND fb.C_TANEVID = :pTanevId AND fb.TOROLT='F' "; command.Parameters.Add("pUserId", userId); command.Parameters.Add("pIntezmenyId", intezmenyId); command.Parameters.Add("pTanevId", tanevId); var result = command.ExecuteScalar(); return (string)result; } } public DateTime GetTanuloFelhasznaloSzuletesiDatum(int userId, int intezmenyId, int tanevId) { using (var command = UserContext.Instance.SDAConnection.CreateCommand()) { command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = @" SELECT felhasznalo.C_SZULETESIDATUM as SzuletesiDatum FROM T_FELHASZNALO AS felhasznalo LEFT OUTER JOIN T_FELHASZNALOBELEPES as felhasznaloBelepes ON felhasznaloBelepes.C_FELHASZNALOID = felhasznalo.ID WHERE felhasznalo.ID = :pUserId AND felhasznalo.TOROLT='F' AND felhasznaloBelepes.TOROLT='F' AND felhasznaloBelepes.C_INTEZMENYID = :pIntezmenyId AND felhasznaloBelepes.C_TANEVID = :pTanevId "; command.Parameters.Add("pUserId", userId); command.Parameters.Add("pIntezmenyId", intezmenyId); command.Parameters.Add("pTanevId", tanevId); return Convert.ToDateTime(command.ExecuteScalar()); } } public DateTime GetTanuloSzuletesiDatumByGondviseloId(int userId, int intezmenyId, int tanevId) { using (var command = UserContext.Instance.SDAConnection.CreateCommand()) { command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = @" SELECT felhasznalo.C_SZULETESIDATUM as SzuletesiDatum FROM T_FELHASZNALO AS felhasznalo LEFT OUTER JOIN T_FELHASZNALOBELEPES as felhasznaloBelepes ON felhasznaloBelepes.C_FELHASZNALOID = felhasznalo.ID WHERE felhasznaloBelepes.C_GONDVISELOID = :pUserId AND felhasznalo.TOROLT='F' AND felhasznaloBelepes.TOROLT='F' AND felhasznaloBelepes.C_INTEZMENYID = :pIntezmenyId AND felhasznaloBelepes.C_TANEVID = :pTanevId "; command.Parameters.Add("pUserId", userId); command.Parameters.Add("pIntezmenyId", intezmenyId); command.Parameters.Add("pTanevId", tanevId); return Convert.ToDateTime(command.ExecuteScalar()); } } public bool GetVegzosEvfolyamTanulojaByUserId(int userId) { using (var command = UserContext.Instance.SDAConnection.CreateCommand()) { command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = @" SELECT vegzoso.ID FROM( SELECT [ID] ,[C_OSZTALYCSOPORTID] ,[C_TANULOID] FROM [T_TANULOCSOPORT] WHERE [TOROLT] = 'F' AND C_BELEPESDATUM < GETDATE() AND (C_KILEPESDATUM IS NULL OR C_KILEPESDATUM >= GETDATE()) AND C_TANULOID = :pUserId ) tcs INNER JOIN ( SELECT o.[ID] FROM [T_OSZTALY] o INNER JOIN [T_OSZTALYCSOPORT] ocs ON ocs.ID = o.ID AND ocs.C_FELADATKATEGORIAID = @OktNevKatTipus WHERE o.[TOROLT] = 'F' AND ocs.C_VEGZOSEVFOLYAM='T' AND ocs.TOROLT = 'F' ) AS vegzoso ON tcs.C_OSZTALYCSOPORTID = vegzoso.ID"; command.Parameters.Add("pUserId", userId); command.Parameters.Add("OktNevKatTipus", (int)OktNevelesiKategoriaEnum.NevelesOktatas); object id = command.ExecuteScalar(); return id != null; } } public DataSet GetFelhasznalok(int intezmenyId, int tanevId, FelhasznaloKeresesPCO pco, bool isHRModulEngedelyezett, bool isLepEngedelyezett) { List paramlist = new List(); paramlist.Add(new CommandParameter("pIntezmenyId", intezmenyId)); paramlist.Add(new CommandParameter("pTanevId", tanevId)); if (pco.FeladatKategoriaId.IsEntityId()) { paramlist.Add(new CommandParameter(nameof(pco.FeladatKategoriaId), pco.FeladatKategoriaId.Value)); } if (pco.FeladatEllatasiHelyId.HasValue) { paramlist.Add(new CommandParameter(nameof(pco.FeladatEllatasiHelyId), pco.FeladatEllatasiHelyId.Value)); } StringBuilder wherestringfelhasznalo = new StringBuilder(); StringBuilder wherestringgondviselo = new StringBuilder(); /*TODO:Tobb Osztaly*//*OM-1616*/ StringBuilder CommandText = new StringBuilder($@" SELECT f.C_NYOMTATASINEV as 'FelhasznaloNyomtatasiNeve' ,IIF(f.C_NEVSORREND = 'T', f.C_UTONEV + ' ' + f.C_VEZETEKNEV, f.C_VEZETEKNEV + ' ' + f.C_UTONEV) as 'FelhasznaloNyomtatasiNeveElotagNelkul' ,IIF(t.ID IS NULL, 'Alkalmazott','Tanuló') as 'FelhasznaloTipusa' ,f.C_OKTATASIAZONOSITO AS 'OktatasiAzonosito' ,IIF(fb.TOROLT = 'F', fb.C_BEJELENTKEZESINEV, NULL) as 'FelhasznaloNev' ,IIF(fb.TOROLT = 'F', utolsoBelepes.utolsoBelepes, NULL) as 'UtolsoBelepes' ,IIF(fb.TOROLT = 'F', utolsoBelepes.utolsoBelepesMobil, NULL) as 'UtolsoBelepesMobil' ,IIF(fb.TOROLT = 'F', fb.C_JELSZOVALTOZTATASIDEJE, NULL) as 'JelszovaltoztatasIdeje' ,f.ID as 'ID' ,IIF(t.ID IS NULL, j.jogosultsagok,'e-Ellenőrző') as 'Jogosultsag' ,ft.C_NYOMTATASINEV as 'Tanulo' ,ft.ID as 'TanuloId' ,ISNULL(ofoosztaly.C_NEV, osztaly.C_NEV) as 'Osztaly' ,g.C_ISCSOKKENTETTGONDVISELO as 'CsokkentettGondviselo' ,NULL AS 'GondviseloBovitettJog' ,g.C_ISTORVENYESKEPVISELO as 'TorvenyesKepviselo' ,f.C_EGYEDIAZONOSITO as 'FelhasznaloEgyediAzonosito' ,NULL as 'GondviseloEgyediAzonosito' ,IIF((t.ID IS NOT NULL AND osztaly.ID IS NOT NULL) OR (a.ID IS NOT NULL AND ((m.C_ALKALMAZASKEZDETE IS NULL OR m.C_ALKALMAZASKEZDETE <= CAST(GETDATE() as DATE)) AND (m.C_ALKALMAZASMEGSZUNESE IS NULL OR m.C_ALKALMAZASMEGSZUNESE >= CAST(GETDATE() as DATE)))), 'Igen', 'Nem') as 'IsAktiv' ,ft.C_OKTATASIAZONOSITO AS 'TanuloOktatasiAzonosito' ,ft.C_SZULETESIDATUM AS 'TanuloSzuletesiDatum' ,g.C_ROKONSAGFOKA AS 'GondviseloRokonsagiFokId' FROM T_FELHASZNALO_OSSZES f LEFT JOIN T_ALKALMAZOTT_OSSZES a ON a.ID = f.ID AND a.TOROLT = 'F' LEFT JOIN T_TANULO_OSSZES t ON t.ID = f.ID AND t.TOROLT = 'F' LEFT JOIN T_FELHASZNALO_OSSZES ft ON ft.ID = t.ID AND ft.TOROLT = 'F' LEFT JOIN (SELECT ocs.ID ,ocs.C_FELADATKATEGORIAID ,ocs.C_FELADATELLATASIHELYID ,STUFF((SELECT ',' + ocs2.C_NEV FROM T_OSZTALYCSOPORT_OSSZES ocs2 INNER JOIN T_TANULOCSOPORT_OSSZES tcs2 ON tcs2.C_OSZTALYCSOPORTID=ocs2.ID AND tcs.C_TANULOID = tcs2.C_TANULOID AND tcs2.TOROLT = 'F' INNER JOIN T_OSZTALY_OSSZES o2 ON o2.ID = ocs2.ID AND o2.TOROLT = 'F' WHERE ocs2.TOROLT = 'F' FOR XML PATH(''), TYPE).value('.', 'varchar(max)'),1,1,'') as C_NEV,tcs.C_TANULOID FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND ocs.TOROLT = 'F' INNER JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID AND o.TOROLT = 'F' WHERE tcs.TOROLT = 'F' AND tcs.C_BELEPESDATUM <= GETDATE() AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE()) GROUP BY ocs.ID, ocs.C_FELADATKATEGORIAID, ocs.C_FELADATELLATASIHELYID, tcs.C_TANULOID ) osztaly ON t.ID = osztaly.C_TANULOID LEFT JOIN ( SELECT STUFF((SELECT ',' + ocs2.C_NEV FROM T_OSZTALYCSOPORT_OSSZES ocs2 INNER JOIN T_OSZTALY_OSSZES o2 ON o2.ID = ocs2.ID AND o2.TOROLT = 'F' WHERE ocs2.TOROLT = 'F' AND (o2.C_OSZTALYFONOKID = a.ID OR o2.C_OFOHELYETTESID = a.ID) {(pco.OsztalyId.HasValue ? " AND o2.ID = @pOsztalyId " : "")} FOR XML PATH(''), TYPE).value('.', 'varchar(max)'),1,1,'') as C_NEV ,a.ID AS ofoID FROM T_OSZTALY_OSSZES o INNER JOIN T_ALKALMAZOTT_OSSZES a ON a.ID = o.C_OSZTALYFONOKID OR a.ID = o.C_OFOHELYETTESID AND a.TOROLT = 'F' WHERE o.TOROLT = 'F' {(pco.OsztalyId.HasValue ? " AND o.ID = @pOsztalyId " : "")} GROUP BY a.ID ) ofoosztaly ON a.ID = ofoosztaly.ofoID OUTER APPLY ( SELECT MAX(CASE WHEN C_IDP IN ('F', '_') THEN C_UTOLSOBELEPES END) AS utolsoBelepes, MAX(CASE WHEN C_IDP IN ('T', '_') THEN C_UTOLSOBELEPESMOBIL END) AS utolsoBelepesMobil FROM ( SELECT C_GONDVISELOID, C_FELHASZNALOID, C_TANEVID, '_' C_IDP, C_UTOLSOBELEPES, C_UTOLSOBELEPESMOBIL FROM T_FELHASZNALOBELEPES_OSSZES WHERE TOROLT = 'F' AND C_BEJELENTKEZESINEV <> 'KRETA_TECHNICAL_FORI' UNION ALL SELECT C_GONDVISELOID, C_FELHASZNALOID, C_TANEVID, C_IDP, C_LASTACTIVITY, C_LASTACTIVITY FROM T_FELHASZNALOBELEPESTORTENET_OSSZES ) b WHERE b.C_FELHASZNALOID = f.ID AND b.C_TANEVID = f.C_TANEVID ) utolsoBelepes LEFT JOIN T_FELHASZNALOBELEPES_OSSZES fb ON fb.C_FELHASZNALOID = f.ID AND fb.TOROLT = 'F' AND fb.C_GONDVISELOID IS NULL AND fb.C_BEJELENTKEZESINEV NOT IN ('KRETA_TECHNICAL_FORI') LEFT JOIN T_GONDVISELO_OSSZES g ON g.ID = fb.C_GONDVISELOID AND g.TOROLT = 'F' LEFT JOIN T_MUNKAUGYIADATOK_OSSZES m ON m.C_ALKALMAZOTTID = f.ID AND m.C_TANEVID = f.C_TANEVID AND m.TOROLT = 'F' LEFT JOIN T_FELADATELLATASIHELY_OSSZES fhely ON fhely.ID = m.C_FELADATELLATASIHELYID AND fhely.C_TANEVID = f.C_TANEVID AND fhely.TOROLT = 'F' LEFT JOIN T_OKTATASINEVELESIFELADAT_OSSZES oktnevf ON oktnevf.ID = fhely.C_OKTATASINEVELESIFELADATTIPUS AND oktnevf.C_ALTANEVID = f.C_TANEVID AND oktnevf.TOROLT = 'F' LEFT JOIN ( SELECT DISTINCT f2.ID, STUFF((SELECT ', ' + szerepkorok.C_NAME FROM (SELECT f.ID felhasznaloID, d.C_NAME FROM T_FELHASZNALO_OSSZES f INNER JOIN T_FELHASZNALO_SZEREPKOR fsz ON fsz.C_FELHASZNALOID = f.ID INNER JOIN T_SZEREPKOR_OSSZES sz ON sz.ID = fsz.C_SZEREPKORID AND sz.TOROLT = 'F' INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = sz.C_SZEREPKORTIPUS AND d.TOROLT = 'F' "); wherestringfelhasznalo.Append($@" AND f.C_NYOMTATASINEV NOT IN ('{Constants.SpecialUserName.KretaAdminisztrator}', 'KRETA_TECHNICAL_FORI')"); if (pco.JogosultsagIdList != null && pco.JogosultsagIdList.Count > 0) { wherestringfelhasznalo.Append(" AND j.jogosultsagok IS NOT NULL "); CommandText.Append(" AND d.ID IN("); CommandText.Append(string.Join(", ", pco.JogosultsagIdList)); CommandText.Append(") "); } CommandText.Append($@"WHERE f.TOROLT = 'F' GROUP BY f.ID, d.C_NAME {(((isHRModulEngedelyezett && (pco.JogosultsagIdList == null || pco.JogosultsagIdList.Count == 0 || pco.JogosultsagIdList.Contains(int.Parse(FelhasznalokResource.HRModulKezeloMintJogosultsagValue))))) ? $@" UNION ALL SELECT a.ID AS felhasznaloID, '{FelhasznalokResource.HRModulKezeloMintJogosultsag}' AS C_NAME FROM T_ALKALMAZOTT_OSSZES a WHERE a.C_ISHRKEZELO = 'T' AND a.TOROLT = 'F'" : "")} {(((isLepEngedelyezett && (pco.JogosultsagIdList == null || pco.JogosultsagIdList.Count == 0 || pco.JogosultsagIdList.Contains(int.Parse(FelhasznalokResource.LEPModulKezeloMintJogosultsagValue))))) ? $@" UNION ALL SELECT a.ID AS felhasznaloID, '{FelhasznalokResource.LEPModulKezeloMintJogosultsag}' AS C_NAME FROM T_ALKALMAZOTT_OSSZES a WHERE a.C_LEPKEZELO = 'T' AND a.TOROLT = 'F'" : "")} {(((pco.JogosultsagIdList == null || pco.JogosultsagIdList.Count == 0 || pco.JogosultsagIdList.Contains(int.Parse(FelhasznalokResource.DiakOlimpiaKezeloMintJogosultsagValue)))) ? $@" UNION ALL SELECT a.ID AS felhasznaloID, '{FelhasznalokResource.DiakOlimpiaKezeloMintJogosultsag}' AS C_NAME FROM T_ALKALMAZOTT_OSSZES a WHERE a.C_DIAKOLIMPIA = 'T' AND a.TOROLT = 'F'" : "")} {(((pco.JogosultsagIdList == null || pco.JogosultsagIdList.Count == 0 || pco.JogosultsagIdList.Contains(int.Parse(FelhasznalokResource.KozSzolgKezeloMintJogosultsagValue)))) ? $@" UNION ALL SELECT a.ID AS felhasznaloID, '{FelhasznalokResource.KozSzolgKezeloMintJogosultsag}' AS C_NAME FROM T_ALKALMAZOTT_OSSZES a WHERE a.C_KOZOSSEGISZOLGALATKEZELO = 'T' AND a.TOROLT = 'F'" : "")} {(((pco.JogosultsagIdList == null || pco.JogosultsagIdList.Count == 0 || pco.JogosultsagIdList.Contains(int.Parse(FelhasznalokResource.OsztalyfonokMintJogosultsagValue)))) ? $@" UNION ALL SELECT f.ID, '{FelhasznalokResource.OsztalyfonokMintJogosultsag}' FROM T_FELHASZNALO_OSSZES f INNER JOIN T_OSZTALY_OSSZES o ON o.C_OSZTALYFONOKID = f.ID GROUP BY f.ID" : "")} {(((pco.JogosultsagIdList == null || pco.JogosultsagIdList.Count == 0 || pco.JogosultsagIdList.Contains(int.Parse(FelhasznalokResource.OsztalyfonokHelyettesMintJogosultsagValue)))) ? $@" UNION ALL SELECT f.ID, '{FelhasznalokResource.OsztalyfonokHelyettesMintJogosultsag}' FROM T_FELHASZNALO_OSSZES f INNER JOIN T_OSZTALY_OSSZES o ON o.C_OFOHELYETTESID = f.ID GROUP BY f.ID" : "")} ) szerepkorok WHERE szerepkorok.felhasznaloID = f2.ID FOR XML PATH('')), 1, 2, '') jogosultsagok FROM T_FELHASZNALO_OSSZES f2 WHERE f2.TOROLT = 'F' ) j ON j.ID = f.ID WHERE f.TOROLT = 'F' AND f.C_TANEVID = :pTanevId AND f.C_INTEZMENYID = :pIntezmenyId "); if (pco.FeladatKategoriaId.IsEntityId()) { CommandText.Append($" AND (osztaly.C_FELADATKATEGORIAID = @{nameof(pco.FeladatKategoriaId)} OR oktnevf.C_FELADATKATEGORIAID = @{nameof(pco.FeladatKategoriaId)})"); } if (pco.FeladatEllatasiHelyId.HasValue) { CommandText.Append($" AND (osztaly.C_FELADATELLATASIHELYID = @{nameof(pco.FeladatEllatasiHelyId)} OR m.C_FELADATELLATASIHELYID = @{nameof(pco.FeladatEllatasiHelyId)})"); } if (!string.IsNullOrWhiteSpace(pco.FelhasznaloNyomtatasiNeve)) { wherestringfelhasznalo.Append($@" AND (LOWER(f.C_NYOMTATASINEV) LIKE '%' + @{nameof(pco.FelhasznaloNyomtatasiNeve)} + '%')"); wherestringgondviselo.Append($@" AND LOWER(g.C_NEV) LIKE '%' + @{nameof(pco.FelhasznaloNyomtatasiNeve)} + '%'"); paramlist.Add(new CommandParameter(nameof(pco.FelhasznaloNyomtatasiNeve), pco.FelhasznaloNyomtatasiNeve.ToLowerInvariant())); } if (pco.FelhasznaloTipusa.HasValue) { switch ((FelhasznaloTipusEnum)pco.FelhasznaloTipusa) { case FelhasznaloTipusEnum.Alkalmazott: wherestringfelhasznalo.Append($" AND a.ID IS NOT NULL"); wherestringgondviselo.Append($" AND 1=0"); break; case FelhasznaloTipusEnum.Gondviselo: wherestringfelhasznalo.Append($" AND 1=0"); wherestringgondviselo.Append($" AND g.ID IS NOT NULL"); break; case FelhasznaloTipusEnum.Tanulo: wherestringfelhasznalo.Append($" AND t.ID IS NOT NULL"); wherestringgondviselo.Append($" AND 1=0"); break; } } if (!string.IsNullOrWhiteSpace(pco.FelhasznaloNev)) { wherestringfelhasznalo.Append($" AND LOWER(fb.C_BEJELENTKEZESINEV) LIKE '%' + @{nameof(pco.FelhasznaloNev)} + '%'"); wherestringgondviselo.Append($" AND LOWER(fb.C_BEJELENTKEZESINEV) LIKE '%' + @{nameof(pco.FelhasznaloNev)} + '%'"); paramlist.Add(new CommandParameter(nameof(pco.FelhasznaloNev), pco.FelhasznaloNev.ToLowerInvariant())); } if (pco.BelepesDatumTol.HasValue) { wherestringfelhasznalo.Append($" AND fb.C_UTOLSOBELEPES >= :pBelepesDatumTol"); wherestringgondviselo.Append($" AND fb.C_UTOLSOBELEPES >= :pBelepesDatumTol"); paramlist.Add(new CommandParameter("pBelepesDatumTol", pco.BelepesDatumTol.Value)); } if (pco.BelepesDatumIg.HasValue) { wherestringfelhasznalo.Append($" AND fb.C_UTOLSOBELEPES <= :pBelepesDatumIg"); wherestringgondviselo.Append($" AND fb.C_UTOLSOBELEPES <= :pBelepesDatumIg"); paramlist.Add(new CommandParameter("pBelepesDatumIg", pco.BelepesDatumIg.Value)); } if (pco.GondviseloBelepesNelkul.HasValue && pco.GondviseloBelepesNelkul.Value) { wherestringfelhasznalo.Append($" AND 1=0"); wherestringgondviselo.Append($" AND fb.C_BEJELENTKEZESINEV IS NULL"); } if (pco.IsAktiv) { wherestringfelhasznalo.Append($" AND ((osztaly.ID IS NOT NULL) OR (a.ID IS NOT NULL AND ((m.C_ALKALMAZASKEZDETE IS NULL OR m.C_ALKALMAZASKEZDETE <= CAST(GETDATE() as DATE)) AND (m.C_ALKALMAZASMEGSZUNESE IS NULL OR m.C_ALKALMAZASMEGSZUNESE >= CAST(GETDATE() as DATE))))) "); wherestringgondviselo.Append($" AND osztaly.ID IS NOT NULL "); } if (pco.JelszoValtozottE.HasValue) { switch ((IgenNemEnum)pco.JelszoValtozottE.Value) { case IgenNemEnum.Igen: wherestringfelhasznalo.Append($" AND fb.C_JELSZOVALTOZTATASIDEJE IS NOT NULL"); wherestringgondviselo.Append($" AND fb.C_JELSZOVALTOZTATASIDEJE IS NOT NULL"); break; case IgenNemEnum.Nem: wherestringfelhasznalo.Append($" AND fb.C_JELSZOVALTOZTATASIDEJE IS NULL"); wherestringgondviselo.Append($" AND fb.C_JELSZOVALTOZTATASIDEJE IS NULL"); break; } } if (pco.VanBelepese.HasValue) { switch ((IgenNemEnum)pco.VanBelepese.Value) { case IgenNemEnum.Igen: wherestringfelhasznalo.Append($" AND fb.C_BEJELENTKEZESINEV IS NOT NULL"); wherestringgondviselo.Append($" AND fb.C_BEJELENTKEZESINEV IS NOT NULL"); break; case IgenNemEnum.Nem: wherestringfelhasznalo.Append($" AND fb.C_BEJELENTKEZESINEV IS NULL"); wherestringgondviselo.Append($" AND fb.C_BEJELENTKEZESINEV IS NULL"); break; } } if (pco.CsokkentettGondviseloE.HasValue) { switch ((IgenNemEnum)pco.CsokkentettGondviseloE.Value) { case IgenNemEnum.Igen: wherestringfelhasznalo.Append($" AND g.C_ISCSOKKENTETTGONDVISELO = 'T'"); wherestringgondviselo.Append($" AND g.C_ISCSOKKENTETTGONDVISELO = 'T'"); break; case IgenNemEnum.Nem: wherestringfelhasznalo.Append($" AND g.C_ISCSOKKENTETTGONDVISELO = 'F'"); wherestringgondviselo.Append($" AND g.C_ISCSOKKENTETTGONDVISELO = 'F'"); break; } } if (pco.GondviseloBovitettJogE.HasValue) { switch ((IgenNemEnum)pco.GondviseloBovitettJogE.Value) { case IgenNemEnum.Igen: wherestringfelhasznalo.Append($" AND g.C_ISCSOKKENTETTGONDVISELO = 'F'"); wherestringgondviselo.Append($" AND g.C_ISCSOKKENTETTGONDVISELO = 'F'"); break; case IgenNemEnum.Nem: wherestringfelhasznalo.Append($" AND g.C_ISCSOKKENTETTGONDVISELO = 'T'"); wherestringgondviselo.Append($" AND g.C_ISCSOKKENTETTGONDVISELO = 'T'"); break; } } if (pco.TorvenyesKepviseloE.HasValue) { switch ((IgenNemEnum)pco.TorvenyesKepviseloE.Value) { case IgenNemEnum.Igen: wherestringfelhasznalo.Append($" AND g.C_ISTORVENYESKEPVISELO = 'T'"); wherestringgondviselo.Append($" AND g.C_ISTORVENYESKEPVISELO = 'T'"); break; case IgenNemEnum.Nem: wherestringfelhasznalo.Append($" AND g.C_ISTORVENYESKEPVISELO = 'F'"); wherestringgondviselo.Append($" AND g.C_ISTORVENYESKEPVISELO = 'F'"); break; } } if (pco.OsztalyId.HasValue) { wherestringfelhasznalo.Append($" AND osztaly.ID = :pOsztalyID OR ofoosztaly.ofoID IS NOT NULL"); wherestringgondviselo.Append($" AND osztaly.ID = :pOsztalyID"); paramlist.Add(new CommandParameter("pOsztalyID", pco.OsztalyId.Value)); } if (!string.IsNullOrWhiteSpace(pco.Tanulo)) { wherestringfelhasznalo.Append($" AND LOWER(ft.C_NYOMTATASINEV) LIKE '%' + :pTanulo + '%'"); wherestringgondviselo.Append($" AND LOWER(ft.C_NYOMTATASINEV) LIKE '%' + :pTanulo + '%'"); paramlist.Add(new CommandParameter("pTanulo", pco.Tanulo.ToLowerInvariant())); } CommandText.Append(wherestringfelhasznalo); // TODO: utolsoBelepes-t kiszervezni functionbe refaktkor, és a többi helyen is azt hívni CommandText.Append(@" UNION SELECT g.C_NEV as 'FelhasznaloNyomtatasiNeve' ,g.C_NEV as 'FelhasznaloNyomtatasiNeveElotagNelkul' ,'Gondviselő' as 'FelhasznaloTipusa' ,NULL AS OktatasiAzonosito ,IIF(fb.TOROLT = 'F', fb.C_BEJELENTKEZESINEV, NULL) as 'FelhasznaloNev' ,IIF(fb.TOROLT = 'F', utolsoBelepes.utolsoBelepes, NULL) as 'UtolsoBelepes' ,IIF(fb.TOROLT = 'F', utolsoBelepes.utolsoBelepesMobil, NULL) as 'UtolsoBelepesMobil' ,IIF(fb.TOROLT = 'F', fb.C_JELSZOVALTOZTATASIDEJE, NULL) as 'JelszovaltoztatasIdeje' ,g.ID as 'Id' ,'e-Ellenőrző' as 'Jogosultsag' ,ft.C_NYOMTATASINEV as 'Tanulo' ,ft.ID as 'TanuloId' ,osztaly.C_NEV as 'Osztaly' ,g.C_ISCSOKKENTETTGONDVISELO as 'CsokkentettGondviselo' ,IIF(g.C_ISCSOKKENTETTGONDVISELO = 'T', 'F', 'T') AS GondviseloBovitettJog ,g.C_ISTORVENYESKEPVISELO as 'TorvenyesKepviselo' ,NULL as 'FelhasznaloEgyediAzonosito' ,g.C_EGYEDIAZONOSITO as 'GondviseloEgyediAzonosito' ,IIF(osztaly.ID IS NOT NULL , 'Igen', 'Nem') as 'IsAktiv' ,ft.C_OKTATASIAZONOSITO AS 'TanuloOktatasiAzonosito' ,ft.C_SZULETESIDATUM AS 'TanuloSzuletesiDatum' ,g.C_ROKONSAGFOKA AS 'GondviseloRokonsagiFokId' FROM T_GONDVISELO_OSSZES g LEFT JOIN T_TANULO_OSSZES t ON t.ID = g.C_TANULOID AND t.TOROLT = 'F' LEFT JOIN T_FELHASZNALO_OSSZES ft ON ft.ID = t.ID AND ft.TOROLT = 'F' LEFT JOIN (SELECT ocs.ID ,ocs.C_FELADATKATEGORIAID ,ocs.C_FELADATELLATASIHELYID ,STUFF((SELECT ',' + ocs2.C_NEV FROM T_OSZTALYCSOPORT_OSSZES ocs2 INNER JOIN T_TANULOCSOPORT_OSSZES tcs2 ON tcs2.C_OSZTALYCSOPORTID=ocs2.ID AND tcs.C_TANULOID = tcs2.C_TANULOID AND tcs2.TOROLT = 'F' INNER JOIN T_OSZTALY_OSSZES o2 ON o2.ID = ocs2.ID AND o2.TOROLT = 'F' WHERE ocs2.TOROLT = 'F' FOR XML PATH(''), TYPE).value('.', 'varchar(max)'),1,1,'') as C_NEV,tcs.C_TANULOID FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND ocs.TOROLT = 'F' INNER JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID AND o.TOROLT = 'F' WHERE tcs.TOROLT = 'F' AND tcs.C_BELEPESDATUM <= GETDATE() AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE()) GROUP BY ocs.ID, ocs.C_FELADATKATEGORIAID, ocs.C_FELADATELLATASIHELYID, tcs.C_TANULOID ) osztaly ON t.ID = osztaly.C_TANULOID OUTER APPLY ( SELECT MAX(CASE WHEN C_IDP IN ('F', '_') THEN C_UTOLSOBELEPES END) AS utolsoBelepes, MAX(CASE WHEN C_IDP IN ('T', '_') THEN C_UTOLSOBELEPESMOBIL END) AS utolsoBelepesMobil FROM ( SELECT C_GONDVISELOID, C_FELHASZNALOID, C_TANEVID, '_' C_IDP, C_UTOLSOBELEPES, C_UTOLSOBELEPESMOBIL FROM T_FELHASZNALOBELEPES_OSSZES WHERE TOROLT = 'F' AND C_BEJELENTKEZESINEV <> 'KRETA_TECHNICAL_FORI' UNION ALL SELECT C_GONDVISELOID, C_FELHASZNALOID, C_TANEVID, C_IDP, C_LASTACTIVITY, C_LASTACTIVITY FROM T_FELHASZNALOBELEPESTORTENET_OSSZES ) b WHERE b.C_GONDVISELOID = g.ID AND b.C_TANEVID = g.C_TANEVID ) utolsoBelepes LEFT JOIN T_FELHASZNALOBELEPES_OSSZES fb ON fb.TOROLT = 'F' AND fb.C_GONDVISELOID = g.ID LEFT JOIN ( SELECT DISTINCT fsz2.C_FELHASZNALOID, STUFF((SELECT ', ' + szerepkorok.C_NAME FROM (SELECT f.ID felhasznaloID, d.C_NAME FROM T_FELHASZNALO f INNER JOIN T_FELHASZNALO_SZEREPKOR fsz ON fsz.C_FELHASZNALOID = f.ID INNER JOIN T_SZEREPKOR_OSSZES sz ON sz.ID = fsz.C_SZEREPKORID AND sz.TOROLT = 'F' INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = sz.C_SZEREPKORTIPUS AND d.TOROLT = 'F' "); if (pco.JogosultsagIdList != null && pco.JogosultsagIdList.Count > 0) { wherestringgondviselo.Append(" AND j.jogosultsagok IS NOT NULL "); CommandText.Append(" AND d.ID IN("); CommandText.Append(string.Join(", ", pco.JogosultsagIdList)); CommandText.Append(") "); } CommandText.Append(@"WHERE f.TOROLT = 'F' GROUP BY f.ID, d.C_NAME) szerepkorok WHERE szerepkorok.felhasznaloID = fsz2.C_FELHASZNALOID FOR XML PATH('')), 1, 1, '') jogosultsagok FROM T_FELHASZNALO_SZEREPKOR fsz2 ) j ON j.C_FELHASZNALOID = fb.C_FELHASZNALOID WHERE g.TOROLT = 'F' AND g.C_TANEVID = :pTanevId AND g.C_INTEZMENYID = :pIntezmenyId "); if (pco.FeladatKategoriaId.IsEntityId()) { CommandText.Append($" AND osztaly.C_FELADATKATEGORIAID = @{nameof(pco.FeladatKategoriaId)}"); } if (pco.FeladatEllatasiHelyId.HasValue) { CommandText.Append($" AND osztaly.C_FELADATELLATASIHELYID = @{nameof(pco.FeladatEllatasiHelyId)}"); } CommandText.Append(wherestringgondviselo); DataSet ds = GetData(CommandText.ToString(), paramlist, null, "CsokkentettGondviselo,TorvenyesKepviselo,GondviseloBovitettJog"); return ds; } public DataSet GetFelhasznalokOnlyAlkalmazottSzerepkor(int tanevId) { 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 = "uspFelhasznalokWithOnlyAlkalmazottSzerepkor"; command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId; using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } } return ds; } public DataSet GetAdminFelhasznalok(string intezmenyAzonosito) { var parameters = new List { new CommandParameter(nameof(intezmenyAzonosito), intezmenyAzonosito), new CommandParameter(nameof(SzerepkorTipusEnum.Adminisztrator), (int)SzerepkorTipusEnum.Adminisztrator) }; var command = $@" SELECT f.ID FROM T_FELHASZNALO f INNER JOIN T_INTEZMENY i ON i.ID = f.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_AZONOSITO = @{nameof(intezmenyAzonosito)} INNER JOIN T_TANEV t ON t.ID = f.C_TANEVID AND t.TOROLT = 'F' AND t.C_AKTIV = 'T' AND t.C_INTEZMENYID = f.C_INTEZMENYID INNER JOIN T_FELHASZNALO_SZEREPKOR fsz ON fsz.C_FELHASZNALOID = f.ID INNER JOIN T_SZEREPKOR sz ON sz.ID = fsz.C_SZEREPKORID AND sz.TOROLT = 'F' AND sz.C_SZEREPKORTIPUS = @{nameof(SzerepkorTipusEnum.Adminisztrator)} WHERE f.C_NYOMTATASINEV <> '{Constants.SpecialUserName.KretaAdminisztrator}' AND f.TOROLT = 'F' "; return GetData(command, parameters); } public void FollowUpFelhasznaloEmail(int intezmenyId, int tanevId, int kovTanevId, int felhasznaloId) { using (SDACommand command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspFollowUpFelhasznaloEmail"; command.Parameters.Add("intezmenyId", intezmenyId); command.Parameters.Add("felhasznaloId", felhasznaloId); command.Parameters.Add("kovetkezoTanevId", kovTanevId); command.Parameters.Add("aktTanevId", tanevId); command.ExecuteNonQuery(); DalHelper.Commit(); } } public void FollowUpCim(int intezmenyId, int tanevId, int kovTanevId, int felhasznaloId) { using (SDACommand command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspFollowUpFelhasznaloCim"; command.Parameters.Add("intezmenyId", intezmenyId); command.Parameters.Add("felhasznaloId", felhasznaloId); command.Parameters.Add("kovetkezoTanevId", kovTanevId); command.Parameters.Add("aktTanevId", tanevId); command.ExecuteNonQuery(); DalHelper.Commit(); } } public void FollowUpTelefon(int intezmenyId, int tanevId, int kovTanevId, int alkalmazottId) { using (SDACommand command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspFollowUpFelhasznaloTelefon"; command.Parameters.Add("intezmenyId", intezmenyId); command.Parameters.Add("felhasznaloId", alkalmazottId); command.Parameters.Add("kovetkezoTanevId", kovTanevId); command.Parameters.Add("aktTanevId", tanevId); command.ExecuteNonQuery(); DalHelper.Commit(); } } public KirFelhasznaloElerhetosegek GetFelhasznaloElerhetoseg(int felhasznaloId, int tanevId, bool isTanulo) { var whereString = ""; if (isTanulo) { whereString = @"AND EXISTS (SELECT 1 FROM T_TANULO_OSSZES Tanulo WHERE Tanulo.C_ALTANEVID = Felhasznalo.C_TANEVID AND Tanulo.C_ALINTEZMENYID = Felhasznalo.C_INTEZMENYID AND Tanulo.ID = Felhasznalo.ID)"; } else { whereString = @"AND EXISTS (SELECT 1 FROM T_ALKALMAZOTT Alkalmazott WHERE Alkalmazott.C_ALTANEVID = Felhasznalo.C_TANEVID AND Alkalmazott.C_ALINTEZMENYID = Felhasznalo.C_INTEZMENYID AND Alkalmazott.ID = Felhasznalo.ID)"; } var commandText = new StringBuilder($@" SELECT Felhasznalo.C_SZULETESINEV AS SzuletesiNev ,Felhasznalo.C_ANYJANEVE AS AnyjaNeve ,Felhasznalo.C_SZULETESIDATUM AS SzuletesiDatum ,Felhasznalo.C_SZULETESIHELY AS SzuletesiHely ,Email.C_EMAILCIM AS Email ,Telefon.C_TELEFONSZAM AS Telefonszam ,AllandoLakcim.C_IRANYITOSZAM AS AllandoLakcimIranyitoszam ,AllandoLakcim.C_VAROS AS AllandoLakcimVaros ,AllandoLakcim.C_KOZTERULET AS AllandoLakcimKozteruletNev ,AllandoLakcim.C_KOZTERULETJELLEGENEV AS AllandoLakcimKozteruletJellegeNev ,AllandoLakcim.C_HAZSZAM AS AllandoLakcimHazszam ,TartozkodasiCim.C_IRANYITOSZAM AS TartozkodasiCimIranyitoszam ,TartozkodasiCim.C_VAROS AS TartozkodasiCimVaros ,TartozkodasiCim.C_KOZTERULET AS TartozkodasiCimKozteruletNev ,TartozkodasiCim.C_KOZTERULETJELLEGENEV AS TartozkodasiCimKozteruletJellegeNev ,TartozkodasiCim.C_HAZSZAM AS TartozkodasiCimHazszam FROM T_FELHASZNALO Felhasznalo LEFT JOIN T_EMAIL Email ON Email.C_FELHASZNALOID = Felhasznalo.ID AND Email.C_ALAPERTELMEZETT = 'T' AND Email.TOROLT = 'F' AND Email.C_INTEZMENYID = Felhasznalo.C_INTEZMENYID AND Email.C_TANEVID = Felhasznalo.C_TANEVID LEFT JOIN T_TELEFON Telefon ON Telefon.C_FELHASZNALOID = Felhasznalo.ID AND Telefon.C_ALAPERTELMEZETT = 'T' AND Telefon.TOROLT = 'F' AND Telefon.C_INTEZMENYID = Felhasznalo.C_INTEZMENYID AND Telefon.C_TANEVID = Felhasznalo.C_TANEVID LEFT JOIN T_CIM AllandoLakcim ON AllandoLakcim.C_FELHASZNALOID = Felhasznalo.ID AND AllandoLakcim.C_ALAPERTELMEZETT = 'T' AND AllandoLakcim.TOROLT = 'F' AND AllandoLakcim.C_INTEZMENYID = Felhasznalo.C_INTEZMENYID AND AllandoLakcim.C_TANEVID = Felhasznalo.C_TANEVID AND AllandoLakcim.C_CIMTIPUSA = 907 LEFT JOIN T_CIM TartozkodasiCim ON TartozkodasiCim.C_FELHASZNALOID = Felhasznalo.ID AND TartozkodasiCim.C_ALAPERTELMEZETT = 'T' AND TartozkodasiCim.TOROLT = 'F' AND TartozkodasiCim.C_INTEZMENYID = Felhasznalo.C_INTEZMENYID AND TartozkodasiCim.C_TANEVID = Felhasznalo.C_TANEVID AND TartozkodasiCim.C_CIMTIPUSA = 909 WHERE Felhasznalo.TOROLT = 'F' AND Felhasznalo.C_TANEVID = :pTanevId AND Felhasznalo.ID = :pId "); commandText.Append(whereString); var commandParameterList = new List { new CommandParameter("pTanevId", tanevId), new CommandParameter("pId", felhasznaloId) }; return GetData(commandText.ToString(), commandParameterList) .ToDaoList() .FirstOrDefault(); } public void UpdateAllEgyediAzonosito() { using (SDACommand command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspUpdateAllEgyediAzonosito"; command.ExecuteNonQuery(); DalHelper.Commit(); } } public string GetFelhasznaloEgyediAzonosito(int intezmenyId, int userId) { using (var command = UserContext.Instance.SDAConnection.CreateCommand()) { command.Transaction = UserContext.Instance.SDATransaction; // NOTE: Itt azért kell az "_OSSZES" tanévszűrés nélkül, mert a besorolásoknál elő kell tudnunk szedni korábbi tanéves felhasználókat is. command.CommandText = @" SELECT f.C_EGYEDIAZONOSITO FROM T_FELHASZNALO_OSSZES f WHERE f.ID = :pUserId AND f.C_INTEZMENYID = :pIntezmenyId AND f.TOROLT = 'F' "; command.Parameters.Add("pIntezmenyId", intezmenyId); command.Parameters.Add("pUserId", userId); var result = command.ExecuteScalar(); return (string)result; } } public string GetFelhasznaloOktatasiAzonosito(int userId) { using (var command = UserContext.Instance.SDAConnection.CreateCommand()) { command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = @" SELECT f.C_OKTATASIAZONOSITO FROM T_FELHASZNALO f WHERE f.ID = :pUserId AND f.TOROLT = 'F' "; command.Parameters.Add("pUserId", userId); var result = command.ExecuteScalar(); return (string)result; } } public int? GetFelhasznaloByEgyediAzonositoAndTanev(string egyediAzonosito, int tanevId) { using (var command = UserContext.Instance.SDAConnection.CreateCommand()) { command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = @" SELECT f.ID FROM T_FELHASZNALO_OSSZES f WHERE f.C_EGYEDIAZONOSITO = :pEgyediAzonosito AND f.C_TANEVID = :ptanevId AND f.TOROLT = 'F' "; command.Parameters.Add("pEgyediAzonosito", egyediAzonosito); command.Parameters.Add("ptanevId", tanevId); var result = command.ExecuteScalar(); return (int?)result; } } public int? GetFelhasznaloByOktatasiAzonositoAndTanev(string okatatasiAzonosito, int tanevId) { using (var command = UserContext.Instance.SDAConnection.CreateCommand()) { command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = @" SELECT f.ID FROM T_FELHASZNALO_OSSZES f WHERE f.C_OKTATASIAZONOSITO = :pOkatatasiAzonosito AND f.C_TANEVID = :ptanevId AND f.TOROLT = 'F' "; command.Parameters.Add("pOkatatasiAzonosito", okatatasiAzonosito); command.Parameters.Add("ptanevId", tanevId); var result = command.ExecuteScalar(); return (int?)result; } } public string GetGondviseloEgyediAzonosito(int userId) { using (var command = UserContext.Instance.SDAConnection.CreateCommand()) { command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = @" SELECT g.C_EGYEDIAZONOSITO FROM T_GONDVISELO g WHERE g.ID = :pUserId AND g.TOROLT = 'F' "; command.Parameters.Add("pUserId", userId); var result = command.ExecuteScalar(); return (string)result; } } public string GetFunkcioTeruletSAPKod(int pFelhasznaloId, int pTanevId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.Parameters.Add(nameof(pFelhasznaloId), pFelhasznaloId); command.Parameters.Add(nameof(pTanevId), pTanevId); command.CommandText = $@" SELECT mh.C_FUNKCIOTERULET AS FunkcioTeruletSAPKod FROM T_FELHASZNALO_OSSZES fh LEFT JOIN T_MUNKAUGYIADATOK_OSSZES ma ON ma.C_ALKALMAZOTTID = fh.ID AND ma.TOROLT = 'F' AND ma.C_TANEVID = fh.C_TANEVID LEFT JOIN T_FELADATELLATASIHELY_OSSZES feh ON feh.ID = ma.C_FELADATELLATASIHELYID AND feh.TOROLT = 'F' AND feh.C_TANEVID = fh.C_TANEVID LEFT JOIN T_MUKODESIHELY_OSSZES mh ON mh.ID = feh.C_MUKODESIHELYID AND mh.TOROLT = 'F' AND mh.C_TANEVID = fh.C_TANEVID WHERE fh.ID = @{nameof(pFelhasznaloId)} AND fh.C_TANEVID = @{nameof(pTanevId)} AND fh.TOROLT = 'F'"; var funkcioTeruletSAPKod = command.ExecuteScalar(); return funkcioTeruletSAPKod?.ToString() ?? string.Empty; } } public DataSet GetFelhasznaloEmailByGuid(string pFelhasznaloEgyediAzonosito, int pIntezmenyId, int pTanevId) { List paramlist = new List { new CommandParameter(nameof(pFelhasznaloEgyediAzonosito), pFelhasznaloEgyediAzonosito), new CommandParameter(nameof(pIntezmenyId), pIntezmenyId), new CommandParameter(nameof(pTanevId), pTanevId) }; string commandText = $@" SELECT f.ID AS 'AlkalmazottId' ,f.C_EGYEDIAZONOSITO AS 'AlkalmazottGuid' ,e.C_EMAILCIM AS 'EmailCim' ,e.C_GUID AS 'EmailGuid' ,f.C_NYOMTATASINEV AS 'AlkalmazottNev' FROM T_EMAIL_OSSZES e INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = e.C_FELHASZNALOID WHERE e.TOROLT = 'F' AND f.C_INTEZMENYID = @{nameof(pIntezmenyId)} AND f.C_TANEVID = @{nameof(pTanevId)} AND e.C_EMAILTIPUSA = 1025 AND f.C_EGYEDIAZONOSITO = @{nameof(pFelhasznaloEgyediAzonosito)} "; var result = GetData(commandText, paramlist); return result; } public bool IsTanuloOrGondviselo(int userId, int intezmenyId, int tanevId) { using (var command = UserContext.Instance.SDAConnection.CreateCommand()) { command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = @" SELECT ISNULL(SUM(cnt), 0) as cnt FROM ( SELECT 1 as cnt FROM T_TANULO t JOIN T_INTEZMENY i on i.ID = t.C_ALINTEZMENYID and i.C_ISARCHIV = 'T' WHERE t.ID = @pUserId and t.C_ALINTEZMENYID = @pIntezmenyId and t.C_ALTANEVID = @pTanevId UNION ALL SELECT 1 as cnt FROM T_GONDVISELO g JOIN T_INTEZMENY i on i.ID = g.C_INTEZMENYID and i.C_ISARCHIV = 'T' WHERE g.C_TANULOID = @pUserId and g.C_INTEZMENYID = @pIntezmenyId and g.C_TANEVID = @pTanevId ) x "; command.Parameters.Add("pUserId", userId); command.Parameters.Add("pIntezmenyId", intezmenyId); command.Parameters.Add("pTanevId", tanevId); object result = command.ExecuteScalar(); return int.Parse(result.ToString()) == 0; } } public IEgyHaztartasbanElok GetEgyhaztartasbanElok() { var entity = EgyHaztartasbanElok.GiveAnInstance(); return entity; } public IEgyHaztartasbanElok GetEgyhaztartasbanElok(int id) { var entity = EgyHaztartasbanElok.GiveAnInstance(); entity.LoadByID(id); return entity; } public void DeleteEgyhaztartasbanElok(int id) { var entity = EgyHaztartasbanElok.GiveAnInstance(); entity.LoadByID(id); entity.Delete(); DalHelper.Commit(); } public void InsertEgyhaztartasbanElok(IEgyHaztartasbanElok dto) { var entity = dto as EgyHaztartasbanElok; entity.Insert(); DalHelper.Commit(); } public void FullUpdateEgyhaztartasbanElok(IEgyHaztartasbanElok dto) { var entity = dto as EgyHaztartasbanElok; entity.FullUpdate(); DalHelper.Commit(); } public DataSet GetSapAdattisztasagExcel() { using (var sdaCommand = new SDACommand()) { sdaCommand.Connection = UserContext.Instance.SDAConnection; sdaCommand.Transaction = UserContext.Instance.SDATransaction; sdaCommand.CommandType = CommandType.StoredProcedure; sdaCommand.CommandText = "uspGetSapAdattisztasagExcel"; var dataSet = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = sdaCommand; adapter.Fill(dataSet); } DataTable dataTable = dataSet.Tables[0]; DataTable result = SortingAndPaging(dataTable, GridParameters); return result.AsDataSet(); } } public DataSet GetCovidFertozottekDataSet(int tanevId) { using (var sdaCommand = new SDACommand()) { sdaCommand.Connection = UserContext.Instance.SDAConnection; sdaCommand.Transaction = UserContext.Instance.SDATransaction; sdaCommand.CommandType = CommandType.StoredProcedure; sdaCommand.CommandText = "uspGetCovidFertozott"; sdaCommand.Parameters.Add("pTanevId", tanevId); var dataSet = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = sdaCommand; adapter.Fill(dataSet); } return dataSet; } } public DataSet GetCovidFertozottekByTanarDataSet(int tanevId, int tanarId) { using (var sdaCommand = new SDACommand()) { sdaCommand.Connection = UserContext.Instance.SDAConnection; sdaCommand.Transaction = UserContext.Instance.SDATransaction; sdaCommand.CommandType = CommandType.StoredProcedure; sdaCommand.CommandText = "uspGetCovidFertozott"; sdaCommand.Parameters.Add("pTanevId", tanevId); sdaCommand.Parameters.Add("pTanarId", tanarId); var dataSet = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = sdaCommand; adapter.Fill(dataSet); } return dataSet; } } public DataSet UpdateFelhasznalokCovidAdatok(int tanevId, string tajSzamokJson) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspUpdateFelhasznalokCovidAdatok"; command.Parameters.Add("pTanevId", tanevId); command.Parameters.Add("pTajSzamokJson", tajSzamokJson); var ds = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } DalHelper.Commit(); return ds; } } public DataSet GetNapiErtesitesOsszefoglalo(int? tanuloId, int? tanuloIdp) { using (var sdaCommand = new SDACommand()) { sdaCommand.Connection = UserContext.Instance.SDAConnection; sdaCommand.Transaction = UserContext.Instance.SDATransaction; sdaCommand.CommandType = CommandType.StoredProcedure; sdaCommand.CommandText = "uspGetNapiOsszefoglaloErtesites"; if (tanuloId.HasValue) { sdaCommand.Parameters.Add("pTanuloId", tanuloId); } else { sdaCommand.Parameters.Add("pTanuloId", DBNull.Value); } if (tanuloIdp.HasValue) { sdaCommand.Parameters.Add("pTanuloIdp", tanuloIdp); } else { sdaCommand.Parameters.Add("pTanuloIdp", DBNull.Value); } var dataSet = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = sdaCommand; adapter.Fill(dataSet); } return dataSet; } } public List GetAllIntezmenyiAdmin(int tanevId) { 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 = "uspGetAllIntezmenyiAdmin"; command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId; using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } } return ds.Tables[0].AsEnumerable().Select(r => r.Field("ID")).ToList(); } public string GetBankszamlaVezetoBankNeve(string intezmenyAzonosito, string bankszamlaSzam) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.Text; command.CommandText = $@"SELECT [kr_{intezmenyAzonosito}_schema].fnGetBankszamlaVezetoBank('{bankszamlaSzam?.Replace("-", "") ?? string.Empty}')"; return command.ExecuteScalar()?.ToString() ?? string.Empty; } } public void SaveBankszamlaAdatok(bool isTanulo, int felhasznaloId, string bankszamlaSzam, int? bankszamlaTulajdonosTipusID, string bankszamlaTulajNeve, int modifierId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = $@"UPDATE T_{(isTanulo ? "TANULO" : "ALKALMAZOTT")}_OSSZES SET C_BANKSZAMLASZAM = @bankszamlaSzam ,C_BANKSZAMLATULAJDONOSTIPUS{(isTanulo ? "ID" : "")} = @bankszamlaTulajdonosTipusID ,C_BANKSZAMLATULAJNEVE = @bankszamlaTulajNeve ,SERIAL += 1 ,LASTCHANGED = GETDATE() ,MODIFIER = @modifierId WHERE (ID = @felhasznaloId OR ELOZOTANEVIREKORDID = @felhasznaloId) AND TOROLT = 'F'"; command.Parameters.Add(nameof(felhasznaloId), felhasznaloId); if (bankszamlaSzam == null) { command.Parameters.Add(nameof(bankszamlaSzam), DBNull.Value); } else { command.Parameters.Add(nameof(bankszamlaSzam), bankszamlaSzam); } if (bankszamlaTulajdonosTipusID.IsEntityId()) { command.Parameters.Add(nameof(bankszamlaTulajdonosTipusID), bankszamlaTulajdonosTipusID); } else { command.Parameters.Add(nameof(bankszamlaTulajdonosTipusID), DBNull.Value); } if (bankszamlaTulajNeve == null) { command.Parameters.Add(nameof(bankszamlaTulajNeve), DBNull.Value); } else { command.Parameters.Add(nameof(bankszamlaTulajNeve), bankszamlaTulajNeve); } command.Parameters.Add(nameof(modifierId), modifierId); command.ExecuteNonQuery(); DalHelper.Commit(); } } } }