1098 lines
50 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|