331 lines
13 KiB
C#
331 lines
13 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using Kreta.Core;
|
|
using Kreta.DataAccess.Interfaces;
|
|
using Kreta.DataAccessManual.Interfaces;
|
|
using Kreta.DataAccessManual.ParameterClasses;
|
|
using Kreta.DataAccessManual.Util;
|
|
using Kreta.Framework;
|
|
using Kreta.Framework.Util;
|
|
using SDA.DataProvider;
|
|
using SDA.Kreta.Entities;
|
|
|
|
namespace Kreta.DataAccessManual
|
|
{
|
|
public class SzervezetDal : DataAccessBase, ISzervezetDal
|
|
{
|
|
public SzervezetDal(DalHandler handler, GridParameters gridParameters) : base(handler, gridParameters) { }
|
|
|
|
public SzervezetDal(DalHandler handler) : base(handler) { }
|
|
|
|
public ISzervezet Get(int? id = null)
|
|
{
|
|
var entity = Szervezet.GiveAnInstance();
|
|
if (id.IsEntityId())
|
|
{
|
|
entity.LoadByID(id.Value);
|
|
}
|
|
|
|
return entity;
|
|
}
|
|
|
|
public int Insert(ISzervezet dto)
|
|
{
|
|
var entity = dto as Szervezet;
|
|
entity.Insert(true);
|
|
DalHelper.Commit();
|
|
return entity.ID;
|
|
}
|
|
|
|
public void Update(ISzervezet dto)
|
|
{
|
|
var entity = dto as Szervezet;
|
|
entity.Update();
|
|
DalHelper.Commit();
|
|
}
|
|
|
|
public void Delete(ISzervezet dto)
|
|
{
|
|
var entity = dto as Szervezet;
|
|
|
|
entity.Delete();
|
|
DalHelper.Commit();
|
|
}
|
|
|
|
public DataSet GetSzervezetAdatok(SzervezetSearchPco pco, int intezmenyId, int tanevId, int adatokHalmaza)
|
|
{
|
|
var dataSet = new DataSet();
|
|
|
|
using (var sdaCommand = new SDACommand())
|
|
{
|
|
sdaCommand.Connection = UserContext.Instance.SDAConnection;
|
|
sdaCommand.Transaction = UserContext.Instance.SDATransaction;
|
|
|
|
sdaCommand.CommandType = CommandType.StoredProcedure;
|
|
sdaCommand.CommandText = "uspGetSzervezetData";
|
|
|
|
sdaCommand.Parameters.Add("pIntezmenyId", SDADBType.Int).Value = intezmenyId;
|
|
sdaCommand.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId;
|
|
if (pco.SzervezetId.IsEntityId())
|
|
{
|
|
sdaCommand.Parameters.Add("pSzervezetId", SDADBType.Int).Value = pco.SzervezetId.Value;
|
|
}
|
|
sdaCommand.Parameters.Add("pAdatokHalmaza", SDADBType.Int).Value = adatokHalmaza;
|
|
|
|
if (!string.IsNullOrWhiteSpace(pco.Nev)) { sdaCommand.Parameters.Add("pNev", SDADBType.String).Value = pco.Nev; }
|
|
|
|
if (!string.IsNullOrWhiteSpace(pco.Azonosito)) { sdaCommand.Parameters.Add("pAzonosito", SDADBType.String).Value = pco.Azonosito; }
|
|
|
|
if (!string.IsNullOrWhiteSpace(pco.SzervezetCime)) { sdaCommand.Parameters.Add("pSzervezetCime", SDADBType.String).Value = pco.SzervezetCime; }
|
|
|
|
if (pco.TanulokSzamaTol.HasValue) { sdaCommand.Parameters.Add("pTanulokSzamaTol", SDADBType.Int).Value = pco.TanulokSzamaTol.Value; }
|
|
|
|
if (pco.TanulokSzamaIg.HasValue) { sdaCommand.Parameters.Add("pTanulokSzamaIg", SDADBType.Int).Value = pco.TanulokSzamaIg.Value; }
|
|
|
|
if (pco.OktatokSzamaTol.HasValue) { sdaCommand.Parameters.Add("pOktatokSzamaTol", SDADBType.Int).Value = pco.OktatokSzamaTol.Value; }
|
|
|
|
if (pco.OktatokSzamaIg.HasValue) { sdaCommand.Parameters.Add("pOktatokSzamaIg", SDADBType.Int).Value = pco.OktatokSzamaIg.Value; }
|
|
|
|
if (pco.CsoportokSzamaTol.HasValue) { sdaCommand.Parameters.Add("pCsoportokSzamaTol", SDADBType.Int).Value = pco.CsoportokSzamaTol.Value; }
|
|
|
|
if (pco.CsoportokSzamaIg.HasValue) { sdaCommand.Parameters.Add("pCsoportokSzamaIg", SDADBType.Int).Value = pco.CsoportokSzamaIg.Value; }
|
|
|
|
if (pco.TantargyakSzamaTol.HasValue) { sdaCommand.Parameters.Add("pTantargyakSzamaTol", SDADBType.Int).Value = pco.TantargyakSzamaTol.Value; }
|
|
|
|
if (pco.TantargyakSzamaIg.HasValue) { sdaCommand.Parameters.Add("pTantargyakSzamaIg", SDADBType.Int).Value = pco.TantargyakSzamaIg.Value; }
|
|
|
|
if (pco.HelyszinSzamaTol.HasValue) { sdaCommand.Parameters.Add("pHelyszinSzamaTol", SDADBType.Int).Value = pco.HelyszinSzamaTol.Value; }
|
|
|
|
if (pco.HelyszinSzamaIg.HasValue) { sdaCommand.Parameters.Add("pHelyszinSzamaIg", SDADBType.Int).Value = pco.HelyszinSzamaIg.Value; }
|
|
|
|
using (var sdaDataAdapter = new SDADataAdapter())
|
|
{
|
|
sdaDataAdapter.SelectCommand = sdaCommand;
|
|
sdaDataAdapter.Fill(dataSet);
|
|
}
|
|
}
|
|
|
|
var dataTable = SortingAndPaging(dataSet.Tables[0], GridParameters);
|
|
var result = dataTable.AsDataSet();
|
|
return result;
|
|
}
|
|
|
|
public DataSet GetSzervezetCsoportjai(int tanevId, int szervezetId)
|
|
{
|
|
var parameters = new List<CommandParameter>
|
|
{
|
|
new CommandParameter("pTanevId", tanevId),
|
|
new CommandParameter("pSzervezetId", szervezetId)
|
|
};
|
|
|
|
var commandText = @"
|
|
SELECT
|
|
ocs.ID AS ID
|
|
,ocs.C_NEV AS CsoportNeve
|
|
,ocs.C_MEGJEGYZES AS Megjegyzes
|
|
,COUNT(tcs.ID) AS TanulokSzama
|
|
FROM T_SZERVEZET_OSSZES sz
|
|
INNER JOIN T_CSOPORT_OSSZES cs ON cs.C_SZERVEZETID = sz.ID AND cs.C_ALTANEVID = sz.C_TANEVID AND cs.TOROLT = 'F'
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = cs.ID AND ocs.C_TANEVID = sz.C_TANEVID AND ocs.TOROLT = 'F'
|
|
LEFT JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND tcs.C_TANEVID = sz.C_TANEVID AND tcs.TOROLT = 'F'
|
|
WHERE sz.ID = :pSzervezetId
|
|
AND sz.C_TANEVID = :pTanevId
|
|
AND sz.TOROLT = 'F'
|
|
GROUP BY
|
|
ocs.ID
|
|
,ocs.C_NEV
|
|
,ocs.C_MEGJEGYZES
|
|
";
|
|
|
|
var ds = GetData(commandText, parameters);
|
|
return ds;
|
|
}
|
|
|
|
public DataSet GetSzervezetHelyszinei(int tanevId, int szervezetId)
|
|
{
|
|
var parameters = new List<CommandParameter>
|
|
{
|
|
new CommandParameter("pTanevId", tanevId),
|
|
new CommandParameter("pSzervezetId", szervezetId)
|
|
};
|
|
|
|
var commandText = @"
|
|
SELECT
|
|
t.ID AS ID
|
|
,t.C_NEV AS Nev
|
|
,dib.C_NAME AS HelyisegJelleg
|
|
,'' AS HelyszinTipus
|
|
,IIF(t.C_AKTIV = 'T', 'Igen', 'Nem') AS AktivStr
|
|
FROM T_SZERVEZET_OSSZES sz
|
|
INNER JOIN T_TEREM_OSSZES t ON t.C_SZERVEZETID = sz.ID AND t.C_TANEVID = sz.C_TANEVID AND t.TOROLT = 'F'
|
|
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dib ON dib.ID = t.C_JELLEG AND dib.C_TANEVID = sz.C_TANEVID AND dib.C_TANEVID = sz.C_TANEVID AND dib.TOROLT = 'F'
|
|
WHERE sz.ID = :pSzervezetId
|
|
AND sz.C_TANEVID = :pTanevId
|
|
AND sz.TOROLT = 'F'
|
|
";
|
|
|
|
var ds = GetData(commandText, parameters);
|
|
return ds;
|
|
}
|
|
|
|
public DataSet GetSzervezetOktatoi(int tanevId, int szervezetId)
|
|
{
|
|
var parameters = new List<CommandParameter>
|
|
{
|
|
new CommandParameter("pTanevId", tanevId),
|
|
new CommandParameter("pSzervezetId", szervezetId)
|
|
};
|
|
|
|
var commandText = @"
|
|
SELECT
|
|
fh.ID AS ID
|
|
,fh.C_NYOMTATASINEV AS Nev
|
|
,fh.C_OKTATASIAZONOSITO AS OktatasiAzonosito
|
|
FROM T_SZERVEZET_OSSZES sz
|
|
INNER JOIN T_MUNKAUGYIADATOK_OSSZES ma ON ma.C_SZERVEZETID = sz.ID AND ma.C_TANEVID = sz.C_TANEVID AND ma.TOROLT = 'F'
|
|
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = ma.C_ALKALMAZOTTID AND fh.C_TANEVID = sz.C_TANEVID AND fh.TOROLT = 'F'
|
|
WHERE sz.ID = :pSzervezetId
|
|
AND sz.C_TANEVID = :pTanevId
|
|
AND sz.TOROLT = 'F'
|
|
";
|
|
|
|
var ds = GetData(commandText, parameters);
|
|
return ds;
|
|
}
|
|
|
|
public DataSet GetSzervezetTanuloi(int tanevId, int szervezetId)
|
|
{
|
|
var parameters = new List<CommandParameter>
|
|
{
|
|
new CommandParameter("pTanevId", tanevId),
|
|
new CommandParameter("pSzervezetId", szervezetId)
|
|
};
|
|
|
|
var commandText = @"
|
|
SELECT
|
|
fh.ID AS ID
|
|
,fh.C_NYOMTATASINEV AS Nev
|
|
,fh.C_OKTATASIAZONOSITO AS OktatasiAzonosito
|
|
,fh.C_ADOAZONOSITOJEL AS Adoazonosito
|
|
,fh.C_TAJSZAM AS TajSzam
|
|
FROM T_SZERVEZET_OSSZES sz
|
|
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_SZERVEZETID = sz.ID AND tta.C_TANEVID = sz.C_TANEVID AND tta.TOROLT = 'F'
|
|
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = tta.C_TANULOCSOPORTID AND tcs.C_TANEVID = sz.C_TANEVID AND tcs.TOROLT = 'F'
|
|
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = tcs.C_TANULOID AND fh.C_TANEVID = sz.C_TANEVID AND fh.TOROLT = 'F'
|
|
WHERE sz.ID = :pSzervezetId
|
|
AND sz.C_TANEVID = :pTanevId
|
|
AND sz.TOROLT = 'F'
|
|
";
|
|
|
|
var ds = GetData(commandText, parameters);
|
|
return ds;
|
|
}
|
|
|
|
public DataSet GetSzervezetTantargyai(int tanevId, int szervezetId)
|
|
{
|
|
var parameters = new List<CommandParameter>
|
|
{
|
|
new CommandParameter("pTanevId", tanevId),
|
|
new CommandParameter("pSzervezetId", szervezetId)
|
|
};
|
|
|
|
var commandText = @"
|
|
SELECT
|
|
tt.ID AS ID
|
|
,tt.C_NEV AS Nev
|
|
FROM T_SZERVEZET_OSSZES sz
|
|
INNER JOIN T_TANTARGY_OSSZES tt ON tt.C_SZERVEZETID = sz.ID AND tt.C_TANEVID = sz.C_TANEVID AND tt.TOROLT = 'F'
|
|
WHERE sz.ID = :pSzervezetId
|
|
AND sz.C_TANEVID = :pTanevId
|
|
AND sz.TOROLT = 'F'
|
|
";
|
|
|
|
var ds = GetData(commandText, parameters);
|
|
return ds;
|
|
}
|
|
|
|
public DataSet GetEntitySzervezetList(int entityId, string entityName)
|
|
{
|
|
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 = "uspGetEntitySzervezetList";
|
|
|
|
command.Parameters.Add("pEntityId", SDADBType.Int).Value = entityId;
|
|
command.Parameters.Add("pEntityName", SDADBType.Char).Value = entityName;
|
|
using (var adapter = new SDADataAdapter())
|
|
{
|
|
adapter.SelectCommand = command;
|
|
adapter.Fill(ds);
|
|
}
|
|
}
|
|
|
|
return ds;
|
|
}
|
|
|
|
public int? GetSzervezetIdNevAzonosito(int tanevId, string szervezetNev, string szervezetAzonosito)
|
|
{
|
|
using (var command = new SDACommand())
|
|
{
|
|
command.CommandText = $@"
|
|
SELECT TOP 1 ID
|
|
FROM T_SZERVEZET_OSSZES
|
|
WHERE C_NEV = :pSzervezetNev
|
|
AND C_AZONOSITO = :pSzervezetAzonosito
|
|
AND C_TANEVID = :pTanevId
|
|
AND TOROLT = 'F'
|
|
";
|
|
command.Connection = UserContext.Instance.SDAConnection;
|
|
command.Transaction = UserContext.Instance.SDATransaction;
|
|
command.CommandType = CommandType.Text;
|
|
|
|
command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId;
|
|
command.Parameters.Add("pSzervezetNev", szervezetNev);
|
|
command.Parameters.Add("pSzervezetAzonosito", szervezetAzonosito);
|
|
|
|
var result = command.ExecuteScalar();
|
|
|
|
if (result != DBNull.Value && result != null)
|
|
{
|
|
return Convert.ToInt32(result);
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public List<int> GetLathatoSzervezetek(int intezmenyId, int tanevId, int? szervezetId, int szervezetAdatokHalmazaId)
|
|
{
|
|
var parameters = new List<CommandParameter>
|
|
{
|
|
new CommandParameter("pIntezmenyId", intezmenyId),
|
|
new CommandParameter("pTanevId", tanevId),
|
|
szervezetId.IsEntityId() ?
|
|
new CommandParameter("pSzervezetId", szervezetId.Value) :
|
|
new CommandParameter("pSzervezetId", DBNull.Value),
|
|
new CommandParameter("pSzervezetAdatokHalmazaId", szervezetAdatokHalmazaId)
|
|
};
|
|
|
|
var commandText = @"
|
|
SELECT ID
|
|
FROM fnGetLathatoSzervezetek(
|
|
@pIntezmenyId
|
|
,@pTanevId
|
|
,@pSzervezetId
|
|
,@pSzervezetAdatokHalmazaId)
|
|
";
|
|
|
|
var dataSet = GetData(commandText, parameters);
|
|
|
|
var result = dataSet.Tables[0].AsEnumerable().Select(r => r.Field<int>("ID")).ToList();
|
|
return result;
|
|
}
|
|
}
|
|
}
|