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

1098 lines
50 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Kreta.Core;
using Kreta.Core.FeatureToggle;
using Kreta.Core.Logic;
using Kreta.DataAccess.Interfaces;
using Kreta.DataAccessManual.DataAccessObjects.Mulasztas;
using Kreta.DataAccessManual.Interfaces;
using Kreta.DataAccessManual.ParameterClasses;
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 MulasztasDAL : DataAccessBase, IMulasztasDal
{
public MulasztasDAL(DalHandler handler) : base(handler)
{
}
public MulasztasDAL(DalHandler handler, GridParameters parameters) : base(handler, parameters)
{
}
/// INFO @DevKornel: Mobil használja
// TODO Tojcsi: Refaktorálni az egészet sp-be + fnGetTanoraiCeluCsoportTipusok temp táblába. (KRETA2-1318)
public DataSet GetHallgatoMulasztasaiDataSet(MulasztasKeresesePCO pco)
{
StringBuilder sqlQuery = new StringBuilder(
@"
SELECT DISTINCT
tanuloMulasztas.ID ID,
tanuloMulasztas.CREATED RogzitesDatum,
tanuloMulasztas.C_IGAZOLT Igazolt,
tanuloMulasztas.C_TIPUS MulasztasTipus,
tanuloMulasztas.C_KESESPERCBEN Perc,
tanuloMulasztas.C_IGAZOLASTIPUSA IgazolasTipus,
tanuloMulasztas.C_MEGJEGYZES Megjegyzes,
tanitasiOra.ID TanitasiOraId,
tanitasiOra.C_DATUM MulasztasDatum,
tanitasiOra.C_ORASZAM Oraszam,
tanitasiOra.C_TEMA Tema,
IIF(tanitasiOra.C_CSENGETESIRENDID IS NULL, 'T', 'F') AS IsTanorankivuliFoglalkozas,
tanitasiOra.C_HELYETTESITESTIPUSA HelyettesitesTipusa,
tanitasiOra.C_ORAKEZDETE TanitasiOraKezdete,
tanitasiOra.C_ORAVEGE TanitasiOraVege,
tanitasiOra.C_OSZTALYCSOPORTID OsztalyCsoportId,
tanar.ID TanarId,
tanar.C_NYOMTATASINEV TanarNeve,
helyettesitoTanar.ID HelyettesitoTanarId,
helyettesitoTanar.C_NYOMTATASINEV HelyettesitoTanarNeve,
tantargy.ID TantargyId,
tantargy.C_NEV Targy,
tantargy.C_TARGYKATEGORIA TantargyKategoria,
IIF(Osztaly.ID IS NOT NULL OR Csoport.ID IS NOT NULL, 'T', 'F') TanoraiCeluMulasztas
FROM T_TANULOMULASZTAS tanuloMulasztas
INNER JOIN T_TANITASIORA tanitasiOra on tanuloMulasztas.C_TANITASIORAKID = tanitasiOra.ID
INNER JOIN T_TANTARGY tantargy on tantargy.ID = tanitasiOra.C_TANTARGYID
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID = tanitasiOra.C_OSZTALYCSOPORTID AND tanuloMulasztas.C_ORATANULOIID = tcs.C_TANULOID AND tcs.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT ocs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND (ocs.C_FELADATKATEGORIAID = :pFeladatKategoriaId OR :pFeladatKategoriaId IS NULL)
INNER JOIN T_FELHASZNALO tanar ON tanar.ID = tanitasiOra.C_TANARID
LEFT JOIN T_FELHASZNALO helyettesitoTanar ON helyettesitoTanar.ID = tanitasiOra.C_HELYETTESITOTANARID
LEFT JOIN (SELECT
osztaly.ID
FROM T_OSZTALY osztaly
WHERE osztaly.TOROLT = 'F'
) Osztaly ON Osztaly.ID = ocs.ID
LEFT JOIN (SELECT
Csoport.ID
,Csoport.C_OSZTALYBONTASID
,Csoport.C_TIPUSA
FROM T_CSOPORT Csoport
INNER JOIN T_CSOPORTTIPUS cst ON cst.ID = Csoport.C_TIPUSA AND cst.C_ALTANEVID = Csoport.C_ALTANEVID AND cst.TOROLT = 'F'
WHERE Csoport.TOROLT = 'F'
AND cst.C_ISTANORAICELU = 'T'
) Csoport ON Csoport.ID = ocs.ID
WHERE
tanuloMulasztas.TOROLT = 'F'
AND tanuloMulasztas.C_TANEVID = :pAktualisTanevId
AND tcs.C_BELEPESDATUM <= tanitasiOra.C_DATUM
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > tanitasiOra.C_DATUM)
AND tanuloMulasztas.C_TIPUS NOT IN (:pHTipusJelenlet, :pHTipusUres)
AND tanuloMulasztas.C_ORATANULOIID = :pTanuloID");
var parameterList = new List<CommandParameter>
{
new CommandParameter("pHTipusJelenlet", (int) MulasztasTipusEnum.jelenlet),
new CommandParameter("pHTipusUres", (int) MulasztasTipusEnum.ures),
new CommandParameter("pTanuloID", pco.TanuloId),
new CommandParameter("pAktualisTanevId", pco.TanevId)
};
if (pco.Id.HasValue)
{
sqlQuery.Append(" AND tanuloMulasztas.ID = :pId");
parameterList.Add(new CommandParameter("pId", pco.Id));
}
if (pco.Tol.HasValue)
{
sqlQuery.Append(" AND tanitasiOra.C_DATUM >= cast(:pTol as date)");
parameterList.Add(new CommandParameter("pTol", pco.Tol.Value));
}
if (pco.Ig.HasValue)
{
sqlQuery.Append(" AND tanitasiOra.C_DATUM <= cast(:pIg as date)");
parameterList.Add(new CommandParameter("pIg", pco.Ig.Value));
}
if (!string.IsNullOrWhiteSpace(pco.TanoraiCeluMulasztas))
{
sqlQuery.Append(" AND IIF(Osztaly.ID IS NOT NULL OR Csoport.ID IS NOT NULL, 'T', 'F') = IIF(:pTanoraiCeluMulasztas = '1', 'T', 'F')");
parameterList.Add(new CommandParameter("pTanoraiCeluMulasztas", pco.TanoraiCeluMulasztas));
}
if (pco.FeladatKategoriaId.IsEntityId())
{ parameterList.Add(new CommandParameter("pFeladatKategoriaId", pco.FeladatKategoriaId.Value)); }
else
{ parameterList.Add(new CommandParameter("pFeladatKategoriaId", DBNull.Value)); }
if (pco.Oraszam.HasValue)
{
sqlQuery.Append(" AND tanitasiOra.C_ORASZAM = :pOraszam");
parameterList.Add(new CommandParameter("pOraszam", pco.Oraszam.Value));
}
if (pco.TantargyId.HasValue)
{
sqlQuery.Append(" AND tantargy.ID = :pTantargyId");
parameterList.Add(new CommandParameter("pTantargyId", pco.TantargyId.Value));
}
if (!string.IsNullOrWhiteSpace(pco.Tema))
{
sqlQuery.Append(" AND tanitasiOra.C_TEMA LIKE '%' + :pTema + '%'");
parameterList.Add(new CommandParameter("pTema", pco.Tema));
}
if (pco.MulTip.HasValue)
{
sqlQuery.Append(" AND tanuloMulasztas.C_TIPUS = :pMulasztasTipus");
parameterList.Add(new CommandParameter("pMulasztasTipus", pco.MulTip.Value));
}
if (pco.Igazolt.HasValue)
{
sqlQuery.Append(" AND tanuloMulasztas.C_IGAZOLT = IIF(:pIgazolt = '1', 'T', 'F')");
parameterList.Add(new CommandParameter("pIgazolt", pco.Igazolt.Value));
}
if (pco.IgazolasTipus.HasValue)
{
sqlQuery.Append(" AND tanuloMulasztas.C_IGAZOLASTIPUSA = :pIgazolasTipus");
parameterList.Add(new CommandParameter("pIgazolasTipus", pco.IgazolasTipus.Value));
}
if (pco.RogzitesKezdete.HasValue)
{
sqlQuery.Append(" AND tanuloMulasztas.CREATED >= cast(:pRogzitesKezdete as date)");
parameterList.Add(new CommandParameter("pRogzitesKezdete", pco.RogzitesKezdete.Value));
}
if (pco.RogzitesVege.HasValue)
{
sqlQuery.Append(" AND tanuloMulasztas.CREATED <= cast(:pRogzitesVege as date)");
parameterList.Add(new CommandParameter("pRogzitesVege", pco.RogzitesVege.Value));
}
var dataSet = GetData(sqlQuery.ToString(), parameterList, "MulasztasTipus,IgazolasTipus,TantargyKategoria", booleanColumns: "Igazolt,TanoraiCeluMulasztas");
return dataSet;
}
public DataSet GetMulasztasDataSet(MulasztasKeresesePCO pco, bool igazoltEsIgazolatlan = false, bool fromSearchPanel = false, int? csoportVezetoId = null)
{
using (var sdaCommand = new SDACommand())
{
sdaCommand.Connection = UserContext.Instance.SDAConnection;
sdaCommand.Transaction = UserContext.Instance.SDATransaction;
sdaCommand.CommandType = CommandType.StoredProcedure;
sdaCommand.CommandText = "uspGetMulasztasData";
sdaCommand.Parameters.Add("pTanevId", pco.TanevId);
if (csoportVezetoId.IsEntityId())
{
sdaCommand.Parameters.Add("pCsoportVezetoId", SDADBType.Int).Value = csoportVezetoId.Value;
}
sdaCommand.Parameters.Add("pIsNemJelenlevoTanulokMegjelenitese", pco.IsNemJelenlevoTanulokMegjelenitese);
if (pco.Tol.HasValue)
{
sdaCommand.Parameters.Add("pTol", SDADBType.DateTime).Value = pco.Tol.Value;
}
if (pco.Ig.HasValue)
{
sdaCommand.Parameters.Add("pIg", SDADBType.DateTime).Value = pco.Ig.Value;
}
if (pco.TanuloId.IsEntityId())
{
sdaCommand.Parameters.Add("pTanuloId", SDADBType.Int).Value = pco.TanuloId.Value;
}
if (!string.IsNullOrWhiteSpace(pco.TanuloNev))
{
sdaCommand.Parameters.Add("pTanuloNev", SDADBType.String).Value = pco.TanuloNev;
}
if (pco.OsztCsop.IsEntityId())
{
sdaCommand.Parameters.Add("pOsztcsop", SDADBType.Int).Value = pco.OsztCsop.Value;
}
sdaCommand.Parameters.Add("pIsKellKapcsolodoCsoportok", pco.IsKellKapcsolodoCsoportok);
if (pco.CsopTip.IsEntityId())
{
sdaCommand.Parameters.Add("pCsoptip", SDADBType.Int).Value = pco.CsopTip.Value;
}
if (pco.Fogl.IsEntityId())
{
sdaCommand.Parameters.Add("pFogl", SDADBType.Int).Value = pco.Fogl.Value;
}
if (pco.Targy.IsEntityId())
{
sdaCommand.Parameters.Add("pTargy", SDADBType.Int).Value = pco.Targy.Value;
}
if (pco.OraId.IsEntityId())
{
sdaCommand.Parameters.Add("pOraId", SDADBType.Int).Value = pco.OraId.Value;
}
if (pco.MulTip.IsEntityId())
{
sdaCommand.Parameters.Add("pMulTip", SDADBType.Int).Value = pco.MulTip.Value;
}
if (pco.KesIdo.IsNotNullAndPositive())
{
sdaCommand.Parameters.Add("pKesIdo", SDADBType.Int).Value = pco.KesIdo.Value;
}
if (!igazoltEsIgazolatlan)
{
if (fromSearchPanel && pco.IgazoltsagAllapota.HasValue)
{
sdaCommand.Parameters.Add("pIgazoltsagAllapota", SDADBType.Int).Value = pco.IgazoltsagAllapota.Value;
}
}
if (pco.IgazolasTipus.IsEntityId())
{
sdaCommand.Parameters.Add("pIgazolasTipus", SDADBType.Int).Value = pco.IgazolasTipus.Value;
}
sdaCommand.Parameters.Add("pIsNemBesoroltTanulokMulasztasainakMegjelenitese", pco.IsNemBesoroltTanulokMulasztasainakMegjelenitese);
if (pco.FeladatKategoriaId.IsEntityId())
{
sdaCommand.Parameters.Add("pFeladatKategoriaId", SDADBType.Int).Value = pco.FeladatKategoriaId.Value;
}
if (pco.FeladatEllatasiHelyId.IsEntityId())
{
sdaCommand.Parameters.Add("pFeladatEllatasiHelyId", SDADBType.Int).Value = pco.FeladatEllatasiHelyId.Value;
}
if (pco.IsOnlineOra.HasValue)
{
sdaCommand.Parameters.Add("pIsOnlineOra", pco.IsOnlineOra.ToBool());
}
if (pco.TanitasiOraId.IsEntityId())
{
sdaCommand.Parameters.Add("pTanitasiOraId", SDADBType.Int).Value = pco.TanitasiOraId.Value;
}
if (pco.SzervezetTipusId.IsEntityId())
{
sdaCommand.Parameters.Add("pSzervezetTipusId", SDADBType.Int).Value = pco.SzervezetTipusId;
}
if (pco.SzervezetIdList?.Any() ?? false)
{
var pSzervezetIdListString = string.Join(",", pco.SzervezetIdList.Select(x => x.ToString()));
sdaCommand.Parameters.Add("pSzervezetIdListString", SDADBType.String).Value = pSzervezetIdListString;
}
if (!string.IsNullOrWhiteSpace(pco.SzervezetNev))
{
sdaCommand.Parameters.Add("pSzervezetNev", SDADBType.String).Value = pco.SzervezetNev.ToLowerInvariant();
}
if (!string.IsNullOrWhiteSpace(pco.SzervezetAzonosito))
{
sdaCommand.Parameters.Add("pSzervezetAzonosito", SDADBType.String).Value = pco.SzervezetAzonosito.ToLowerInvariant();
}
var result = new DataSet();
using (var sdaDataAdapter = new SDADataAdapter())
{
sdaDataAdapter.SelectCommand = sdaCommand;
sdaDataAdapter.Fill(result);
}
SetDNAME(result.Tables[0], "MulTip,IgazolasTipus");
SetBoolFields(result.Tables[0], "Igazolt,IsOnlineOra");
return result;
}
}
public void BulkSaveMulastas(string json, int modifyId, DateTime modifyDate, int intezmenyId, int tanevId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspUpdateTanuloMulasztasListNaplozas";
command.Parameters.Add("pTanevid", tanevId);
command.Parameters.Add("pModifier", modifyId);
command.Parameters.Add("pIntezmenyid", intezmenyId);
command.Parameters.Add("pModifydate", modifyDate);
command.Parameters.Add("pJson", json);
command.ExecuteScalar();
}
}
public DataSet GetMulasztasokDatumNezetDetailGrid(DateTime mulasztasDatuma, int osztalyCsoportId, bool isCsoportVezeto)
{
List<CommandParameter> parameters = new List<CommandParameter>
{
new CommandParameter("pMulasztasTipusJelenlet", (int) MulasztasTipusEnum.jelenlet),
new CommandParameter("pMulasztasTipusUres", (int) MulasztasTipusEnum.ures),
new CommandParameter("pDatum", mulasztasDatuma.Date),
new CommandParameter("pOsztalyCsoportId", osztalyCsoportId)
};
var csoportSzures = isCsoportVezeto ? " AND tn.C_OSZTALYCSOPORTID = :pOsztalyCsoportId" : string.Empty;
string commandText = $@"
SELECT
mu.ID AS ID
,mu.C_ORATANULOIID AS TanuloId
,fh.C_NYOMTATASINEV AS TanuloNev
,fh.C_ANYJANEVE AS AnyjaNeve
,fh.C_SZULETESIDATUM AS SzuletesiIdo
,tn.C_ORASZAM AS Oraszam
,tn.C_DATUM AS Datum
,tn.C_ORAKEZDETE AS Tol
,tn.C_ORAVEGE AS Ig
,tn.C_OSZTALYCSOPORTID AS OsztCsop
,ocs.C_NEV AS OsztCsopNev
,tn.C_FOGLALKOZASID AS Fogl
,tn.C_TANTARGYID AS Targy
,tgy.C_NEV AS TargyNev
,mu.C_TIPUS AS MulTip
,mu.C_KESESPERCBEN AS KesesPerc
,mu.C_IGAZOLT AS Igazolt
,mu.C_IGAZOLASTIPUSA AS IgazolasTipus
,mu.C_MEGJEGYZES AS Megjegyzes
,tn.ID AS TanitasiOra
,tn.C_TEMA AS Tema
FROM T_TANULOMULASZTAS mu
INNER JOIN T_TANITASIORA tn ON tn.ID = mu.C_TANITASIORAKID
INNER JOIN T_FELHASZNALO fh ON fh.ID = mu.C_ORATANULOIID
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = tn.C_OSZTALYCSOPORTID
INNER JOIN T_TANTARGY tgy ON tgy.ID = tn.C_TANTARGYID
INNER JOIN T_TANULOCSOPORT tcs ON mu.C_ORATANULOIID = tcs.C_TANULOID
INNER JOIN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(:pOsztalyCsoportId)) f on f.ID = tn.C_OSZTALYCSOPORTID
WHERE
mu.TOROLT = 'F'
AND mu.C_IGAZOLT IS NULL
AND mu.C_TIPUS != :pMulasztasTipusJelenlet
AND mu.C_TIPUS != :pMulasztasTipusUres
AND tn.C_DATUM = :pDatum
AND tcs.C_OSZTALYCSOPORTID = :pOsztalyCsoportId
AND tcs.C_BELEPESDATUM <= :pDatum
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > :pDatum)
{csoportSzures}";
return GetData(commandText, parameters, "MulTip,IgazolasTipus", "Igazolt");
}
public DataSet GetTanuloMulasztasai(int tanuloId)
{
string CommandText = @"SELECT
T_TANTARGY.ID ID,
T_TANTARGY.C_NEV Tantargy,
--Rendszer paraméter fogja majd állítani, hogy melyik kell, de még nem készült el maga a paraméter.
T_TANULOTARGYMULASZTASSTATISZT.C_EDDIGIORASZAZALEK Szazalek,
--T_TANULOTARGYMULASZTASSTATISZT.C_OSSZESORASZAZALEK Szazalek,
TABLEOSSZES.OSSZES Osszes,
T_TANULOTARGYMULASZTASSTATISZT.C_MULASZTASDB Mulasztas
FROM
T_TANULOTARGYMULASZTASSTATISZT
INNER JOIN
T_TANULO on T_TANULO.ID = T_TANULOTARGYMULASZTASSTATISZT.C_TANULOMULASZTASSTATISZTIKAII
INNER JOIN
T_FOGLALKOZAS on T_FOGLALKOZAS.id = T_TANULOTARGYMULASZTASSTATISZT.C_TARGYMULASZTASSTATISZTIKAIID
INNER JOIN
T_TANTARGY on T_TANTARGY.ID = T_FOGLALKOZAS.C_TANTARGYID
INNER JOIN
( select
T_TANITASIORA.C_TANTARGYID TargyID,
count(1) Osszes
from
T_TANITASIORA
group by
T_TANITASIORA.C_TANTARGYID
) as TABLEOSSZES on TABLEOSSZES.TargyID = T_TANTARGY.ID
WHERE
T_TANULO.ID = :pTanuloID";
var param = new List<CommandParameter> { new CommandParameter("pTanuloID", tanuloId) };
DataSet ds = GetData(CommandText, param);
return ds;
}
public DataSet GetOsztalyCsoportTanuloiMulasztasEsFelmentes(int osztcsopId, int tanoraId, int targyId, int tanarId, DateTime date, int csakMegtartott, DateTime tanevElsoTanitasiNapja, DateTime tanevUtolsoTanitasiNapja, int tanevId, int intezmenyId, MulasztasTipusEnum alapertelmezettMulasztasTipus)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "sp_GetNaplozasMulasztasList";
command.Parameters.Add("pDate", date);
command.Parameters.Add("pOraId", tanoraId);
command.Parameters.Add("pTargyId", targyId);
command.Parameters.Add("pOsztalyCsoportId", osztcsopId);
command.Parameters.Add("pCsakMegtartott", csakMegtartott);
command.Parameters.Add("pTanevElsoTanitasiNapja", tanevElsoTanitasiNapja);
command.Parameters.Add("pTanevUtolsoTanitasiNapja", tanevUtolsoTanitasiNapja);
command.Parameters.Add("pTanevid", tanevId);
command.Parameters.Add("pIntezmenyId", intezmenyId);
command.Parameters.Add("pTanarId", tanarId);
command.Parameters.Add("pAlapertelmezettMulasztasTipus", (int)alapertelmezettMulasztasTipus);
var dts = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(dts);
}
SetDNAME(dts.Tables[0], "MulasztasTipus,AmiFotargyId,AmiTagozatId,AmiTantargyKotelezosegId,EvfolyamId");
SetBoolFields(dts.Tables[0], "ErtkelesMentesseg,OraMentesseg,SzovegesenErtekelheto,IsMagantanulo,HaziFeladatHiany,FelszerelesHiany,Felmentes,TanoraiDicseret,Igazolt");
DataTable dt = SortingAndPaging(dts.Tables[0], GridParameters);
return dt.AsDataSet();
}
}
public DataSet GetTanuloIgazolatlanMulasztasIdoszakban(int tanuloId, DateTime kezdete, DateTime vege)
{
List<CommandParameter> parameters = new List<CommandParameter>
{
new CommandParameter("pTanuloID", tanuloId),
new CommandParameter("pKezdete", kezdete),
new CommandParameter("pVege", vege)
};
string commandText = @"select
T_TANULOMULASZTAS.ID,
T_TANITASIORA.C_DATUM
from T_TANULOMULASZTAS
INNER JOIN T_TANITASIORA ON T_TANULOMULASZTAS.C_TANITASIORAKID = T_TANITASIORA.ID
where
T_TANULOMULASZTAS.TOROLT = 'F'
AND T_TANITASIORA.TOROLT = 'F'
AND
(
(T_TANULOMULASZTAS.C_IGAZOLT = 'F')
OR (T_TANULOMULASZTAS.C_IGAZOLT IS NULL AND T_TANULOMULASZTAS.C_KESESPERCBEN > 0 and T_TANULOMULASZTAS.C_TIPUS != 1500)
OR (T_TANULOMULASZTAS.C_IGAZOLT IS NULL AND T_TANULOMULASZTAS.C_TIPUS = 1500)
)
AND T_TANITASIORA.C_DATUM BETWEEN :pKezdete AND :pVege
AND T_TANULOMULASZTAS.C_ORATANULOIID =:pTanuloID";
DataSet ds = GetData(commandText, parameters);
return ds;
}
public DataSet GetTanuloIgazoltMulasztasIdoszakban(int tanuloId, DateTime kezdete, DateTime vege, int tipus)
{
List<CommandParameter> parameters = new List<CommandParameter>
{
new CommandParameter("pTanuloID", tanuloId),
new CommandParameter("pKezdete", kezdete),
new CommandParameter("pVege", vege),
new CommandParameter("pTipus", tipus)
};
string commandText = @"select T_TANULOMULASZTAS.ID,
T_TANITASIORA.C_DATUM
from T_TANULOMULASZTAS
INNER JOIN T_TANITASIORA ON T_TANULOMULASZTAS.C_TANITASIORAKID = T_TANITASIORA.ID
where
T_TANULOMULASZTAS.TOROLT='F'
AND T_TANITASIORA.TOROLT='F'
AND T_TANULOMULASZTAS.C_IGAZOLT ='T'
AND T_TANITASIORA.C_DATUM BETWEEN :pKezdete AND :pVege
AND T_TANULOMULASZTAS.C_ORATANULOIID =:pTanuloID
AND T_TANULOMULASZTAS.C_IGAZOLASTIPUSA = :pTipus";
DataSet ds = GetData(commandText, parameters);
return ds;
}
/// INFO @DevKornel: Mobil használja
public Dictionary<int, bool> GetIsMulasztashozTartozoOsztalyAlapkepzesesByMulasztasIdDictionary(List<int> mulasztasIdFilters)
{
var response = new Dictionary<int, bool>();
List<CommandParameter> parameters = new List<CommandParameter>
{
new CommandParameter("pFeladatKategoriaId", (int)OktNevelesiKategoriaEnum.NevelesOktatas),
};
string commandText = $@"SELECT
Mulasztas.ID Id,
IIF(OsztalyCsoport.C_FELADATKATEGORIAID = :pFeladatKategoriaId, 1, 0) IsMulasztashozTartozoOsztalyAlapkepzeses
FROM T_TANULOMULASZTAS Mulasztas
INNER JOIN T_TANITASIORA Tanora ON Tanora.ID = Mulasztas.C_TANITASIORAKID
INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = Tanora.C_OSZTALYCSOPORTID
WHERE Mulasztas.ID IN ({string.Join(",", mulasztasIdFilters)})";
DataSet ds = GetData(commandText, parameters);
foreach (DataRow item in ds.Tables[0].Rows)
{
response.Add(item.Field<int>("Id"), item.Field<int>("IsMulasztashozTartozoOsztalyAlapkepzeses") == 1);
}
return response;
}
/// INFO @DevKornel: Mobil használja
public DataSet GetParhuzamosOraNaplozottMulasztasTanuloId(DateTime kezdete, DateTime vege, int tanoraId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspTanuloMulasztasParhuzamosOra";
command.Parameters.Add("pIdoszakKezdete", kezdete);
command.Parameters.Add("pIdoszakVege", vege);
command.Parameters.Add("pTanoraId", tanoraId);
var ds = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
DataTable dt = SortingAndPaging(ds.Tables[0], GridParameters);
return dt.AsDataSet();
}
}
public ITanuloMulasztas Get()
{
return TanuloMulasztas.GiveAnInstance();
}
public ITanuloMulasztas Get(int id)
{
var entity = TanuloMulasztas.GiveAnInstance();
entity.LoadByID(id);
return entity;
}
public void Insert(ITanuloMulasztas entity)
{
TanuloMulasztas tanuloMulasztas = (TanuloMulasztas)entity;
tanuloMulasztas.IsErtesitesElkuldve = !FeatureContext.Instance.IsEnabled(Constants.FeatureName.SendMulasztasNotification);
tanuloMulasztas.Insert();
IIgazolasDal dal = DalHelper.IgazolasDal();
DataSet ds = dal.GetMulasztasLehetsegesIgazolasai(tanuloMulasztas.ID);
if (ds.Tables[0].Rows.Count > 0)
{
tanuloMulasztas.Igazolt = true;
tanuloMulasztas.IgazolasTipusa = int.Parse(ds.Tables[0].Rows[0]["Tipus"].ToString());
tanuloMulasztas.Update();
}
DalHelper.Commit();
}
public void FullUpdate(ITanuloMulasztas entity)
{
var tanuloMulasztas = (TanuloMulasztas)entity;
tanuloMulasztas.FullUpdate();
DalHelper.Commit();
}
public void Delete(ITanuloMulasztas entity)
{
var tanuloMulasztas = (TanuloMulasztas)entity;
tanuloMulasztas.Delete();
DalHelper.Commit();
}
public void Delete(int id)
{
var tanuloMulasztas = this.Get(id);
this.Delete(tanuloMulasztas);
}
#region Dátum nézet
// Lekérdezzük az IGAZOLANDÓ mulasztásokat
public DataSet GetDatumNezetDataByOsztalyCsoportId(int osztalyCsoportId, int intezmenyId, int aktualisTanevId, bool isCsoportVezeto)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetMulasztasokDatumNezetDataByOsztalyCsoportId";
command.Parameters.Add("pMulasztasTipusJelenlet", (int)MulasztasTipusEnum.jelenlet);
command.Parameters.Add("pMulasztasTipusUres", (int)MulasztasTipusEnum.ures);
command.Parameters.Add("pAktualisTanevId", aktualisTanevId);
command.Parameters.Add("pOsztalyCsoportId", osztalyCsoportId);
command.Parameters.Add("pIntezmenyId", intezmenyId);
command.Parameters.Add("pIsCsoportVezeto", isCsoportVezeto ? 1 : 0);
command.Parameters.Add("pHetnapjaTipusTypeId", (int)GeneratedAdatszotarTipusEnum.HetNapjaTipus);
var ds = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
DataTable dt = SortingAndPaging(ds.Tables[0], GridParameters);
return dt.AsDataSet();
}
}
#endregion Dátum nézet
//Mulasztások, késések lekérdezése
public DataSet GetTanulokMulasztasaiKesesei(int intezmenyId, int tanevId, int? osztalyCsoportId = null, int? tanuloId = null, bool isCsoportVezeto = false, int? szervezetTipusId = 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 = "uspGetTanulokMulasztasaiKesesei";
command.Parameters.Add("pIntezmenyId", SDADBType.Int).Value = intezmenyId;
command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId;
command.Parameters.Add("pOsztalyCsoportId", SDADBType.Int).Value = osztalyCsoportId;
command.Parameters.Add("pTanuloId", SDADBType.Int).Value = tanuloId;
command.Parameters.Add("pIsCsoportVez", SDADBType.Int).Value = isCsoportVezeto ? 1 : 0;
if(szervezetTipusId.HasValue)
{
command.Parameters.Add("pSzervezetTipusId", SDADBType.Int).Value = szervezetTipusId;
}
else
{
command.Parameters.Add("pSzervezetTipusId", SDADBType.Int).Value = DBNull.Value;
}
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
}
DataTable dt = SortingAndPaging(ds.Tables[0], GridParameters);
return dt.AsDataSet();
}
#region Tanuló popup
public DataSet GetTanuloMulasztasaiGrid(MulasztasKeresesePCO pco, bool igazolandok, int? csoportVezetoId, int osztalyCsoportId)
{
var parameters = new List<CommandParameter>()
{
new CommandParameter("pTanuloId", pco.TanuloId.Value),
new CommandParameter("pTanevId", pco.TanevId.Value),
new CommandParameter("pMulasztasTipusUres", (int)MulasztasTipusEnum.ures)
};
StringBuilder whereClause = new StringBuilder();
whereClause.Append(igazolandok ? " AND tm.C_IGAZOLT IS NULL" : " AND tm.C_IGAZOLT IS NOT NULL");
if (csoportVezetoId.IsEntityId())
{
parameters.Add(new CommandParameter("pCsoportVezetoId", csoportVezetoId.Value));
whereClause.Append(" AND csop.C_CSOPORTVEZETOID = :pCsoportVezetoId");
}
if (pco.IsTanoraiCelu.HasValue && !pco.IsTanoraiCelu.Value)
{
whereClause.Append(" AND (csop.C_TIPUSA NOT IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(:pTanevId)) OR csop.C_TIPUSA IS NULL)");
}
else if (pco.IsTanoraiCelu.HasValue && pco.IsTanoraiCelu.Value)
{
whereClause.Append(" AND (csop.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(:pTanevId)) OR csop.C_TIPUSA IS NULL)");
}
var command = new StringBuilder($@"
SELECT DISTINCT
tm.C_ORATANULOIID AS TanuloId
,tOra.C_DATUM AS MulasztasDatuma
,{osztalyCsoportId} AS OsztalyCsoportId
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES tOra ON tOra.ID = tm.C_TANITASIORAKID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = tm.C_ORATANULOIID AND tcs.C_OSZTALYCSOPORTID = tOra.C_OSZTALYCSOPORTID
LEFT JOIN T_CSOPORT_OSSZES csop ON csop.ID = tcs.C_OSZTALYCSOPORTID
INNER JOIN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok({osztalyCsoportId})) f on f.ID = tOra.C_OSZTALYCSOPORTID
INNER JOIN T_TANULOCSOPORT_OSSZES tcso ON tcso.C_TANULOID = tm.C_ORATANULOIID
AND tcso.TOROLT = 'F'
AND tOra.C_DATUM >= tcso.C_BELEPESDATUM
AND tOra.C_DATUM < ISNULL(tcso.C_KILEPESDATUM, GETDATE())
AND tcso.C_OSZTALYCSOPORTID = {osztalyCsoportId}
WHERE tm.TOROLT = 'F'
AND tm.C_TANEVID = :pTanevId
AND tm.C_ORATANULOIID = :pTanuloId
AND tm.C_TIPUS != :pMulasztasTipusUres
AND tcs.C_BELEPESDATUM <= tOra.C_DATUM AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > tOra.C_DATUM)
");
command.Append(whereClause.ToString());
return GetData(command.ToString(), parameters);
}
public DataSet GetTanuloMulasztasaiDetailGrid(MulasztasKeresesePCO pco, bool igazolando, int? csoportVezetoId)
{
List<CommandParameter> parameters = new List<CommandParameter>
{
new CommandParameter("pTanuloId", pco.TanuloId),
new CommandParameter("pTanevId", pco.TanevId.Value),
new CommandParameter("pMulasztasTipusUres", (int) MulasztasTipusEnum.ures)
};
StringBuilder whereClause = new StringBuilder();
whereClause.Append(igazolando ? " AND tm.C_IGAZOLT IS NULL" : " AND tm.C_IGAZOLT IS NOT NULL");
if (pco.Tol.HasValue)
{
parameters.Add(new CommandParameter("pTol", pco.Tol.Value));
whereClause.Append(" AND tOra.C_DATUM >= :pTol ");
}
if (pco.Ig.HasValue)
{
parameters.Add(new CommandParameter("pIg", pco.Ig.Value));
whereClause.Append(" AND tOra.C_DATUM <= :pIg ");
}
var csoportSzures = string.Empty;
if (csoportVezetoId.IsEntityId())
{
parameters.Add(new CommandParameter("pCsoportVezetoId", csoportVezetoId));
csoportSzures = $" INNER JOIN T_CSOPORT_OSSZES csop on csop.ID = tOra.C_OSZTALYCSOPORTID AND csop.C_CSOPORTVEZETOID = :pCsoportVezetoId AND csop.TOROLT = 'F' ";
if (pco.IsTanoraiCelu.HasValue && !pco.IsTanoraiCelu.Value)
{
whereClause.Append(" AND (csop.C_TIPUSA NOT IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(:pTanevId)) OR csop.C_TIPUSA IS NULL)");
}
else if (pco.IsTanoraiCelu.HasValue && pco.IsTanoraiCelu.Value)
{
whereClause.Append(" AND (csop.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(:pTanevId)) OR csop.C_TIPUSA IS NULL)");
}
}
var command = new StringBuilder($@"
SELECT DISTINCT
tm.ID
,tm.C_ORATANULOIID AS TanuloId
,tm.C_IGAZOLASTIPUSA AS IgazolasTipus
,tm.C_KESESPERCBEN AS KesesPerc
,tm.C_TIPUS AS MulTip
,ocs.C_NEV AS OsztCsopNev
,CASE tm.C_IGAZOLT
WHEN 'T' THEN 0
WHEN 'F' THEN 1
ELSE NULL
END AS Igazolt
,COALESCE(ig.C_MEGJEGYZES, tm.C_MEGJEGYZES, '') AS Megjegyzes
,tOra.C_ORASZAM AS Oraszam
,t.C_NEV AS TargyNev
,tm.C_TANITASIORAKID AS TanitasiOraId
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES tOra ON tOra.ID = tm.C_TANITASIORAKID AND tOra.TOROLT = 'F'
LEFT JOIN T_TANTARGY_OSSZES t ON t.ID = tOra.C_TANTARGYID AND t.TOROLT = 'F'
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tORa.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F'
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = tm.C_ORATANULOIID AND tcs.C_OSZTALYCSOPORTID = tOra.C_OSZTALYCSOPORTID AND tcs.TOROLT = 'F'
{csoportSzures}
INNER JOIN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok({pco.OsztCsop})) f on f.ID = tOra.C_OSZTALYCSOPORTID
LEFT JOIN T_IGAZOLAS_OSSZES ig on ig.C_TANULOID = tm.C_ORATANULOIID AND ig.TOROLT = 'F' AND tora.C_DATUM BETWEEN ig.C_KEZDETE AND ig.C_VEGE AND tm.C_IGAZOLT = 'T'
WHERE tm.TOROLT = 'F'
AND tm.C_TANEVID = :pTanevId
AND tm.C_ORATANULOIID = @pTanuloId
AND tm.C_TIPUS != :pMulasztasTipusUres
AND tcs.C_BELEPESDATUM <= tOra.C_DATUM AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > tOra.C_DATUM)
");
command.Append(whereClause.ToString());
return GetData(command.ToString(), parameters, "IgazolasTipus,MulTip");
}
#endregion
public DataSet GetMulasztasokNaploNezetData(int tanevId, int intezmenyId, int osztalyCsoportId, DateTime datum, bool isCsoportVezeto, int? szervezetTipusId = null)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "sp_GetMulasztasokNaploNezetData";
command.Parameters.Add("pTanevId", tanevId);
command.Parameters.Add("pIntezmenyId", intezmenyId);
command.Parameters.Add("pOsztalyCsoportId", osztalyCsoportId);
command.Parameters.Add("pDatum", datum);
command.Parameters.Add("pCsoportTipusTanoraiCeluId", (int)CsoportTipusEnum.iskolai_csoport_tanorai_celu_);
command.Parameters.Add("pIsCsoportVez", isCsoportVezeto ? 1 : 0);
command.Parameters.Add("pSzervezetTipusId", szervezetTipusId);
var dts = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(dts);
}
SetDNAME(dts.Tables[0], "MulasztasTipus,IgazolasTipus");
SetBoolFields(dts.Tables[0], "IsIgazolt");
return dts;
}
}
public DataSet GetTanuloMulasztasaiData(int tanevId, int tanuloId, int mulasztastipusa, bool igazolt)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetTanuloMulasztasa";
command.Parameters.Add("pTanevId", tanevId);
command.Parameters.Add("pTanuloId", tanuloId);
command.Parameters.Add("pMulasztasTipus", mulasztastipusa);
command.Parameters.Add("pIgazolt", igazolt ? "T" : "F");
var dts = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(dts);
}
return dts;
}
}
public DataSet GetTanuloLegutobbiMulasztasai(int tanuloId)
{
//Utolsó hat dátumhoz tartozó hiányzás
string CommandText = @"
SELECT
x.C_DATUM,
x.C_TIPUS,
x.C_NEV,
x.C_ORASZAM,
x.OraKezdeteVege,
x.ID
FROM
(
SELECT
DENSE_RANK() OVER (ORDER BY C_DATUM DESC) dr,
tt.C_DATUM,
tm.C_TIPUS,
tgy.C_NEV,
tt.C_ORASZAM,
FORMAT(tt.C_ORAKEZDETE, 'HH:mm') + ' - ' + FORMAT(tt.C_ORAVEGE, 'HH:mm') AS OraKezdeteVege,
tm.ID
FROM T_TANULOMULASZTAS tm
INNER JOIN T_TANITASIORA tt ON tt.ID = tm.C_TANITASIORAKID
INNER JOIN T_TANTARGY tgy ON tgy.ID = tt.C_TANTARGYID
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID = tt.C_OSZTALYCSOPORTID AND tm.C_ORATANULOIID = tcs.C_TANULOID AND tcs.TOROLT = 'F'
WHERE
tm.TOROLT = 'F'
AND tcs.C_BELEPESDATUM <= tt.C_DATUM
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > tt.C_DATUM)
AND tm.C_TIPUS NOT IN (:pJelenlet, :pUres) AND tm.C_ORATANULOIID = :pTanuloID
) x
WHERE x.dr<=6 ORDER BY x.C_DATUM DESC";
var param = new List<CommandParameter>
{
new CommandParameter("pTanuloID", tanuloId),
new CommandParameter("pJelenlet", (int) MulasztasTipusEnum.jelenlet),
new CommandParameter("pUres", (int) MulasztasTipusEnum.ures)
};
var ds = GetData(CommandText, param);
return ds;
}
/// INFO @DevKornel: Mobil használja
public List<MulasztasPushNotificationDao> GetAllSchemaMulasztasNotification()
{
var result = new List<MulasztasPushNotificationDao>();
var ds = new DataSet();
using (var sdaCommand = new SDACommand())
{
sdaCommand.Connection = UserContext.Instance.SDAConnection;
sdaCommand.Transaction = UserContext.Instance.SDATransaction;
sdaCommand.CommandType = CommandType.StoredProcedure;
sdaCommand.CommandText = "uspGetAllSchemaMulasztasNotification";
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = sdaCommand;
adapter.Fill(ds);
}
}
foreach (var item in ds.Tables[0].ToDaoList<MulasztasPushNotificationDao>())
{
result.Add(item);
}
return result;
}
/// INFO @DevKornel: Mobil használja
public void SetMulasztasAsKikuldott(IEnumerable<int> idList)
{
if (!idList.Any())
{
return;
}
using (SDACommand command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspSetTanuloMulasztasAsKikuldott";
command.Parameters.Add("item_list", SqlLogic.ParseListToParameter(idList.ToList()));
command.ExecuteNonQuery();
DalHelper.Commit();
}
}
public bool VaneMarIgazolt(int tipusId, int tanuloId, int oraId)
{
List<CommandParameter> parameters = new List<CommandParameter>(); /// TODO(@DevKornél): mehetnének list-be object initializerrel
parameters.Add(new CommandParameter("pTipusId", tipusId));
parameters.Add(new CommandParameter("pTanuloId", tanuloId));
parameters.Add(new CommandParameter("pOraId", oraId));
var commandText = @"
SELECT ID
FROM T_TANULOMULASZTAS
WHERE C_TIPUS = :pTipusId AND C_ORATANULOIID = :pTanuloId AND C_TANITASIORAKID = :pOraId
AND C_IGAZOLT = 'T' AND TOROLT = 'F'
";
var ds = GetData(commandText, parameters);
return ds.Tables[0].Rows.Count > 0;
}
public DataSet GetTanuloNemUresTantargyiMulasztasaiIdoszakban(int tanuloId, List<int> tantargyIdList, DateTime kezdete, DateTime vege)
{
List<CommandParameter> parameters = new List<CommandParameter>
{
new CommandParameter("pTanuloId", tanuloId),
new CommandParameter("pKezdete", kezdete),
new CommandParameter("pVege", vege),
new CommandParameter("pUresMulasztasTipusId", (int)MulasztasTipusEnum.ures)
};
string commandText = $@"
SELECT
tanuloMulasztas.C_IGAZOLASTIPUSA AS Igazolastipusa
,tanuloMulasztas.C_TIPUS AS Mulasztastipusa
,ISNULL(tanuloMulasztas.C_KESESPERCBEN , 0) AS KesesPercben
,tanuloMulasztas.C_IGAZOLT AS Igazolt
,tantargy.ID AS TantargyId
,tantargy.C_NEV AS TantargyNev
FROM T_TANULOMULASZTAS tanuloMulasztas
INNER JOIN T_TANITASIORA tanitasiOra ON tanitasiOra.ID = tanuloMulasztas.C_TANITASIORAKID
INNER JOIN T_TANTARGY tantargy ON tantargy.ID = tanitasiOra.C_TANTARGYID
WHERE
tanuloMulasztas.C_ORATANULOIID = :pTanuloId
AND tantargy.ID IN ({SqlLogic.ParseListToParameter(tantargyIdList)})
AND tanitasiOra.C_DATUM > :pKezdete
AND tanitasiOra.C_DATUM < :pVege
AND tanuloMulasztas.C_TIPUS <> :pUresMulasztasTipusId";
DataSet ds = GetData(commandText, parameters);
return ds;
}
public void SetMulasztasTipusUres(int tanuloId, int tantargyId, DateTime kezdete, DateTime vege, int felhasznaloId)
{
string commandText = @"
UPDATE tanuloMulasztas SET
C_TIPUS = :pUresMulasztasTipusId
,LASTCHANGED = GETDATE()
,MODIFIER = :pFelhasznaloId
,SERIAL += 1
FROM T_TANULOMULASZTAS tanuloMulasztas
INNER JOIN T_TANITASIORA tanitasiOra ON tanitasiOra.ID = tanuloMulasztas.C_TANITASIORAKID
WHERE
tanuloMulasztas.C_ORATANULOIID = :pTanuloId
AND tanitasiOra.C_TANTARGYID = :pTantargyId
AND tanitasiOra.C_DATUM > :pKezdete
AND tanitasiOra.C_DATUM < :pVege
AND tanuloMulasztas.C_TIPUS <> :pUresMulasztasTipusId";
using (var command = UserContext.Instance.SDAConnection.CreateCommand(commandText))
{
command.Transaction = UserContext.Instance.SDATransaction;
command.Parameters.Add("pTanuloId", tanuloId);
command.Parameters.Add("pTantargyId", tantargyId);
command.Parameters.Add("pKezdete", kezdete);
command.Parameters.Add("pVege", vege);
command.Parameters.Add("pUresMulasztasTipusId", (int)MulasztasTipusEnum.ures);
command.Parameters.Add("pFelhasznaloId", felhasznaloId);
command.ExecuteNonQuery();
DalHelper.Commit();
}
}
public DataSet GetTanuloJelenletDataSet(int tanevId, int tanoraId)
{
var commandText = $@"
SELECT
f.ID AS TanuloId
,f.C_NYOMTATASINEV AS TanuloNev
,tm.C_MEGJEGYZES AS Megjegyzes
,tm.C_TIPUS AS Tipus
,tm.C_KESESPERCBEN AS Keses
FROM T_FELHASZNALO f
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_TANULOID = f.ID AND tcs.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F'
INNER JOIN T_TANITASIORA t ON t.C_OSZTALYCSOPORTID = ocs.ID AND t.TOROLT = 'F'
LEFT JOIN T_TANULOMULASZTAS tm ON tm.C_TANITASIORAKID = t.ID AND tm.C_ORATANULOIID = tcs.C_TANULOID AND tm.TOROLT = 'F'
WHERE t.ID = {tanoraId}
AND f.TOROLT = 'F'
AND f.C_TANEVID = {tanevId}
";
return GetData(commandText);
}
}
}