358 lines
13 KiB
C#
358 lines
13 KiB
C#
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 TantervDAL : DataAccessBase, ITantervDAL
|
|
{
|
|
public TantervDAL(DalHandler handler, GridParameters parameters) : base(handler, parameters)
|
|
{
|
|
}
|
|
|
|
public TantervDAL(DalHandler handler) : base(handler)
|
|
{
|
|
}
|
|
|
|
public DataSet GetAktivTantervek(int? tanevId = null)
|
|
{
|
|
var paramsList = new List<CommandParameter>();
|
|
|
|
var commandText = new StringBuilder(@"
|
|
SELECT ID, C_NEV Nev
|
|
FROM T_TANTERV_OSSZES
|
|
WHERE TOROLT = 'F' ");
|
|
|
|
if (tanevId.IsEntityId())
|
|
{
|
|
commandText.Append(@" and T_TANTERV_OSSZES.c_tanevId = :pTanevID");
|
|
paramsList.Add(new CommandParameter("pTanevID", tanevId));
|
|
}
|
|
|
|
var ds = this.GetData(commandText.ToString(), paramsList);
|
|
|
|
return ds;
|
|
}
|
|
|
|
public DataSet GetTantervek()
|
|
{
|
|
var CommandText = @"
|
|
SELECT
|
|
tt.ID ID,
|
|
tt.C_NEV Nev,
|
|
tt.C_CSOPORTTIPUSA CsoportTipusa,
|
|
tt.C_EVFOLYAMIG Evfolyamig,
|
|
tt.C_EVFOLYAMTOL Evfolyamtol,
|
|
tt.C_MEGJEGYZES Megjegyzes
|
|
FROM
|
|
T_TANTERV as tt
|
|
WHERE
|
|
tt.TOROLT = 'F'
|
|
";
|
|
|
|
var ds = GetData(CommandText, dictionaryItemColumns: "CsoportTipusa,Evfolyamig,Evfolyamtol");
|
|
|
|
return ds;
|
|
}
|
|
|
|
public DataSet GetTantervOsztalyai(int tantervId, int tanevId)
|
|
{
|
|
List<CommandParameter> parameters = new List<CommandParameter>(); /// TODO(@DevKornél): mehetnének list-be object initializerrel
|
|
parameters.Add(new CommandParameter("pTantervId", tantervId));
|
|
parameters.Add(new CommandParameter("pTanevId", tanevId));
|
|
parameters.Add(new CommandParameter("OktNevKatTipus", (int)OktNevelesiKategoriaEnum.NevelesOktatas));
|
|
|
|
var command = @"
|
|
SELECT
|
|
ocs.ID,
|
|
ocs.C_NEV Nev,
|
|
ocs.C_EVFOLYAMTIPUSA Evfolyam,
|
|
LETSZAM.TANULOKSZAMA Letszam
|
|
FROM T_OSZTALYCSOPORT_OSSZES ocs
|
|
INNER JOIN T_OSZTALY_OSSZES on T_OSZTALY_OSSZES.ID = ocs.ID
|
|
left JOIN
|
|
(
|
|
SELECT C_OSZTALYCSOPORTID, count(C_TANULOID) TANULOKSZAMA FROM T_TANULOCSOPORT
|
|
WHERE
|
|
T_TANULOCSOPORT.TOROLT = 'F' and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE() and
|
|
(T_TANULOCSOPORT.C_KILEPESDATUM IS NULL or T_TANULOCSOPORT.C_KILEPESDATUM > GETDATE())
|
|
GROUP BY C_OSZTALYCSOPORTID
|
|
) LETSZAM on LETSZAM.C_OSZTALYCSOPORTID = ocs.ID
|
|
WHERE
|
|
ocs.TOROLT = 'F' and
|
|
T_OSZTALY_OSSZES.C_TANTERVID = :pTantervId
|
|
AND T_OSZTALY_OSSZES.C_ALTANEVID = :pTanevId
|
|
AND ocs.C_FELADATKATEGORIAID = @OktNevKatTipus
|
|
";
|
|
|
|
return this.GetData(command, parameters, "Evfolyam");
|
|
}
|
|
|
|
public DataSet GetTantervTanuloi(int tantervId, int tanevId)
|
|
{
|
|
List<CommandParameter> parameters = new List<CommandParameter>(); /// TODO(@DevKornél): mehetnének list-be object initializerrel
|
|
parameters.Add(new CommandParameter("TantervId", tantervId));
|
|
parameters.Add(new CommandParameter("TanevId", tanevId));
|
|
parameters.Add(new CommandParameter("OktNevKatTipus", (int)OktNevelesiKategoriaEnum.NevelesOktatas));
|
|
|
|
var command = @"
|
|
select
|
|
f.ID as ID
|
|
,f.C_NYOMTATASINEV as Nev
|
|
,ocs.C_NEV as OsztalyNev
|
|
from T_TANULOTANUGYIADATOK tta
|
|
join T_TANULOCSOPORT tcs on tta.C_TANULOCSOPORTID = tcs.ID and tcs.C_BELEPESDATUM < GETDATE() and (tcs.C_KILEPESDATUM is null or tcs.C_KILEPESDATUM > GETDATE()) and tcs.TOROLT = 'F'
|
|
join T_OSZTALY o on o.ID = tcs.C_OSZTALYCSOPORTID and o.TOROLT = 'F'
|
|
join T_OSZTALYCSOPORT ocs on ocs.ID = o.ID and ocs.C_FELADATKATEGORIAID = @OktNevKatTipus and ocs.TOROLT = 'F'
|
|
join T_TANULO t on t.ID = tcs.C_TANULOID and t.TOROLT = 'F'
|
|
join T_FELHASZNALO f on f.ID = t.ID and f.TOROLT = 'F'
|
|
where
|
|
tta.C_TANTERVID = @TantervId and t.C_ALTANEVID = @TanevId and tta.TOROLT = 'F'
|
|
";
|
|
|
|
return this.GetData(command, parameters);
|
|
}
|
|
|
|
public DataSet TantervKereses(int tanevId, string tantervNev = null, int? jellemzoCsopTipId = null, int? kezdoEvfolyamId = null, int? vegzoEvfolyamId = null, int? isKerettantervreEpul = null, int? isKerettanterv = null)
|
|
{
|
|
List<CommandParameter> paramsList = new List<CommandParameter>();
|
|
|
|
StringBuilder command = new StringBuilder(@"SELECT
|
|
tanterv.ID AS ID
|
|
,tanterv.C_NEV AS Nev
|
|
,tanterv.C_CSOPORTTIPUSA AS CsoportTipusa
|
|
,tanterv.C_EVFOLYAMIG AS Evfolyamig
|
|
,tanterv.C_EVFOLYAMTOL AS Evfolyamtol
|
|
,tanterv.C_MEGJEGYZES AS Megjegyzes
|
|
,C_ISKERETTANTERV as IsKerettanterv
|
|
FROM T_TANTERV_OSSZES tanterv
|
|
WHERE tanterv.TOROLT = 'F'");
|
|
|
|
if (!string.IsNullOrWhiteSpace(tantervNev))
|
|
{
|
|
command.Append($" AND lower(tanterv.C_NEV) like '%' + @{nameof(tantervNev)} + '%'");
|
|
paramsList.Add(new CommandParameter(nameof(tantervNev), tantervNev.ToLowerInvariant()));
|
|
}
|
|
|
|
if (jellemzoCsopTipId.HasValue)
|
|
{
|
|
command.Append(@" AND tanterv.C_CSOPORTTIPUSA = :pJellCsopTip");
|
|
paramsList.Add(new CommandParameter("pJellCsopTip", jellemzoCsopTipId));
|
|
}
|
|
|
|
if (kezdoEvfolyamId.HasValue)
|
|
{
|
|
command.Append(@" AND tanterv.C_EVFOLYAMTOL = :pKezdEvf");
|
|
paramsList.Add(new CommandParameter("pKezdEvf", kezdoEvfolyamId));
|
|
}
|
|
|
|
if (vegzoEvfolyamId.HasValue)
|
|
{
|
|
command.Append(@" AND tanterv.C_EVFOLYAMIG = :pVegEvf");
|
|
paramsList.Add(new CommandParameter("pVegEvf", vegzoEvfolyamId));
|
|
}
|
|
|
|
if (isKerettantervreEpul.HasValue)
|
|
{
|
|
if (isKerettantervreEpul.Value == 1)
|
|
{
|
|
command.Append(@" AND tanterv.C_KERETTANTERVREEPULO = 'T'");
|
|
}
|
|
if (isKerettantervreEpul.Value == 0)
|
|
{
|
|
command.Append(@" AND tanterv.C_KERETTANTERVREEPULO = 'F'");
|
|
}
|
|
}
|
|
|
|
if (isKerettanterv.HasValue)
|
|
{
|
|
if (isKerettanterv.Value == 1)
|
|
{
|
|
command.Append(@" AND tanterv.C_ISKERETTANTERV = 'T'");
|
|
}
|
|
if (isKerettanterv.Value == 0)
|
|
{
|
|
command.Append(@" AND tanterv.C_ISKERETTANTERV = 'F'");
|
|
}
|
|
}
|
|
|
|
command.Append(@" AND tanterv.C_TANEVID = :pTanevId");
|
|
paramsList.Add(new CommandParameter("pTanevId", tanevId));
|
|
|
|
var ds = GetData(command.ToString(), paramsList, dictionaryItemColumns: "CsoportTipusa,Evfolyamig,Evfolyamtol", booleanColumns: "IsKerettanterv");
|
|
return ds;
|
|
}
|
|
|
|
public void Insert(ITanterv dto)
|
|
{
|
|
var entity = dto as Tanterv;
|
|
entity.Insert();
|
|
dto.ID = entity.ID;
|
|
|
|
FollowUp(entity);
|
|
|
|
DalHelper.Commit();
|
|
}
|
|
|
|
public void FullUpdate(ITanterv dto)
|
|
{
|
|
var entity = dto as Tanterv;
|
|
entity.FullUpdate();
|
|
|
|
FollowUp(entity);
|
|
|
|
DalHelper.Commit();
|
|
}
|
|
|
|
public void Update(ITanterv dto)
|
|
{
|
|
var entity = dto as Tanterv;
|
|
entity.Update();
|
|
|
|
FollowUp(entity);
|
|
|
|
DalHelper.Commit();
|
|
}
|
|
|
|
public void Delete(ITanterv dto)
|
|
{
|
|
var entity = dto as Tanterv;
|
|
|
|
entity.Delete();
|
|
DalHelper.Commit();
|
|
}
|
|
|
|
public void FollowUpTanterv(int intezmenyId, int aktTanevId, int kovetkezoTanevId, int tantervId)
|
|
{
|
|
using (SDACommand command = new SDACommand())
|
|
{
|
|
command.Connection = UserContext.Instance.SDAConnection;
|
|
command.Transaction = UserContext.Instance.SDATransaction;
|
|
command.CommandText = "uspFollowUpTanterv";
|
|
command.Parameters.Add("intezmenyId", intezmenyId);
|
|
command.Parameters.Add("aktTanevId", aktTanevId);
|
|
command.Parameters.Add("kovetkezoTanevId", kovetkezoTanevId);
|
|
command.Parameters.Add("tantervId", tantervId);
|
|
command.CommandType = CommandType.StoredProcedure;
|
|
command.ExecuteNonQuery();
|
|
DalHelper.Commit();
|
|
}
|
|
}
|
|
|
|
public int GetKovTanevTanterv(int tantervId, int tanevId)
|
|
{
|
|
using (var commandByTantervId = new SDACommand
|
|
{
|
|
Connection = UserContext.Instance.SDAConnection,
|
|
Transaction = UserContext.Instance.SDATransaction
|
|
})
|
|
{
|
|
|
|
commandByTantervId.Parameters.Add("pTantervId", tantervId);
|
|
commandByTantervId.CommandText = @"
|
|
SELECT
|
|
tt.ID
|
|
FROM T_TANTERV_OSSZES tt
|
|
WHERE
|
|
tt.ELOZOTANEVIREKORDID = :pTantervId AND tt.TOROLT = 'F'
|
|
";
|
|
|
|
var resultByTantervId = commandByTantervId.ExecuteScalar();
|
|
if (resultByTantervId != null)
|
|
return int.Parse(resultByTantervId.ToString());
|
|
|
|
}
|
|
|
|
using (var commandByTanevId = new SDACommand
|
|
{
|
|
Connection = UserContext.Instance.SDAConnection,
|
|
Transaction = UserContext.Instance.SDATransaction
|
|
})
|
|
{
|
|
|
|
commandByTanevId.Parameters.Add("pTanevId", tanevId);
|
|
commandByTanevId.CommandText = @"
|
|
SELECT
|
|
ID
|
|
FROM T_TANTERV_OSSZES
|
|
WHERE
|
|
C_TANEVID = :pTanevId
|
|
AND TOROLT = 'F'
|
|
AND C_VEDETT = 'T'
|
|
";
|
|
var resultByTanevId = commandByTanevId.ExecuteScalar();
|
|
if (resultByTanevId != null)
|
|
return int.Parse(resultByTanevId.ToString());
|
|
}
|
|
|
|
return -1;
|
|
}
|
|
|
|
public ITanterv Get()
|
|
{
|
|
return Tanterv.GiveAnInstance();
|
|
}
|
|
|
|
public ITanterv Get(int id)
|
|
{
|
|
var entity = Tanterv.GiveAnInstance();
|
|
entity.LoadByID(id);
|
|
return entity;
|
|
}
|
|
|
|
public int GetKovTanevIdByAktTanevId(int id)
|
|
{
|
|
using (var command = new SDACommand())
|
|
{
|
|
command.Connection = UserContext.Instance.SDAConnection;
|
|
command.Transaction = UserContext.Instance.SDATransaction;
|
|
|
|
command.Parameters.Add(nameof(id), id);
|
|
|
|
command.CommandText = $@"
|
|
SELECT ID
|
|
FROM T_TANTERV_OSSZES
|
|
WHERE
|
|
ELOZOTANEVIREKORDID = @{nameof(id)}
|
|
AND TOROLT = 'F'
|
|
";
|
|
|
|
var result = command.ExecuteScalar();
|
|
int.TryParse(result?.ToString(), out int res);
|
|
return res;
|
|
}
|
|
}
|
|
|
|
public int GetTop1TantervId(int tanevId)
|
|
{
|
|
SDA.DataProvider.SDACommand command = new SDA.DataProvider.SDACommand();
|
|
command.Connection = UserContext.Instance.SDAConnection;
|
|
command.Transaction = UserContext.Instance.SDATransaction;
|
|
|
|
command.Parameters.Add("pTanevId", tanevId);
|
|
|
|
command.CommandText = @"
|
|
SELECT TOP 1
|
|
tt.ID
|
|
FROM T_TANTERV_OSSZES tt
|
|
WHERE
|
|
tt.C_TANEVID = :pTanevId
|
|
AND tt.TOROLT = 'F'
|
|
";
|
|
|
|
var result = command.ExecuteScalar();
|
|
if (result != null)
|
|
return int.Parse(result.ToString());
|
|
return -1;
|
|
}
|
|
}
|
|
}
|