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

2234 lines
118 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Kreta.Core;
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 OsztalyCsoportDal : DataAccessBase, IOsztalyCsoportDal
{
public OsztalyCsoportDal(DalHandler handler, GridParameters parameters)
: base(handler, parameters)
{
}
public OsztalyCsoportDal(DalHandler handler) : base(handler)
{
}
public DataSet GetOsztalyCSoportok(string osztaly, string csoport, int evfolyamTipus = -1, bool isCsoportTipusaKell = true)
{
const string commandText = @"
Select
ocs.ID,
ocs.C_NEV AS Nev,
ocs.C_EVFOLYAMTIPUSA Evfolyam,
CASE WHEN Osztaly IS NOT NULL THEN :pOsztaly ELSE :pCsoport END AS GroupName,
cs.C_TIPUSA AS CsoportTipusa
From(
SELECT [ID]
,[C_NEV]
,[C_EVFOLYAMTIPUSA]
FROM [T_OSZTALYCSOPORT] Where TOROLT = 'F' AND T_OSZTALYCSOPORT.C_FELADATKATEGORIAID = @OktNevKatTipus) AS ocs
Left Join (SELECT T_OSZTALY.[ID],
'T' AS Osztaly
FROM [T_OSZTALY]
INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = T_OSZTALY.ID AND OsztalyCsoport.C_FELADATKATEGORIAID = @OktNevKatTipus) AS o
on o.ID = ocs.ID
LEFT JOIN (SELECT T_CSOPORT.ID, C_TIPUSA FROM T_CSOPORT
INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = T_CSOPORT.ID AND OsztalyCsoport.C_FELADATKATEGORIAID = @OktNevKatTipus WHERE T_CSOPORT.TOROLT = 'F') AS cs ON cs.ID = ocs.ID
";
var prams = new List<CommandParameter> {
new CommandParameter("pOsztaly", osztaly),
new CommandParameter("pCsoport", csoport)
,new CommandParameter("OktNevKatTipus", (int)OktNevelesiKategoriaEnum.NevelesOktatas)
};
if (evfolyamTipus.IsEntityId())
{
prams.Add(new CommandParameter("pevfolyamTipus", evfolyamTipus));
}
var ds = this.GetData(commandText, prams, dictionaryItemColumns: "CsoportTipusa");
if (isCsoportTipusaKell)
{
foreach (DataRow row in ds.Tables[0].Rows)
{
if (!string.IsNullOrWhiteSpace(row["CsoportTipusa_DNAME"] as string))
{
row["Nev"] += (" - " + (row["CsoportTipusa_DNAME"] as string));
}
}
}
return ds;
}
public bool IsOsztalyCsoportNemTanoraiCeluCsoport(int osztalyCsoportId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetIsOsztalyCsoportNemTanoraiCeluCsoport";
command.Parameters.Add("pOsztalyCsoportId", osztalyCsoportId);
var result = Convert.ToBoolean(command.ExecuteScalar());
return result;
}
}
public DataSet GetOsztalyCsoportokGroupedByKapcsolodas(int userId)
{
var commandParameterList = new Dictionary<string, object> { { "felhasznaloId", userId } };
var result = GetOsztalyCsoportokDataSet("sp_GetFelhasznaloErintettOsztalyai", commandParameterList);
return result;
}
public DataSet GetOsztalyCsoportokGroupedByFoglalkozas(int userId)
{
var osztalyGroupName = CommonResource.Osztaly; /*Osztály*/
var csoportGroupName = CommonResource.Csoport; /*Csoport*/
var commandParameterList = new Dictionary<string, object> { { "felhasznaloId", userId }, { "osztaly", osztalyGroupName }, { "csoport", csoportGroupName } };
var result = GetOsztalyCsoportokDataSet("sp_GetFelhasznaloOsztalyaiByFoglalkozas", commandParameterList);
return result;
}
public DataSet GetFelhasznaloOsztalyaiByFoglalkozasAndOsztfo(int intezmenyId, int tanevId, int userId, string osztalyGroupName, string csoportGroupName, bool isKellCsoportvezeto = false)
{
var commandParameterList = new Dictionary<string, object> { { "pFelhasznaloId", userId }, { "pOsztalyGroupName", osztalyGroupName }, { "pCsoportGroupName", csoportGroupName }, { "pTanevId", tanevId }, { "pIntezmenyId", intezmenyId }, { "pIsKellCsoportVezeto", isKellCsoportvezeto } };
var result = GetOsztalyCsoportokDataSet("uspGetFelhasznaloOsztalyaiByFoglalkozasAndOsztfo", commandParameterList);
return result;
}
public DataSet GetVezetettOsztalyCsoportokByAlkalmazott(int tanevId, int alkalmazottId)
{
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 = "uspGetVezetettOsztalyCsoportokByAlkalmazott";
command.Parameters.Add("pAlkalmazottId", SDADBType.Int).Value = alkalmazottId;
command.Parameters.Add("pTanevID", SDADBType.Int).Value = tanevId;
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
DataTable dt = SortingAndPaging(ds.Tables[0], GridParameters);
return dt.AsDataSet();
}
}
public DataSet GetOsztalyCsoportokForFeljegyzesek(int userId)
{
var commandParameterList = new Dictionary<string, object> { { "felhasznaloId", userId } };
var result = GetOsztalyCsoportokDataSet("sp_GetOsztalyCsoportokForFeljegyzesek", commandParameterList);
return result;
}
public DataSet GetOsztalyCsoportokGrouped(int? feladatKategoriaId)
{
Dictionary<string, object> paramList = new Dictionary<string, object>();
if (feladatKategoriaId.IsEntityId())
{ paramList.Add("pFeladatKategoriaId", feladatKategoriaId); }
else
{ paramList.Add("pFeladatKategoriaId", DBNull.Value); }
var result = GetOsztalyCsoportokDataSet("sp_GetAllOsztalyCsoport", paramList);
return result;
}
public DataSet GetOsztalyCsoportokDataSet(string commandText, Dictionary<string, object> commandParameterList)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = commandText;
if (commandParameterList != null)
{
foreach (KeyValuePair<string, object> commandParameter in commandParameterList)
{
command.Parameters.Add(commandParameter.Key, commandParameter.Value);
}
}
var ds = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
DalHelper.Commit();
if (ds.Tables[0].Columns.Contains("CsoportTipusa"))
{
foreach (DataRow row in ds.Tables[0].Rows)
{
if (int.TryParse(row["CsoportTipusa"].ToString(), out int csoportTipusa))
{
row["Nev"] += " - " + csoportTipusa.GetItemNameFromCache(UserContext.Instance.AktivTanevId);
}
}
}
return ds;
}
}
public DataSet GetOsztalyCSoportokEvfolyamAlapjan(string osztaly, string csoport, int evfolyamTipus = -1)
{
var commandText = @"
Select
ocs.ID,
ocs.C_NEV AS Nev,
ocs.C_EVFOLYAMTIPUSA Evfolyam,
CASE WHEN Osztaly IS NOT NULL THEN :pOsztaly ELSE :pCsoport END AS GroupName,
cs.C_TIPUSA AS CsoportTipusa
From(
SELECT [ID]
,[C_NEV]
,[C_EVFOLYAMTIPUSA]
FROM [T_OSZTALYCSOPORT] Where TOROLT = 'F' AND T_OSZTALYCSOPORT.C_FELADATKATEGORIAID = @OktNevKatTipus " + (evfolyamTipus.IsEntityId() ? " and C_EVFOLYAMTIPUSA = :pevfolyamTipus" : string.Empty) + @") AS ocs
Left Join (SELECT T_OSZTALY.[ID],
'T' AS Osztaly
FROM [T_OSZTALY]
INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = T_OSZTALY.ID AND OsztalyCsoport.C_FELADATKATEGORIAID = @OktNevKatTipus) AS o
on o.ID = ocs.ID
LEFT JOIN (SELECT T_CSOPORT.ID, C_TIPUSA FROM T_CSOPORT
INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = T_CSOPORT.ID AND OsztalyCsoport.C_FELADATKATEGORIAID = @OktNevKatTipus WHERE T_CSOPORT.TOROLT = 'F') AS cs ON cs.ID = ocs.ID
";
var prams = new List<CommandParameter>
{
new CommandParameter("pOsztaly", osztaly),
new CommandParameter("pCsoport", csoport),
new CommandParameter("pevfolyamTipus", evfolyamTipus)
,new CommandParameter("OktNevKatTipus", (int)OktNevelesiKategoriaEnum.NevelesOktatas)
};
var ds = this.GetData(commandText, prams, dictionaryItemColumns: "CsoportTipusa");
foreach (DataRow row in ds.Tables[0].Rows)
{
if (!string.IsNullOrWhiteSpace(row["CsoportTipusa_DNAME"] as string))
{
row["Nev"] += (" - " + (row["CsoportTipusa_DNAME"] as string));
}
}
return ds;
}
public DataSet GetOsztalyCsoportListByEvfolyam(int intezmenyId, int tanevId, string osztaly, string csoport, int evfolyamTipus = -1, int? tanarId = null, bool isOsszefuggoSzakGyak = false, int? feladatKategoriaId = null,
bool? csakOsztalyEsTanoraJelleguCsoport = null, bool? isDualisKepzes = null, int? szervezetId = null, int? szervezetAdatokHalmaza = null)
{
if (isDualisKepzes.HasValue && isDualisKepzes.Value)
{
isOsszefuggoSzakGyak = false;
}
var isWhereClauseNeeded = isOsszefuggoSzakGyak || csakOsztalyEsTanoraJelleguCsoport == true || isDualisKepzes == true;
var commandText = @"
SELECT
CASE WHEN ocs.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(ocs.C_NEV,9) AS INT) ELSE 2147483647 END NumberOrder
,CASE WHEN LEFT(ocs.C_NEV, 1) BETWEEN '0' AND '9' AND ocs.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(ocs.C_NEV, 1, PATINDEX('%[^0-9]%', ocs.C_NEV) - 1),9) AS INT) ELSE 2147483647 END NumberAndTextOrder
,ocs.ID AS ID
,ocs.C_NEV AS Nev
,ocs.C_EVFOLYAMTIPUSA AS Evfolyam
,CASE WHEN Osztaly IS NOT NULL THEN :pOsztaly ELSE :pCsoport END AS GroupName
,cs.C_TIPUSA AS CsoportTipusa
FROM (
SELECT DISTINCT
ocsossz.[ID]
,ocsossz.[C_NEV]
,ocsossz.[C_EVFOLYAMTIPUSA]
,ocsossz.C_TANEVID
FROM
[T_OSZTALYCSOPORT_OSSZES] as ocsossz " +
(tanarId.HasValue ?
" INNER JOIN T_FOGLALKOZAS_OSSZES foglalkozas ON ocsossz.ID = foglalkozas.C_OSZTALYCSOPORTID AND foglalkozas.C_TANARID = :pTanarId AND foglalkozas.TOROLT = 'F' AND foglalkozas.C_TANEVID = ocsossz.C_TANEVID "
+ " INNER JOIN T_FOGLALKOZAS_OSSZES DualisFoglalkozas ON ocsossz.ID = DualisFoglalkozas.C_OSZTALYCSOPORTID AND DualisFoglalkozas.TOROLT = 'F' AND DualisFoglalkozas.C_TANEVID = ocsossz.C_TANEVID" + (isDualisKepzes == true ? " AND DualisFoglalkozas.C_FOGLALKOZASTIPUSA = 8999" : " AND DualisFoglalkozas.C_FOGLALKOZASTIPUSA <> 8999 ") : string.Empty)
+ $@" WHERE
ocsossz.C_TANEVID = :pTanevId AND
ocsossz.TOROLT = 'F'
AND (ocsossz.C_FELADATKATEGORIAID = @{nameof(feladatKategoriaId)} OR @{nameof(feladatKategoriaId)} IS NULL)"
+ (evfolyamTipus.IsEntityId() ? " AND C_EVFOLYAMTIPUSA = :pevfolyamTipus" : string.Empty) +
$@") AS ocs
LEFT JOIN (
SELECT
T_OSZTALY_OSSZES.[ID]
,'T' AS Osztaly
,T_OSZTALY_OSSZES.C_ALTANEVID
FROM [T_OSZTALY_OSSZES]
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = T_OSZTALY_OSSZES.ID AND OsztalyCsoport.TOROLT = 'F' AND OsztalyCsoport.C_TANEVID = T_OSZTALY_OSSZES.C_ALTANEVID AND (OsztalyCsoport.C_FELADATKATEGORIAID = @{nameof(feladatKategoriaId)} OR @{nameof(feladatKategoriaId)} IS NULL)) AS o ON o.ID = ocs.ID AND o.C_ALTANEVID = ocs.C_TANEVID
LEFT JOIN (
SELECT
T_CSOPORT_OSSZES.ID
,T_CSOPORT_OSSZES.C_TIPUSA
,T_CSOPORT_OSSZES.C_ALTANEVID
FROM
T_CSOPORT_OSSZES
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = T_CSOPORT_OSSZES.ID AND OsztalyCsoport.TOROLT = 'F' AND OsztalyCsoport.C_TANEVID = T_CSOPORT_OSSZES.C_ALTANEVID AND (OsztalyCsoport.C_FELADATKATEGORIAID = @{nameof(feladatKategoriaId)} OR @{nameof(feladatKategoriaId)} IS NULL)
{(isDualisKepzes == true && szervezetId.IsEntityId() && szervezetAdatokHalmaza != (int)SzervezetAdatokHalmazaEnum.Szervezet ? "INNER JOIN (SELECT ID FROM fnGetLathatoSzervezetek(:pIntezmenyId, :pTanevId, :pSzervezetId, :pSzervezetAdatokHalmaza)) lathatok ON lathatok.ID = T_CSOPORT_OSSZES.C_SZERVEZETID" : string.Empty)}
WHERE
T_CSOPORT_OSSZES.TOROLT = 'F'
{(isDualisKepzes == true && szervezetId.IsEntityId() && szervezetAdatokHalmaza == (int)SzervezetAdatokHalmazaEnum.Szervezet ? $" AND T_CSOPORT_OSSZES.C_SZERVEZETID = :pSzervezetId" : string.Empty)}
) AS cs ON cs.ID = ocs.ID AND cs.C_ALTANEVID = ocs.C_TANEVID " +
(isWhereClauseNeeded ? " WHERE 1=1 " : string.Empty) +
(isOsszefuggoSzakGyak ? " AND cs.C_TIPUSA = :pSzakmaiGyakorlatiCsoportTipus" : string.Empty) +
(csakOsztalyEsTanoraJelleguCsoport == true ? " AND (Osztaly IS NOT NULL OR (Osztaly IS NULL AND cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(:pTanevId)))) " : string.Empty) +
(isDualisKepzes == true ? " AND cs.C_TIPUSA = 8831" : string.Empty) +
@" ORDER BY
GroupName DESC, NumberOrder ASC, NumberAndTextOrder ASC, ocs.C_NEV ASC, CsoportTipusa ASC";
var prams = new List<CommandParameter>
{
new CommandParameter("pOsztaly", osztaly),
new CommandParameter("pCsoport", csoport),
new CommandParameter("pevfolyamTipus", evfolyamTipus),
new CommandParameter("pTanevId", tanevId),
new CommandParameter("pSzakmaiGyakorlatiCsoportTipus", (int)CsoportTipusEnum.OsszefuggoSzakmaiGyakorlatiCsoport)
};
if (tanarId.HasValue)
{
prams.Add(new CommandParameter("pTanarId", tanarId.Value));
}
if (feladatKategoriaId.IsEntityId())
{
prams.Add(new CommandParameter(nameof(feladatKategoriaId), feladatKategoriaId));
}
else
{
prams.Add(new CommandParameter(nameof(feladatKategoriaId), DBNull.Value));
}
if (isDualisKepzes == true && szervezetId.IsEntityId() && szervezetAdatokHalmaza.HasValue)
{
prams.Add(new CommandParameter("pIntezmenyId", intezmenyId));
prams.Add(new CommandParameter("pSzervezetId", szervezetId.Value));
prams.Add(new CommandParameter("pSzervezetAdatokHalmaza", szervezetAdatokHalmaza.Value));
}
var ds = GetData(commandText, prams, dictionaryItemColumns: "CsoportTipusa");
foreach (DataRow row in ds.Tables[0].Rows)
{
if (!string.IsNullOrWhiteSpace(row["CsoportTipusa_DNAME"] as string))
{
row["Nev"] += " - " + (row["CsoportTipusa_DNAME"] as string);
}
}
return ds;
}
public DataSet GetCsoportListByCsoportVezeto(int tanevId, int tanarId, bool isTanoraiCeluCsoportok, int tanoraiCsoportTipusId, bool isSzuperOsztalyfonok, bool? szervezetTipusId = null, int? szervezetId = null)
{
var prams = new List<CommandParameter>
{
new CommandParameter("pTanevId", tanevId),
new CommandParameter("pTanarId", tanarId),
new CommandParameter("pTanoraiCsoportTipusId", tanoraiCsoportTipusId)
};
var commandText = @"
SELECT
Csoport.ID Id
,OsztalyCsoport.C_NEV Nev
,'Csoport' GroupName
FROM T_CSOPORT_OSSZES Csoport
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON Csoport.ID = OsztalyCsoport.ID
LEFT JOIN T_SZERVEZET_OSSZES Szervezet ON Szervezet.ID = Csoport.C_SZERVEZETID AND Szervezet.C_TANEVID = Csoport.C_ALTANEVID
WHERE
Csoport.C_ALTANEVID = :pTanevId
AND Csoport.TOROLT = 'F'
AND OsztalyCsoport.C_TANEVID = :pTanevId
AND OsztalyCsoport.TOROLT = 'F'";
if (!isTanoraiCeluCsoportok)
{
commandText += @"AND (C_TIPUSA != :pTanoraiCsoportTipusId)";
}
if (!isSzuperOsztalyfonok)
{
commandText += @"AND (C_CSOPORTVEZETOID = :pTanarId)";
}
if(szervezetTipusId.HasValue)
{
prams.Add(new CommandParameter("pSzervezetTipusId", szervezetTipusId));
commandText += @" AND Szervezet.C_TIPUS = :pSzervezetTipusId";
}
else
{
commandText += @" AND Szervezet.C_TIPUS IS NULL ";
}
if(szervezetId.HasValue)
{
prams.Add(new CommandParameter("pSzervezetId", szervezetId));
commandText += @" AND C_SZERVEZETID = :pSzervezetId";
}
else
{
commandText += @" AND C_SZERVEZETID IS NULL ";
}
return GetData(commandText, prams);
}
public DataSet GetOsztalyCsoportokEvfolyamAndTanevAlapjan(int tanevId, string osztaly, string csoport, int evfolyamTipus = -1)
{
var commandText = @"
SELECT
CASE WHEN ocs.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(ocs.C_NEV,9) AS INT) ELSE 2147483647 END NumberOrder,
CASE WHEN LEFT(ocs.C_NEV, 1) BETWEEN '0' AND '9' AND ocs.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(ocs.C_NEV, 1, PATINDEX('%[^0-9]%', ocs.C_NEV) - 1),9) AS INT) ELSE 2147483647 END NumberAndTextOrder,
ocs.ID,
ocs.C_NEV AS Nev,
ocs.C_EVFOLYAMTIPUSA Evfolyam,
CASE WHEN Osztaly IS NOT NULL THEN :pOsztaly ELSE :pCsoport END AS GroupName,
cs.C_TIPUSA AS CsoportTipusa
FROM (
SELECT
T_OSZTALYCSOPORT_OSSZES.[ID]
,T_OSZTALYCSOPORT_OSSZES.[C_NEV]
,T_OSZTALYCSOPORT_OSSZES.[C_EVFOLYAMTIPUSA]
FROM [T_OSZTALYCSOPORT_OSSZES]
WHERE
C_TANEVID = :pTanevId AND TOROLT = 'F'
AND T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = @OktNevKatTipus " + (evfolyamTipus.IsEntityId() ? " and C_EVFOLYAMTIPUSA = :pevfolyamTipus" : string.Empty) + @") AS ocs
LEFT JOIN (SELECT T_OSZTALY_OSSZES.ID, 'T' AS Osztaly FROM T_OSZTALY_OSSZES
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = T_OSZTALY_OSSZES.ID AND OsztalyCsoport.C_FELADATKATEGORIAID = @OktNevKatTipus AND OsztalyCsoport.TOROLT = 'F' AND OsztalyCsoport.C_TANEVID = T_OSZTALY_OSSZES.C_ALTANEVID
WHERE T_OSZTALY_OSSZES.TOROLT = 'F' AND T_OSZTALY_OSSZES.C_ALTANEVID = :pTanevId
) AS o on o.ID = ocs.ID
LEFT JOIN (SELECT T_CSOPORT_OSSZES.ID, C_TIPUSA FROM T_CSOPORT_OSSZES
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = T_CSOPORT_OSSZES.ID AND OsztalyCsoport.C_FELADATKATEGORIAID = @OktNevKatTipus AND OsztalyCsoport.TOROLT = 'F' AND OsztalyCsoport.C_TANEVID = T_CSOPORT_OSSZES.C_ALTANEVID
WHERE T_CSOPORT_OSSZES.TOROLT = 'F' AND T_CSOPORT_OSSZES.C_ALTANEVID = :pTanevId
) AS cs ON cs.ID = ocs.ID
ORDER BY
GroupName DESC, NumberOrder ASC, NumberAndTextOrder ASC, ocs.C_NEV ASC, CsoportTipusa ASC";
var prams = new List<CommandParameter>
{
new CommandParameter("pTanevId", tanevId),
new CommandParameter("pOsztaly", osztaly),
new CommandParameter("pCsoport", csoport),
new CommandParameter("pevfolyamTipus", evfolyamTipus)
,new CommandParameter("OktNevKatTipus", (int)OktNevelesiKategoriaEnum.NevelesOktatas)
};
var ds = this.GetData(commandText, prams, dictionaryItemColumns: "CsoportTipusa");
foreach (DataRow row in ds.Tables[0].Rows)
{
if (!string.IsNullOrWhiteSpace(row["CsoportTipusa_DNAME"] as string))
{
row["Nev"] += (" - " + (row["CsoportTipusa_DNAME"] as string));
}
}
return ds;
}
/// INFO @DevKornel: Mobil használja
public DataSet GetOsztalyCsoportok(int tanevId, int? feladatKategoriaId, bool isAktiv = false, bool isFromSzervezet = false, List<int> osztalyfonokIds = null, List<int> tanuloIds = null, int? oktatasiNevelesiFeladatId = 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 = "uspGetTanuloOsztalyCsoportjai";
command.Parameters.Add("pTanuloIds", SqlLogic.ParseListToParameter(tanuloIds));
command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId;
command.Parameters.Add("pIsAktiv", SDADBType.Int).Value = isAktiv ? 1 : 0;
command.Parameters.Add("pIsFromSzervezet", SDADBType.Int).Value = isFromSzervezet ? 1 : 0;
command.Parameters.Add("pOsztalyfonokIds", SqlLogic.ParseListToParameter(osztalyfonokIds));
command.Parameters.Add("pFeladatKategoriaId", feladatKategoriaId.IsEntityId() ? (int)feladatKategoriaId : (object)DBNull.Value);
command.Parameters.Add("pOktatasiNevelesiFeladatId", oktatasiNevelesiFeladatId.HasValue ? (int)oktatasiNevelesiFeladatId : (object)DBNull.Value);
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
SetDNAME(ds.Tables[0], "EvFolyamTipus,CsoportTipus,KepzesiForma,FeladatKategoriaId,OktatasiNevelesiFeladatId");
SetBoolFields(ds.Tables[0], "IsCsoport");
DataTable dt = SortingAndPaging(ds.Tables[0], GridParameters);
return dt.AsDataSet();
}
}
public DataSet GetOsztalyCsoportokWithTanev(int tanevId)
{
const string commandText = @"
SELECT
CASE WHEN ocs.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(ocs.C_NEV,9) AS INT) ELSE 2147483647 END NumberOrder,
CASE WHEN LEFT(ocs.C_NEV, 1) BETWEEN '0' AND '9' AND ocs.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(ocs.C_NEV, 1, PATINDEX('%[^0-9]%', ocs.C_NEV) - 1),9) AS INT) ELSE 2147483647 END NumberAndTextOrder,
ocs.ID
,ocs.C_NEV AS OsztalyCsoport
,t.C_NEV AS Tanev
,cs.C_TIPUSA AS CsoportTipusa
,ocs.C_EVFOLYAMTIPUSA AS Evfolyam
,dic.C_ORDER
FROM (
SELECT
[ID]
,[C_NEV]
,[C_TANEVID]
,[C_EVFOLYAMTIPUSA]
FROM [T_OSZTALYCSOPORT_OSSZES] Where [TOROLT] = 'F') AS ocs
INNER JOIN (
SELECT
[ID]
,[C_NEV]
FROM [T_TANEV_OSSZES]
WHERE [TOROLT] = 'F'
AND ID = :pTanevId) AS t On t.ID = ocs.C_TANEVID
LEFT JOIN (SELECT ID, C_TIPUSA FROM T_CSOPORT_OSSZES WHERE TOROLT = 'F' AND C_ALTANEVID = :pTanevId) AS cs ON cs.ID = ocs.ID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dic ON dic.ID = ocs.C_EVFOLYAMTIPUSA AND dic.TOROLT = 'F' AND dic.C_TANEVID = t.ID
ORDER BY NumberOrder ASC, NumberAndTextOrder ASC, ocs.C_NEV ASC
";
var prams = new List<CommandParameter>
{
new CommandParameter("pTanevId", tanevId)
};
var ds = GetData(commandText, prams, dictionaryItemColumns: "CsoportTipusa");
foreach (DataRow row in ds.Tables[0].Rows)
{
if (!string.IsNullOrWhiteSpace(row["CsoportTipusa_DNAME"] as string))
{
row["OsztalyCsoport"] += (" - " + (row["CsoportTipusa_DNAME"] as string));
}
}
return ds;
}
public DataSet GetOsztalyCsoportokTanoranKivuliFoglalkozasokhozWithGroup(bool csakOsztalyEsTanoraJelleguCsoport, int tanevId)
{
var prams = new List<CommandParameter>
{
new CommandParameter("pTanevId", tanevId)
};
string commandText = $@"
SELECT
ocs.ID
,ocs.C_NEV AS OsztalyCsoport
,t.C_NEV AS Tanev
,cs.C_TIPUSA AS CsoportTipusa
FROM (
SELECT ID
,C_NEV
,C_TANEVID
FROM [T_OSZTALYCSOPORT_OSSZES] WHERE [TOROLT] = 'F'
AND C_TANEVID = :pTanevId) AS ocs
LEFT JOIN (SELECT ID, C_NEV FROM [T_TANEV_OSSZES] WHERE [TOROLT] = 'F' AND ID = :pTanevId) AS t ON t.ID = ocs.C_TANEVID
LEFT JOIN (SELECT ID, C_TIPUSA FROM T_CSOPORT_OSSZES WHERE TOROLT = 'F' AND C_ALTANEVID = :pTanevId) AS cs ON cs.ID = ocs.ID
LEFT JOIN
(SELECT T_OSZTALY_OSSZES.ID
FROM
T_OSZTALY_OSSZES
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = T_OSZTALY_OSSZES.ID
WHERE
T_OSZTALY_OSSZES.TOROLT = 'F') Osztaly ON
Osztaly.ID = ocs.ID
";
if (csakOsztalyEsTanoraJelleguCsoport)
commandText += " WHERE Osztaly.ID IS NOT NULL OR (Osztaly.ID IS NULL AND C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId)))";
var ds = GetData(commandText, prams, dictionaryItemColumns: "CsoportTipusa");
foreach (DataRow row in ds.Tables[0].Rows)
{
if (!string.IsNullOrWhiteSpace(row["CsoportTipusa_DNAME"] as string))
{
row["OsztalyCsoport"] += (" - " + (row["CsoportTipusa_DNAME"] as string));
}
}
return ds;
}
public DataSet GetOsztalyokOsztalyfonokAlapjan(int osztalyfonokVagyHelyettesId)
{
var parameters = new List<CommandParameter>() {
new CommandParameter("pOsztalyfonokId", osztalyfonokVagyHelyettesId)
,new CommandParameter("OktNevKatTipus", (int)OktNevelesiKategoriaEnum.NevelesOktatas)
};
const string commandText = @"
SELECT
T_OSZTALYCSOPORT.ID,
T_OSZTALYCSOPORT.C_NEV Nev,
T_OSZTALYCSOPORT.C_EVFOLYAMTIPUSA Evfolyam
FROM T_OSZTALYCSOPORT
JOIN (SELECT
T_OSZTALY.ID
FROM T_OSZTALY
INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = T_OSZTALY.ID AND OsztalyCsoport.C_FELADATKATEGORIAID = @OktNevKatTipus
WHERE T_OSZTALY.C_OFOHELYETTESID = :pOsztalyfonokId OR T_OSZTALY.C_OSZTALYFONOKID = :pOsztalyfonokId) OSZTALY
ON OSZTALY.ID = T_OSZTALYCSOPORT.ID
JOIN T_DICTIONARYITEMBASE dic on dic.ID = T_OSZTALYCSOPORT.C_EVFOLYAMTIPUSA and dic.TOROLT = 'F'
WHERE
T_OSZTALYCSOPORT.TOROLT = 'F'
AND T_OSZTALYCSOPORT.C_FELADATKATEGORIAID = @OktNevKatTipus
ORDER BY dic.C_ORDER ASC, Nev ASC
";
return GetData(commandText, parameters);
}
public DataSet GetKapcsolodoOsztalyCsoportokByTanarId(int tanarId, bool osztalyKell, bool csoportKell, bool tartottOraKell, OktNevelesiKategoriaEnum? feladatKategoria, string osztalyGroupName = null, string csoportGroupName = null)
{
var commandParameterList = new List<CommandParameter>
{
new CommandParameter("pTanarId", tanarId),
new CommandParameter("pOsztalyKell", osztalyKell),
new CommandParameter("pCsoportKell", csoportKell),
new CommandParameter("pTartottOraKell", tartottOraKell),
feladatKategoria.HasValue ?
new CommandParameter("pOktNevKatTipus", (int) feladatKategoria) :
new CommandParameter("pOktNevKatTipus", DBNull.Value),
!string.IsNullOrWhiteSpace(osztalyGroupName) ?
new CommandParameter("pOsztalyGroupName", osztalyGroupName) :
new CommandParameter("pOsztalyGroupName", DBNull.Value),
!string.IsNullOrWhiteSpace(csoportGroupName) ?
new CommandParameter("pCsoportGroupName", csoportGroupName) :
new CommandParameter("pCsoportGroupName", DBNull.Value),
new CommandParameter("pTipusId", (int)GeneratedAdatszotarTipusEnum.EvfolyamTipus)
};
string commandText = @"
DECLARE @defaultEvfolyamId int
SELECT @defaultEvfolyamId = (SELECT TOP 1 ID FROM T_DICTIONARYITEMBASE WHERE C_DICTIONARYTYPEID = :pTipusId AND C_VALUE = 1)
DECLARE @kapcsolodoOsztalyCsoportok TABLE (ID int)
INSERT INTO @kapcsolodoOsztalyCsoportok (ID)
EXEC sp_GetTanarKapcsolodoOsztalyai
@tanarId = :pTanarId
,@osztalyKell = :pOsztalyKell
,@csoportKell = :pCsoportKell
,@tartottOraKell = :pTartottOraKell
,@feladatKategoriaId = :pOktNevKatTipus
SELECT DISTINCT
CASE WHEN ocs.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(ocs.C_NEV, 9) AS int) ELSE 2147483647 END AS NumberOrder
,CASE WHEN LEFT(ocs.C_NEV, 1) BETWEEN '0' AND '9' AND ocs.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(ocs.C_NEV, 1, PATINDEX('%[^0-9]%', ocs.C_NEV) - 1),9) AS int) ELSE 2147483647 END AS NumberAndTextOrder
,ocs.ID AS ID
,ocs.C_NEV AS Nev
,ocs.C_EVFOLYAMTIPUSA AS Evfolyam
" + (string.IsNullOrWhiteSpace(osztalyGroupName) || string.IsNullOrWhiteSpace(csoportGroupName) ? ",NULL AS GroupName" : @", CASE WHEN :pOsztalyGroupName IS NOT NULL AND :pCsoportGroupName IS NOT NULL THEN
CASE WHEN o.ID IS NOT NULL THEN :pOsztalyGroupName ELSE :pCsoportGroupName END
ELSE
dib2.C_NAME
END AS GroupName") + @"
FROM T_OSZTALYCSOPORT ocs
INNER JOIN @kapcsolodoOsztalyCsoportok kocs ON kocs.ID = ocs.ID
INNER JOIN T_DICTIONARYITEMBASE dib ON dib.ID = ISNULL(ocs.C_EVFOLYAMTIPUSA, @defaultEvfolyamId) AND dib.TOROLT = 'F'
LEFT JOIN T_OSZTALY o ON o.ID = ocs.ID AND o.TOROLT = 'F'
"+(string.IsNullOrWhiteSpace(osztalyGroupName) || string.IsNullOrWhiteSpace(csoportGroupName) ? "" : "INNER JOIN T_DICTIONARYITEMBASE_OSSZES dib2 ON dib2.ID = ocs.C_FELADATKATEGORIAID AND dib2.C_TANEVID=ocs.C_TANEVID AND dib2.TOROLT='F'") + @"
WHERE ocs.TOROLT = 'F'
AND (:pOktNevKatTipus IS NULL OR ocs.C_FELADATKATEGORIAID = :pOktNevKatTipus)
ORDER BY
GroupName DESC
,NumberOrder ASC
,NumberAndTextOrder ASC
,Nev ASC
";
return GetData(commandText, commandParameterList);
}
public DataSet GetOsztalyokOsztalyfonokAlapjan(int osztalyfonokVagyHelyettesId, int intezmenyId, int tanevId)
{
var parameters = new List<CommandParameter>()
{ new CommandParameter("pOsztalyfonokId", osztalyfonokVagyHelyettesId),
new CommandParameter("pIntezmenyId", intezmenyId),
new CommandParameter("pTanevId", tanevId)
,new CommandParameter("OktNevKatTipus", (int)OktNevelesiKategoriaEnum.NevelesOktatas)
};
const string commandText = @"
SELECT
ocs.ID as ID
,ocs.C_NEV as Nev
,ocs.C_EVFOLYAMTIPUSA AS Evfolyam
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND (o.C_OFOHELYETTESID = :pOsztalyfonokId OR o.C_OSZTALYFONOKID = :pOsztalyfonokId) AND o.TOROLT='F' AND ocs.C_TANEVID = o.C_ALTANEVID
WHERE ocs.TOROLT='F' AND ocs.C_TANEVID = :pTanevId AND ocs.C_FELADATKATEGORIAID = @OktNevKatTipus
";
return GetData(commandText, parameters);
}
public DataSet GetOsztalyCsoportFoglalkozasAlapjan(int foglalkozasId)
{
const string commandText = @"select
t_osztalycsoport.id ID,
t_osztalycsoport.c_nev OsztalyCsoportNev
from
t_foglalkozas
inner join t_osztalycsoport on t_foglalkozas.c_osztalycsoportid=t_osztalycsoport.id AND t_osztalycsoport.C_FELADATKATEGORIAID = @OktNevKatTipus
where t_foglalkozas.id= :pFoglalkozasID";
var parameters = new List<CommandParameter>() {
new CommandParameter("pFoglalkozasID", foglalkozasId)
,new CommandParameter("OktNevKatTipus", (int)OktNevelesiKategoriaEnum.NevelesOktatas)
};
DataSet ds = GetData(commandText, parameters);
return ds;
}
public List<int> GetTanuloMindenkoriOsztalyCsoportjai(int tanuloId)
{
string commandText = $@"
SELECT
C_OSZTALYCSOPORTID ID
FROM
T_TANULOCSOPORT tanuloCsoport
WHERE
tanuloCsoport.TOROLT = 'F'
AND tanuloCsoport.C_TANULOID = @{nameof(tanuloId)}";
var commandParameters = new List<CommandParameter>()
{
new CommandParameter(nameof(tanuloId), tanuloId)
};
DataSet ds = GetData(commandText, commandParameters);
return ds.Tables[0].AsEnumerable().Select(r => r.Field<int>("ID")).ToList();
}
public bool IsTanuloOsztalyCsoportTagja(int tanuloId, int osztalyCsoportId, DateTime? datum = null)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.Parameters.Add(nameof(tanuloId), tanuloId);
command.Parameters.Add(nameof(osztalyCsoportId), osztalyCsoportId);
command.Parameters.Add(nameof(datum), datum ?? DateTime.Today);
command.CommandText = $@"
SELECT
ID
FROM
T_TANULOCSOPORT tanuloCsoport
WHERE
tanuloCsoport.C_TANULOID = @{nameof(tanuloId)} AND
tanuloCsoport.C_OSZTALYCSOPORTID = @{nameof(osztalyCsoportId)} AND
tanuloCsoport.C_BELEPESDATUM <= @{nameof(datum)} AND
(tanuloCsoport.C_KILEPESDATUM IS NULL OR tanuloCsoport.C_KILEPESDATUM >= @{nameof(datum)})
";
var commandResult = command.ExecuteScalar();
bool result = (commandResult != null && commandResult != DBNull.Value);
return result;
}
}
public List<int> GetTanuloOsztalyCsoportjaiIdList(int tanuloId, DateTime? datum = null)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
var parameters = new List<CommandParameter>
{
new CommandParameter(nameof(tanuloId), tanuloId),
new CommandParameter(nameof(datum), datum ?? DateTime.Now)
};
command.CommandText = $@"
SELECT
C_OSZTALYCSOPORTID ID
FROM
T_TANULOCSOPORT tanuloCsoport
WHERE tanuloCsoport.C_TANULOID = @{nameof(tanuloId)}
AND tanuloCsoport.C_BELEPESDATUM <= @{nameof(datum)}
AND (tanuloCsoport.C_KILEPESDATUM IS NULL OR tanuloCsoport.C_KILEPESDATUM >= @{nameof(datum)})
AND tanuloCsoport.TOROLT = 'F'
";
var ds = GetData(command.CommandText, parameters);
return ds.Tables[0].AsEnumerable().Select(r => r.Field<int>("ID")).ToList();
}
}
public DataSet GetTanuloBesorolasData(int intezmenyId, int tanevId, int tanuloId, int osztalyCsoportId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
var parameters = new List<CommandParameter>
{
new CommandParameter(nameof(intezmenyId), intezmenyId),
new CommandParameter(nameof(tanevId), tanevId),
new CommandParameter(nameof(tanuloId), tanuloId),
new CommandParameter(nameof(osztalyCsoportId), osztalyCsoportId)
};
command.CommandText = $@"
SELECT
tanuloCsoport.C_TANULOID
,tanuloCsoport.C_KILEPESDATUM
,tanuloCsoport.C_BELEPESDATUM
,felhasznalo.C_NYOMTATASINEV
FROM
T_TANULOCSOPORT_OSSZES tanuloCsoport
LEFT JOIN
T_FELHASZNALO_OSSZES felhasznalo ON
felhasznalo.C_INTEZMENYID = @{nameof(intezmenyId)}
AND felhasznalo.C_TANEVID = @{nameof(tanevId)}
AND felhasznalo.TOROLT = 'F'
AND felhasznalo.ID = tanuloCsoport.C_TANULOID
WHERE
tanuloCsoport.C_INTEZMENYID = @{nameof(intezmenyId)}
AND tanuloCsoport.C_TANEVID = @{nameof(tanevId)}
AND tanuloCsoport.TOROLT = 'F'
AND tanuloCsoport.C_TANULOID = @{nameof(tanuloId)}
AND tanuloCsoport.C_OSZTALYCSOPORTID = @{nameof(osztalyCsoportId)}
";
var ds = GetData(command.CommandText, parameters);
return ds;
}
}
public DataSet GetTanuloBesorolasaiKisorolasaiDatumDataByTanuloIdList(List<int> tanuloIdList, int osztalyCsoportId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
var parameters = new List<CommandParameter>
{
new CommandParameter(nameof(osztalyCsoportId), osztalyCsoportId)
};
command.CommandText = $@"
SELECT
tanuloCsoport.C_TANULOID
,tanuloCsoport.C_KILEPESDATUM
,tanuloCsoport.C_BELEPESDATUM
,T_FELHASZNALO_OSSZES.C_NYOMTATASINEV
FROM
T_TANULOCSOPORT_OSSZES tanuloCsoport
LEFT JOIN
T_FELHASZNALO_OSSZES ON T_FELHASZNALO_OSSZES.ID = tanuloCsoport.C_TANULOID AND T_FELHASZNALO_OSSZES.TOROLT ='F' AND T_FELHASZNALO_OSSZES.C_TANEVID = tanuloCsoport.C_TANEVID
WHERE
tanuloCsoport.C_TANULOID IN ( {string.Join(",", tanuloIdList.ToArray())} )
AND tanuloCsoport.C_OSZTALYCSOPORTID = @{nameof(osztalyCsoportId)} AND tanuloCsoport.TOROLT = 'F'";
var ds = GetData(command.CommandText, parameters);
return ds;
}
}
/// INFO @DevKornel: Mobil használja
public bool GetIsVegzosOsztalyCsoport(int osztalyCsoportId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.Parameters.Add("pOsztalyCsoportId", osztalyCsoportId);
command.CommandText = @"
SELECT
ID
FROM
T_OSZTALYCSOPORT_OSSZES
WHERE
TOROLT = 'F'
AND C_TANEVID = (SELECT ID FROM T_TANEV_OSSZES WHERE TOROLT = 'F' AND C_AKTIV = 'T')
AND C_VEGZOSEVFOLYAM = 'T'
AND ID = @pOsztalyCsoportId
";
var result = command.ExecuteScalar();
bool ret = (result != null && result != DBNull.Value);
return ret;
}
}
public DataSet GetOsztalyCsoportDataSet(int tanevId, int? oktNevelesiKategoriaId = null)
{
var commandParameterList = new List<CommandParameter>
{
new CommandParameter("pTanevId", tanevId),
oktNevelesiKategoriaId.IsEntityId() ?
new CommandParameter("pOktNevelesiKategoriaId", oktNevelesiKategoriaId.Value) :
new CommandParameter("pOktNevelesiKategoriaId", DBNull.Value)
};
const string commandText = @"
SELECT
ocs.ID AS Id
,ocs.C_NEV AS Nev
,ocs.C_VEGZOSEVFOLYAM AS IsVegzosEvfolyam
,ocs.C_FELADATKATEGORIAID AS FeladatKategoriaId
,ocs.C_IMPORTALT AS Importalt
,IIF(o.ID IS NULL, 'F', 'T') AS IsOsztaly
,cs.C_OSZTALYBONTASID AS OsztalyBontasId
,cs.C_ISAUTOEGYENICSOPORT AS IsAutoEgyeniCsoport
,dib.C_ORDER AS EvfolyamTipusOrder
,ocs.C_FELADATELLATASIHELYID AS FeladatellatasiHelyId
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dib ON dib.ID = ocs.C_EVFOLYAMTIPUSA AND dib.C_TANEVID = ocs.C_TANEVID AND dib.TOROLT = 'F'
LEFT JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.C_ALTANEVID = ocs.C_TANEVID AND o.TOROLT = 'F'
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID AND cs.C_ALTANEVID = ocs.C_TANEVID AND cs.TOROLT = 'F'
WHERE ocs.C_TANEVID = :pTanevId
AND ocs.TOROLT = 'F'
AND (:pOktNevelesiKategoriaId IS NULL OR ocs.C_FELADATKATEGORIAID = :pOktNevelesiKategoriaId)
";
return GetData(commandText, commandParameterList);
}
public bool GetIsOsztalyCsoportBontott(int osztalyCsoportId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.Parameters.Add("pOsztalyCsoportId", osztalyCsoportId);
command.CommandText = @"
SELECT
COUNT(*) Counter
FROM T_CSOPORT
INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = T_CSOPORT.ID
WHERE T_CSOPORT.TOROLT = 'F'
AND T_CSOPORT.ID = :pOsztalyCsoportId
AND T_CSOPORT.C_OSZTALYBONTASID IS NOT NULL
";
var result = command.ExecuteScalar();
bool ret = Convert.ToInt32(result) == 1;
return ret;
}
}
public int? GetCsoportTipusByOsztalyCsoportId(int osztalyCsoportId, int intezmenyId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.Parameters.Add("pOsztalyCsoportId", osztalyCsoportId);
command.Parameters.Add("pIntezmenyId", intezmenyId);
command.CommandText = @"
SELECT
CASE
WHEN T_CSOPORT_Osszes.C_TIPUSA is null THEN osztaly.OsztalyTipus Else
T_CSOPORT_Osszes.C_TIPUSA
END CsoportTipus
FROM
T_OSZTALYCSOPORT_Osszes
left JOIN T_CSOPORT_Osszes ON T_CSOPORT_Osszes.ID = T_OSZTALYCSOPORT_Osszes.ID AND T_CSOPORT_Osszes.TOROLT = 'F' AND T_OSZTALYCSOPORT_Osszes.C_TANEVID = T_CSOPORT_Osszes.C_ALTANEVID
left JOIN (select 1034 OsztalyTipus, T_OSZTALY_OSSZES.ID, T_OSZTALY_OSSZES.C_ALTANEVID from T_OSZTALY_OSSZES WHERE T_OSZTALY_OSSZES.TOROLT = 'F'
) osztaly ON osztaly.ID = T_OSZTALYCSOPORT_Osszes.ID AND osztaly.C_ALTANEVID = T_OSZTALYCSOPORT_Osszes.C_TANEVID
WHERE
T_OSZTALYCSOPORT_Osszes.c_intezmenyid = :pIntezmenyId
and T_OSZTALYCSOPORT_Osszes.Torolt = 'F' and
T_OSZTALYCSOPORT_Osszes.ID = :pOsztalyCsoportId
";
var result = command.ExecuteScalar();
int? ret = null;
if (result != null && result != DBNull.Value)
{
ret = Convert.ToInt32(result);
}
return ret;
}
}
public bool GetIsCsoport(int osztalyCsoportId)
{
var parameters = new List<CommandParameter>
{
new CommandParameter("pOsztalyCsoportId", osztalyCsoportId)
};
const string commandText = @"
SELECT
T_CSOPORT_OSSZES.ID ID
FROM
T_CSOPORT_OSSZES
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = T_CSOPORT_OSSZES.ID
AND OsztalyCsoport.TOROLT = 'F' AND OsztalyCsoport.C_TANEVID = T_CSOPORT_OSSZES.C_ALTANEVID
WHERE
T_CSOPORT_OSSZES.TOROLT = 'F'
AND T_CSOPORT_OSSZES.ID = :pOsztalyCsoportId
";
var ds = GetData(commandText, parameters);
return ds.Tables[0].Rows.Count > 0;
}
public bool GetIsCsoportTipusAlapjan(int osztalyCsoportId, int csoportTipusId)
{
var parameters = new List<CommandParameter>
{
new CommandParameter("pOsztalyCsoportId", osztalyCsoportId),
new CommandParameter("pCsoportTipusId", csoportTipusId)
};
const string commandText = @"
SELECT
cs.ID ID
FROM
T_CSOPORT_OSSZES cs
INNER JOIN T_OSZTALYCSOPORT_OSSZES AS ocs ON ocs.ID = cs.ID
AND ocs.TOROLT = 'F' AND ocs.C_TANEVID = cs.C_ALTANEVID
WHERE
cs.TOROLT = 'F'
AND cs.ID = :pOsztalyCsoportId
AND cs.C_TIPUSA = :pCsoportTipusId
";
var ds = GetData(commandText, parameters);
return ds.Tables[0].Rows.Count > 0;
}
public bool GetIsOsztaly(int osztalyCsoportId)
{
var parameters = new List<CommandParameter>
{
new CommandParameter("pOsztalyCsoportId", osztalyCsoportId),
};
const string commandText = @"
SELECT
T_OSZTALY_OSSZES.ID ID
FROM
T_OSZTALY_OSSZES
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = T_OSZTALY_OSSZES.ID
AND OsztalyCsoport.TOROLT = 'F' AND OsztalyCsoport.C_TANEVID = T_OSZTALY_OSSZES.C_ALTANEVID
WHERE
T_OSZTALY_OSSZES.TOROLT = 'F'
AND T_OSZTALY_OSSZES.ID = :pOsztalyCsoportId
";
var ds = GetData(commandText, parameters);
return ds.Tables[0].Rows.Count > 0;
}
public DataSet GetCsoportTanuloinakSzakmajegyzeke(int tanevId, int csoportId, DateTime datum)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
var parameters = new List<CommandParameter>
{
new CommandParameter(nameof(tanevId), tanevId),
new CommandParameter(nameof(csoportId), csoportId),
new CommandParameter(nameof(datum), datum)
};
command.CommandText = $@"
SELECT
ocs.C_NEV as 'CsoportNeve'
,tta.C_SZAKMATIPUSID as 'SzakmaTipusId'
,tta.C_SZAKMAIRANYTIPUSID as 'SzakmairanyTipusId'
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_TANULOCSOPORT_OSSZES cstcs ON ocs.ID = cstcs.C_OSZTALYCSOPORTID
AND cstcs.C_TANEVID = ocs.C_TANEVID AND cstcs.TOROLT = ocs.TOROLT
AND (cstcs.C_KILEPESDATUM IS NULL OR cstcs.C_KILEPESDATUM > @{nameof(datum)})
INNER JOIN T_TANULOCSOPORT_OSSZES otcs ON cstcs.C_TANULOID = otcs.C_TANULOID
AND otcs.C_TANEVID = cstcs.C_TANEVID AND otcs.TOROLT = cstcs.TOROLT
AND (otcs.C_KILEPESDATUM IS NULL OR otcs.C_KILEPESDATUM > @{nameof(datum)})
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = otcs.C_OSZTALYCSOPORTID
AND o.C_ALTANEVID = otcs.C_TANEVID AND o.TOROLT = otcs.TOROLT
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocso ON o.ID = ocso.ID
AND ocso.C_TANEVID = o.C_ALTANEVID AND ocso.TOROLT = o.TOROLT
AND ocso.C_FELADATKATEGORIAID = 7553
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON otcs.ID = tta.C_TANULOCSOPORTID
AND tta.C_TANEVID = otcs.C_TANEVID AND tta.TOROLT = otcs.TOROLT
WHERE ocs.ID = @{nameof(csoportId)} AND ocs.C_TANEVID = @{nameof(tanevId)} AND ocs.TOROLT = 'F'
GROUP BY ocs.C_NEV, tta.C_SZAKMATIPUSID, tta.C_SZAKMAIRANYTIPUSID
";
var ds = GetData(command.CommandText, parameters);
return ds;
}
}
public DataSet GetTanulokSzakmajegyzeke(int tanevId, List<int> tanuloIds, DateTime datum)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
var parameters = new List<CommandParameter>
{
new CommandParameter(nameof(tanevId), tanevId),
new CommandParameter(nameof(datum), datum),
};
command.CommandText = $@"
SELECT
tta.C_SZAKMATIPUSID as 'SzakmaTipusId'
,tta.C_SZAKMAIRANYTIPUSID as 'SzakmairanyTipusId'
,IIF(fh.C_NEVSORREND = 'T',
fh.C_UTONEV + ' ' + fh.C_VEZETEKNEV,
fh.C_VEZETEKNEV + ' ' + fh.C_UTONEV) as 'NevElotagNelkul'
FROM T_TANULOTANUGYIADATOK_OSSZES tta
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = tta.C_TANULOCSOPORTID
AND tcs.C_TANEVID = tta.C_TANEVID AND tcs.TOROLT = tta.TOROLT
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > @{nameof(datum)})
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.Id = tcs.C_TANULOID
and fh.C_TANEVID = tcs.C_TANEVID AND fh.TOROLT = tcs.TOROLT
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = tcs.C_OSZTALYCSOPORTID
AND o.C_ALTANEVID = tcs.C_TANEVID AND o.TOROLT = tcs.TOROLT
INNER JOIN T_OSZTALYCSOPORT ocs ON o.ID = ocs.ID AND ocs.C_FELADATKATEGORIAID = 7553
AND ocs.C_TANEVID = o.C_ALTANEVID AND ocs.TOROLT = o.TOROLT
WHERE tta.TOROLT = 'F' AND tta.C_TANEVID = @{nameof(tanevId)} AND tcs.C_TANULOID IN ({string.Join(",", tanuloIds)})
";
var ds = GetData(command.CommandText, parameters);
return ds;
}
}
#region Export
public DataSet GetCsoportokMindenAdataForExport(int tanevId, OktNevelesiKategoriaEnum? feladatKategoria, CsoportSearchPco pco, bool isSelectedTanev21_22OrLater, bool isSzakkepzoIntezmeny, DateTime? aktualisTanevElsoTanitasiNapja = null)
{
const string csoportAlias = "csoport";
const string osztalycsoportAlias = "osztalycsoport";
const string bontasAlias = "osztalybontas";
var parameters = new List<CommandParameter>
{
new CommandParameter("pTanevId", tanevId),
new CommandParameter(nameof(aktualisTanevElsoTanitasiNapja), aktualisTanevElsoTanitasiNapja)
};
var kovetkezoTanev = aktualisTanevElsoTanitasiNapja > DateTime.Now;
if (feladatKategoria.HasValue)
{ parameters.Add(new CommandParameter(nameof(feladatKategoria), (int)feladatKategoria)); }
else
{ parameters.Add(new CommandParameter(nameof(feladatKategoria), DBNull.Value)); }
StringBuilder whereClause = pco.ToWhereClause(parameters, bontasAlias, osztalycsoportAlias, csoportAlias);
string munkarendSelectCommand = string.Empty, munkarendJoinCommand = string.Empty;
if (isSelectedTanev21_22OrLater)
{
if (isSzakkepzoIntezmeny && feladatKategoria != OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas)
{
munkarendSelectCommand = $@"
,{osztalycsoportAlias}.C_FELADATKATEGORIAID csoportFeladatkategoriaId
,ISNULL(kepzes.C_NAME, '-') AS 'AmiMunkarend'
,munkarend.*
,'' Munkarend
";
munkarendJoinCommand = $@"
OUTER APPLY (
SELECT
COUNT(DISTINCT ISNULL(tta.C_TANTERVIJELLEGID, 0)) AS MunkarendCount
,MAX(tta.C_TANTERVIJELLEGID) AS MunkarendMax
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcs.id AND tta.TOROLT ='F'
INNER JOIN T_TANULOCSOPORT_OSSZES tcs2 ON tcs2.C_TANULOID = tcs.C_TANULOID AND tcs2.Torolt = 'F'
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = tcs.C_OSZTALYCSOPORTID AND o.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs on ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F'
WHERE
tcs.C_BELEPESDATUM <= :pDate
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > :pDate)
AND tcs.TOROLT = 'F'
AND tcs2.C_OSZTALYCSOPORTID = csoport.ID
AND ocs.C_FELADATKATEGORIAID = osztalycsoport.C_FELADATKATEGORIAID
) munkarend
";
}
}
else
{
munkarendSelectCommand = $@"
,ISNULL(kepzes.C_NAME, '-') AS 'Képzés'
";
}
parameters.Add(new CommandParameter("pDate", kovetkezoTanev ? aktualisTanevElsoTanitasiNapja : DateTime.Now));
StringBuilder command = new StringBuilder($@"
SELECT
{osztalycsoportAlias}.C_NEV AS 'Csoport neve'
, IIF({osztalycsoportAlias}.C_ISGYOGYPEDAGOGIAILOGOPEDIAI = 'F','Nem','Igen') AS 'Gyógypedagógiai/logopédiai'
, IIF({osztalycsoportAlias}.C_ISTECHNIKAI = 'F','Nem','Igen') AS 'Technikai csoport'
, IIF({csoportAlias}.C_TIPUSA IS NULL, '-', csoporttipusa.C_NAME) AS [Csoporttípus]
, feladatellatasihely.C_NAME AS '{IntezmenyResource.EllatottKoznevelesiFeladat}'
, tanev.C_NEV AS 'Tanév'
, IIF({csoportAlias}.C_OSZTALYBONTASID IS NULL, 'Nincs', {bontasAlias}.C_NEV) AS 'Osztálybontás'
, IIF({osztalycsoportAlias}.C_EVFOLYAMTIPUSA IS NULL, '-', evfolyamtipusa.C_NAME) AS [Évfolyam neve]
, IIF({osztalycsoportAlias}.C_TEREMID IS NULL, '-', terem.C_NEV) AS [Terem]
, IIF({csoportAlias}.C_CSOPORTVEZETOID IS NULL, '-', csoportvezeto.C_NYOMTATASINEV) AS [Csoportvezető]
, ISNULL({osztalycsoportAlias}.C_MEGJEGYZES, '-') AS [Megjegyzés]
, IIF({osztalycsoportAlias}.C_VEGZOSEVFOLYAM = 'T', 'Igen', 'Nem') AS 'Végzős évfolyamú csoport'
, IIF({osztalycsoportAlias}.C_TERVEZETTLETSZAM IS NULL, '-', {osztalycsoportAlias}.C_TERVEZETTLETSZAM) AS [Tervezett létszám]
, ISNULL(convert(varchar(10),{csoportAlias}.C_CSOPORTNAPLOMEGNYITASA,120), '-') AS [Csoportnapló megnyitás dátuma]
, ISNULL(convert(varchar(10),{csoportAlias}.C_CSOPORTNAPLOZARASA,120), '-') AS [Csoportnapló lezárás dátuma]
,
(SELECT COUNT(1) FROM T_TANULOCSOPORT_OSSZES tcs WHERE tcs.C_OSZTALYCSOPORTID = {csoportAlias}.ID AND TOROLT = 'F' AND C_BELEPESDATUM <= " + (!kovetkezoTanev ? @"GETDATE() " : $@" CONVERT(date, @{nameof(aktualisTanevElsoTanitasiNapja)})") + $@" AND (C_KILEPESDATUM IS NULL OR C_KILEPESDATUM > " + (!kovetkezoTanev ? @"GETDATE() " : $@"CONVERT(date, @{nameof(aktualisTanevElsoTanitasiNapja)}) ") + $@")) AS '{(feladatKategoria == OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas ? TanuloResource.NovendekekSzama : OsztalyCsoportResource.TanulokSzama)}'
, ISNULL({csoportAlias}.C_CSOPORTNAPLOLEIRAS, '-') AS 'Csoport leírása'
,csoportvezeto.C_OKTATASIAZONOSITO as '{ AlkalmazottResource.PedagogusOktatasiAzonosito }'
{munkarendSelectCommand}
FROM T_CSOPORT_OSSZES {csoportAlias}
INNER JOIN T_OSZTALYCSOPORT_OSSZES {osztalycsoportAlias} ON {csoportAlias}.ID = {osztalycsoportAlias}.ID AND ({osztalycsoportAlias}.C_FELADATKATEGORIAID = @{nameof(feladatKategoria)} OR @{nameof(feladatKategoria)} IS NULL) AND {osztalycsoportAlias}.TOROLT = 'F' AND {osztalycsoportAlias}.C_TANEVID = {csoportAlias}.C_ALTANEVID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES csoporttipusa ON csoporttipusa.ID = {csoportAlias}.C_TIPUSA AND csoporttipusa.C_TANEVID = :pTanevId AND csoporttipusa.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyamtipusa ON evfolyamtipusa.ID = {osztalycsoportAlias}.C_EVFOLYAMTIPUSA AND evfolyamtipusa.C_TANEVID = :pTanevId AND evfolyamtipusa.TOROLT = 'F'
LEFT JOIN T_TANEV_OSSZES tanev ON {osztalycsoportAlias}.C_TANEVID = tanev.ID AND tanev.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES csoportvezeto ON csoportvezeto.ID = {csoportAlias}.C_CSOPORTVEZETOID AND csoportvezeto.TOROLT = 'F' AND csoportvezeto.C_TANEVID = :pTanevId
LEFT JOIN T_TEREM_OSSZES terem ON terem.ID = {osztalycsoportAlias}.C_TEREMID AND terem.TOROLT = 'F' AND terem.C_TANEVID = :pTanevId
LEFT JOIN T_OSZTALYCSOPORT_OSSZES {bontasAlias} ON {bontasAlias}.ID = {csoportAlias}.C_OSZTALYBONTASID AND ({bontasAlias}.C_FELADATKATEGORIAID = @{nameof(feladatKategoria)} OR @{nameof(feladatKategoria)} IS NULL) AND {bontasAlias}.TOROLT = 'F' AND {bontasAlias}.C_TANEVID = {csoportAlias}.C_ALTANEVID
LEFT JOIN T_FELADATELLATASIHELY_OSSZES feladatellatasi ON feladatellatasi.ID = {osztalycsoportAlias}.C_FELADATELLATASIHELYID AND feladatellatasi.TOROLT = 'F' AND feladatellatasi.C_TANEVID = :pTanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES feladatellatasihely ON feladatellatasihely.ID = feladatellatasi.C_OKTATASINEVELESIFELADATTIPUS AND feladatellatasihely.C_TANEVID = :pTanevId AND feladatellatasihely.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES kepzes ON kepzes.ID = {osztalycsoportAlias}.C_KEPZESIFORMA AND kepzes.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND kepzes.TOROLT = 'F'
{munkarendJoinCommand}
WHERE
{csoportAlias}.TOROLT = 'F' AND {csoportAlias}.C_ALTANEVID = :pTanevId
{whereClause}
ORDER BY
evfolyamtipusa.C_VALUE, {osztalycsoportAlias}.C_NEV
");
return GetData(command.ToString(), parameters);
}
public DataSet GetEvfolyamAktualisLetszamadataiExcelExport(int tanevId, OktNevelesiKategoriaEnum feladatKategoria, OsztalySearchPco pco, DateTime aktualisTanevElsoTanitasiNapja)
{
/*TODO:Tobb Osztaly*//*OM-1625*/
const string osztalycsoportAlias = "osztalycsoport";
const string osztalyAlias = "csoport";
var parameters = new List<CommandParameter>
{
new CommandParameter("pTanevId", tanevId),
new CommandParameter(nameof(aktualisTanevElsoTanitasiNapja), aktualisTanevElsoTanitasiNapja)
};
var kovetkezoTanev = aktualisTanevElsoTanitasiNapja > DateTime.Now;
StringBuilder whereClause = pco.ToWhereClause(parameters, osztalycsoportAlias, osztalyAlias);
var command = new StringBuilder($@"
SELECT IIF({osztalycsoportAlias}.C_EVFOLYAMTIPUSA IS NULL, '-', evfolyamtipusa.C_NAME) AS 'Évfolyam neve'
, COUNT(tanulocsoport.C_TANULOID) AS '{(feladatKategoria == OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas ? TanuloResource.NovendekekSzama : OsztalyCsoportResource.TanulokSzama)}'
FROM T_OSZTALY_OSSZES AS {osztalyAlias}
INNER JOIN T_OSZTALYCSOPORT_OSSZES AS {osztalycsoportAlias} ON {osztalycsoportAlias}.ID = {osztalyAlias}.ID AND {osztalycsoportAlias}.TOROLT = 'F' AND {osztalyAlias}.C_ALTANEVID = {osztalycsoportAlias}.C_TANEVID
LEFT JOIN T_TANULOCSOPORT_OSSZES AS tanulocsoport on {osztalyAlias}.ID = tanulocsoport.C_OSZTALYCSOPORTID AND tanulocsoport.C_BELEPESDATUM <= " + (!kovetkezoTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(aktualisTanevElsoTanitasiNapja)}) ") + $@" AND (tanulocsoport.C_KILEPESDATUM IS NULL OR tanulocsoport.C_KILEPESDATUM > " + (!kovetkezoTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(aktualisTanevElsoTanitasiNapja)}) ") + $@") AND tanulocsoport.TOROLT = 'F' AND {osztalyAlias}.C_ALTANEVID = tanulocsoport.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyamtipusa ON evfolyamtipusa.ID = {osztalycsoportAlias}.C_EVFOLYAMTIPUSA AND evfolyamtipusa.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND evfolyamtipusa.TOROLT = 'F'
WHERE
{osztalyAlias}.TOROLT = 'F' AND
{osztalyAlias}.C_ALTANEVID = :pTanevId
{whereClause}
GROUP BY C_EVFOLYAMTIPUSA, evfolyamtipusa.C_NAME, evfolyamtipusa.C_VALUE
ORDER BY evfolyamtipusa.C_VALUE");
return GetData(command.ToString(), parameters);
}
public DataSet GetOsztalyokMindenAdataExcelExport(int tanevId, OktNevelesiKategoriaEnum feladatKategoria, OsztalySearchPco pco, DateTime aktualisTanevElsoTanitasiNapja, bool isSelectedTanev21_22OrLater, bool isSzakkepzoIntezmeny)
{
const string osztalycsoportAlias = "osztalycsoport";
const string osztalyAlias = "osztaly";
var parameters = new List<CommandParameter>
{
new CommandParameter("pTanevId", tanevId),
new CommandParameter(nameof(aktualisTanevElsoTanitasiNapja), aktualisTanevElsoTanitasiNapja)
};
var kovetkezoTanev = aktualisTanevElsoTanitasiNapja > DateTime.Now;
StringBuilder whereClause = pco.ToWhereClause(parameters, osztalycsoportAlias, osztalyAlias);
string jegyzekSelectCommand, jegyzekJoinCommand;
string munkarendSelectCommand, munkarendJoinCommand;
if (isSelectedTanev21_22OrLater)
{
jegyzekSelectCommand = $@"
,jegyzek.*
";
jegyzekJoinCommand = $@"
OUTER APPLY (
SELECT
COUNT(DISTINCT tta.C_AGAZATID) AS AgazatCount
,MAX(tta.C_AGAZATID) AS AgazatMax
,COUNT(DISTINCT tta.C_SZAKKEPESITESID) AS SzakkepesitesCount
,MAX(tta.C_SZAKKEPESITESID) AS SzakkepesitesMax
,COUNT(DISTINCT tta.C_RESZSZAKKEPESITESID) AS ReszszakkepesitesCount
,MAX(tta.C_RESZSZAKKEPESITESID) AS ReszszakkepesitesMax
,COUNT(DISTINCT tta.C_SZAKMACSOPORTID) AS SzakmacsoportCount
,MAX(tta.C_SZAKMACSOPORTID) AS SzakmacsoportMax
,COUNT(DISTINCT tta.C_AGAZATUJSZKTTIPUSID) AS AgazatSzktCount
,MAX(tta.C_AGAZATUJSZKTTIPUSID) AS AgazatSzktMax
,COUNT(DISTINCT tta.C_SZAKMATIPUSID) AS SzakmaTipusCount
,MAX(tta.C_SZAKMATIPUSID) AS SzakmaTipusMax
,COUNT(DISTINCT tta.C_SZAKMAIRANYTIPUSID) AS SzakmairanyTipusCount
,MAX(tta.C_SZAKMAIRANYTIPUSID) AS SzakmairanyTipusMax
,COUNT(DISTINCT tta.C_TANULMANYITERULETNKTTIPUSID) AS TanulmanyiTeruletCount
,MAX(tta.C_TANULMANYITERULETNKTTIPUSID) AS TanulmanyiTeruletMax
,COUNT(DISTINCT tta.C_SZAKKEPESITESNKTTIPUSID) AS SzakkepesitesNktCount
,MAX(tta.C_SZAKKEPESITESNKTTIPUSID) AS SzakkepesitesNktMax
,COUNT(DISTINCT tta.C_SZAKIRANYNKTTIPUSID) AS SzakiranyCount
,MAX(tta.C_SZAKIRANYNKTTIPUSID) AS SzakiranyMax
,COUNT(DISTINCT tta.C_AGAZATRESZSZAKMATIPUSID) AS AgazatReszszakmaCount
,MAX(tta.C_AGAZATRESZSZAKMATIPUSID) AS AgazatReszszakmaMax
,COUNT(DISTINCT tta.C_SZAKMARESZSZAKMATIPUSID) AS SzakmaReszszakmaCount
,MAX(tta.C_SZAKMARESZSZAKMATIPUSID) AS SzakmaReszszakmaMax
,COUNT(DISTINCT tta.C_RESZSZAKMATIPUSID) AS ReszszakmaCount
,MAX(tta.C_RESZSZAKMATIPUSID) AS ReszszakmaMax
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcs.ID
WHERE tcs.C_OSZTALYCSOPORTID = osztaly.ID
AND tcs.C_BELEPESDATUM <= :pDate
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > :pDate)
) jegyzek
";
if (isSzakkepzoIntezmeny)
{
munkarendSelectCommand = $@"
,munkarend.*
,'' Munkarend
";
munkarendJoinCommand = $@"
OUTER APPLY (
SELECT
COUNT(DISTINCT tta.C_TANTERVIJELLEGID) AS MunkarendCount
,MAX(tta.C_TANTERVIJELLEGID) AS MunkarendMax
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.TOROLT = 'F'
WHERE tcs.C_OSZTALYCSOPORTID = osztaly.ID
AND tcs.C_BELEPESDATUM <= :pDate
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > :pDate)
AND tcs.TOROLT = 'F'
) munkarend
";
}
else
{
munkarendSelectCommand = $@"
,ISNULL(kepzes.C_NAME, '-') AS 'Képzés'
";
munkarendJoinCommand = $@"
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES kepzes ON kepzes.ID = {osztalycsoportAlias}.C_KEPZESIFORMA AND kepzes.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND kepzes.TOROLT = 'F'
";
}
parameters.Add(new CommandParameter("pDate", kovetkezoTanev ? aktualisTanevElsoTanitasiNapja : DateTime.Now));
}
else
{
jegyzekSelectCommand = $@"
,ISNULL(agazat.C_NAME, '-') AS '{ OsztalyCsoportResource.AgazatTipusa }'
,ISNULL(szakkepesites.C_NAME, '-') AS '{ OsztalyCsoportResource.SzakkepesitesTipusa }'
,ISNULL(reszszakkepesites.C_NAME, '-') AS '{ OsztalyCsoportResource.ReszszakkepesitesTipusa }'
,ISNULL(szakmacsoport.C_NAME, '-') AS '{ OsztalyCsoportResource.SzakmacsoportTipusa }'
,ISNULL(szktagazattipus.C_NAME, '-') AS '{ OsztalyCsoportResource.UjSzktAgazatTipusa }'
,ISNULL(szktszakmatipus.C_NAME, '-') AS '{ OsztalyCsoportResource.UjSzktSzakmaTipusa }'
,ISNULL(szktszakmairanytipus.C_NAME, '-') AS '{ OsztalyCsoportResource.UjSzktSzakmairanyTipusa }'
,ISNULL(nkttanulmanyiterulet.C_NAME, '-') AS '{ OsztalyCsoportResource.NktTanulmanyiTerulet }'
,ISNULL(nktszakkepesites.C_NAME, '-') AS '{ OsztalyCsoportResource.NktSzakkepesites }'
,ISNULL(nktszakirany.C_NAME, '-') AS '{ OsztalyCsoportResource.NktSzakirany }'
";
jegyzekJoinCommand = $@"
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES agazat ON agazat.ID = {osztalyAlias}.C_AGAZAT AND agazat.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND agazat.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szakkepesites ON szakkepesites.ID = {osztalyAlias}.C_SZAKKEPESITES AND szakkepesites.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND szakkepesites.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES reszszakkepesites ON reszszakkepesites.ID = {osztalyAlias}.C_RESZSZAKKEPESITES AND reszszakkepesites.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND reszszakkepesites.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szakmacsoport ON szakmacsoport.ID = {osztalyAlias}.C_SZAKMACSOPORT AND szakmacsoport.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND szakmacsoport.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szktagazattipus ON szktagazattipus.ID = {osztalyAlias}.C_AGAZATUJSZKTTIPUSID AND szktagazattipus.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND szktagazattipus.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szktszakmatipus ON szktszakmatipus.ID = {osztalyAlias}.C_SZAKMATIPUSID AND szktszakmatipus.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND szktszakmatipus.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szktszakmairanytipus ON szktszakmairanytipus.ID = {osztalyAlias}.C_SZAKMAIRANYTIPUSID AND szktszakmairanytipus.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND szktszakmairanytipus.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES nkttanulmanyiterulet ON nkttanulmanyiterulet.ID = {osztalyAlias}.C_TANULMANYITERULETNKTTIPUSID AND nkttanulmanyiterulet.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND nkttanulmanyiterulet.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES nktszakkepesites ON nktszakkepesites.ID = {osztalyAlias}.C_SZAKKEPESITESNKTTIPUSID AND nktszakkepesites.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND nktszakkepesites.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES nktszakirany ON nktszakirany.ID = {osztalyAlias}.C_SZAKIRANYNKTTIPUSID AND nktszakirany.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND nktszakirany.TOROLT = 'F'
";
munkarendSelectCommand = $@"
,ISNULL(kepzes.C_NAME, '-') AS 'Képzés'
";
munkarendJoinCommand = $@"
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES kepzes ON kepzes.ID = {osztalycsoportAlias}.C_KEPZESIFORMA AND kepzes.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND kepzes.TOROLT = 'F'
";
}
var command = $@"
SELECT
{osztalycsoportAlias}.C_NEV AS 'Osztály neve'
,ISNULL(evfolyamtipusa.C_NAME, '-') AS 'Évfolyam neve'
,ISNULL(tanev.C_NEV, '-') AS 'Tanév'
,ISNULL(osztalyfonok.C_NYOMTATASINEV, '-') AS 'Osztályfőnök'
,ISNULL(ofohelyettes.C_NYOMTATASINEV, '-') AS 'Osztályfőnök-helyettes'
{munkarendSelectCommand}
,ISNULL(tanterv.C_NEV, '-') AS '{(feladatKategoria == OktNevelesiKategoriaEnum.Kollegium ? OsztalyCsoportResource.NevelesiTerv : OsztalyCsoportResource.Tanterv)}'
,ISNULL(terem.C_NEV, '-') AS 'Osztályterem'
,ISNULL({osztalycsoportAlias}.C_MEGJEGYZES, '-') AS 'Megjegyzés'
,IIF({osztalycsoportAlias}.C_VEGZOSEVFOLYAM = 'T', 'Igen', 'Nem') AS 'Végzős évfolyamú osztály'
,IIF({osztalycsoportAlias}.C_KERESZTFELEVES = 'T', 'Igen', 'Nem') AS 'Keresztféléves'
,ISNULL({osztalycsoportAlias}.C_TERVEZETTLETSZAM, '-') AS 'Tervezett létszám'
,ISNULL(convert(varchar(10),{osztalyAlias}.C_OSZTALYNAPLOMEGNYITASA,120), '-') AS 'Osztálynapló megnyitás dátuma'
,ISNULL(convert(varchar(10),{osztalyAlias}.C_OSZTALYNAPLOZARASA,120), '-') AS 'Osztálynapló lezárás dátuma'
,(SELECT COUNT(1) FROM T_TANULOCSOPORT_OSSZES tcs WHERE tcs.C_OSZTALYCSOPORTID = {osztalyAlias}.ID AND TOROLT = 'F' AND C_BELEPESDATUM <= " + (!kovetkezoTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(aktualisTanevElsoTanitasiNapja)}) ") + $@" AND (C_KILEPESDATUM IS NULL OR C_KILEPESDATUM > " + (!kovetkezoTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(aktualisTanevElsoTanitasiNapja)}) ") + $@")) AS '{(feladatKategoria == OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas ? TanuloResource.NovendekekSzama : OsztalyCsoportResource.TanulokSzama)}'
,ISNULL({osztalyAlias}.C_OSZTALYNAPLOLEIRASA, '-') AS 'Osztály leírása'
,ISNULL({osztalyAlias}.C_SPECIALISJELLEMZO, '-') AS 'Speciális jellemző'
,ISNULL(osztalyfonok.C_OKTATASIAZONOSITO, '-') AS '{ AlkalmazottResource.PedagogusOktatasiAzonosito }'
,ISNULL(oktatasinevelesifeladattipus.C_NAME, '-') AS 'Oktatási-nevelési feladat típusa'
,ISNULL(feladatkategoria.C_NAME, '-') AS 'Feladatkategória típusa'
,ISNULL(intezmenyadatok.C_NEV, '-') AS 'Intézmény neve'
,IIF({osztalycsoportAlias}.C_ISTECHNIKAI = 'T', 'Igen', 'Nem') AS 'Technikai osztály'
,ISNULL(gimnaziumevfolyamtipus.C_NAME, '-') AS 'Gimnázium évfolyam típusa'
,IIF({osztalyAlias}.C_KETTANNYELVU = 'T', 'Igen', 'Nem') AS '{ OsztalyCsoportResource.Kettannyelvu }'
,IIF({osztalycsoportAlias}.C_ISGYOGYPEDAGOGIAILOGOPEDIAI = 'T', 'Igen', 'Nem') AS 'Gyógypedagógiai/Logopédiai osztály'
,IIF({osztalyAlias}.C_NEMZETISEGI = 'T', 'Igen', 'Nem') AS 'Nemzetiségi osztály'
,IIF({osztalyAlias}.C_NYELVIELOKESZITO = 'T', 'Igen', 'Nem') AS '{ OsztalyCsoportResource.NyelviElokeszitoOsztaly }'
,IIF({osztalyAlias}.C_SPORT = 'T', 'Igen', 'Nem') AS 'Sport osztály'
,IIF({osztalyAlias}.C_AJTEHETTSEGGONDOZOPROGRAM = 'T', 'Igen', 'Nem') AS 'AJ tehettséggondozó program'
,IIF({osztalyAlias}.C_AJPROGRAM = 'T', 'Igen', 'Nem') AS 'AJ program'
,IIF({osztalyAlias}.C_VEGYESEVFOLYAMU = 'T', 'Igen', 'Nem') AS 'Vegyes évfolyamú osztály'
,ISNULL({osztalyAlias}.C_VEGYESEVFOLYAMUTANTERV, '-') AS 'Vegyes évfolyamú tanterv'
,IIF({osztalyAlias}.C_VEGYESSZAKKEPZESU = 'T', 'Igen', 'Nem') AS 'Vegyes szakképzésű osztály'
,ISNULL(szmkhelyettes.C_NEV, '-') AS 'Szülői munkaközösség képviselő helyettes'
,ISNULL(szmk.C_NEV, '-') AS 'Szülői munkaközösség képviselő'
,ISNULL({osztalyAlias}.C_OSZTALYPENZBANKSZAMLASZAMA, '-') AS Bankszámlaszám
,ISNULL({osztalyAlias}.C_OSZTALYPENZBANKSZAMLASZAMKED, '-') AS 'Bankszámlaszám kedvezményezett'
{jegyzekSelectCommand}
FROM T_OSZTALY_OSSZES {osztalyAlias}
INNER JOIN T_OSZTALYCSOPORT_OSSZES {osztalycsoportAlias} ON {osztalyAlias}.C_ALINTEZMENYID = {osztalycsoportAlias}.C_INTEZMENYID AND {osztalyAlias}.ID = {osztalycsoportAlias}.ID AND {osztalycsoportAlias}.TOROLT = 'F' AND {osztalyAlias}.C_ALTANEVID = {osztalycsoportAlias}.C_TANEVID
LEFT JOIN T_FELADATELLATASIHELY feladatellatasihely ON feladatellatasihely.ID = {osztalycsoportAlias}.C_FELADATELLATASIHELYID AND feladatellatasihely.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND feladatellatasihely.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES oktatasinevelesifeladattipus ON oktatasinevelesifeladattipus.ID = feladatellatasihely.C_OKTATASINEVELESIFELADATTIPUS AND oktatasinevelesifeladattipus.C_TANEVID = feladatellatasihely.C_TANEVID AND oktatasinevelesifeladattipus.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyamtipusa ON evfolyamtipusa.ID = {osztalycsoportAlias}.C_EVFOLYAMTIPUSA AND evfolyamtipusa.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND evfolyamtipusa.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES feladatkategoria ON feladatkategoria.ID = {osztalycsoportAlias}.C_FELADATKATEGORIAID AND feladatkategoria.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND feladatkategoria.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES gimnaziumevfolyamtipus ON gimnaziumevfolyamtipus.ID = {osztalyAlias}.C_GIMNAZIUMIEVFOLYAMTIPUSID AND gimnaziumevfolyamtipus.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND gimnaziumevfolyamtipus.TOROLT = 'F'
LEFT JOIN T_TANTERV_OSSZES tanterv ON tanterv.ID = {osztalyAlias}.C_TANTERVID AND tanterv.C_INTEZMENYID = {osztalyAlias}.C_ALINTEZMENYID AND tanterv.TOROLT = 'F' AND tanterv.C_TANEVID = {osztalycsoportAlias}.C_TANEVID
LEFT JOIN T_TANEV_OSSZES tanev ON {osztalycsoportAlias}.C_TANEVID = tanev.ID AND tanev.C_INTEZMENYID = {osztalyAlias}.C_ALINTEZMENYID AND tanev.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES osztalyfonok ON osztalyfonok.ID = {osztalyAlias}.C_OSZTALYFONOKID AND osztalyfonok.C_INTEZMENYID = {osztalyAlias}.C_ALINTEZMENYID AND osztalyfonok.C_TANEVID = :pTanevId AND osztalyfonok.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES ofohelyettes ON ofohelyettes.ID = {osztalyAlias}.C_OFOHELYETTESID AND ofohelyettes.C_INTEZMENYID = {osztalyAlias}.C_ALINTEZMENYID AND ofohelyettes.C_TANEVID = :pTanevId AND ofohelyettes.TOROLT = 'F'
LEFT JOIN T_GONDVISELO_OSSZES szmk ON szmk.ID = {osztalyAlias}.C_SZMKKEPVISELOID AND szmk.C_INTEZMENYID = {osztalyAlias}.C_ALINTEZMENYID AND szmk.C_TANEVID = :pTanevId AND szmk.TOROLT = 'F'
LEFT JOIN T_GONDVISELO_OSSZES szmkhelyettes ON szmkhelyettes.ID = {osztalyAlias}.C_SZMKKEPVISELOHELYETTESID AND szmkhelyettes.C_INTEZMENYID = {osztalyAlias}.C_ALINTEZMENYID AND szmkhelyettes.C_TANEVID = :pTanevId AND szmkhelyettes.TOROLT = 'F'
LEFT JOIN T_TEREM_OSSZES terem ON terem.ID = {osztalycsoportAlias}.C_TEREMID AND terem.C_INTEZMENYID = {osztalycsoportAlias}.C_INTEZMENYID AND terem.C_TANEVID = :pTanevId AND terem.TOROLT = 'F'
LEFT JOIN T_INTEZMENYADATOK_OSSZES intezmenyadatok ON intezmenyadatok.C_INTEZMENYID = {osztalycsoportAlias}.C_INTEZMENYID AND intezmenyadatok.C_TANEVID = {osztalycsoportAlias}.C_TANEVID AND intezmenyadatok.TOROLT = 'F'
{jegyzekJoinCommand}
{munkarendJoinCommand}
WHERE
{osztalyAlias}.TOROLT = 'F' AND
{osztalyAlias}.C_ALTANEVID = :pTanevId
{whereClause}
ORDER BY evfolyamtipusa.C_VALUE, evfolyamtipusa.C_NAME";
return GetData(command.ToString(), parameters);
}
public DataSet GetOsztalybaJaroTanulokExcelExport(int tanevId, OsztalySearchPco pco, DateTime? aktualisTanevElsoTanitasiNapja = null)
{
const string osztalycsoportAlias = "osztcsop";
const string osztalyAlias = "oszt";
var parameters = new List<CommandParameter>
{
new CommandParameter("pTanevId", tanevId),
new CommandParameter(nameof(aktualisTanevElsoTanitasiNapja), aktualisTanevElsoTanitasiNapja)
};
var kovetkezoTanev = aktualisTanevElsoTanitasiNapja > DateTime.Now;
StringBuilder whereClause = pco.ToWhereClause(parameters, osztalycsoportAlias, osztalyAlias);
var command = new StringBuilder($@"
SELECT {osztalycsoportAlias}.C_NEV AS '{ TanuloResource.Osztaly }'
, felh.C_NYOMTATASINEV AS '{ TanuloResource.Nev }'
, felh.C_OKTATASIAZONOSITO as '{ TanuloResource.OktatasiAzonosito }'
FROM T_TANULOCSOPORT_OSSZES tancsop
INNER JOIN T_OSZTALY_OSSZES {osztalyAlias} ON {osztalyAlias}.ID = tancsop.C_OSZTALYCSOPORTID AND {osztalyAlias}.TOROLT = 'F' AND {osztalyAlias}.C_ALTANEVID = tancsop.C_TANEVID
INNER JOIN T_OSZTALYCSOPORT_OSSZES {osztalycsoportAlias} ON {osztalycsoportAlias}.ID = {osztalyAlias}.ID AND {osztalycsoportAlias}.TOROLT = 'F' AND {osztalycsoportAlias}.C_TANEVID = {osztalyAlias}.C_ALTANEVID
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dib ON {osztalycsoportAlias}.C_EVFOLYAMTIPUSA = dib.ID AND dib.C_TANEVID=:pTanevId AND dib.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES felh ON felh.ID = tancsop.C_TANULOID AND felh.C_TANEVID = :pTanevId AND felh.TOROLT = 'F'
WHERE
tancsop.C_TANEVID = :pTanevId AND
tancsop.TOROLT = 'F' AND
tancsop.C_BELEPESDATUM <= " + (!kovetkezoTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(aktualisTanevElsoTanitasiNapja)}) ") + $@" AND
(tancsop.C_KILEPESDATUM IS NULL OR tancsop.C_KILEPESDATUM > " + (!kovetkezoTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(aktualisTanevElsoTanitasiNapja)}) ") + $@")
{whereClause}
ORDER BY dib.C_VALUE, {osztalycsoportAlias}.C_NEV, felh.C_NYOMTATASINEV");
return GetData(command.ToString(), parameters);
}
public DataSet GetCsoportbaJaroTanulokExcelExport(int tanevId, OktNevelesiKategoriaEnum? feladatKategoria, CsoportSearchPco pco, DateTime? tanevElsoTanitasiNapja = null)
{
var parameters = new List<CommandParameter>
{
new CommandParameter("pTanevId", tanevId),
};
if (tanevElsoTanitasiNapja.HasValue)
{
parameters.Add(new CommandParameter(nameof(tanevElsoTanitasiNapja), tanevElsoTanitasiNapja));
}
var isActiveTanev = !tanevElsoTanitasiNapja.HasValue;
if (feladatKategoria.HasValue)
{ parameters.Add(new CommandParameter(nameof(feladatKategoria), (int)feladatKategoria)); }
else
{ parameters.Add(new CommandParameter(nameof(feladatKategoria), DBNull.Value)); }
const string osztalycsoportAlias = "osztcsop";
const string csoportAlias = "csop";
StringBuilder whereClause = pco.ToWhereClause(parameters, null, osztalycsoportAlias, csoportAlias);
string command = $@"
SELECT
{osztalycsoportAlias}.C_NEV AS 'Csoport neve'
, felh.C_NYOMTATASINEV AS '{ TanuloResource.Nev }'
,felh.C_OKTATASIAZONOSITO as '{ TanuloResource.OktatasiAzonosito }'
,osztalycsoport.C_NEV AS 'Osztály'
FROM T_TANULOCSOPORT_OSSZES tancsop
INNER JOIN T_CSOPORT_OSSZES {csoportAlias} ON {csoportAlias}.ID = tancsop.C_OSZTALYCSOPORTID AND {csoportAlias}.TOROLT = 'F' AND {csoportAlias}.C_ALTANEVID = tancsop.C_TANEVID
INNER JOIN T_OSZTALYCSOPORT_OSSZES {osztalycsoportAlias} ON {osztalycsoportAlias}.ID = {csoportAlias}.ID AND ({osztalycsoportAlias}.C_FELADATKATEGORIAID = @{nameof(feladatKategoria)} OR @{nameof(feladatKategoria)} IS NULL) AND {osztalycsoportAlias}.TOROLT = 'F' AND {osztalycsoportAlias}.C_TANEVID = {csoportAlias}.C_ALTANEVID
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dib ON {osztalycsoportAlias}.C_EVFOLYAMTIPUSA = dib.ID AND dib.C_TANEVID = :pTanevId AND dib.TOROLT = 'F'
INNER JOIN T_FELHASZNALO_OSSZES felh ON felh.ID = tancsop.C_TANULOID AND felh.C_TANEVID = :pTanevId AND felh.TOROLT = 'F'
INNER JOIN T_TANULOCSOPORT_OSSZES tanoszt ON tancsop.C_TANULOID = tanoszt.C_TANULOID AND tanoszt.C_TANEVID = :pTanevId AND tanoszt.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalycsoport ON osztalycsoport.ID = tanoszt.C_OSZTALYCSOPORTID AND (osztalycsoport.C_FELADATKATEGORIAID = @{nameof(feladatKategoria)} OR @{nameof(feladatKategoria)} IS NULL) AND osztalycsoport.TOROLT = 'F' AND osztalycsoport.C_TANEVID = tanoszt.C_TANEVID
INNER JOIN T_OSZTALY_OSSZES osztaly ON osztaly.ID = osztalycsoport.ID AND osztaly.TOROLT = 'F' AND osztalycsoport.C_TANEVID = osztaly.C_ALTANEVID
WHERE
tancsop.C_TANEVID = :pTanevId AND
tancsop.TOROLT = 'F' AND
tancsop.C_BELEPESDATUM <= " + (isActiveTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(tanevElsoTanitasiNapja)}) ") + $@" AND
(tancsop.C_KILEPESDATUM IS NULL OR tancsop.C_KILEPESDATUM > " + (isActiveTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(tanevElsoTanitasiNapja)}) ") + $@") AND
tanoszt.C_BELEPESDATUM <= " + (isActiveTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(tanevElsoTanitasiNapja)}) ") + $@" AND
(tanoszt.C_KILEPESDATUM IS NULL OR tanoszt.C_KILEPESDATUM > " + (isActiveTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(tanevElsoTanitasiNapja)}) ") + $@")
{whereClause}
ORDER BY
dib.C_VALUE, {osztalycsoportAlias}.C_NEV, felh.C_NYOMTATASINEV
";
return GetData(command, parameters);
}
#endregion
public List<IOsztalyCsoport> GetOsztalybontasosCsoportok(int osztalyId, int tanevId)
{
var list = new List<IOsztalyCsoport>();
var dal = this.DalHelper.Csoport();
var ds = dal.GetOsztalybontasosCsoportok(osztalyId, tanevId);
foreach (DataRow row in ds.Tables[0].Rows)
{
var cs = OsztalyCsoport.GiveAnInstance();
cs.LoadByID(Convert.ToInt32(row.Field<int>("ID")));
list.Add(cs);
}
return list;
}
public List<IOsztalyCsoport> GetTanuloOsztalyCsoportjai(int tanuloId, DateTime? datum = null)
{
var list = new List<IOsztalyCsoport>();
var osztalyCsoportIdList = GetTanuloOsztalyCsoportjaiIdList(tanuloId, datum);
foreach (var osztalyCsoportId in osztalyCsoportIdList)
{
var cs = OsztalyCsoport.GiveAnInstance();
cs.LoadByID(osztalyCsoportId);
list.Add(cs);
}
return list;
}
public IOsztalyCsoport Get()
{
return OsztalyCsoport.GiveAnInstance();
}
public IOsztalyCsoport Get(int id)
{
var entity = OsztalyCsoport.GiveAnInstance();
entity.LoadByID(id);
return entity;
}
[Obsolete("Tároltra kell cserélni minél hamarabb")]
public IOsztalyCsoport GetSpecific(string condition, Dictionary<string, object> commandParameters = null)
{
var entity = Osztaly.LoadWithFilter(condition, commandParameters).FirstOrDefault();
return entity;
}
public bool IsOsztaly(int osztcsopId, int tanevId)
{
var ocs = this.DalHelper.Osztaly().GetSpecific(" and T_OSZTALY_OSSZES.TOROLT = 'F' and T_OSZTALY_OSSZES.ID = " + osztcsopId, tanevId);
return ocs != null;
}
public DataSet GetCsoportokCsoportvezetoAlapjan(int userId, bool showTanoraCeluCsoportok)
{
var parameters = new List<CommandParameter>
{
new CommandParameter("pFelhasznaloId", userId),
};
string command = @"
SELECT
osztalyCsoport.ID ID
,osztalyCsoport.C_NEV Nev
,csoport.C_TIPUSA CsoportTipusa
,osztalyCsoport.C_EVFOLYAMTIPUSA Evfolyam
FROM T_OSZTALYCSOPORT osztalyCsoport
INNER JOIN T_CSOPORT csoport ON csoport.ID = osztalyCsoport.ID
WHERE
osztalyCsoport.TOROLT = 'F' AND csoport.C_CSOPORTVEZETOID = :pFelhasznaloId
";
if (!showTanoraCeluCsoportok)
{
command += " AND csoport.C_TIPUSA NOT IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(osztalyCsoport.C_TANEVID))";
}
command += " ORDER BY CsoportTipusa, Evfolyam";
return GetData(command, parameters);
}
public List<int> GetKapcsolodoOsztalyBontasokkal(int osztalyCsoportId)
{
var commandParameters = new List<CommandParameter>
{
new CommandParameter(nameof(osztalyCsoportId), osztalyCsoportId)
};
string commandText = $@"
SELECT @{nameof(osztalyCsoportId)} AS ID /* Önmaga */
UNION
SELECT ID /* Osztály esetén, a bontott csoportok */
FROM T_CSOPORT
WHERE C_OSZTALYBONTASID = @{nameof(osztalyCsoportId)}
UNION
SELECT C_OSZTALYBONTASID AS ID /* Csoport esetén, a ha bontott, akkor az osztálya */
FROM T_CSOPORT
WHERE ID = @{nameof(osztalyCsoportId)}
AND C_OSZTALYBONTASID IS NOT NULL
UNION
SELECT ID /* Csoport esetén, a ha bontott, akkor az osztályának a többi csoportbontása */
FROM T_CSOPORT
WHERE C_OSZTALYBONTASID IN (
SELECT C_OSZTALYBONTASID
FROM T_CSOPORT
WHERE ID = @{nameof(osztalyCsoportId)}
)
";
DataSet ds = GetData(commandText, commandParameters);
return ds.Tables[0].AsEnumerable().Select(r => r.Field<int>("ID")).ToList();
}
public int? GetOsztalyfonokElsonekMegtalaltOsztalya(int tanarId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.Parameters.Add(nameof(tanarId), tanarId);
command.CommandText = $@"
SELECT TOP 1
osztaly.ID
FROM T_OSZTALY osztaly
INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = osztaly.ID
AND OsztalyCsoport.TOROLT = 'F'
WHERE osztaly.C_OSZTALYFONOKID= @{nameof(tanarId)}
AND osztaly.TOROLT = 'F'
";
var result = command.ExecuteScalar();
int? ret = null;
if (result != null && result != DBNull.Value)
{
ret = Convert.ToInt32(result);
}
return ret;
}
}
public bool HasTanitasiOra(int osztalyCsoportId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.Parameters.Add(nameof(osztalyCsoportId), osztalyCsoportId);
command.CommandText = $@"
SELECT 1
FROM T_TANITASIORA TanitasiOra
WHERE TanitasiOra.TOROLT = 'F'
AND TanitasiOra.C_OSZTALYCSOPORTID = @{nameof(osztalyCsoportId)}";
var result = command.ExecuteScalar();
return result != null && result != DBNull.Value && Convert.ToInt32(result) > 0;
}
}
public bool HasTanuloBesorolas(int osztalyCsoportId, bool checkOsztalybontottCsoportok = false)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.Parameters.Add(nameof(osztalyCsoportId), osztalyCsoportId);
command.CommandText = $@"
IF EXISTS(
SELECT 1
FROM T_TANULOCSOPORT_OSSZES tcs
WHERE tcs.C_OSZTALYCSOPORTID = @{nameof(osztalyCsoportId)}
AND tcs.TOROLT = 'F'
AND (tcs.C_BELEPESDATUM <> tcs.C_KILEPESDATUM OR C_KILEPESDATUM IS NULL)
" + (checkOsztalybontottCsoportok ? $@"
UNION
SELECT 1
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = tcs.C_OSZTALYCSOPORTID AND cs.C_OSZTALYBONTASID = @{nameof(osztalyCsoportId)} AND cs.TOROLT = 'F'
WHERE tcs.TOROLT = 'F'
AND (tcs.C_BELEPESDATUM <> tcs.C_KILEPESDATUM OR C_KILEPESDATUM IS NULL)
" : string.Empty) + @"
)
SELECT 1
ELSE
SELECT 0
";
var result = command.ExecuteScalar();
int.TryParse(result?.ToString(), out int res);
return res == 1;
}
}
public DataSet GetExistsHianyzasErtekelesFeljegyzesSorolaskor(List<int> pTanuloIdList, DateTime pSorolasDatum, int? pOsztalyCsoportId = null, bool pHianyzasKovetes = false, bool pErtekelesKovetes = false, bool pFeljegyzesKovetes = false)
{
var parameters = new List<CommandParameter>
{
new CommandParameter("pSorolasDatum", pSorolasDatum)
};
string pTanuIds = string.Join(",", pTanuloIdList);
string command = @"
SELECT
t.ID,fh.C_NYOMTATASINEV AS TANULONEV ";
command += pHianyzasKovetes ? ",h.HIANYZASOKSZAMA AS HIANYZASOKSZAMA" : ",NULL AS HIANYZASOKSZAMA";
command += pErtekelesKovetes ? ",ert.ERTEKELESEKSZAMA AS ERTEKELESEKSZAMA" : ",NULL AS ERTEKELESEKSZAMA";
command += pFeljegyzesKovetes ? ",e.FELJEGYZESEMSZAMA AS FELJEGYZESEMSZAMA" : ",NULL AS FELJEGYZESEMSZAMA";
command += @"
FROM T_TANULO t
INNER JOIN T_FELHASZNALO fh ON fh.ID = t.ID ";
if (pHianyzasKovetes)
{
command += @"
LEFT JOIN (
SELECT
tm.C_ORATANULOIID AS TANULOIID
,COUNT(1) AS HIANYZASOKSZAMA
FROM T_TANULOMULASZTAS tm
INNER JOIN T_TANITASIORA tora ON tora.ID = tm.C_TANITASIORAKID
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID = tora.C_OSZTALYCSOPORTID AND tm.C_ORATANULOIID = tcs.C_TANULOID
INNER JOIN (SELECT tancsop.C_TANULOID,o.ID,tancsop.C_KILEPESDATUM, tancsop.C_BELEPESDATUM FROM T_TANULOCSOPORT tancsop INNER JOIN T_OSZTALY o ON o.ID = tancsop.C_OSZTALYCSOPORTID) oszt ON oszt.C_TANULOID = tm.C_ORATANULOIID AND (oszt.C_KILEPESDATUM IS NULL OR oszt.C_KILEPESDATUM > tora.C_DATUM) AND (oszt.C_BELEPESDATUM <= tora.C_DATUM)
WHERE (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > tora.C_DATUM) AND (tcs.C_BELEPESDATUM <= tora.C_DATUM)
AND tm.C_Igazolt = 'F'
AND tora.C_DATUM >= :pSorolasDatum
AND tm.C_ORATANULOIID IN (" + pTanuIds + ") ";
command += pOsztalyCsoportId != null ? "AND tcs.C_OSZTALYCSOPORTID = " + pOsztalyCsoportId.ToString() : string.Empty;
command += @"
AND tm.Torolt = 'F'
GROUP BY tm.C_ORATANULOIID ) h ON h.TANULOIID = t.ID ";
}
if (pErtekelesKovetes)
{
command += @"
LEFT JOIN ( SELECT
te.C_TANULOID AS TANULOIID
,COUNT(1) AS ERTEKELESEKSZAMA
FROM T_TANULOERTEKELES te
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID = te.C_OSZTALYCSOPORTID AND te.C_TANULOID = tcs.C_TANULOID
INNER JOIN (SELECT tancsop.C_TANULOID,o.ID,tancsop.C_KILEPESDATUM, tancsop.C_BELEPESDATUM FROM T_TANULOCSOPORT tancsop INNER JOIN T_OSZTALY o ON o.ID = tancsop.C_OSZTALYCSOPORTID) oszt ON oszt.C_TANULOID = te.C_TANULOID AND (oszt.C_KILEPESDATUM IS NULL OR oszt.C_KILEPESDATUM > te.C_DATUM) AND (oszt.C_BELEPESDATUM <= te.C_DATUM)
WHERE (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > te.C_DATUM) AND (tcs.C_BELEPESDATUM <= te.C_DATUM)
AND te.C_DATUM >= :pSorolasDatum
AND te.C_TANULOID IN (" + pTanuIds + ") ";
command += pOsztalyCsoportId != null ? "AND tcs.C_OSZTALYCSOPORTID = " + pOsztalyCsoportId.ToString() : string.Empty;
command += @"
AND te.Torolt = 'F'
GROUP BY te.C_TANULOID ) ert ON ert.TANULOIID = t.ID ";
}
if (pFeljegyzesKovetes)
{
command += @"
LEFT JOIN ( SELECT
tte.C_TANULOID AS TANULOIID
,COUNT(1) AS FELJEGYZESEMSZAMA
FROM T_TANULO_TANULOESEMENY tte
INNER JOIN T_TANULOESEMENY te ON te.ID = tte.C_TANULOESEMENYID AND te.Torolt = 'F'
WHERE 1 = 1
AND te.C_ESEMENYDATUMA >= :pSorolasDatum
AND tte.C_TANULOID IN (" + pTanuIds + @")
GROUP BY tte.C_TANULOID ) e ON e.TANULOIID = t.ID ";
}
command += @"
WHERE t.TOROLT = 'F'
AND (h.HIANYZASOKSZAMA IS NOT NULL OR ert.ERTEKELESEKSZAMA IS NOT NULL OR e.FELJEGYZESEMSZAMA IS NOT NULL)
AND t.ID IN (" + pTanuIds + @")
ORDER BY t.ID
";
return GetData(command, parameters);
}
/// INFO @DevKornel: Mobil használja
public int GetOsztalyCsoportFeladatKategoria(int osztalyCsoportId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.Parameters.Add(nameof(osztalyCsoportId), osztalyCsoportId);
command.CommandText = $@"
SELECT C_FELADATKATEGORIAID
FROM T_OSZTALYCSOPORT_OSSZES
WHERE ID = @{nameof(osztalyCsoportId)} AND TOROLT = 'F'
";
var result = command.ExecuteScalar();
if (int.TryParse(result?.ToString(), out int res))
{ return res; }
return -1;
}
}
public int GetOsztalyCsoportOktatasNevelesiFeladatTipus(int osztalyCsoportId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.Parameters.Add(nameof(osztalyCsoportId), osztalyCsoportId);
command.CommandText = $@"
SELECT
fh.C_OKTATASINEVELESIFELADATTIPUS
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_FELADATELLATASIHELY_OSSZES fh ON ocs.C_FELADATELLATASIHELYID = fh.ID
AND fh.TOROLT = 'F'
WHERE ocs.ID = @{nameof(osztalyCsoportId)}
AND ocs.TOROLT = 'F'
";
var result = command.ExecuteScalar();
if (int.TryParse(result?.ToString(), out int res))
{ return res; }
return -1;
}
}
public DataSet GetOsztalyTanuloinakGondviseloi(int tanevId, int osztalyId, DateTime pDatum)
{
var commandParameterList = new List<CommandParameter>
{
new CommandParameter(nameof(osztalyId), osztalyId),
new CommandParameter("pDatum", pDatum),
new CommandParameter("pTanevId", tanevId)
};
string commandText = $@"
SELECT
Gondviselo.ID AS GondviseloId
,Gondviselo.C_NEV AS GondviseloNev
FROM T_TANULOCSOPORT_OSSZES TanuloCsoport
INNER JOIN T_GONDVISELO_OSSZES Gondviselo ON Gondviselo.C_TANULOID = TanuloCsoport.C_TANULOID
AND Gondviselo.TOROLT = 'F' AND Gondviselo.C_TANEVID = TanuloCsoport.C_TANEVID
WHERE TanuloCsoport.C_OSZTALYCSOPORTID = @{nameof(osztalyId)}
AND TanuloCsoport.C_BELEPESDATUM <= :pDatum
AND(TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM > GETDATE())
AND TanuloCsoport.TOROLT = 'F'
AND TanuloCsoport.C_TANEVID = :pTanevId";
DataSet dataSet = GetData(commandText, commandParameterList);
return dataSet;
}
public DataSet GetOsztalyokByMuveszetiAg(MuveszetiAgEnum muveszetiAg, int tanevId)
{
var commandParameterList = new List<CommandParameter>
{
new CommandParameter(nameof(muveszetiAg), (int)muveszetiAg),
new CommandParameter(nameof(tanevId), tanevId)
};
string commandText = $@"
SELECT ocs.ID
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.TOROLT = 'F' AND ocs.C_TANEVID = o.C_ALTANEVID
WHERE ocs.C_TANEVID = @{nameof(tanevId)}
AND ocs.C_MUVESZETIAGID = @{nameof(muveszetiAg)}
AND ocs.TOROLT = 'F'
";
return GetData(commandText, commandParameterList);
}
public DataSet GetOsztalyCsoportokFeladatKategoria(string osztalyIdString)
{
string commandText = $@"
SELECT C_FELADATKATEGORIAID
FROM T_OSZTALYCSOPORT_OSSZES
WHERE ID IN ({osztalyIdString})
";
return GetData(commandText);
}
public DataSet GetOsztalyCsoportokOktatasNevelesiFeladatTipus(string osztalyIdString)
{
string commandText = $@"
SELECT
fh.C_OKTATASINEVELESIFELADATTIPUS
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_FELADATELLATASIHELY_OSSZES fh ON ocs.C_FELADATELLATASIHELYID = fh.ID
AND fh.TOROLT = 'F'
WHERE ocs.ID IN ({osztalyIdString})
AND ocs.TOROLT = 'F'
";
return GetData(commandText);
}
public DataSet GetOsztalybontasosCsoportokOsztalyAdatokkal(string csoportIdString, int tanevId)
{
var paramList = new List<CommandParameter>() { new CommandParameter(nameof(tanevId), tanevId) };
string commandText = $@"
SELECT oszalybontottOsztalya.C_EVFOLYAMTIPUSA AS OsztalybontottOsztalyanakEvfolyama
,oszalybontottOsztalya.C_FELADATELLATASIHELYID AS OsztalybontottOsztalyanakFeladatellatasiHelye
,oszalybontottOsztalya.C_ISGYOGYPEDAGOGIAILOGOPEDIAI AS OsztalybontottOsztalyanakGyogypedagogiaiLogopediai
,oszalybontottOsztalya.C_ISTECHNIKAI AS OsztalybontottOsztalyanakTechnikai
,csoport.C_NEV AS CsoportNev
FROM T_CSOPORT_OSSZES cs
INNER JOIN T_OSZTALYCSOPORT_OSSZES csoport ON csoport.ID = cs.ID AND csoport.TOROLT = 'F' AND cs.C_ALTANEVID = csoport.C_TANEVID
INNER JOIN T_OSZTALYCSOPORT_OSSZES oszalybontottOsztalya ON oszalybontottOsztalya.ID = cs.C_OSZTALYBONTASID AND oszalybontottOsztalya.TOROLT = 'F' AND cs.C_ALTANEVID = oszalybontottOsztalya.C_TANEVID
WHERE cs.ID IN ({csoportIdString})
AND cs.TOROLT = 'F'
AND cs.C_ALTANEVID = @{nameof(tanevId)}
";
return GetData(commandText, paramList);
}
public DataSet GetAutoEgyeniCsoportok(string csoportIDArrayString, int tanevId)
{
var paramList = new List<CommandParameter>() { new CommandParameter(nameof(tanevId), tanevId) };
string commandText = $@"
SELECT csoport.C_NEV AS CsoportNev
FROM T_CSOPORT_OSSZES cs
INNER JOIN T_OSZTALYCSOPORT_OSSZES csoport ON csoport.ID = cs.ID AND csoport.TOROLT = 'F' AND cs.C_ALTANEVID = csoport.C_TANEVID
WHERE cs.ID IN ({csoportIDArrayString})
AND cs.C_ISAUTOEGYENICSOPORT = 'T'
AND cs.TOROLT = 'F'
AND cs.C_ALTANEVID = @{nameof(tanevId)}
";
return GetData(commandText, paramList);
}
public DataSet GetTanuloOsztalyDataSetByOsztalyCsoportId(int tanevId, int osztalyCsoportId)
{
using (var sdaCommand = new SDACommand())
{
sdaCommand.Connection = UserContext.Instance.SDAConnection;
sdaCommand.Transaction = UserContext.Instance.SDATransaction;
sdaCommand.CommandType = CommandType.StoredProcedure;
sdaCommand.CommandText = "uspGetTanuloOsztalyDataSetByOsztalyCsoportId";
sdaCommand.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId;
sdaCommand.Parameters.Add("pOsztalyCsoportId", SDADBType.Int).Value = osztalyCsoportId;
var dataSet = new DataSet();
using (var sdaDataAdapter = new SDADataAdapter())
{
sdaDataAdapter.SelectCommand = sdaCommand;
sdaDataAdapter.Fill(dataSet);
}
return dataSet;
}
}
public DataSet GetKapcsolodoOsztalyCsoportok(int osztalyCsoportId)
{
var paramList = new List<CommandParameter>
{
new CommandParameter(nameof(osztalyCsoportId), osztalyCsoportId)
};
var commandText = $"SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@{nameof(osztalyCsoportId)})";
return GetData(commandText, paramList);
}
public DataSet GetCsoportBesorolasModositasValidacio(int tanevId, int csoportId, int tanuloId, DateTime datumTol, DateTime datumIg, OktNevelesiKategoriaEnum? feladatKategoria, bool isTorolhetosegVizsgalat)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspValidateCsoportbaSorolasModositasa";
command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId;
command.Parameters.Add("pCsoportId", SDADBType.Int).Value = csoportId;
command.Parameters.Add("pTanuloId", SDADBType.Int).Value = tanuloId;
command.Parameters.Add("pDatumTol", SDADBType.DateTime).Value = datumTol;
command.Parameters.Add("pDatumIg", SDADBType.DateTime).Value = datumIg;
command.Parameters.Add("pIsTorolhetosegVizsgalat", isTorolhetosegVizsgalat);
if (feladatKategoria.HasValue)
{
command.Parameters.Add("pFeladatKategoriaId", SDADBType.Int).Value = (int)feladatKategoria;
}
var ds = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
return ds;
}
}
public DataSet GetOsztalyCsoportNev(string osztalyCsoportNev, int? id, int tanevId)
{
var prams = new List<CommandParameter>
{
new CommandParameter(nameof(osztalyCsoportNev), osztalyCsoportNev),
new CommandParameter(nameof(tanevId), tanevId)
};
string commandText = $@"
SELECT o.ID OsztalyId, cs.ID CsoportId, ocs.C_FELADATKATEGORIAID KategoriaId
FROM T_OSZTALYCSOPORT_OSSZES ocs
LEFT JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID
WHERE ocs.TOROLT = 'F'
AND ocs.C_TANEVID = @{nameof(tanevId)}
AND ocs.C_NEV = @{nameof(osztalyCsoportNev)}
";
if (id.HasValue)
{
prams.Add(new CommandParameter(nameof(id), id));
commandText += $" AND ocs.ID <> @{nameof(id)}";
}
return GetData(commandText, prams);
}
public DataSet GetOsztalyBesorolasModositasValidacio(int tanevId, int fromOsztalyId, int toOsztalyId, int tanuloId, DateTime datumTol, DateTime datumIg, OktNevelesiKategoriaEnum feladatKategoria, bool isTorolhetosegVizsgalat, bool isCheckMaxOsztalyReturnKilepes)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspValidateOsztalybaSorolasModositasa";
command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId;
command.Parameters.Add("pFromOsztalyId", SDADBType.Int).Value = fromOsztalyId;
command.Parameters.Add("pToOsztalyId", SDADBType.Int).Value = toOsztalyId;
command.Parameters.Add("pTanuloId", SDADBType.Int).Value = tanuloId;
command.Parameters.Add("pDatumTol", SDADBType.DateTime).Value = datumTol;
command.Parameters.Add("pDatumIg", SDADBType.DateTime).Value = datumIg;
command.Parameters.Add("pFeladatKategoriaId", SDADBType.Int).Value = (int)feladatKategoria;
command.Parameters.Add("pIsTorolhetosegVizsgalat", isTorolhetosegVizsgalat);
command.Parameters.Add("pIsCheckMaxOsztalyReturnKilepes", isCheckMaxOsztalyReturnKilepes);
var ds = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
return ds;
}
}
public DataSet GetTanuloOsztalyEsFeladatkategoriaList(int tanuloId, int tanevId, int intezmenyId, DateTime? datum = null)
{
var result = new DataSet();
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
var parameters = new List<CommandParameter>
{
new CommandParameter("pTanuloId", tanuloId),
new CommandParameter("pDatum", datum ?? DateTime.Now),
new CommandParameter("pIntezmenyId", intezmenyId),
new CommandParameter("pTanevId", tanevId)
};
command.CommandText = $@"
SELECT
C_OSZTALYCSOPORTID ID
,ocs.C_FELADATKATEGORIAID FeladatKategoriaId
FROM
T_TANULOCSOPORT_OSSZES tanuloCsoport
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = tanuloCsoport.C_OSZTALYCSOPORTID AND o.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.TOROLT = 'F'
WHERE tanuloCsoport.C_TANULOID = :pTanuloId
AND tanuloCsoport.C_BELEPESDATUM <= :pDatum
AND (tanuloCsoport.C_KILEPESDATUM IS NULL OR tanuloCsoport.C_KILEPESDATUM >= :pDatum)
AND tanuloCsoport.C_INTEZMENYID = :pIntezmenyId
AND tanuloCsoport.C_TANEVID = :pTanevId
AND tanuloCsoport.TOROLT = 'F'
";
result = GetData(command.CommandText, parameters);
}
return result;
}
public DateTime? GetVegzosUtolsoNapByOsztalycsoportId(string azonosito, int tanevId, int intezmenyId, int osztalycsoportId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.Parameters.Add(nameof(azonosito), azonosito);
command.Parameters.Add(nameof(tanevId), tanevId);
command.Parameters.Add(nameof(intezmenyId), intezmenyId);
command.Parameters.Add(nameof(osztalycsoportId), osztalycsoportId);
command.CommandText = $@"SELECT [kr_{azonosito}_schema].fnGetOsztalyVegzosTanitasiNap({osztalycsoportId}, {intezmenyId}, {tanevId})";
var result = command.ExecuteScalar();
DateTime? ret = null;
if (result != null && result != DBNull.Value)
{
ret = Convert.ToDateTime(result);
}
return ret;
}
}
public DataSet GetOsztalyCsoportAdatokDataSet()
{
using (var sdaCommand = new SDACommand())
{
sdaCommand.Connection = UserContext.Instance.SDAConnection;
sdaCommand.Transaction = UserContext.Instance.SDATransaction;
sdaCommand.CommandType = CommandType.StoredProcedure;
sdaCommand.CommandText = "uspGetOsztalyCsoportAdatok";
var result = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = sdaCommand;
adapter.Fill(result);
}
return result;
}
}
}
}