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

615 lines
23 KiB
C#

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.SZIRAdatszolgaltatasPCOs;
using Kreta.DataAccessManual.Util;
using Kreta.Enums;
using Kreta.Framework;
using SDA.DataProvider;
using SDA.Kreta.Entities;
namespace Kreta.DataAccessManual
{
internal class SZIRAdatszolgDAL : DataAccessBase, ISZIRAdatszolgDAL
{
public SZIRAdatszolgDAL(DalHandler handler) : base(handler) { }
public ISzirStatFeladatellatasiHely Get()
{
return SzirStatFeladatellatasiHely.GiveAnInstance();
}
public ISzirStatFeladatellatasiHely Get(int id)
{
var entity = SzirStatFeladatellatasiHely.GiveAnInstance();
entity.LoadByID(id);
return entity;
}
public void Insert(ISzirStatFeladatellatasiHely dto)
{
var entity = dto as SzirStatFeladatellatasiHely;
entity.Insert();
DalHelper.Commit();
}
public void Update(ISzirStatFeladatellatasiHely dto)
{
var entity = dto as SzirStatFeladatellatasiHely;
entity.FullUpdate();
DalHelper.Commit();
}
public ISzirStatKonyvtar GetKonyvtar()
{
return SzirStatKonyvtar.GiveAnInstance();
}
public ISzirStatKonyvtar GetKonyvtar(int id)
{
var entity = SzirStatKonyvtar.GiveAnInstance();
entity.LoadByID(id);
return entity;
}
public void Insert(ISzirStatKonyvtar dto)
{
var entity = dto as SzirStatKonyvtar;
entity.Insert();
DalHelper.Commit();
}
public void Update(ISzirStatKonyvtar dto)
{
var entity = dto as SzirStatKonyvtar;
entity.FullUpdate();
DalHelper.Commit();
}
public DataSet GetAMIData(int intezmenyId, int tanevId)
{
using (var comm = new SDACommand())
{
comm.Connection = UserContext.Instance.SDAConnection;
comm.Transaction = UserContext.Instance.SDATransaction;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "uspSzirStatAmi";
comm.Parameters.Add("pTanevId", tanevId);
comm.Parameters.Add("pIntezmenyid", intezmenyId);
var ds = new DataSet();
using (var sdaDataAdapter = new SDADataAdapter())
{
sdaDataAdapter.SelectCommand = comm;
sdaDataAdapter.Fill(ds);
}
return ds;
}
}
public DataSet GetKollegiumData(int intezmenyId, int tanevId)
{
using (var comm = new SDACommand())
{
comm.Connection = UserContext.Instance.SDAConnection;
comm.Transaction = UserContext.Instance.SDATransaction;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "uspSzirStatKoli";
comm.Parameters.Add("pTanevId", tanevId);
comm.Parameters.Add("pIntezmenyid", intezmenyId);
var ds = new DataSet();
using (var sdaDataAdapter = new SDADataAdapter())
{
sdaDataAdapter.SelectCommand = comm;
sdaDataAdapter.Fill(ds);
}
return ds;
}
}
public DataSet GetIntezmenyiData(int intezmenyId, int tanevId)
{
using (var comm = new SDACommand())
{
comm.Connection = UserContext.Instance.SDAConnection;
comm.Transaction = UserContext.Instance.SDATransaction;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "uspSzirStatIntezmeny";
comm.Parameters.Add("pTanevId", tanevId);
comm.Parameters.Add("pIntezmenyid", intezmenyId);
var ds = new DataSet();
using (var sdaDataAdapter = new SDADataAdapter())
{
sdaDataAdapter.SelectCommand = comm;
sdaDataAdapter.Fill(ds);
}
return ds;
}
}
public DataSet GetIsAdatokRendbenABekuldeshez(int intezmenyId, int tanevId)
{
using (var comm = new SDACommand())
{
comm.Connection = UserContext.Instance.SDAConnection;
comm.Transaction = UserContext.Instance.SDATransaction;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "uspGetSzirStatFromT_SZIRSTATTables";
comm.Parameters.Add("pTanevId", tanevId);
comm.Parameters.Add("pIntezmenyid", intezmenyId);
var ds = new DataSet();
using (var sdaDataAdapter = new SDADataAdapter())
{
sdaDataAdapter.SelectCommand = comm;
sdaDataAdapter.Fill(ds);
}
return ds;
}
}
public DataSet GetOktatoData(int intezmenyId, int tanevId)
{
using (var comm = new SDACommand())
{
comm.Connection = UserContext.Instance.SDAConnection;
comm.Transaction = UserContext.Instance.SDATransaction;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "uspSzirStatOktato";
comm.Parameters.Add("pTanevId", tanevId);
comm.Parameters.Add("pIntezmenyid", intezmenyId);
var ds = new DataSet();
using (var sdaDataAdapter = new SDADataAdapter())
{
sdaDataAdapter.SelectCommand = comm;
sdaDataAdapter.Fill(ds);
}
return ds;
}
}
public DataSet GetNemOktatoData(int intezmenyId, int tanevId)
{
using (var comm = new SDACommand())
{
comm.Connection = UserContext.Instance.SDAConnection;
comm.Transaction = UserContext.Instance.SDATransaction;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "uspSzirStatNemOktato";
comm.Parameters.Add("pTanevId", tanevId);
comm.Parameters.Add("pIntezmenyid", intezmenyId);
var ds = new DataSet();
using (var sdaDataAdapter = new SDADataAdapter())
{
sdaDataAdapter.SelectCommand = comm;
sdaDataAdapter.Fill(ds);
}
return ds;
}
}
public DataSet GetInfraData(int intezmenyId, int tanevId)
{
using (var comm = new SDACommand())
{
comm.Connection = UserContext.Instance.SDAConnection;
comm.Transaction = UserContext.Instance.SDATransaction;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "uspSzirStatInfra";
comm.Parameters.Add("pTanevId", tanevId);
comm.Parameters.Add("pIntezmenyid", intezmenyId);
var ds = new DataSet();
using (var sdaDataAdapter = new SDADataAdapter())
{
sdaDataAdapter.SelectCommand = comm;
sdaDataAdapter.Fill(ds);
}
return ds;
}
}
public DataSet GetSZIRAdatszolgGrid(int tanevId)
{
var parameters = new List<CommandParameter> { };
parameters.Add(new CommandParameter("pTanevId", tanevId));
var command = @"
select
isnull(szirfh.ID, fh.ID) as ID
,szirfh.ID as SzirId
,fh.ID as FeladatellatasiHelyId
,mh.C_NEV + ' - ' + dic.C_NAME as FeladatellatasiHelyNev
,coalesce(szirfh.C_OKOSTELEFONOKSZAMA, szir_elo1.C_OKOSTELEFONOKSZAMA, szir_elo2.C_OKOSTELEFONOKSZAMA) as OkostelefonSzama
,coalesce(szirfh.C_TABLETEKSZAMA, szir_elo1.C_TABLETEKSZAMA, szir_elo2.C_TABLETEKSZAMA) as TabletSzama
,coalesce(szirfh.C_NOTEBOOKOKSZAMA, szir_elo1.C_NOTEBOOKOKSZAMA, szir_elo2.C_NOTEBOOKOKSZAMA) as NotebookSzama
,coalesce(szirfh.C_ASZTALIGEPEKSZAMA, szir_elo1.C_ASZTALIGEPEKSZAMA, szir_elo2.C_ASZTALIGEPEKSZAMA) as AsztaliGepSzama
,fh.ELOZOTANEVIREKORDID
from T_MUKODESIHELY_OSSZES mh
inner join T_FELADATELLATASIHELY fh on fh.C_MUKODESIHELYID = mh.ID and fh.TOROLT = 'F'
inner join T_DICTIONARYITEMBASE dic on dic.ID = fh.C_OKTATASINEVELESIFELADATTIPUS and dic.C_TANEVID = fh.C_TANEVID and dic.TOROLT = 'F'
left join T_SZIRSTATFELADATELLATASIHELY szirfh on szirfh.C_FELADATELLATASIHELYID = fh.ID
left join T_SZIRSTATFELADATELLATASIHELY_OSSZES szir_elo1 on szir_elo1.ID = szirfh.ELOZOTANEVIREKORDID and szir_elo1.TOROLT = 'F'
left join T_FELADATELLATASIHELY_OSSZES fh_elo on fh_elo.ID = fh.ELOZOTANEVIREKORDID and fh_elo.TOROLT = 'F'
left join T_SZIRSTATFELADATELLATASIHELY_OSSZES szir_elo2 on szir_elo2.C_FELADATELLATASIHELYID = fh_elo.ID and szir_elo2.TOROLT = 'F'
where mh.TOROLT = 'F'
and mh.C_TANEVID = @pTanevId
";
DataSet ds = GetData(command.ToString(), parameters);
return ds;
}
public DataSet GetOsztalyData(int intezmenyId, int tanevId)
{
using (var comm = new SDACommand())
{
comm.Connection = UserContext.Instance.SDAConnection;
comm.Transaction = UserContext.Instance.SDATransaction;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "uspSzirStatOsztaly";
comm.Parameters.Add("pTanevId", tanevId);
comm.Parameters.Add("pIntezmenyid", intezmenyId);
var ds = new DataSet();
using (var sdaDataAdapter = new SDADataAdapter())
{
sdaDataAdapter.SelectCommand = comm;
sdaDataAdapter.Fill(ds);
}
return ds;
}
}
public DataSet GetTanuloEvElejeData(int intezmenyId, int tanevId)
{
using (var comm = new SDACommand())
{
comm.Connection = UserContext.Instance.SDAConnection;
comm.Transaction = UserContext.Instance.SDATransaction;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "uspSzirStatTanuloEvEleje";
comm.Parameters.Add("pTanevId", tanevId);
comm.Parameters.Add("pIntezmenyid", intezmenyId);
var ds = new DataSet();
using (var sdaDataAdapter = new SDADataAdapter())
{
sdaDataAdapter.SelectCommand = comm;
sdaDataAdapter.Fill(ds);
}
return ds;
}
}
public DataSet GetTanuloEvVegeData(int intezmenyId, int elozoTanevId)
{
using (var comm = new SDACommand())
{
comm.Connection = UserContext.Instance.SDAConnection;
comm.Transaction = UserContext.Instance.SDATransaction;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "uspSzirStatTanuloEvVege";
comm.Parameters.Add("pElozoTanevId", elozoTanevId);
comm.Parameters.Add("pIntezmenyId", intezmenyId);
var ds = new DataSet();
using (var sdaDataAdapter = new SDADataAdapter())
{
sdaDataAdapter.SelectCommand = comm;
sdaDataAdapter.Fill(ds);
}
return ds;
}
}
public DataSet GetKonyvtarData(int intezmenyId, int tanevId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspSzirStatKonyvtar";
command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId;
command.Parameters.Add("pIntezmenyid", SDADBType.Int).Value = intezmenyId;
var ds = new DataSet();
using (var sdaDataAdapter = new SDADataAdapter())
{
sdaDataAdapter.SelectCommand = command;
sdaDataAdapter.Fill(ds);
}
return ds;
}
}
public int? GetSzirStatTanuloId(int elozoTanevId, int tanuloId, int felhelyId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.Parameters.Add(nameof(elozoTanevId), elozoTanevId);
command.Parameters.Add(nameof(tanuloId), tanuloId);
command.Parameters.Add(nameof(felhelyId), felhelyId);
command.CommandText = $@"
SELECT
ID
FROM
T_SZIRSTATTANULO_OSSZES
WHERE
TOROLT = 'F'
AND C_TANEVID = @{nameof(elozoTanevId)}
AND C_TANULOID = @{nameof(tanuloId)}
AND C_FELADATELLATASIHELYID = @{nameof(felhelyId)}";
var id = command.ExecuteScalar();
if (int.TryParse(id?.ToString(), out int result))
{
return result;
}
return null;
}
}
public ISzirStatTanulo GetTanulo()
{
return SzirStatTanulo.GiveAnInstance();
}
public ISzirStatTanulo GetTanulo(int id)
{
var entity = SzirStatTanulo.GiveAnInstance();
entity.LoadByID(id);
return entity;
}
public void Insert(ISzirStatTanulo dto)
{
var entity = dto as SzirStatTanulo;
entity.Insert();
DalHelper.Commit();
}
public void Update(ISzirStatTanulo dto)
{
var entity = dto as SzirStatTanulo;
entity.FullUpdate();
DalHelper.Commit();
}
public DataSet GetTanuloEvVegeList(int elozoTanevId, TanuloEvVegeSearchPco pco)
{
var commandParameterList = new List<CommandParameter>
{
new CommandParameter("pElozoTanevId", elozoTanevId)
};
string commandText = $@"
SELECT
ROW_NUMBER() OVER (
ORDER BY
CONCAT(mhely.C_NEV, ' - ', dib.C_NAME)
,CONCAT(IIF(fh.C_NEVSORREND = 'T', fh.C_UTONEV + ' ' + fh.C_VEZETEKNEV, fh.C_VEZETEKNEV + ' ' + fh.C_UTONEV), ' (', fh.C_OKTATASIAZONOSITO ,')')
) AS ID
,fh.ID AS TanuloId
,CONCAT(fh.C_NYOMTATASINEV, ' (', fh.C_OKTATASIAZONOSITO ,')') AS TanuloNev
,fhely.Id AS FelhelyId
,CONCAT(mhely.C_NEV, ' - ', dib.C_NAME) AS FelhelyNev
,ISNULL(szst.C_ISSIKERESTANULMANYOK, 'F') AS IsSikeresTanulmanyok
,ISNULL(szst.C_ISSIKERESERETTSEGI, 'F') AS IsSikeresErettsegi
,ISNULL(szst.C_ISSIKERESSZAKMAIVIZSGA, 'F') AS IsSikeresSzakmaiVizsga
,ISNULL(szst.C_ISSIKERESSZAKMAIVISZGASZAK1, 'F') AS IsSikeresSzakmaiVizsgaSzak1
,ISNULL(szst.C_ISSIKERESSZAKMAIVISZGASZAK2, 'F') AS IsSikeresSzakmaiVizsgaSzak2
,ISNULL(szst.C_ISSIKERESSZAKMAIVISZGASZAK3, 'F') AS IsSikeresSzakmaiVizsgaSzak3
,ISNULL(szst.C_ISSIKERESAGAZATIALAPVIZSGA, 'F') AS IsSikeresAgazatiAlapVizsga
FROM T_FELHASZNALO_OSSZES fh
INNER JOIN T_TANULO_OSSZES dk ON dk.ID = fh.ID
INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.C_TANEVID = fh.C_TANEVID AND ia.TOROLT = 'F'
INNER JOIN T_INTEZMENY_OSSZES i ON ia.C_INTEZMENYID = i.ID AND i.TOROLT = 'F'
INNER JOIN T_FELADATELLATASIHELY_OSSZES fhely ON fhely.C_TANEVID = ia.C_TANEVID AND fhely.TOROLT = 'F'
AND fhely.C_OKTATASINEVELESIFELADATTIPUS NOT IN ({(int)OktatasiNevelesiFeladatEnum.kollegium}, {(int)OktatasiNevelesiFeladatEnum.kollegium_nemzetisegi_})
INNER JOIN T_MUKODESIHELY_OSSZES mhely ON mhely.ID = fhely.C_MUKODESIHELYID AND mhely.TOROLT = 'F'
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dib ON fhely.C_OKTATASINEVELESIFELADATTIPUS = dib.ID AND
fhely.C_INTEZMENYID = dib.C_INTEZMENYID AND fhely.C_TANEVID = dib.C_TANEVID
LEFT JOIN T_SZIRSTATTANULO_OSSZES szst ON szst.C_TANULOID = dk.ID AND szst.C_FELADATELLATASIHELYID = fhely.ID
AND szst.C_TANEVID = fh.C_TANEVID
AND szst.TOROLT = 'F'
CROSS APPLY (
SELECT TOP(1)
ocs.ID AS OsztalyId
,ocs.C_KEPZESIFORMA AS KepzesTipusa
,ocs.C_EVFOLYAMTIPUSA AS Evfolyam
,ocs.C_VEGZOSEVFOLYAM AS Vegzos
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F'
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.TOROLT = 'F'
WHERE tcs.C_TANULOID = dk.ID
AND fhely.ID = ocs.C_FELADATELLATASIHELYID
AND tcs.TOROLT = 'F'
AND tcs.C_TANEVID = fh.C_TANEVID
ORDER BY tcs.C_BELEPESDATUM DESC
) besorolas
WHERE fh.TOROLT = 'F'
AND fh.C_TANEVID = :pElozoTanevId
";
if (!string.IsNullOrWhiteSpace(pco.Nev))
{
commandParameterList.Add(new CommandParameter("pNev", pco.Nev));
commandText += " AND CONCAT(fh.C_NYOMTATASINEV, ' (', fh.C_OKTATASIAZONOSITO ,')') LIKE '%' + :pNev + '%'";
}
if (pco.IsVegzos)
{
commandText += " AND besorolas.Vegzos = 'T'";
}
if (pco.EvfolyamIds.NotNullAndAny())
{
commandText += $" AND besorolas.Evfolyam IN ({string.Join(",", pco.EvfolyamIds)})";
}
if (pco.OsztalyIds.NotNullAndAny())
{
commandText += $" AND besorolas.OsztalyId IN ({string.Join(",", pco.OsztalyIds)})";
}
if (pco.FeladatEllatasiHelyIds.NotNullAndAny())
{
commandText += $" AND fhely.Id IN ({string.Join(",", pco.FeladatEllatasiHelyIds)})";
}
if (pco.KepzesTipusaIds.NotNullAndAny())
{
commandText += $" AND besorolas.KepzesTipusa IN ({string.Join(",", pco.KepzesTipusaIds)})";
}
commandText += $@" ORDER BY
CONCAT(mhely.C_NEV, ' - ', dib.C_NAME)
,CONCAT(IIF(fh.C_NEVSORREND = 'T', fh.C_UTONEV + ' ' + fh.C_VEZETEKNEV, fh.C_VEZETEKNEV + ' ' + fh.C_UTONEV), ' (', fh.C_OKTATASIAZONOSITO, ')')";
return GetData(commandText, commandParameterList);
}
public ISzirStatNemAllamiOktKolts GetSzirStatNemAllamiOktKolts()
{
return SzirStatNemAllamiOktKolts.GiveAnInstance();
}
public ISzirStatNemAllamiOktKolts GetSzirStatNemAllamiOktKolts(int Id)
{
var entity = SzirStatNemAllamiOktKolts.GiveAnInstance();
entity.LoadByID(Id);
return entity;
}
public void Insert(ISzirStatNemAllamiOktKolts dto)
{
var entity = dto as SzirStatNemAllamiOktKolts;
entity.Insert();
DalHelper.Commit();
}
public void Update(ISzirStatNemAllamiOktKolts dto)
{
var entity = dto as SzirStatNemAllamiOktKolts;
entity.FullUpdate();
DalHelper.Commit();
}
public int? GetSzirStatNemAllamiOktKoltsIdFromFeladatEllatasihelyId(int feladatEllatasiHelyId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetSzirStatNemAllamiOktKoltsIdFromFeladatEllatasihelyId";
command.Parameters.Add("pFeladatEllatasiHelyId", feladatEllatasiHelyId);
var result = command.ExecuteScalar();
if (result != null && int.TryParse(result.ToString(), out int id))
{
return id;
}
return null;
}
}
public DataSet GetNemAllamiGrid(int tanevId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetNemAllamiGrid";
command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId;
var ds = new DataSet();
using (var sdaDataAdapter = new SDADataAdapter())
{
sdaDataAdapter.SelectCommand = command;
sdaDataAdapter.Fill(ds);
}
return ds;
}
}
public DataSet GetNemAllamiData(int tanevId)
{
using (var comm = new SDACommand())
{
comm.Connection = UserContext.Instance.SDAConnection;
comm.Transaction = UserContext.Instance.SDATransaction;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "uspSzirStatNemAllami";
comm.Parameters.Add("pTanevId", tanevId);
var ds = new DataSet();
using (var sdaDataAdapter = new SDADataAdapter())
{
sdaDataAdapter.SelectCommand = comm;
sdaDataAdapter.Fill(ds);
}
return ds;
}
}
}
}