kreta/Kreta.DataAccessManual/TanevDAL.cs
2024-03-13 00:33:46 +01:00

266 lines
9.3 KiB
C#

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<CommandParameter>
{
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<string>("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;
}
}
}
}