407 lines
16 KiB
C#
407 lines
16 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.ParameterClasses;
|
|
using Kreta.DataAccessManual.Util;
|
|
using Kreta.Enums.ManualEnums;
|
|
using Kreta.Framework;
|
|
using Kreta.Framework.Entities;
|
|
using Kreta.Framework.Util;
|
|
using SDA.DataProvider;
|
|
using SDA.Kreta.Entities;
|
|
|
|
namespace Kreta.DataAccessManual
|
|
{
|
|
internal class TeremDal : DataAccessBase, ITeremDal
|
|
{
|
|
public TeremDal(DalHandler handler) : base(handler)
|
|
{
|
|
}
|
|
|
|
public TeremDal(DalHandler handler, GridParameters parameters) : base(handler, parameters)
|
|
{
|
|
}
|
|
|
|
public DataSet GetTeremIdWithName(bool IsFromSzervezet, int? tanevId = null)
|
|
{
|
|
var commandParameterList = new List<CommandParameter>();
|
|
|
|
var commandText = @"
|
|
SELECT
|
|
t.id AS ID
|
|
,t.C_NEV AS Nev
|
|
,t.C_JELLEG AS Jelleg
|
|
FROM T_TEREM_OSSZES t
|
|
WHERE t.TOROLT = 'F'
|
|
AND t.C_AKTIV = 'T'
|
|
";
|
|
|
|
if (tanevId.IsEntityId())
|
|
{
|
|
commandText += @"
|
|
AND t.C_TANEVID = :pTanevId
|
|
";
|
|
commandParameterList.Add(new CommandParameter("pTanevId", tanevId));
|
|
}
|
|
commandText += @"
|
|
AND t.C_SZERVEZETID IS " + (IsFromSzervezet ? "NOT" : "") + @" NULL
|
|
";
|
|
|
|
var dataSet = GetData(commandText, commandParameterList, "Jelleg");
|
|
return dataSet;
|
|
}
|
|
|
|
#region Export
|
|
|
|
public DataSet GetTermekAdataiExcelExport(int tanevId, TeremSearchPCO teremSearchPCO)
|
|
{
|
|
var paramsList = new List<CommandParameter>
|
|
{
|
|
new CommandParameter("pTanevId", tanevId)
|
|
};
|
|
|
|
var command = new StringBuilder($@"
|
|
SELECT
|
|
terem.C_NEV as 'Helyiség név'
|
|
, jelleg.C_NAME as 'Helyiség jelleg'
|
|
, IIF(convert(varchar(20),terem.C_KAPACITAS,120) IS NULL, '-', convert(varchar(20),terem.C_KAPACITAS,120)) as 'Befogadóképesség'
|
|
, IIF(convert(varchar(20),terem.C_TERULET,120) IS NULL, '-', convert(varchar(20),terem.C_TERULET,120)) as 'Alapterület (nm)'
|
|
, mukodesi.C_NEV as 'Működési hely'
|
|
, IIF(terem.C_TEREMFELELOSID IS NULL, '-', felh.C_NYOMTATASINEV) as 'Teremfelelős'
|
|
, IIF(convert(varchar(20),terem.C_VIZSGAKAPACITAS,120) IS NULL, '-', convert(varchar(20),terem.C_VIZSGAKAPACITAS,120)) as 'Vizsga-befogadóképesség'
|
|
, IIF(terem.C_AKTIV = 'T', 'Igen', 'Nem') as 'Aktív'
|
|
, IIF(terem.C_TOBBORATLEHETTARTANI = 'T', 'Igen', 'Nem') as 'Egyszerre több órát lehet tartani'
|
|
, IIF(terem.C_WIFILEFEDETT = 'T', 'Igen', 'Nem') as 'Wifi elérhető'
|
|
, terem.C_MEGJEGYZES as 'Megjegyzés'
|
|
{(teremSearchPCO.IsSelectedTanev21_22OrLater ? @", IIF(terem.C_ISINTERNETKAPCSOLATELERHETO = 'T', 'Igen', 'Nem') as 'Internetkapcsolat elérhető'
|
|
, IIF(convert(varchar(20),terem.C_TANULOKSZAMARAHOZZAFERHINTER,120) IS NULL, '-', convert(varchar(20),terem.C_TANULOKSZAMARAHOZZAFERHINTER,120)) as 'Internetkapcsolattal rendelkező számítógép száma - tanulók számára hozzáférhető'
|
|
, IIF(convert(varchar(20),terem.C_PEDAGOGUSHOZZAFERHINTERNETES,120) IS NULL, '-', convert(varchar(20),terem.C_PEDAGOGUSHOZZAFERHINTERNETES,120)) as 'Internetkapcsolattal rendelkező számítógépek száma - pedagógus számítógépek'
|
|
, IIF(convert(varchar(20),terem.C_OKTCELRAHASZNALTSZAMITOGEPEK,120) IS NULL, '-', convert(varchar(20),terem.C_OKTCELRAHASZNALTSZAMITOGEPEK,120)) as 'Oktatási célra használt számítógépek száma'
|
|
, IIF(terem.C_ISINTERAKTTABLAVALMUNKAALLOM = 'T', 'Igen', 'Nem') as 'Interaktív táblával, kijelzővel, hozzá tartozó munkaállomással felszerelt'" : "")}
|
|
FROM T_TEREM_OSSZES terem
|
|
LEFT JOIN T_FELHASZNALO_OSSZES felh ON felh.ID = terem.C_TEREMFELELOSID AND felh.C_INTEZMENYID = terem.C_INTEZMENYID
|
|
LEFT JOIN T_DICTIONARYITEMBASE jelleg ON jelleg.ID = terem.C_JELLEG AND jelleg.C_INTEZMENYID = terem.C_INTEZMENYID
|
|
LEFT JOIN T_MUKODESIHELY_OSSZES mukodesi ON mukodesi.ID = terem.C_MUKODESIHELYID AND mukodesi.C_INTEZMENYID = terem.C_INTEZMENYID
|
|
WHERE
|
|
terem.TOROLT = 'F' and terem.C_TANEVID = :pTanevId
|
|
");
|
|
|
|
if (!string.IsNullOrWhiteSpace(teremSearchPCO.TeremNev))
|
|
{
|
|
command.Append($" and lower(terem.C_NEV) like '%' + @{nameof(teremSearchPCO.TeremNev)} + '%'");
|
|
paramsList.Add(new CommandParameter(nameof(teremSearchPCO.TeremNev), teremSearchPCO.TeremNev.ToLowerInvariant()));
|
|
}
|
|
|
|
if (teremSearchPCO.TeremJellegId.HasValue)
|
|
{
|
|
command.Append(" and terem.C_JELLEG = :pJellegID");
|
|
paramsList.Add(new CommandParameter("pJellegID", teremSearchPCO.TeremJellegId));
|
|
}
|
|
|
|
if (teremSearchPCO.KeresesMukodesiHelyID.HasValue)
|
|
{
|
|
command.Append(" and terem.C_MUKODESIHELYID = :pMukodesiID");
|
|
paramsList.Add(new CommandParameter("pMukodesiID", teremSearchPCO.KeresesMukodesiHelyID));
|
|
}
|
|
|
|
if (teremSearchPCO.MinAlapterulet.HasValue)
|
|
{
|
|
command.Append(" and terem.C_TERULET >= :pMinTerulet");
|
|
paramsList.Add(new CommandParameter("pMinTerulet", teremSearchPCO.MinAlapterulet));
|
|
}
|
|
|
|
if (teremSearchPCO.MaxAlapterulet.HasValue)
|
|
{
|
|
command.Append(" and terem.C_TERULET <= :pMaxTerulet");
|
|
paramsList.Add(new CommandParameter("pMaxTerulet", teremSearchPCO.MaxAlapterulet));
|
|
}
|
|
|
|
if (teremSearchPCO.MinKapacitas.HasValue)
|
|
{
|
|
command.Append(" and terem.C_KAPACITAS >= :pMinKapacitas");
|
|
paramsList.Add(new CommandParameter("pMinKapacitas", teremSearchPCO.MinKapacitas));
|
|
}
|
|
|
|
if (teremSearchPCO.MaxKapacitas.HasValue)
|
|
{
|
|
command.Append(" and terem.C_KAPACITAS <= :pMaxKapacitas");
|
|
paramsList.Add(new CommandParameter("pMaxKapacitas", teremSearchPCO.MaxKapacitas));
|
|
}
|
|
|
|
if (teremSearchPCO.IsAktiv.HasValue)
|
|
{
|
|
if (teremSearchPCO.IsAktiv.Value == 1)
|
|
{
|
|
command.Append(" and terem.C_AKTIV = 'T'");
|
|
}
|
|
|
|
if (teremSearchPCO.IsAktiv.Value == 0)
|
|
{
|
|
command.Append(" and terem.C_AKTIV = 'F'");
|
|
}
|
|
}
|
|
|
|
if (teremSearchPCO.TeremFelelosId.HasValue)
|
|
{
|
|
command.Append(" and terem.C_TEREMFELELOSID = :pTeremFelelos");
|
|
paramsList.Add(new CommandParameter("pTeremFelelos", teremSearchPCO.TeremFelelosId));
|
|
}
|
|
|
|
if (teremSearchPCO.MinVizsgaKapacitas.HasValue)
|
|
{
|
|
command.Append(" and terem.C_VIZSGAKAPACITAS >= :pMinVKap");
|
|
paramsList.Add(new CommandParameter("pMinVKap", teremSearchPCO.MinVizsgaKapacitas));
|
|
}
|
|
|
|
if (teremSearchPCO.MaxVizsgaKapacitas.HasValue)
|
|
{
|
|
command.Append(" and terem.C_VIZSGAKAPACITAS <= :pMaxVKap");
|
|
paramsList.Add(new CommandParameter("pMaxVKap", teremSearchPCO.MaxVizsgaKapacitas));
|
|
}
|
|
|
|
if (teremSearchPCO.IsTobbOraTarthato.HasValue)
|
|
{
|
|
if (teremSearchPCO.IsTobbOraTarthato.Value == 1)
|
|
{
|
|
command.Append(" and terem.C_TOBBORATLEHETTARTANI = 'T'");
|
|
}
|
|
|
|
if (teremSearchPCO.IsTobbOraTarthato.Value == 0)
|
|
{
|
|
command.Append(" and (terem.C_TOBBORATLEHETTARTANI IS NULL OR terem.C_TOBBORATLEHETTARTANI = 'F')");
|
|
}
|
|
}
|
|
|
|
if (teremSearchPCO.IsWifiLefedett.HasValue)
|
|
{
|
|
if (teremSearchPCO.IsWifiLefedett.Value == 1)
|
|
{
|
|
command.Append(" and terem.C_WIFILEFEDETT = 'T'");
|
|
}
|
|
|
|
if (teremSearchPCO.IsWifiLefedett.Value == 0)
|
|
{
|
|
command.Append(" and terem.C_WIFILEFEDETT = 'F'");
|
|
}
|
|
}
|
|
|
|
if (teremSearchPCO.IsInternetkapcsolatElerheto.HasValue)
|
|
{
|
|
if (teremSearchPCO.IsInternetkapcsolatElerheto.Value == 1)
|
|
{
|
|
command.Append(" and terem.C_ISINTERNETKAPCSOLATELERHETO = 'T'");
|
|
}
|
|
|
|
if (teremSearchPCO.IsInternetkapcsolatElerheto.Value == 0)
|
|
{
|
|
command.Append(" and terem.C_ISINTERNETKAPCSOLATELERHETO = 'F'");
|
|
}
|
|
}
|
|
|
|
if (teremSearchPCO.MinOktCelraHasznaltSzamitogepekSzama.HasValue)
|
|
{
|
|
command.Append(" and terem.C_OKTCELRAHASZNALTSZAMITOGEPEK >= :pMinOktCelraHasznaltSzamitogepekSzama");
|
|
paramsList.Add(new CommandParameter("pMinOktCelraHasznaltSzamitogepekSzama", teremSearchPCO.MinOktCelraHasznaltSzamitogepekSzama));
|
|
}
|
|
|
|
if (teremSearchPCO.MaxOktCelraHasznaltSzamitogepekSzama.HasValue)
|
|
{
|
|
command.Append(" and terem.C_OKTCELRAHASZNALTSZAMITOGEPEK <= :pMaxOktCelraHasznaltSzamitogepekSzama");
|
|
paramsList.Add(new CommandParameter("pMaxOktCelraHasznaltSzamitogepekSzama", teremSearchPCO.MaxOktCelraHasznaltSzamitogepekSzama));
|
|
}
|
|
|
|
if (teremSearchPCO.IsInterakttablavalMunkaallomassalFelszerelt.HasValue)
|
|
{
|
|
if (teremSearchPCO.IsInterakttablavalMunkaallomassalFelszerelt.Value == 1)
|
|
{
|
|
command.Append(" and terem.C_ISINTERAKTTABLAVALMUNKAALLOM = 'T'");
|
|
}
|
|
|
|
if (teremSearchPCO.IsInterakttablavalMunkaallomassalFelszerelt.Value == 0)
|
|
{
|
|
command.Append(" and terem.C_ISINTERAKTTABLAVALMUNKAALLOM = 'F'");
|
|
}
|
|
}
|
|
|
|
command.Append(" ORDER BY terem.C_NEV");
|
|
|
|
return GetData(command.ToString(), paramsList);
|
|
}
|
|
#endregion
|
|
|
|
public ITerem Get()
|
|
{
|
|
return Terem.GiveAnInstance();
|
|
}
|
|
|
|
public ITerem Get(int id)
|
|
{
|
|
var entity = Terem.GiveAnInstance();
|
|
entity.LoadByID(id);
|
|
return entity;
|
|
}
|
|
|
|
public void SetState(EntityState state, ITerem dto)
|
|
{
|
|
var entity = Terem.GiveAnInstance();
|
|
entity.SetState(state);
|
|
}
|
|
|
|
public void Insert(ITerem dto)
|
|
{
|
|
var entity = dto as Terem;
|
|
entity.Importalt = false;
|
|
|
|
entity.Insert();
|
|
dto.ID = entity.ID;
|
|
|
|
FollowUp(entity);
|
|
DalHelper.Commit();
|
|
}
|
|
|
|
public void FullUpdate(ITerem dto)
|
|
{
|
|
var entity = dto as Terem;
|
|
entity.Importalt = false;
|
|
|
|
entity.FullUpdate();
|
|
|
|
FollowUp(entity);
|
|
DalHelper.Commit();
|
|
}
|
|
|
|
public void Delete(int id)
|
|
{
|
|
var entity = Terem.GiveAnInstance();
|
|
entity.LoadByID(id);
|
|
|
|
Delete(entity);
|
|
}
|
|
|
|
public void Delete(ITerem dto)
|
|
{
|
|
var entity = dto as Terem;
|
|
|
|
entity.Importalt = false;
|
|
|
|
entity.Delete();
|
|
DalHelper.Commit();
|
|
}
|
|
|
|
public void FollowUpTerem(int intezmenyId, int aktTanevId, int kovetkezoTanevId, int teremId)
|
|
{
|
|
using (SDACommand command = new SDACommand())
|
|
{
|
|
command.Connection = UserContext.Instance.SDAConnection;
|
|
command.Transaction = UserContext.Instance.SDATransaction;
|
|
command.CommandText = "uspFollowUpTerem";
|
|
command.Parameters.Add("intezmenyId", intezmenyId);
|
|
command.Parameters.Add("aktTanevId", aktTanevId);
|
|
command.Parameters.Add("kovetkezoTanevId", kovetkezoTanevId);
|
|
command.Parameters.Add("teremId", teremId);
|
|
command.CommandType = CommandType.StoredProcedure;
|
|
command.ExecuteNonQuery();
|
|
DalHelper.Commit();
|
|
}
|
|
}
|
|
|
|
public DataSet TeremKapacitasTullepesVizsgalat(string teremIdArrayString, int? tervezettKapacitas)
|
|
{
|
|
using (var command = new SDACommand())
|
|
{
|
|
command.Connection = UserContext.Instance.SDAConnection;
|
|
command.Transaction = UserContext.Instance.SDATransaction;
|
|
command.CommandType = CommandType.StoredProcedure;
|
|
command.CommandText = "sp_TeremKapacitasTullepesVizsgalat";
|
|
|
|
command.Parameters.Add("teremIdArray", teremIdArrayString);
|
|
command.Parameters.Add("tervezettKapacitas", tervezettKapacitas);
|
|
|
|
var dts = new DataSet();
|
|
using (var adapter = new SDADataAdapter())
|
|
{
|
|
adapter.SelectCommand = command;
|
|
adapter.Fill(dts);
|
|
}
|
|
return dts;
|
|
}
|
|
}
|
|
|
|
public DataSet GetTeremDataSet(int intezmenyId, int tanevId, bool isFromSzervezet, int? szervezetId)
|
|
{
|
|
using (var command = new SDACommand())
|
|
{
|
|
command.Connection = UserContext.Instance.SDAConnection;
|
|
command.Transaction = UserContext.Instance.SDATransaction;
|
|
command.CommandType = CommandType.StoredProcedure;
|
|
command.CommandText = "uspGetTeremData";
|
|
|
|
command.Parameters.Add("pIntezmenyId", SDADBType.Int).Value = intezmenyId;
|
|
command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId;
|
|
command.Parameters.Add("pIsFromSzervezet", isFromSzervezet);
|
|
command.Parameters.Add("pSzervezetId", SDADBType.Int).Value = (object)szervezetId ?? DBNull.Value;
|
|
command.Parameters.Add("pSzervezetekHalmaza", SDADBType.Int).Value = (int)SzervezetAdatokHalmazaEnum.SzervezetEsAlSzervezetek;
|
|
|
|
var ds = new DataSet();
|
|
using (var adapter = new SDADataAdapter())
|
|
{
|
|
adapter.SelectCommand = command;
|
|
adapter.Fill(ds);
|
|
}
|
|
SetDNAME(ds.Tables[0], "JellegId");
|
|
SetBoolFields(ds.Tables[0], "IsAktiv");
|
|
return ds;
|
|
}
|
|
}
|
|
|
|
public DataSet GetBerbeadhatoTermekMukodesiHelyeinekVarosai(int? tanevId)
|
|
{
|
|
var commandText = $@"
|
|
SELECT DISTINCT mh.C_VAROS Varos
|
|
FROM T_TEREM_OSSZES t
|
|
LEFT JOIN T_MUKODESIHELY_OSSZES mh ON mh.ID = t.C_MUKODESIHELYID AND mh.TOROLT = 'F'
|
|
WHERE t.TOROLT = 'F'
|
|
AND t.C_AKTIV = 'T'
|
|
AND t.C_BERBEADHATO = 'T'
|
|
AND t.C_TANEVID = @{nameof(tanevId)}";
|
|
|
|
var commandParameterList = new List<CommandParameter>
|
|
{
|
|
new CommandParameter(nameof(tanevId), tanevId)
|
|
};
|
|
|
|
var ds = GetData(
|
|
commandText: commandText,
|
|
parameters: commandParameterList);
|
|
|
|
return ds;
|
|
}
|
|
|
|
public int GetKovTanevIdByAktTanevId(int id)
|
|
{
|
|
using (var command = new SDACommand())
|
|
{
|
|
command.Connection = UserContext.Instance.SDAConnection;
|
|
command.Transaction = UserContext.Instance.SDATransaction;
|
|
|
|
command.Parameters.Add(nameof(id), id);
|
|
|
|
command.CommandText = $@"
|
|
SELECT ID
|
|
FROM T_TEREM_OSSZES
|
|
WHERE
|
|
ELOZOTANEVIREKORDID = @{nameof(id)}
|
|
AND TOROLT = 'F'
|
|
";
|
|
|
|
var result = command.ExecuteScalar();
|
|
int.TryParse(result?.ToString(), out int res);
|
|
return res;
|
|
}
|
|
}
|
|
}
|
|
}
|