832 lines
37 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|
|
}
|