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

1015 lines
46 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
using Kreta.Core;
using Kreta.DataAccess.Interfaces;
using Kreta.DataAccessManual.Interfaces;
using Kreta.DataAccessManual.Util;
using Kreta.Enums;
using Kreta.Framework;
using Kreta.Framework.Util;
using SDA.DataProvider;
using SDA.Kreta.Entities;
namespace Kreta.DataAccessManual
{
internal class TanarDAL : DataAccessBase, ITanarDal
{
public TanarDAL(DalHandler handler) : base(handler) { }
public TanarDAL(DalHandler handler, GridParameters parameters) : base(handler, parameters) { }
public DataSet GetTanulotTanitoTanarok(int tanuloId)
{
const string commandText = @"
SELECT DISTINCT
tantargy.C_NEV as Tantargy
,tanar.C_NYOMTATASINEV as Tanar
FROM T_TANULOCSOPORT tanuloCsoport
INNER JOIN T_FOGLALKOZAS foglalkozas On foglalkozas.C_OSZTALYCSOPORTID = tanuloCsoport.C_OSZTALYCSOPORTID AND foglalkozas.TOROLT = 'F'
INNER JOIN T_FELHASZNALO tanar On foglalkozas.C_TANARID = tanar.ID AND tanar.TOROLT = 'F'
INNER JOIN T_TANTARGY tantargy On foglalkozas.C_TANTARGYID = tantargy.ID AND tantargy.TOROLT = 'F'
WHERE tanuloCsoport.C_BELEPESDATUM < GETDATE()
AND (tanuloCsoport.C_KILEPESDATUM is null or tanuloCsoport.C_KILEPESDATUM >= GETDATE())
AND tanuloCsoport.TOROLT = 'F'
AND tanuloCsoport.C_TANULOID = :pUserId
";
var prams = new List<CommandParameter> { new CommandParameter("pUserId", tanuloId) };
var ds = this.GetData(commandText, prams);
return ds;
}
public DataSet GetProfil(int tanarId, int tanevId, Guid? userIdpUniqueId = null)
{
var commandText = @"
SELECT
f.ID Id
,f.C_NYOMTATASINEV Nev
,e.C_EMAILCIM MunkahelyiEmailCim
,e2.C_EMAILCIM PublikusEmailCim
,t.C_TELEFONSZAM MunkahelyiTelefonszam
,t2.C_TELEFONSZAM PublikusTelefonszam
,ia.C_ROVIDNEV IntezmenyNev
,mh.C_NEV MukodesiHelyNev
,fh.C_OKTATASINEVELESIFELADATTIPUS OktatasiNevelesiFeladatTipusId
,m.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
FROM T_MUNKAUGYIADATOK_OSSZES m
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = m.C_ALKALMAZOTTID AND f.TOROLT = 'F'
LEFT JOIN T_EMAIL_OSSZES e ON e.C_FELHASZNALOID = f.ID AND e.C_ISPUBLIC = 'F' AND e.C_ALAPERTELMEZETT = 'T' AND e.TOROLT = 'F'
LEFT JOIN T_EMAIL_OSSZES e2 ON e2.C_FELHASZNALOID = f.ID AND e2.C_ISPUBLIC = 'T' AND e2.TOROLT = 'F'
LEFT JOIN T_TELEFON_OSSZES t ON t.C_FELHASZNALOID = f.ID AND t.C_ISPUBLIC = 'F' AND t.C_ALAPERTELMEZETT = 'T' AND t.TOROLT = 'F'
LEFT JOIN T_TELEFON_OSSZES t2 ON t2.C_FELHASZNALOID = f.ID AND t2.C_ISPUBLIC = 'T' AND t2.TOROLT = 'F'
INNER JOIN T_FELADATELLATASIHELY_OSSZES fh ON fh.ID = m.C_FELADATELLATASIHELYID AND fh.TOROLT = 'F'
INNER JOIN T_MUKODESIHELY_OSSZES mh ON mh.C_INTEZMENYID = fh.C_INTEZMENYID AND mh.ID = fh.C_MUKODESIHELYID AND mh.TOROLT = 'F'
INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.C_INTEZMENYID = mh.C_INTEZMENYID AND ia.TOROLT = 'F'
WHERE" + (userIdpUniqueId.HasValue ? " f.C_IDPEGYEDIAZONOSITO = :pUserIdpUniqueId " : " m.C_ALKALMAZOTTID = :pUserId") + @"
AND m.C_TANEVID = :pTanevId
AND m.TOROLT = 'F'";
var parameters = new List<CommandParameter>
{
new CommandParameter("pUserId", tanarId),
new CommandParameter("pTanevId", tanevId)
};
if (userIdpUniqueId.HasValue)
{
parameters.Add(new CommandParameter("pUserIdpUniqueId", userIdpUniqueId));
}
return GetData(commandText, parameters);
}
public DataSet GetTeacherPhones(int teacherId)
{
var pram = new List<CommandParameter>();
pram.Add(new CommandParameter("pTanarID", teacherId));
var commandText =
@"SELECT
ID
,C_TELEFONSZAM AS Phone
,C_ALAPERTELMEZETT AS ALAPERTELMEZETT
,C_LEIRAS AS Description
,C_TELEFONTIPUSA AS Type
,C_ISPUBLIC AS IsPublic
FROM T_TELEFON_OSSZES
WHERE C_FELHASZNALOID = :pTanarID
AND TOROLT = 'F'";
var result = GetData(commandText, pram, "TYPE", "ALAPERTELMEZETT,IsPublic");
return result;
}
public DataSet GetTeacherEmails(int teacherId)
{
var pram = new List<CommandParameter>();
pram.Add(new CommandParameter("pTanarID", teacherId));
var commandText =
@"SELECT
ID
,C_EMAILTIPUSA AS Type
,C_EMAILCIM AS Email
,C_ALAPERTELMEZETT AS ALAPERTELMEZETT
,C_ISPUBLIC AS IsPublic
,C_ISHIBASANMEGADVA AS IsHibasanMegadva
FROM T_EMAIL_OSSZES
WHERE C_FELHASZNALOID = :pTanarID
AND TOROLT = 'F'";
var result = GetData(commandText, pram, "TYPE", "ALAPERTELMEZETT,IsPublic,IsHibasanMegadva");
return result;
}
public DataSet GetTeacherAddressData(int teacherId)
{
var pram = new List<CommandParameter>();
pram.Add(new CommandParameter("pTanarID", teacherId));
var commandText =
@"SELECT
ID
,C_ORSZAG as Orszag
,C_IRANYITOSZAM AS IRANYITOSZAM
,C_MEGYE AS Megye
,C_VAROS AS VAROS
,C_CIMTIPUSA AS TIPUS
,C_KOZTERULET AS KOZTERULET
,C_HAZSZAM AS HAZSZAM
,C_EMELET AS EMELET
,C_AJTO AS AJTO
,C_KOZTERULETJELLEGENEV as KozteruletJellegeNev
,C_ALAPERTELMEZETT AS Alapertelmezett
FROM T_CIM_OSSZES
WHERE C_FELHASZNALOID = :pTanarID
AND TOROLT = 'F'";
var result = GetData(commandText, pram, "Orszag,TIPUS", "Alapertelmezett");
return result;
}
public DataSet GetTeacherRoutines(int teacherId)
{
var pram = new List<CommandParameter>();
pram.Add(new CommandParameter("pTanarID", teacherId));
var commandText =
@"SELECT FOG.ID, TT.C_NEV Tantargy, OCS.C_NEV OsztalyCsoport, FOG.C_ORASZAM HetiOraszam,C_FOGLALKOZASTIPUSA Foglalkozas FROM T_FOGLALKOZAS_OSSZES FOG
INNER JOIN T_TANTARGY_OSSZES TT on FOG.C_TANTARGYID = TT.ID AND TT.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES OCS on FOG.C_OSZTALYCSOPORTID = OCS.ID AND OCS.TOROLT = 'F'
WHERE FOG.C_TANARID = :pTanarID AND FOG.TOROLT = 'F'";
var result = GetData(commandText, pram, "Foglalkozas");
return result;
}
public DataSet GetTimeTableSubjects(int teacherId)
{
var pram = new List<CommandParameter>();
pram.Add(new CommandParameter("pTanarID", teacherId));
var commandText =
@"SELECT OO.ID
,OO.C_HETIREND AS Hetirend
,OO.C_HETNAPJA AS HetNapja
,OO.C_ORASZAM AS Ora
,OCS.C_NEV AS OsztalyCsoport
,TT.C_Nev AS Tantargy
,OO.C_ORAERVENYESSEGKEZDETE AS ErvenyessegKezdete
,OO.C_ORAERVENYESSEGVEGE AS ErvenyessegVege
,TEREM.C_NEV AS Helyiseg
FROM T_ORARENDIORA_OSSZES OO
INNER JOIN T_TANTARGY_OSSZES TT on OO.C_TANTARGYID = TT.ID AND TT.TOROLT = 'F'
INNER JOIN T_TEREM_OSSZES TEREM on OO.C_TEREMID = TEREM.ID AND TEREM.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES OCS on OCS.ID = OO.C_OSZTALYCSOPORTID AND OCS.TOROLT = 'F'
WHERE OO.C_TANARID = @pTanarID AND OO.TOROLT = 'F'";
var result = GetData(commandText, pram, "HetNapja,Hetirend");
return result;
}
public DataSet GetTeacherSyllabus(int teacherId)
{
var pram = new List<CommandParameter>();
pram.Add(new CommandParameter("pTanarID", teacherId));
var commandText =
@"SELECT TM.ID, OCS.C_NEV OsztalyCsoport, TT.C_NEV Tantargy, TM.C_ORASZAM Oraszam, TM.C_TEMA Tema FROM t_Tanmenet_OSSZES TM
INNER JOIN T_OSZTALYCSOPORT_OSSZES OCS on TM.C_OSZTALYCSOPORTID = OCS.ID
INNER JOIN T_TANTARGY_OSSZES TT on TM.C_TANTARGYID = TT.ID
WHERE c_feltoltoid = :pTanarID AND TM.TOROLT = 'F'";
var result = GetData(commandText, pram);
return result;
}
public DataSet GetTeacherRating(int teacherId)
{
var pram = new List<CommandParameter>
{
new CommandParameter("pErtekeloId", teacherId)
};
var commandText = @"
SELECT
tanuloErtekeles.ID ID
,tantargy.C_NEV Tantargy
,tanuloFelhasznalo.C_NYOMTATASINEV Tanulo
,tanuloErtekeles.C_DATUM Datum
,tanuloErtekeles.C_ERTEKELESTEMA Tema
,tanuloErtekeles.C_ERTEKELESOSZTALYZATID OSZTALYZAT
,tanuloErtekeles.C_ERTEKELESSZOVEG ErtekelesSzoveg
,tanuloErtekeles.C_TIPUSID TIPUS
,osztalyCsoport.C_NEV OsztalyCsoport
,tantargy.C_TARGYKATEGORIA
FROM
T_TANULOERTEKELES_OSSZES tanuloErtekeles
INNER JOIN
T_TANTARGY_OSSZES tantargy ON
tantargy.ID = tanuloErtekeles.C_TANTARGYID
AND tantargy.TOROLT = 'F'
INNER JOIN
T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON
osztalyCsoport.ID = tanuloErtekeles.C_OSZTALYCSOPORTID
AND osztalyCsoport.TOROLT = 'F'
INNER JOIN
T_FELHASZNALO_OSSZES tanuloFelhasznalo ON
tanuloFelhasznalo.ID = tanuloErtekeles.C_TANULOID
AND tanuloFelhasznalo.TOROLT = 'F'
WHERE
tanuloErtekeles.C_ERTEKELOID = :pErtekeloId
AND tanuloErtekeles.TOROLT = 'F'";
var result = GetData(commandText, pram, "TIPUS,OSZTALYZAT");
return result;
}
public DataSet GetHeldSubject(int teacherId)
{
var pram = new List<CommandParameter>();
pram.Add(new CommandParameter("pTanarID", teacherId));
var commandText = @"SELECT TORA.ID, OCS.C_NEV OSZTALYCSOPORT, TT.C_NEV TANTARGY,
TORA.C_TEMA TEMA,
CASE WHEN TORA.C_HELYETTESITOTANARID = :pTanarID
THEN 'T'
ELSE 'F'
END AS HELYETT,
TORA.C_DATUM DATUM, TORA.C_ORASZAM ORASZAM
FROM T_TanitasiOra_OSSZES TORA
INNER JOIN T_TANTARGY_OSSZES TT on TORA.C_TANTARGYID= TT.ID
INNER JOIN T_OSZTALYCSOPORT_OSSZES OCS on TORA.C_OSZTALYCSOPORTID = OCS.ID
WHERE TORA.C_MEGTARTOTT = 'T' AND TORA.TOROLT = 'F'
AND (TORA.C_TANARID = :pTanarID OR TORA.C_HELYETTESITOTANARID = :pTanarID)";
var result = GetData(commandText, pram, booleanColumns: "HELYETT");
return result;
}
public DataSet GetTeacherNames(int? kiveveTanarId = null, bool oktatasiAzonositoval = false, int? tanevId = null, bool csakNaploJogkorrel = false)
{
var kiveveTanar = kiveveTanarId.HasValue ? " AND T_FELHASZNALO_OSSZES.ID != :pKiveveTanarId " : string.Empty;
var oktatasiAzon = oktatasiAzonositoval ? $" + isnull(' (' + T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO + ')','{Constants.General.HianyzoOktatasiAzonositoJeloles}')" : string.Empty;
var tanevIdSzures = tanevId.IsEntityId() ? " AND t_alkalmazott_osszes.c_altanevid = :pTanevId " : string.Empty;
var csakNaploJogkorrelSzures = csakNaploJogkorrel ? $@"
INNER JOIN T_FELHASZNALO_SZEREPKOR fsz ON fsz.C_FELHASZNALOID = T_ALKALMAZOTT_OSSZES.ID
INNER JOIN T_SZEREPKOR_OSSZES sz ON sz.ID = fsz.C_SZEREPKORID
AND sz.TOROLT = 'F'
INNER JOIN T_SZEREPKORTIPUS_OSSZES szkt ON szkt.ID = sz.C_SZEREPKORTIPUS
AND szkt.ID = {(int)SzerepkorTipusEnum.Naplo}
AND szkt.C_ALTANEVID = sz.C_TANEVID
AND szkt.TOROLT = 'F'" : "";
var commandText = new StringBuilder($@"SELECT T_ALKALMAZOTT_OSSZES.ID AS ID,
LTRIM(T_FELHASZNALO_OSSZES.C_NYOMTATASINEV) {oktatasiAzon} AS Nev
FROM
T_ALKALMAZOTT_OSSZES
INNER JOIN
T_FELHASZNALO_OSSZES on
T_ALKALMAZOTT_OSSZES.ID = T_FELHASZNALO_OSSZES.ID
{csakNaploJogkorrelSzures}
WHERE T_ALKALMAZOTT_OSSZES.TOROLT = 'F' AND T_FELHASZNALO_OSSZES.TOROLT = 'F'
AND LTRIM(T_FELHASZNALO_OSSZES.C_NYOMTATASINEV) + isnull(' (' + T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO + ')','') IS NOT NULL
{kiveveTanar}{tanevIdSzures}
ORDER BY IIF(T_FELHASZNALO_OSSZES.C_NEVSORREND = 'T', T_FELHASZNALO_OSSZES.C_UTONEV + ' '+ T_FELHASZNALO_OSSZES.C_VEZETEKNEV, T_FELHASZNALO_OSSZES.C_VEZETEKNEV + ' ' + T_FELHASZNALO_OSSZES.C_UTONEV) ");
var parameters = new List<CommandParameter>();
if (kiveveTanarId.HasValue)
{
parameters.Add(new CommandParameter("pKiveveTanarId", kiveveTanarId.Value));
}
if (tanevId.IsEntityId())
{
parameters.Add(new CommandParameter("pTanevId", tanevId));
}
DataSet ds = GetData(commandText.ToString(), parameters);
return ds;
}
public DataSet GetAlkalmazottNames(int tanevId, int intezmenyId, bool oktatasiAzonositoval = false, bool isFromSzervezet = false, int? szervezetId = null, int? szervezetekHalmaza = null)
{
var fromSzervezetClause = isFromSzervezet ? @"
INNER JOIN T_MUNKAUGYIADATOK_OSSZES mua ON mua.C_ALKALMAZOTTID = T_ALKALMAZOTT_OSSZES.ID AND mua.TOROLT = 'F'
INNER JOIN (
T_SZERVEZET_OSSZES sz
INNER JOIN (
SELECT * FROM fnGetLathatoSzervezetek(@pIntezmenyId, @pTanevId, @pSzervezetId, @pSzervezetekHalmaza)
) AS lathato ON lathato.ID = sz.ID
) ON sz.ID = mua.C_SZERVEZETID AND sz.TOROLT = 'F'
" : @"
INNER JOIN T_MUNKAUGYIADATOK_OSSZES mua ON mua.C_ALKALMAZOTTID = T_ALKALMAZOTT_OSSZES.ID AND mua.TOROLT = 'F' AND mua.C_SZERVEZETID IS NULL
";
var commandText = $@"
SELECT DISTINCT
T_ALKALMAZOTT_OSSZES.ID AS ID,
IIF ( T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO IS NULL, LTRIM(T_FELHASZNALO_OSSZES.C_NYOMTATASINEV){(oktatasiAzonositoval ? $" + '{Constants.General.HianyzoOktatasiAzonositoJeloles}'" : "")}, LTRIM(T_FELHASZNALO_OSSZES.C_NYOMTATASINEV) {(oktatasiAzonositoval ? " + ' (' + T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO + ')'" : "")} ) AS Nev
,IIF(T_FELHASZNALO_OSSZES.C_NEVSORREND = 'T', T_FELHASZNALO_OSSZES.C_UTONEV + ' ' + T_FELHASZNALO_OSSZES.C_VEZETEKNEV, T_FELHASZNALO_OSSZES.C_VEZETEKNEV + ' ' + T_FELHASZNALO_OSSZES.C_UTONEV)
{(isFromSzervezet ? @"
,sz.C_NEV AS SzervezetNeve" : "")}
FROM T_ALKALMAZOTT_OSSZES
INNER JOIN T_FELHASZNALO_OSSZES on T_ALKALMAZOTT_OSSZES.ID = T_FELHASZNALO_OSSZES.ID
{fromSzervezetClause}
WHERE
T_ALKALMAZOTT_OSSZES.TOROLT = 'F' AND T_FELHASZNALO_OSSZES.TOROLT = 'F'
AND T_ALKALMAZOTT_OSSZES.C_ALTANEVID = :pTanevId
ORDER BY IIF(T_FELHASZNALO_OSSZES.C_NEVSORREND = 'T', T_FELHASZNALO_OSSZES.C_UTONEV + ' ' + T_FELHASZNALO_OSSZES.C_VEZETEKNEV, T_FELHASZNALO_OSSZES.C_VEZETEKNEV + ' ' + T_FELHASZNALO_OSSZES.C_UTONEV)";
var parameters = new List<CommandParameter>
{
new CommandParameter("pTanevId", tanevId)
};
if (isFromSzervezet)
{
parameters.Add(new CommandParameter("pIntezmenyId", intezmenyId));
parameters.Add(new CommandParameter("pSzervezetId", szervezetId.IsEntityId() ? szervezetId : (object)DBNull.Value));
parameters.Add(new CommandParameter("pSzervezetekHalmaza", szervezetekHalmaza ?? (object)DBNull.Value));
}
var ds = GetData(commandText, parameters);
return ds;
}
public DataSet GetTeacherStudents(int tanarId, int tanevId, int? foglalkozasId, int? foglalkozasTipus, double bukasAtlag, bool csakBukasraAllok, int? feladatKategoriaId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetTanarTanitottTanuloi";
command.Parameters.Add("pTanarId", tanarId).Value = tanarId;
command.Parameters.Add("pTanevId", tanevId);
command.Parameters.Add("pBukasAtlag", bukasAtlag);
command.Parameters.Add("pCsakBukasraAllok", csakBukasraAllok);
if (foglalkozasId.IsEntityId())
{
command.Parameters.Add("pFoglalkozasId", foglalkozasId.Value);
}
if (foglalkozasTipus.IsEntityId())
{
command.Parameters.Add("pFoglalkozasTipusId", foglalkozasTipus.Value);
}
if (feladatKategoriaId.IsEntityId())
{
command.Parameters.Add("pFeladatKategoriaId", feladatKategoriaId.Value);
}
var ds = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
SetDNAME(ds.Tables[0], "Tipus");
DataTable dt = SortingAndPaging(ds.Tables[0], GridParameters);
return dt.AsDataSet();
}
}
public DataSet GetTeacherNonStudents(int tanarId, int intezmenyId, int? tanevId, int? osztalyCsoportID)
{
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 = "uspGetTanarNemTanitottTanuloi";
command.Parameters.Add("pTanarId", SDADBType.Int).Value = tanarId;
command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId;
command.Parameters.Add("pIntezmenyId", SDADBType.Int).Value = intezmenyId;
if (osztalyCsoportID.HasValue)
{
command.Parameters.Add("pOsztalycsoportId", SDADBType.Int).Value = osztalyCsoportID;
}
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
DataTable dt = SortingAndPaging(ds.Tables[0], GridParameters);
return dt.AsDataSet();
}
}
public DataSet KIRTanarokImport(string tanariAdatokXml, int feladatellatasiHelyId, int intezmenyId, int tanevId, int userId)
{
using (SDACommand command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "sp_KIRImportTanarok";
command.Parameters.Add("TanarokXML", tanariAdatokXml);
command.Parameters.Add("FeladatellatasiHelyId ", feladatellatasiHelyId);
command.Parameters.Add("intezmenyID", intezmenyId);
command.Parameters.Add("tanevID", tanevId);
command.Parameters.Add("userId", userId);
var dts = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(dts);
}
DalHelper.Commit();
return dts;
}
}
public DataSet GetPedagogusEletpalyamodell(int tanarId)
{
List<CommandParameter> paramlist = new List<CommandParameter>();
paramlist.Add(new CommandParameter("pTanarID", tanarId));
string CommandText = @"
SELECT
PedagogusEletpalyaModel.ID ID,
PedagogusEletpalyaModel.C_FOKOZAT Fokozat,
PedagogusEletpalyaModel.C_PORTFOLIOSTATUSZ Statusz,
PedagogusEletpalyaModel.C_MINOSITESDATUM Datum
FROM T_PEDAGOGUSELETPALYAMODELL_OSSZES PedagogusEletpalyaModel
INNER JOIN T_ALKALMAZOTT_OSSZES Alk ON Alk.ID = PedagogusEletpalyaModel.C_TANARID
WHERE PedagogusEletpalyaModel.TOROLT='F'
AND Alk.TOROLT ='F'
AND Alk.ID = :pTanarID";
DataSet ds = GetData(CommandText, paramlist, dictionaryItemColumns: "Fokozat,Statusz");
return ds;
}
public DataSet GetVegzettseg(int tanarId, int tanevId)
{
List<CommandParameter> paramlist = new List<CommandParameter>();
paramlist.Add(new CommandParameter(nameof(tanarId), tanarId));
paramlist.Add(new CommandParameter(nameof(tanevId), tanevId));
string CommandText = $@"
SELECT
Vegzettseg.ID ID
,Vegzettseg.C_VEGZETTSEGTIPUSID Vegzettseg
,Vegzettseg.C_EGYEB Egyeb
FROM
T_VEGZETTSEG_OSSZES Vegzettseg
INNER JOIN
T_ALKALMAZOTT_OSSZES Alk ON Alk.ID = Vegzettseg.C_TANARID
WHERE
Vegzettseg.TOROLT = 'F'
AND Vegzettseg.C_TANEVID = @{nameof(tanevId)}
AND Alk.TOROLT = 'F'
AND Alk.ID = @{nameof(tanarId)}
AND Alk.C_ALTANEVID = @{nameof(tanevId)}
";
DataSet ds = GetData(CommandText, paramlist, dictionaryItemColumns: "Vegzettseg");
if (ds.Tables[0] != null)
{
ds.Tables[0].Columns.Add("Kepesites", typeof(string));
foreach (DataRow rows in ds.Tables[0].Rows)
{
rows["Kepesites"] = GetKepesites((int)rows["ID"], tanevId);
}
}
return ds;
}
public DataSet GetKKMainGridVegzettseg(int tanarId)
{
List<CommandParameter> paramlist = new List<CommandParameter>();
paramlist.Add(new CommandParameter("pTanarID", tanarId));
string CommandText = @"
select
NEWID() Id,
id EntityId,
null VegzettsegTipusId,
null Egyeb,
null TancmuveszetiAg,
null ZenemuveszetiAg,
null KepzomuveszetiAg,
null SzinmuveszetiAg,
null KepesitesJellegeTipus,
C_KKKEPESITESID KepesitesTipusId,
null TeruletId
from T_ALKALMAZOTT_OSSZES
where TOROLT = 'F' and id = :pTanarID
union
select top 1
NEWID() Id,
null EntityId,
null VegzettsegTipusId,
null Egyeb,
null TancmuveszetiAg,
null ZenemuveszetiAg,
null KepzomuveszetiAg,
null SzinmuveszetiAg,
" + (int)KKKepesitesJellTipusEnum.Gyogypedagogus + @" KepesitesJellegeTipus,
null KepesitesTipusId,
C_KKGYOGYPEDTERTIPUSID Terulet
from T_KKGYOGYPEDVEGZETTSEG_OSSZES
where TOROLT = 'F' and C_ALKALMAZOTTID = :pTanarID
union
select top 1
NEWID() Id,
null EntityId,
null VegzettsegTipusId,
null Egyeb,
null TancmuveszetiAg,
null ZenemuveszetiAg,
null KepzomuveszetiAg,
null SzinmuveszetiAg,
" + (int)KKKepesitesJellTipusEnum.Tanito + @" KepesitesJellegeTipus,
null KepesitesTipusId,
C_KKTANIOTOMUVTERTIPUSID Terulet
from T_KKTANITOVEZGETTSEG_OSSZES
where TOROLT = 'F' and C_ALKALMAZOTTID = :pTanarID
union
select
NEWID() Id,
tanarV.ID EntityId,
tanarV.C_KKTANARVEGZETTSEGID VegzettsegTipusId,
C_EGYEB Egyeb,
null TancmuveszetiAg,
null ZenemuveszetiAg,
null KepzomuveszetiAg,
null SzinmuveszetiAg,
" + (int)KKKepesitesJellTipusEnum.Tanar + @" KepesitesJellegeTipus,
null KepesitesTipusId,
null Terulet
from T_KKTANARVEGZETTSEG_OSSZES tanarV
where TOROLT = 'F' and C_ALKALMAZOTTID = :pTanarID
union
select distinct
NEWID() Id,
amiV.ID EntityId,
amiV.C_KKAMIVEGZETTSEGTIPUSID VegzettsegTipusId,
null Egyeb,
tanc.C_AMITERULETTIPUSID TancmuveszetiAg,
zene.C_AMITERULETTIPUSID ZenemuveszetiAg,
kepzo.C_AMITERULETTIPUSID KepzomuveszetiAg,
szin.C_AMITERULETTIPUSID SzinmuveszetiAg,
" + (int)KKKepesitesJellTipusEnum.TanarAMI + @" KepesitesJellegeTipus,
null KepesitesTipusId,
null Terulet
from T_KKAMIVEGZETTSEG_OSSZES amiV
left join (select C_AMITERULETTIPUSID,C_KKAMIVEGZETTSEGID from T_KKTERULET_OSSZES where TOROLT = 'F' and C_AMITERULETTIPUSID = " + (int)KKAMITeruletTipusEnum.TancmuveszetiAg + @")tanc on tanc.C_KKAMIVEGZETTSEGID = amiV.ID
left join (select C_AMITERULETTIPUSID,C_KKAMIVEGZETTSEGID from T_KKTERULET_OSSZES where TOROLT = 'F' and C_AMITERULETTIPUSID = " + (int)KKAMITeruletTipusEnum.ZenemuveszetiAg + @")zene on zene.C_KKAMIVEGZETTSEGID = amiV.ID
left join (select C_AMITERULETTIPUSID,C_KKAMIVEGZETTSEGID from T_KKTERULET_OSSZES where TOROLT = 'F' and C_AMITERULETTIPUSID = " + (int)KKAMITeruletTipusEnum.KepzoEsIparmuveszetiAg + @")kepzo on kepzo.C_KKAMIVEGZETTSEGID = amiV.ID
left join (select C_AMITERULETTIPUSID,C_KKAMIVEGZETTSEGID from T_KKTERULET_OSSZES where TOROLT = 'F' and C_AMITERULETTIPUSID = " + (int)KKAMITeruletTipusEnum.SzinEsBabmuveszetiAg + @")szin on szin.C_KKAMIVEGZETTSEGID = amiV.ID
where TOROLT = 'F' and C_ALKALMAZOTTID = :pTanarID";
DataSet ds = GetData(CommandText, paramlist, dictionaryItemColumns: "VegzettsegTipusId,KepesitesJellegeTipus,KepesitesTipusId,TancmuveszetiAg,ZenemuveszetiAg,KepzomuveszetiAg,SzinmuveszetiAg,TeruletId");
return ds;
}
public string GetKepesites(int vegzettsegId, int tanevId)
{
List<CommandParameter> paramlist = new List<CommandParameter>();
paramlist.Add(new CommandParameter(nameof(vegzettsegId), vegzettsegId));
paramlist.Add(new CommandParameter(nameof(tanevId), tanevId));
string CommandText = $@"
SELECT
k.C_KEPESITESTIPUSID
FROM
T_VEGZETTSEG_OSSZES Vegzettseg
INNER JOIN
T_KEPESITES_VEGZETTSEG kp ON kp.C_VEGZETTSEGID = Vegzettseg.ID
INNER JOIN
T_KEPESITES_OSSZES k ON k.ID = kp.C_KEPESITESID AND k.TOROLT = 'F'
WHERE
Vegzettseg.ID = @{nameof(vegzettsegId)}
AND Vegzettseg.TOROLT = 'F'
AND Vegzettseg.C_TANEVID = @{nameof(tanevId)}
AND k.C_TANEVID = @{nameof(tanevId)}
";
DataSet ds = GetData(CommandText, paramlist, dictionaryItemColumns: "C_KEPESITESTIPUSID");
string dictionary = string.Empty;
foreach (DataRow row in ds.Tables[0].Rows)
{
dictionary += row.Field<string>("C_KEPESITESTIPUSID_DNAME") + ", ";
}
if (!string.IsNullOrWhiteSpace(dictionary))
{
dictionary = dictionary.Remove(dictionary.Length - 2, 2);
}
return dictionary;
}
public DataSet GetTanarokForDDL(bool oktatasiAzonositoval = false, int? tanevId = null, bool isForMentor = false, bool isCsoportnelkuli = false, int? aktualisCsoportvezetoId = null)
{
var oktatasiAzonosito = oktatasiAzonositoval ? $" + isnull(' (' + f.c_oktatasiazonosito + ')','{Constants.General.HianyzoOktatasiAzonositoJeloles}')" : string.Empty;
var tanevIdSzures = tanevId.IsEntityId() ? " AND f.c_tanevId = :pTanevID " : string.Empty;
var oktatasiAzonositoOrder = oktatasiAzonositoval ? ", f.C_OKTATASIAZONOSITO" : string.Empty;
var paramsList = new List<CommandParameter>();
var commandText = new StringBuilder($@"
SELECT
f.ID AS ID,
f.C_NYOMTATASINEV {oktatasiAzonosito} AS Nev
FROM T_ALKALMAZOTT_OSSZES a
INNER JOIN T_FELHASZNALO_OSSZES f on f.ID = a.ID
{(isForMentor ? "INNER JOIN T_MUNKAUGYIADATOK mua ON mua.C_ALKALMAZOTTID = a.ID AND mua.C_ISAPACZAIMENTOR = 'T' AND mua.C_TANEVID = f.C_TANEVID AND mua.TOROLT = 'F'" : string.Empty)}
WHERE a.TOROLT = 'F' AND f.TOROLT = 'F'
{(!isCsoportnelkuli ? string.Empty : " AND NOT EXISTS(SELECT TOP 1 1 FROM T_CSOPORT_OSSZES cs WHERE cs.C_CSOPORTVEZETOID = f.ID " + (aktualisCsoportvezetoId.HasValue ? " AND cs.C_CSOPORTVEZETOID <> " + aktualisCsoportvezetoId.ToString() : string.Empty) + " AND cs.C_ALTANEVID = f.C_TANEVID AND cs.TOROLT = 'F') ")}
{tanevIdSzures}
ORDER BY IIF(f.C_NEVSORREND = 'T', f.C_UTONEV + ' '+ f.C_VEZETEKNEV, f.C_VEZETEKNEV + ' ' + f.C_UTONEV){oktatasiAzonositoOrder}");
if (tanevId.IsEntityId())
{
paramsList.Add(new CommandParameter("pTanevID", tanevId));
}
var ds = GetData(commandText.ToString(), paramsList);
return ds;
}
public DataSet GetTanarokByTanitottOsztalyForDDL(int osztalyId, int tanevId, bool oktatasiAzonositoval = false)
{
List<CommandParameter> parameters = new List<CommandParameter>();
parameters.Add(new CommandParameter("pOsztalyID", osztalyId));
parameters.Add(new CommandParameter("pTanevID", tanevId));
var commandText = string.Format(@"
SELECT DISTINCT
felh.ID AS ID,
felh.C_NYOMTATASINEV {0} AS Nev,
IIF(felh.C_NEVSORREND = 'T', felh.C_UTONEV + ' ' + felh.C_VEZETEKNEV, felh.C_VEZETEKNEV + ' ' + felh.C_UTONEV) as OrderName
FROM T_FOGLALKOZAS_OSSZES f
JOIN T_FELHASZNALO_OSSZES felh on felh.ID = f.C_TANARID
WHERE
f.TOROLT = 'F'
AND f.C_TANEVID = :pTanevID
AND felh.TOROLT = 'F'
AND f.C_OSZTALYCSOPORTID = :pOsztalyID
ORDER BY OrderName
", oktatasiAzonositoval ? " + isnull(' (' + f.c_oktatasiazonosito + ')','')" : "");
var ds = this.GetData(commandText, parameters);
return ds;
}
public DataSet GetOsztalyfonokOsztalyfonokhelyettesForDDL(int tanevId, int intezmenyId)
{
var paramsList = new List<CommandParameter>();
var commandText = @"SELECT DISTINCT f.ID ID, f.C_NYOMTATASINEV Nev
-- CASE f.ID
-- WHEN o.C_OSZTALYFONOKID THEN 'Osztályfőnök'
-- WHEN o.C_OFOHELYETTESID THEN 'Osztályfőnök helyettes'
-- END Osztalyfonok
FROM T_FELHASZNALO_OSSZES f
INNER JOIN T_OSZTALY_OSSZES o ON o.C_OSZTALYFONOKID = f.ID OR o.C_OFOHELYETTESID = f.ID
WHERE o.C_ALTANEVID = :pTanevId AND o.C_ALINTEZMENYID = :pIntezmenyId AND o.TOROLT = 'F'
ORDER BY f.C_NYOMTATASINEV";
paramsList.Add(new CommandParameter("pTanevId", tanevId));
paramsList.Add(new CommandParameter("pIntezmenyId", intezmenyId));
var ds = GetData(commandText, paramsList);
return ds;
}
public void Insert(IPedagogusEletpalyamodell dto)
{
var entity = (PedagogusEletpalyamodell)dto;
var h = DalHelper.EletpalyaModell();
h.Insert(entity);
DalHelper.Commit();
}
public void UpdateAlkalmazottEletpalyaModell(IPedagogusEletpalyamodell dto)
{
var entity = (PedagogusEletpalyamodell)dto;
var h = DalHelper.EletpalyaModell();
h.FullUpdate(entity);
DalHelper.Commit();
}
public void FullUpdate(IPedagogusEletpalyamodell dto)
{
var entity = (PedagogusEletpalyamodell)dto;
entity.FullUpdate();
DalHelper.Commit();
}
public void FullUpdate(IAlkalmazott alkalmazott, IMunkaugyiAdatok adatok)
{
var alkalmazottEntity = alkalmazott as Alkalmazott;
var munkaugyiAdatokEntity = adatok as MunkaugyiAdatok;
alkalmazottEntity.FullUpdate();
munkaugyiAdatokEntity.FullUpdate();
FollowUp(alkalmazottEntity);
DalHelper.Commit();
}
public DataSet GetPedagogusokOktatasiAzonositoja(int intezmenyId, int tanevId, bool torolt = false)
{
using (SDACommand command = new SDACommand())
{
var paramlist = new List<CommandParameter>
{
new CommandParameter("pTorolt", torolt ? 'T' : 'F'),
new CommandParameter("pIntezmenyId", intezmenyId),
new CommandParameter("pTanevId", tanevId)
};
var commandText = @"
SELECT DISTINCT
felhasznalo.ID C_PEDAGOGUSID,
felhasznalo.C_OKTATASIAZONOSITO C_OKTATASIAZONOSITO
FROM
T_FELHASZNALO_OSSZES felhasznalo
WHERE
felhasznalo.C_INTEZMENYID = :pIntezmenyId AND
felhasznalo.C_TANEVID = :pTanevId AND
felhasznalo.TOROLT = :pTorolt";
DataSet ds = GetData(commandText, paramlist);
return ds;
}
}
public string GetTanarNev(int id)
{
using (SDACommand command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.Parameters.Add(nameof(id), id);
command.CommandText = $@"
SELECT
C_NYOMTATASINEV
FROM
T_FELHASZNALO_OSSZES
WHERE
ID = @{nameof(id)}
";
var result = command.ExecuteScalar();
return result != DBNull.Value ? result.ToString() : string.Empty;
}
}
public int GetSzerepkorId(int jog, int tanevId)
{
using (SDACommand command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.Parameters.Add(nameof(jog), jog);
command.Parameters.Add(nameof(tanevId), tanevId);
command.CommandText = $@"
SELECT TOP 1
ID
FROM
T_SZEREPKOR_OSSZES
WHERE
C_SZEREPKORTIPUS = @{nameof(jog)} AND
C_TANEVID = @{nameof(tanevId)} AND
TOROLT = 'F'
";
var result = command.ExecuteScalar();
return result != DBNull.Value ? Convert.ToInt32(result) : 0;
}
}
public DataSet GetUtolsoBeNemIrtOrak(int intezmenyId, int tanevId, int tanarId, int darab)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetUtolsoBeNemIrtOrak";
command.Parameters.Add("pIntezmenyId", intezmenyId);
command.Parameters.Add("pTanevId", tanevId);
command.Parameters.Add("pTanarId", tanarId);
command.Parameters.Add("pDarab", darab);
var ds = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
return ds;
}
}
public DataSet GetKiirtHelyettesitesek(int intezmenyId, int tanevId, int tanarId, int darab)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetKiirtHelyettesitesek";
command.Parameters.Add("pIntezmenyId", intezmenyId);
command.Parameters.Add("pTanevId", tanevId);
command.Parameters.Add("pTanarId", tanarId);
command.Parameters.Add("pDarab", darab);
var ds = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
return ds;
}
}
public DataSet GetBukasokSzama(int tanevId, int tanarId, int darab, double bukasAtlag)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetBukasokSzama";
command.Parameters.Add("pTanevId", tanevId);
command.Parameters.Add("pTanarId", tanarId);
command.Parameters.Add("pDarab", darab);
command.Parameters.Add("pBukasAtlag", bukasAtlag);
var ds = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
return ds;
}
}
public DataSet GetMulasztasokSzama(int tanevId, int tanarId, bool isSzuperOsztalyFonok, int darab)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetMulasztasokSzama";
command.Parameters.Add("pTanevId", tanevId);
command.Parameters.Add("pTanarId", tanarId);
command.Parameters.Add("pIsSzuperOsztalyFonok", isSzuperOsztalyFonok);
command.Parameters.Add("pDarab", darab);
command.Parameters.Add("pMulasztasTipusKeses", (int)MulasztasTipusEnum.keses);
command.Parameters.Add("pMulasztasTipusHianyzas", (int)MulasztasTipusEnum.hianyzas);
var ds = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
return ds;
}
}
public DataSet GetTanarokByOktNevKategoria(int tanevId, OktNevelesiKategoriaEnum? oktNevKategoria, int? felhasznaloId = null)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetTanarokByOktNevKategoria";
command.Parameters.Add("pTanevId", tanevId);
if (oktNevKategoria.HasValue)
{
command.Parameters.Add("pOktNevKatTipus", (int)oktNevKategoria);
}
if (felhasznaloId.HasValue)
{
command.Parameters.Add("pFelhasznaloId", felhasznaloId);
}
var ds = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
var dv = ds.Tables[0].DefaultView;
dv.Sort = "C_VEZETEKNEV, C_UTONEV";
var dt = dv.ToTable();
ds.Tables.RemoveAt(0);
ds.Tables.Add(dt);
return ds;
}
}
public DataSet GetAlkalmazottNameBirthdays(int tanevId, bool isDualisKepzohelyiOktatok = false)
{
var commandText = $@"
SELECT
T_ALKALMAZOTT_OSSZES.ID AS ID,
LTRIM(T_FELHASZNALO_OSSZES.C_NYOMTATASINEV) AS Nev,
T_FELHASZNALO_OSSZES.C_SZULETESIDATUM AS SzuletesiDatum
FROM T_ALKALMAZOTT_OSSZES
INNER JOIN T_FELHASZNALO_OSSZES on T_ALKALMAZOTT_OSSZES.ID = T_FELHASZNALO_OSSZES.ID AND T_FELHASZNALO_OSSZES.TOROLT = 'F'
INNER JOIN T_MUNKAUGYIADATOK_OSSZES mua ON mua.C_ALKALMAZOTTID = T_ALKALMAZOTT_OSSZES.ID AND mua.TOROLT = 'F'
WHERE T_ALKALMAZOTT_OSSZES.TOROLT = 'F'
AND T_ALKALMAZOTT_OSSZES.C_ALTANEVID = :pTanevId
AND mua.C_SZERVEZETID IS {(isDualisKepzohelyiOktatok ? "NOT" : "")} NULL
ORDER BY IIF(T_FELHASZNALO_OSSZES.C_NEVSORREND = 'T', T_FELHASZNALO_OSSZES.C_UTONEV + ' ' + T_FELHASZNALO_OSSZES.C_VEZETEKNEV, T_FELHASZNALO_OSSZES.C_VEZETEKNEV + ' ' + T_FELHASZNALO_OSSZES.C_UTONEV)";
var parameters = new List<CommandParameter>();
parameters.Add(new CommandParameter("pTanevId", tanevId));
parameters.Add(new CommandParameter("pIsDualisKepzohelyiOktatok", isDualisKepzohelyiOktatok.ToSDABoolean()));
DataSet ds = GetData(commandText, parameters);
return ds;
}
public int GetTanarId(DateTime datum, int? oraszam, int osztalyCsoportId, int tantargyId)
{
using (var sdaCommand = new SDACommand())
{
sdaCommand.Connection = UserContext.Instance.SDAConnection;
sdaCommand.Transaction = UserContext.Instance.SDATransaction;
sdaCommand.CommandType = CommandType.StoredProcedure;
sdaCommand.CommandText = "uspGetTanarId";
sdaCommand.Parameters.Add("pDatum", datum);
sdaCommand.Parameters.Add("pOraszam", oraszam);
sdaCommand.Parameters.Add("pOsztalyCsoportId", osztalyCsoportId);
sdaCommand.Parameters.Add("pTantargyId", tantargyId);
var ds = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = sdaCommand;
adapter.Fill(ds);
}
return Convert.ToInt32(ds.Tables[0].Rows[0]["TanarId"]);
}
}
}
}