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

832 lines
37 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Kreta.Core;
using Kreta.DataAccess.Interfaces;
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 OsztalyDal : DataAccessBase, IOsztalyDal
{
public OsztalyDal(DalHandler handler, GridParameters parameters)
: base(handler, parameters)
{
}
public OsztalyDal(DalHandler handler) : base(handler)
{
}
public DataSet OsztalyExport(OsztalySearchPco pco, int tanevId, DateTime? aktualisTanevElsoTanitasiNapja = null)
{
var paramsList = new List<CommandParameter>()
{
new CommandParameter(nameof(tanevId), tanevId),
new CommandParameter(nameof(aktualisTanevElsoTanitasiNapja), aktualisTanevElsoTanitasiNapja)
};
var kovetkezoTanev = aktualisTanevElsoTanitasiNapja > DateTime.Now;
var command = new StringBuilder($@"select T_OSZTALY_OSSZES.ID
,T_OSZTALYCSOPORT_OSSZES.C_NEV as OsztalyNev
,T_OSZTALYCSOPORT_OSSZES.C_VEGZOSEVFOLYAM as VegzosEvFolyam
,T_TANEV_OSSZES.C_NEV as TanEv
,T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA as Evfolyam
,T_FELHASZNALO_OSSZES.C_NYOMTATASINEV as OsztalyFonok
,ISNULL(TanulokSzama,0) as TanulokSzama
,T_TANTERV_OSSZES.C_NEV as TanTerv
,T_TEREM_OSSZES.C_NEV TeremNev
,T_DICTIONARYITEMBASE_OSSZES.C_VALUE EvfolyamSorszama
,T_OSZTALYCSOPORT_OSSZES.C_MUVESZETIAGID AS MuveszetiAgId
from T_OSZTALY_OSSZES
inner join T_OSZTALYCSOPORT_OSSZES on T_OSZTALYCSOPORT_OSSZES.ID = T_OSZTALY_OSSZES.ID and T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F'
left join T_TEREM_OSSZES on T_TEREM_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TEREMID and T_TEREM_OSSZES.TOROLT = 'F'
left join T_FELHASZNALO_OSSZES on T_FELHASZNALO_OSSZES.ID = T_OSZTALY_OSSZES.C_OSZTALYFONOKID and T_FELHASZNALO_OSSZES.TOROLT = 'F'
left join T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID and T_TANEV_OSSZES.TOROLT = 'F'
left join T_TANTERV_OSSZES on T_TANTERV_OSSZES.ID = T_OSZTALY_OSSZES.C_TANTERVID and T_TANTERV_OSSZES.TOROLT = 'F'
left join T_DICTIONARYITEMBASE_OSSZES on T_DICTIONARYITEMBASE_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA
and T_DICTIONARYITEMBASE_OSSZES.C_INTEZMENYID = T_OSZTALYCSOPORT_OSSZES.C_INTEZMENYID
and T_DICTIONARYITEMBASE_OSSZES.C_TANEVID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID
and T_DICTIONARYITEMBASE_OSSZES.TOROLT = 'F'
left join
(
SELECT COUNT(DISTINCT [C_TANULOID]) AS TanulokSzama
,[C_OSZTALYCSOPORTID]
FROM [T_TANULOCSOPORT_OSSZES]
WHERE TOROLT='F'
AND C_BELEPESDATUM <= " + (!kovetkezoTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(aktualisTanevElsoTanitasiNapja)}) ") + $@"
AND (C_KILEPESDATUM IS NULL or C_KILEPESDATUM > CONVERT(DATE, " + (!kovetkezoTanev ? @"GETDATE() " : $@" CONVERT(date,@{nameof(aktualisTanevElsoTanitasiNapja)}) ") + $@"))
GROUP BY [C_OSZTALYCSOPORTID]) AS TC
ON TC.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_OSSZES.ID
where T_OSZTALY_OSSZES.TOROLT = 'F'
and T_OSZTALY_OSSZES.C_ALTANEVID = @{nameof(tanevId)} ");
// whereClause kifejtése:
command.Append(pco.ToWhereClause(paramsList));
return this.GetData(command.ToString(), paramsList, "Evfolyam,MuveszetiAgId", "VegzosEvFolyam");
}
public DataSet GetOsztalyokForDDL(bool kellTanev = false, int? tanarId = null)
{
var commandText = @"Select DISTINCT
T_OSZTALYCSOPORT_OSSZES.ID,
T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA Evfolyam,"
+ (kellTanev ? " T_OSZTALYCSOPORT_OSSZES.C_NEV + ' (' + T_TANEV_OSSZES.C_NEV + ')' Nev " : " T_OSZTALYCSOPORT_OSSZES.C_NEV Nev ") +
@"from T_OSZTALYCSOPORT_OSSZES
inner join T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID " +
(tanarId.HasValue ? @"
INNER JOIN T_FOGLALKOZAS_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID
" : " ") +
@"where T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F'
and T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = @OktNevKatTipus
and T_TANEV_OSSZES.TOROLT = 'F'
and (T_TANEV_OSSZES.C_AKTIV = 'T' or T_TANEV_OSSZES.C_KOVETKEZO = 'T')" +
(tanarId.HasValue ? @"
AND T_FOGLALKOZAS_OSSZES.C_TANARID = :pTanarID
" : " ");
var param = new List<CommandParameter>();
param.Add(new CommandParameter("OktNevKatTipus", (int)OktNevelesiKategoriaEnum.NevelesOktatas));
if (tanarId.HasValue)
{
param.Add(new CommandParameter("pTanarID", tanarId.Value));
}
var ds = this.GetData(commandText, param);
return ds;
}
public DataSet GetOnlyOsztalyokForDDL(int tanevId, int? tanarId = default(int?), OktNevelesiKategoriaEnum? feladatKategoria = null, bool forSzirStatTanulo = false)
{
var commandText = @"
Select DISTINCT
CASE WHEN T_OSZTALYCSOPORT_OSSZES.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(T_OSZTALYCSOPORT_OSSZES.C_NEV,9) AS INT) ELSE 2147483647 END NumberOrder,
CASE WHEN LEFT(T_OSZTALYCSOPORT_OSSZES.C_NEV, 1) BETWEEN '0' AND '9' AND T_OSZTALYCSOPORT_OSSZES.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(T_OSZTALYCSOPORT_OSSZES.C_NEV, 1, PATINDEX('%[^0-9]%', T_OSZTALYCSOPORT_OSSZES.C_NEV) - 1),9) AS INT) ELSE 2147483647 END NumberAndTextOrder,
T_OSZTALYCSOPORT_OSSZES.ID,
dic.C_ORDER,
T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA Evfolyam,
T_OSZTALYCSOPORT_OSSZES.C_NEV Nev
from T_OSZTALYCSOPORT_OSSZES
inner join T_OSZTALY_OSSZES on T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID
inner join T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID
inner join T_DICTIONARYITEMBASE_OSSZES dic on dic.ID = T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA and dic.TOROLT = 'F' AND dic.C_TANEVID = T_TANEV_OSSZES.ID
" +
(forSzirStatTanulo ? $@"
INNER JOIN T_FELADATELLATASIHELY_OSSZES fhely ON fhely.C_TANEVID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID AND fhely.TOROLT = 'F'
AND fhely.ID = T_OSZTALYCSOPORT_OSSZES.C_FELADATELLATASIHELYID
AND fhely.C_OKTATASINEVELESIFELADATTIPUS NOT IN ({(int)OktatasiNevelesiFeladatEnum.kollegium}, {(int)OktatasiNevelesiFeladatEnum.kollegium_nemzetisegi_})" : " ") +
(tanarId.HasValue ? @"
INNER JOIN T_FOGLALKOZAS_OSSZES ON T_OSZTALY_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID" : " ") +
@"
where
T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F'
and T_TANEV_OSSZES.TOROLT = 'F' and T_OSZTALYCSOPORT_OSSZES.C_TANEVID = :pTanevId
and (T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = @OktNevKatTipus OR @OktNevKatTipus IS NULL) " +
(tanarId.HasValue ? @"
AND T_FOGLALKOZAS_OSSZES.C_TANARID = :pTanarID
" : " ") +
@" ORDER BY NumberOrder ASC, NumberAndTextOrder ASC, T_OSZTALYCSOPORT_OSSZES.C_NEV ASC ";
var param = new List<CommandParameter>();
param.Add(new CommandParameter("pTanevId", tanevId));
if (feladatKategoria.HasValue)
{ param.Add(new CommandParameter("OktNevKatTipus", (int)feladatKategoria)); }
else
{ param.Add(new CommandParameter("OktNevKatTipus", DBNull.Value)); }
if (tanarId.HasValue)
{
param.Add(new CommandParameter("pTanarID", tanarId.Value));
}
var ds = this.GetData(commandText, param);
return ds;
}
public DataSet GetOsztalyCsoportjai(int osztalyId, OktNevelesiKategoriaEnum kategoria)
{
var param = new List<CommandParameter>
{
new CommandParameter("pKategoriaId", (int)kategoria),
new CommandParameter("pOsztalyId", osztalyId)
};
const string commandText = @"
SELECT DISTINCT
ocs.ID AS ID
,ocs.C_NEV AS CsopNev
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_TANULOCSOPORT_OSSZES tcs2 ON tcs2.C_TANULOID = tcs.C_TANULOID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs2.C_OSZTALYCSOPORTID
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID
WHERE tcs.C_OSZTALYCSOPORTID = :pOsztalyId
AND tcs.TOROLT = 'F'
AND tcs2.TOROLT = 'F'
AND ocs.C_FELADATKATEGORIAID = :pKategoriaId
";
DataSet ds = GetData(commandText, param);
return ds;
}
public DataSet OsztalyKereses(OsztalySearchPco pco, int? tanevId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetOsztalyData";
command.Parameters.Add("pSearchDate", pco.SearchDate);
command.Parameters.Add("pTanevId", tanevId);
var ds = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
SetDNAME(ds.Tables[0], "Evfolyam,MuveszetiAgId");
SetBoolFields(ds.Tables[0], "VegzosEvFolyam");
return ds;
}
}
public int GetOsztalyfonokByOsztalyId(int osztalyId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandText = @"select
C_OSZTALYFONOKID
from T_OSZTALY
where TOROLT = 'F'
and ID = :pOsztalyID";
command.Parameters.Add("pOsztalyID", osztalyId);
var result = command.ExecuteScalar();
return result != null && result != DBNull.Value && (int)result > 0 ? (int)result : -1;
}
}
public DataSet GetOsztalyokByTanevForDDL(int tanevId, int? feladatKategoriaId = null)
{
var pList = new List<CommandParameter>();
pList.Add(new CommandParameter("pTanevId", tanevId));
if (feladatKategoriaId.IsEntityId())
pList.Add(new CommandParameter(nameof(feladatKategoriaId), feladatKategoriaId));
else
pList.Add(new CommandParameter(nameof(feladatKategoriaId), DBNull.Value));
var commandText = $@"
Select
T_OSZTALYCSOPORT_OSSZES.ID,
T_OSZTALYCSOPORT_OSSZES.C_NEV Nev,
T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA Evfolyam
from T_OSZTALYCSOPORT_OSSZES
join T_OSZTALY_OSSZES on T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID
join T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID
join T_DICTIONARYITEMBASE dic on dic.ID = T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA and dic.TOROLT = 'F'
where
T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F'
and T_TANEV_OSSZES.TOROLT = 'F'
and T_TANEV_OSSZES.ID = :pTanevId
AND (T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = @{nameof(feladatKategoriaId)} OR @{nameof(feladatKategoriaId)} IS NULL)
ORDER BY Nev ASC, dic.C_ORDER ASC
";
var ds = this.GetData(commandText, pList);
return ds;
}
public IOsztaly Get()
{
return Osztaly.GiveAnInstance();
}
[Obsolete("Tároltra kell cserélni minél hamarabb")]
public IOsztaly GetSpecific(string condition, int tanevId)
{
var entity = Osztaly.LoadWithFilter(condition + $" AND C_ALTANEVID = {tanevId}").FirstOrDefault();
return entity;
}
public IOsztaly Get(int id)
{
var entity = Osztaly.GiveAnInstance();
entity.LoadByID(id);
return entity;
}
public void Insert(IOsztaly dto)
{
var entity = dto as Osztaly;
entity.Importalt = false;
entity.Insert();
dto.ID = entity.ID;
DalHelper.Commit();
}
public void FullUpdate(IOsztaly dto)
{
var original = Get(dto.ID);
var isOrarendUpdateneeded = (original.VegzosEvfolyam != dto.VegzosEvfolyam || original.Keresztfeleves != dto.Keresztfeleves) && dto.OrarendiOra.Count > 0;
var entity = dto as Osztaly;
entity.Importalt = false;
entity.FullUpdate();
if (isOrarendUpdateneeded)
{
DalHelper.OrarendiOra().UpdateOrarend(dto.IntezmenyId, dto.TanevId, null, null, null, dto.ID);
}
DalHelper.Commit();
}
public void Delete(IOsztaly dto, int intezmenyId, int tanevId, bool updateTanoraEvesSorszam = true)
{
var entity = dto as Osztaly;
entity.Importalt = false;
var tanuloCsoportDal = DalHelper.TanuloCsoport();
foreach (var tanuloCsoport in entity.Tanulo)
{
tanuloCsoportDal.Delete(tanuloCsoport.ID);
}
entity.Tanmenet.RemoveAll();
entity.TanevRendje.ToList().ForEach(tr =>
{
tr.OsztalyCsoport.Remove(entity);
if (tr.OsztalyCsoport.Count == 0)
{
tr.Delete();
}
});
entity.TanuloEsemeny.ToList().ForEach(te =>
{
te.Tanulo.RemoveAll();
te.OsztalyCsoport.Remove(entity);
if (te.OsztalyCsoport.Count == 0)
{
te.Delete();
}
});
DeleteOsztalyCsoportTanuloEsemny(entity.ID);
entity.Hetes.DeleteAll();
entity.DKT_Feladat.DeleteAll();
var oraSorszamozasHalmazDAL = DalHelper.OraSorszamozasHalmaz();
foreach (var osszerendeles in entity.OraSorszamozasHalmazOsszerendeles)
{
oraSorszamozasHalmazDAL.DeleteOsszerendeles(osszerendeles.ID, intezmenyId, tanevId, updateTanoraEvesSorszam: false);
}
entity.Delete();
if (updateTanoraEvesSorszam)
{
DalHelper.TanitasiOra().UpdateTanitasiOraEvesSorszamTeljesTanev(intezmenyId, tanevId);
}
DalHelper.Commit();
}
public void UpdateOsztalyTanuloiSzakkepzesesAdatok(int osztalyId, SzakkepzesesAdatokPCO szakosAdatok)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "sp_UpdateOsztalyTanuloiSzakkepzesesAdatok";
command.Parameters.Add(nameof(osztalyId), osztalyId);
command.Parameters.Add(nameof(szakosAdatok.Szakmacsoport), szakosAdatok.Szakmacsoport);
command.Parameters.Add(nameof(szakosAdatok.Agazat), szakosAdatok.Agazat);
command.Parameters.Add(nameof(szakosAdatok.Szakkepesites), szakosAdatok.Szakkepesites);
command.Parameters.Add(nameof(szakosAdatok.Reszszakkepesites), szakosAdatok.Reszszakkepesites);
command.ExecuteNonQuery();
DalHelper.Commit();
}
}
public DataSet GetOsztalyNKTesSZKTSzakkepzesesAdatok(int osztalyId)
{
var param = new List<CommandParameter>() { new CommandParameter(nameof(osztalyId), osztalyId) };
var commandText = $@"
SELECT
osztaly.C_SZAKMACSOPORT AS Szakmacsoport,
osztaly.C_AGAZAT AS Agazat,
osztaly.C_SZAKKEPESITES AS Szakkepesites,
osztaly.C_RESZSZAKKEPESITES AS Reszszakkepesites,
osztaly.C_SZAKIRANYNKTTIPUSID AS SzakiranyNKTTipus,
osztaly.C_SZAKKEPESITESNKTTIPUSID AS SzakkepesitesNKTTipus,
osztaly.C_TANULMANYITERULETNKTTIPUSID AS TanulmanyiTeruletNKTTipus
FROM
T_OSZTALY osztaly
WHERE
osztaly.ID = @{nameof(osztalyId)}
";
var ds = this.GetData(commandText, param);
return ds;
}
public DataSet GetOsztalySzakkepzoAdatok(int osztalyId)
{
var param = new List<CommandParameter>() { new CommandParameter(nameof(osztalyId), osztalyId) };
var commandText = $@"
SELECT
osztaly.C_JOGVISZONYTIPUSID AS Jogviszony
FROM T_OSZTALY osztaly
WHERE osztaly.ID = @{nameof(osztalyId)}
";
var ds = this.GetData(commandText, param);
return ds;
}
public DataSet GetOsztalyDataSet(int tanevId, int? oktNevelesiKategoriaId = null)
{
var commandParameterList = new List<CommandParameter>
{
new CommandParameter("pTanevId", tanevId),
oktNevelesiKategoriaId.IsEntityId() ?
new CommandParameter("pOktNevelesiKategoriaId", oktNevelesiKategoriaId.Value) :
new CommandParameter("pOktNevelesiKategoriaId", DBNull.Value)
};
string commandText = @"
SELECT
osztaly.ID as Id
,osztalyCsoport.C_NEV as Nev
,osztalyCsoport.C_IMPORTALT as Importalt
,ISNULL(osztaly.C_OSZTALYFONOKID, osztaly.C_OFOHELYETTESID) as OsztalyfonokId
,osztalyCsoport.C_TEREMID as TeremId
FROM T_OSZTALY_OSSZES osztaly
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON osztalyCsoport.TOROLT = 'F'
AND osztalyCsoport.C_TANEVID = osztaly.C_ALTANEVID
AND osztalyCsoport.ID = osztaly.ID
AND (@pOktNevelesiKategoriaId IS NULL OR osztalyCsoport.C_FELADATKATEGORIAID = @pOktNevelesiKategoriaId)
WHERE osztaly.TOROLT = 'F'
AND osztaly.C_ALTANEVID = :pTanevId";
return GetData(commandText, commandParameterList);
}
public DataSet GetOsztalyokForDDL(int? tanevId, int? tanarId = null, bool? szuperOsztalyfonok = null, OktNevelesiKategoriaEnum? feladatKategoria = null)
{
/*TODO:Tobb Osztaly*//*OM-1628*/
var commandText = @"
Select DISTINCT
CASE WHEN T_OSZTALYCSOPORT_OSSZES.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(T_OSZTALYCSOPORT_OSSZES.C_NEV,9) AS INT) ELSE 2147483647 END NumberOrder,
CASE WHEN LEFT(T_OSZTALYCSOPORT_OSSZES.C_NEV, 1) BETWEEN '0' AND '9' AND T_OSZTALYCSOPORT_OSSZES.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(T_OSZTALYCSOPORT_OSSZES.C_NEV, 1, PATINDEX('%[^0-9]%', T_OSZTALYCSOPORT_OSSZES.C_NEV) - 1),9) AS INT) ELSE 2147483647 END NumberAndTextOrder,
T_OSZTALYCSOPORT_OSSZES.ID,
dic.C_ORDER,
T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA Evfolyam,
T_OSZTALYCSOPORT_OSSZES.C_NEV Nev
from T_OSZTALYCSOPORT_OSSZES
inner join T_OSZTALY_OSSZES on T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID
inner join T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID
inner join T_DICTIONARYITEMBASE_OSSZES dic on dic.ID = T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA and dic.TOROLT = 'F' " + (tanevId.IsEntityId() ? @"and dic.C_TANEVID = :pTanevId" : " ") + @"
where
T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F'
and (T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = @OktNevKatTipus OR @OktNevKatTipus IS NULL)
and T_TANEV_OSSZES.TOROLT = 'F' " +
(tanevId.IsEntityId() ? @"and T_OSZTALYCSOPORT_OSSZES.C_TANEVID = :pTanevId" : " ") + @"
and (T_TANEV_OSSZES.C_AKTIV = 'T' or T_TANEV_OSSZES.C_KOVETKEZO = 'T')" +
(tanarId.HasValue && szuperOsztalyfonok.HasValue && !szuperOsztalyfonok.Value ? @"
AND (T_OSZTALY_OSSZES.C_OSZTALYFONOKID = :pTanarID OR T_OSZTALY_OSSZES.C_OFOHELYETTESID = :pTanarID)
" : " ") +
@" ORDER BY NumberOrder ASC, NumberAndTextOrder ASC, T_OSZTALYCSOPORT_OSSZES.C_NEV ASC ";
var param = new List<CommandParameter>();
if (feladatKategoria.HasValue)
{ param.Add(new CommandParameter("OktNevKatTipus", (int)feladatKategoria)); }
else
{ param.Add(new CommandParameter("OktNevKatTipus", DBNull.Value)); }
if (tanevId.IsEntityId())
{
param.Add(new CommandParameter("pTanevId", tanevId));
}
if (tanarId.HasValue)
{
param.Add(new CommandParameter("pTanarID", tanarId.Value));
}
var ds = this.GetData(commandText, param);
return ds;
}
public DataSet GetOsztalyokCsoportokForDDL(int? tanevId, int? tanarId = null, bool? szuperOsztalyfonok = false, OktNevelesiKategoriaEnum? feladatKategoria = null)
{
/*TODO:Tobb Osztaly*//*OM-1628*/
var commandText = @"
Select DISTINCT
CASE WHEN T_OSZTALYCSOPORT_OSSZES.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(T_OSZTALYCSOPORT_OSSZES.C_NEV,9) AS INT) ELSE 2147483647 END NumberOrder,
CASE WHEN LEFT(T_OSZTALYCSOPORT_OSSZES.C_NEV, 1) BETWEEN '0' AND '9' AND T_OSZTALYCSOPORT_OSSZES.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(T_OSZTALYCSOPORT_OSSZES.C_NEV, 1, PATINDEX('%[^0-9]%', T_OSZTALYCSOPORT_OSSZES.C_NEV) - 1),9) AS INT) ELSE 2147483647 END NumberAndTextOrder,
T_OSZTALYCSOPORT_OSSZES.ID,
dic.C_ORDER,
T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA Evfolyam,
T_OSZTALYCSOPORT_OSSZES.C_NEV Nev,
CASE WHEN cs.ID IS NULL THEN 0 ELSE 1 END Csoport
from T_OSZTALYCSOPORT_OSSZES
inner join T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID
inner join T_DICTIONARYITEMBASE_OSSZES dic on dic.ID = T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA and dic.TOROLT = 'F' " + (tanevId.IsEntityId() ? @"and dic.C_TANEVID = :pTanevId" : " ") + @"
LEFT JOIN T_OSZTALY_OSSZES on T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID
LEFT JOIN T_CSOPORT_OSSZES cs ON T_OSZTALYCSOPORT_OSSZES.ID = cs.ID
where
T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F'
and (T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = @OktNevKatTipus OR @OktNevKatTipus IS NULL)
and T_TANEV_OSSZES.TOROLT = 'F' " +
(tanevId.IsEntityId() ? @"and T_OSZTALYCSOPORT_OSSZES.C_TANEVID = :pTanevId" : " ") + @"
and (T_TANEV_OSSZES.C_AKTIV = 'T' or T_TANEV_OSSZES.C_KOVETKEZO = 'T')" +
(tanarId.HasValue && szuperOsztalyfonok.HasValue ? @"
AND (" + (szuperOsztalyfonok.Value ? "cs.ID IS NULL OR" : "T_OSZTALY_OSSZES.C_OSZTALYFONOKID = :pTanarID OR T_OSZTALY_OSSZES.C_OFOHELYETTESID = :pTanarID OR") + @" cs.C_CSOPORTVEZETOID = :pTanarID)
" : " ") +
@" ORDER BY Csoport ASC, NumberOrder ASC, NumberAndTextOrder ASC, T_OSZTALYCSOPORT_OSSZES.C_NEV ASC ";
var param = new List<CommandParameter>();
if (feladatKategoria.HasValue)
{ param.Add(new CommandParameter("OktNevKatTipus", (int)feladatKategoria)); }
else
{ param.Add(new CommandParameter("OktNevKatTipus", DBNull.Value)); }
if (tanevId.IsEntityId())
{
param.Add(new CommandParameter("pTanevId", tanevId));
}
if (tanarId.HasValue)
{
param.Add(new CommandParameter("pTanarID", tanarId.Value));
}
var ds = this.GetData(commandText, param);
return ds;
}
public DataSet GetOsztalyEsBontottCsoportjai(int osztalyId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.Text;
command.CommandText = @"
SELECT kocs.ID AS Id
FROM fnGetKapcsolodoOsztalycsoportok(@osztalyCsoportId) kocs
LEFT JOIN T_CSOPORT cs ON cs.ID = kocs.ID AND cs.C_OSZTALYBONTASID IS NULL
WHERE cs.ID IS NULL
";
command.Parameters.Add("osztalyCsoportId", SDADBType.Int).Value = osztalyId;
var ds = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
return ds;
}
}
/// <summary>
/// Törli az osztály/csoporthoz tartozó rendszerüzenet felhasználós tanulóeseményeket.
/// </summary>
private void DeleteOsztalyCsoportTanuloEsemny(int osztalyCsoportId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.Text;
command.CommandText = "DELETE FROM T_OSZTALYCSOPORT_TANULOESEMENY WHERE C_OSZTALYCSOPORTID = :pOsztalyCsoportId";
command.Parameters.Add("pOsztalyCsoportId", osztalyCsoportId);
command.ExecuteNonQuery();
}
}
public DataSet GetOsztalyTanuloinakKepzesiJellemzoi(int tanevId, int intezmenyId, int osztalyId, int jegyzekTipus, bool isAktivTanev)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetOsztalyTanuloinakKepzesiJellemzoi";
command.Parameters.Add("pTanevId", tanevId);
command.Parameters.Add("pIntezmenyId", intezmenyId);
command.Parameters.Add("pOsztalyId", osztalyId);
command.Parameters.Add("pJegyzekTipus", jegyzekTipus);
command.Parameters.Add("pIsAktivTanev", isAktivTanev);
var ds = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
return ds;
}
}
public DataSet GetOsztalyTanuloiByKepzesiJellemzok(TanuloKepzesiJellemzoPco pco, int tanevId, int intezmenyId, bool isAktivTanev)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetOsztalyTanuloiByKepzesiJellemzok";
command.Parameters.Add("pTanevId", tanevId);
command.Parameters.Add("pIntezmenyId", intezmenyId);
command.Parameters.Add("pOsztalyId", pco.OsztalyId);
command.Parameters.Add("pJegyzekTipus", pco.JegyzekTipus);
command.Parameters.Add("pIsAktivTanev", isAktivTanev);
if (pco.AgazatId.HasValue)
{
command.Parameters.Add("pAgazatId", pco.AgazatId);
}
if (pco.AgazatUjSzktTipusId.HasValue)
{
command.Parameters.Add("pAgazatUjSzktTipusId", pco.AgazatUjSzktTipusId);
}
if (pco.ReszszakkepesitesId.HasValue)
{
command.Parameters.Add("pReszszakkepesitesId", pco.ReszszakkepesitesId);
}
if (pco.SzakiranyNktTipusId.HasValue)
{
command.Parameters.Add("pSzakiranyNktTipusId", pco.SzakiranyNktTipusId);
}
if (pco.SzakkepesitesId.HasValue)
{
command.Parameters.Add("pSzakkepesitesId", pco.SzakkepesitesId);
}
if (pco.SzakkepesitesNktTipusId.HasValue)
{
command.Parameters.Add("pSzakkepesitesNktTipusId", pco.SzakkepesitesNktTipusId);
}
if (pco.SzakmacsoportId.HasValue)
{
command.Parameters.Add("pSzakmacsoportId", pco.SzakmacsoportId);
}
if (pco.SzakmairanyTipusId.HasValue)
{
command.Parameters.Add("pSzakmairanyTipusId", pco.SzakmairanyTipusId);
}
if (pco.SzakmaTipusId.HasValue)
{
command.Parameters.Add("pSzakmaTipusId", pco.SzakmaTipusId);
}
if (pco.TanulmanyiTeruletNktTipusId.HasValue)
{
command.Parameters.Add("pTanulmanyiTeruletNktTipusId", pco.TanulmanyiTeruletNktTipusId);
}
if (pco.AgazatReszSzakmaTipusId.HasValue)
{
command.Parameters.Add("pAgazatReszSzakmaTipusId", pco.AgazatReszSzakmaTipusId);
}
if (pco.SzakmaReszSzakmaTipusId.HasValue)
{
command.Parameters.Add("pSzakmaReszSzakmaTipusId", pco.SzakmaReszSzakmaTipusId);
}
if (pco.ReszSzakmaTipusId.HasValue)
{
command.Parameters.Add("pReszSzakmaTipusId", pco.ReszSzakmaTipusId);
}
var ds = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
return ds;
}
}
public DataSet GetOsztalyTanuloinakSzamaKepzesiJellemzokSzerint(int osztalyId, int tanevId, int intezmenyId, bool isAktivTanev)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetOsztalyTanuloinakSzamaKepzesiJellemzokSzerint";
command.Parameters.Add("pTanevId", tanevId);
command.Parameters.Add("pIntezmenyId", intezmenyId);
command.Parameters.Add("pOsztalyId", osztalyId);
command.Parameters.Add("pIsAktivTanev", isAktivTanev);
var ds = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
return ds;
}
}
public DataSet GetOsztalyMunkarendSzama(int osztalyCsoportId, bool isAktivTanev)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetOsztalyTanuloinakMunkarendje";
command.Parameters.Add("pIsAktivTanev", isAktivTanev);
command.Parameters.Add("pOsztalyCsoportId", osztalyCsoportId);
var ds = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
return ds;
}
}
public DataSet GetOsztalyTanuloiByMunkarend(int osztalycsoportId, bool hasMunkarend, bool isAktivTanev)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetOsztalyTanuloiByMunkarend";
command.Parameters.Add("pOsztalycsoportId", osztalycsoportId);
command.Parameters.Add("pHasMunkarend", hasMunkarend);
command.Parameters.Add("pIsAktivTanev", isAktivTanev);
var ds = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(ds);
}
return ds;
}
}
public void UpdateOsztalyTanuloiReszszakepzesAdatokToNull(int osztalyId, int tanevId, int intezmenyId, int felhasznaloId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspUpdateOsztalyTanuloiReszszakepzesAdatok";
command.Parameters.Add("pOsztalyId", osztalyId);
command.Parameters.Add("pTanevId", tanevId);
command.Parameters.Add("pIntezmenyId", intezmenyId);
command.Parameters.Add("pModifier", felhasznaloId);
command.ExecuteNonQuery();
DalHelper.Commit();
}
}
public void UpdateOsztalySZMKKepviseloIdToNull(int osztalyId, int tanevId, int intezmenyId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.Text;
command.CommandText = @"UPDATE T_OSZTALY SET C_SZMKKEPVISELOID = NULL WHERE (ID = :pOsztalyId AND C_ALINTEZMENYID = :pIntezmenyId AND C_ALTANEVID = :pTanevId)";
command.Parameters.Add("pOsztalyId", osztalyId);
command.Parameters.Add("pTanevId", tanevId);
command.Parameters.Add("pIntezmenyId", intezmenyId);
command.ExecuteNonQuery();
DalHelper.Commit();
}
}
public void UpdateOsztalySZMKKepviseloHelyettesIdToNull(int osztalyId, int tanevId, int intezmenyId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.Text;
command.CommandText = @"UPDATE T_OSZTALY SET C_SZMKKEPVISELOHELYETTESID = NULL WHERE (ID = :pOsztalyId AND C_ALINTEZMENYID = :pIntezmenyId AND C_ALTANEVID = :pTanevId)";
command.Parameters.Add("pOsztalyId", osztalyId);
command.Parameters.Add("pTanevId", tanevId);
command.Parameters.Add("pIntezmenyId", intezmenyId);
command.ExecuteNonQuery();
DalHelper.Commit();
}
}
}
}