266 lines
9.3 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|