using System; using System.Collections.Generic; using System.Data; using System.Linq; 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 TanevDAL : DataAccessBase, ITanevDal { public TanevDAL(DalHandler handler, GridParameters parameters) : base(handler, parameters) { } public TanevDAL(DalHandler handler) : base(handler) { } public ITanev Get(int id) { var entity = Tanev.GiveAnInstance(); entity.LoadByID(id); return entity; } public int GetAktivTanevId() { DataSet dataSet = GetTanevData(); if (dataSet.Tables.Count == 0) { return 0; } var result = Convert.ToInt32(dataSet.Tables[0].Rows[0]["ID"]); return result; } public DataSet GetTanevData(int? tanevId = null) { var commandParameterList = new List { new CommandParameter("pNapTipusElsoTanitasiNapId", (int) NapTipusEnum.elso_tanitasi_nap), new CommandParameter("pNapTipusUtolsoTanitasiNapId", (int) NapTipusEnum.utolso_tanitasi_nap), new CommandParameter("pNapTipusUtolsoTanitasiNapVegzosId", (int) NapTipusEnum.utolso_tanitasi_nap_a_vegzos_evfolyamokon) }; if (tanevId.IsEntityId()) { commandParameterList.Add(new CommandParameter("pErtekTipusRadioButtonGroupId", (int)SystemSettingsControlTypeEnum.RadioButtonGroup)); commandParameterList.Add(new CommandParameter("pErtekTipusTrueFalseId", (int)SystemSettingsControlTypeEnum.TrueFalse)); commandParameterList.Add(new CommandParameter("pFoglalkozasokRogziteseHetvegere", (int)RendszerBeallitasTipusEnum.Foglalkozasok_Rogzitese_Hetvegere)); commandParameterList.Add(new CommandParameter("pTanevId", tanevId)); } string commandText = @" SELECT tv.ID AS Id ,tv.C_NEV AS Nev ,tv.C_KEZDONAP AS KezdoNap ,tv.C_UTOLSONAP AS UtolsoNap ,COALESCE((SELECT TOP 1 tr.C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE tr.C_NAPTIPUSA = :pNapTipusElsoTanitasiNapId AND tr.C_TANEVID = tv.ID AND tr.TOROLT = 'F'), tv.C_ELSOTANITASINAP) AS ElsoTanitasiNap ,COALESCE((SELECT TOP 1 tr.C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE tr.C_NAPTIPUSA = :pNapTipusUtolsoTanitasiNapId AND tr.C_TANEVID = tv.ID AND tr.TOROLT = 'F'), tv.C_UTOLSOTANITASINAP) AS UtolsoTanitasiNap ,COALESCE((SELECT TOP 1 tr.C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE tr.C_NAPTIPUSA = :pNapTipusUtolsoTanitasiNapVegzosId AND tr.C_TANEVID = tv.ID AND tr.TOROLT = 'F'), tv.C_UTOLSOTANITASINAP) AS UtolsoTanitasiNapVegzos ,tv.C_SORSZAM AS Sorszam ,tv.C_AKTIV AS IsAktiv ,tv.C_KOVETKEZO AS IsKovetkezo ,tv.C_ISKIVALASZTHATO AS IsKivalaszthato"; if (tanevId.IsEntityId()) { commandText += @" ,(SELECT CASE WHEN rb.C_ERTEKTIPUS = :pErtekTipusRadioButtonGroupId THEN ( SELECT Value FROM OPENJSON(JSON_QUERY(rb.C_ERTEK,'$.Options')) WITH ( Selected nvarchar(10) '$.Selected' ,Value int '$.Value' ) WHERE Selected = 'true' ) WHEN rb.C_ERTEKTIPUS = :pErtekTipusTrueFalseId THEN IIF(JSON_VALUE(rb.C_ERTEK, '$.Value') = 'true', 1, 0) ELSE NULL END FROM T_RENDSZERBEALLITAS_OSSZES rb WHERE rb.C_BEALLITASTIPUS = :pFoglalkozasokRogziteseHetvegere AND rb.C_TANEVID = tv.ID AND rb.TOROLT = 'F') AS FoglalkozasokRogziteseHetvegereEnumValue "; } else { commandText += @" ,NULL AS FoglalkozasokRogziteseHetvegereEnumValue "; } commandText += @" FROM T_TANEV_OSSZES tv WHERE tv.TOROLT = 'F' "; if (tanevId.IsEntityId()) { commandText += @" AND tv.ID = :pTanevId"; } else { commandText += @" AND tv.C_AKTIV = 'T' "; } var dataSet = GetData(commandText, commandParameterList, booleanColumns: "IsAktiv,IsKovetkezo,IsKivalaszthato"); return dataSet; } public DataSet GetTanevek() { const string commandText = @" select ID, C_NEV Nev from T_TANEV_OSSZES WHERE TOROLT = 'F' AND C_ISKIVALASZTHATO = 'T' "; var ds = this.GetData(commandText); return ds; } public DataSet GetAktivAndKovTanevek() { const string commandText = @" select ID, C_NEV Nev from T_TANEV_OSSZES WHERE TOROLT = 'F' AND C_ISKIVALASZTHATO = 'T' AND (C_AKTIV = 'T' OR C_KOVETKEZO = 'T')"; var ds = this.GetData(commandText); return ds; } public DataSet GetAktivTanevek() { const string commandText = @" select ID, C_NEV Nev from T_TANEV_OSSZES WHERE TOROLT = 'F' AND C_ISKIVALASZTHATO = 'T' AND C_AKTIV = 'T'"; var ds = this.GetData(commandText); return ds; } public DataSet GetTanevekNevAsID() { const string commandText = @"select distinct C_NEV ID, C_NEV Nev from T_TANEV where TOROLT = 'F'"; var ds = this.GetData(commandText); return ds; } public DataSet GetKovetkezoTanev() { const string command = @"select ID, C_NEV Nev from T_TANEV_OSSZES where TOROLT = 'F' and C_KOVETKEZO = 'T' "; return this.GetData(command); } public DataSet GetElozoTanev() { const string command = @" SELECT ID ,C_NEV Nev FROM T_TANEV WHERE C_SORSZAM = (SELECT C_SORSZAM - 2 FROM T_TANEV WHERE C_AKTIV = 'T') "; return this.GetData(command); } public int GetKovTanevId() { const string commandText = @" select ID from T_TANEV_OSSZES where TOROLT = 'F' and C_SORSZAM = (select C_SORSZAM + 2 from T_TANEV where C_AKTIV = 'T' and TOROLT = 'F') "; var ds = this.GetData(commandText); return ds.Tables[0].Rows.Count == 1 ? Convert.ToInt32(ds.Tables[0].Rows[0]["ID"]) : -1; } public int GetPrevTanevId() { const string commandText = @" select ID from T_TANEV_OSSZES where TOROLT = 'F' and C_SORSZAM = (select C_SORSZAM - 2 from T_TANEV where C_AKTIV = 'T' and TOROLT = 'F') "; var ds = this.GetData(commandText); return ds.Tables[0].Rows.Count == 1 ? Convert.ToInt32(ds.Tables[0].Rows[0]["ID"]) : -1; } public DataSet GetFelhasznalokTanevekByFelhasznaloId(int felhasznaloId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspGetFelhasznalokTanevekByFelhasznaloId"; command.Parameters.Add("pFelhasznaloId", felhasznaloId); var ds = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } return ds; } } public string GetAktivTanevNev() { DataSet dataSet = GetTanevData(); return dataSet.Tables[0].AsEnumerable().FirstOrDefault()?.Field("Nev"); } public DataSet GetKovetkezoTanevAktivalhatosagAdatok(int intezmenyId) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandType = CommandType.StoredProcedure; command.CommandText = "uspGetKovetkezoTanevAktivalhatosagAdatok"; command.Parameters.Add("pIntezmenyId", intezmenyId); var ds = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = command; adapter.Fill(ds); } return ds; } } } }