520 lines
22 KiB
C#
520 lines
22 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using Kreta.DataAccess.Interfaces;
|
|
using Kreta.DataAccessManual.Interfaces;
|
|
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 NaptariNapDal : DataAccessBase, INaptariNapDal
|
|
{
|
|
public NaptariNapDal(DalHandler handler) : base(handler)
|
|
{
|
|
}
|
|
|
|
public NaptariNapDal(DalHandler handler, GridParameters parameters) : base(handler, parameters)
|
|
{
|
|
}
|
|
|
|
public bool IsTanitasiNap(DateTime datum, List<int> tanitasiNapIdList, int tanevId)
|
|
{
|
|
var filter = " AND TOROLT = 'F' AND C_NAPDATUMA = :pNapDatuma AND C_TANEVID = :pTanevId";
|
|
var commandParameters = new Dictionary<string, object>
|
|
{
|
|
{ "pNapDatuma", datum }, { "pTanevId", tanevId }
|
|
};
|
|
|
|
var naptariNap = NaptariNap.LoadWithFilter(filter, commandParameters).SingleOrDefault();
|
|
|
|
return naptariNap?.NapTipusa != null && tanitasiNapIdList.Contains(naptariNap.NapTipusa.Value);
|
|
}
|
|
|
|
public DataSet GetNaplozottOrakTanarai(int? naptariNapId)
|
|
{
|
|
if (!naptariNapId.HasValue)
|
|
{ return null; }
|
|
|
|
const string commandText = @"
|
|
SELECT
|
|
DISTINCT T_FELHASZNALO_OSSZES.ID ID, T_FELHASZNALO_OSSZES.C_NYOMTATASINEV Nev
|
|
FROM T_TANITASIORA_OSSZES
|
|
LEFT JOIN T_FOGLALKOZAS_OSSZES on T_TANITASIORA_OSSZES.C_FOGLALKOZASID = T_FOGLALKOZAS_OSSZES.ID
|
|
INNER JOIN T_FELHASZNALO_OSSZES on
|
|
IIF(T_FOGLALKOZAS_OSSZES.C_TANARID IS NOT NULL,T_FOGLALKOZAS_OSSZES.C_TANARID, T_TANITASIORA_OSSZES.C_ORATULAJDONOSID) = T_FELHASZNALO_OSSZES.ID
|
|
WHERE T_TANITASIORA_OSSZES.C_NAPTARINAPID = :pNaptariNapID
|
|
AND T_TANITASIORA_OSSZES.TOROLT = 'F'
|
|
AND T_TANITASIORA_OSSZES.C_MEGTARTOTT = 'T'
|
|
";
|
|
|
|
var paramList = new List<CommandParameter> { new CommandParameter("pNaptariNapID", naptariNapId.Value) };
|
|
var ds = GetData(commandText, parameters: paramList);
|
|
|
|
return ds;
|
|
}
|
|
|
|
public DateTime? GetDatumElottiUgyanolyanNapDatuma(DateTime date, bool mindenhet)
|
|
{
|
|
using (var command = new SDACommand())
|
|
{
|
|
command.Connection = UserContext.Instance.SDAConnection;
|
|
command.Transaction = UserContext.Instance.SDATransaction;
|
|
command.Parameters.Add("pDate", date.Date);
|
|
command.Parameters.Add("pMindenhet", mindenhet);
|
|
command.CommandText = @"
|
|
SELECT
|
|
TOP 1 nnPrev.C_NAPDATUMA
|
|
FROM T_NAPTARINAP nnPrev
|
|
INNER JOIN T_NAPTARINAP nnAkt ON
|
|
nnAkt.C_HETNAPJA=nnPrev.C_HETNAPJA
|
|
AND (:pMindenhet=1 OR nnPrev.C_HETIREND=nnAkt.C_HETIREND)
|
|
AND nnAkt.C_NAPDATUMA=:pDate
|
|
AND nnPrev.C_NAPDATUMA<nnAkt.C_NAPDATUMA
|
|
ORDER BY nnPrev.C_NAPDATUMA DESC";
|
|
var result = command.ExecuteScalar();
|
|
if (result != null)
|
|
{
|
|
return Convert.ToDateTime(result);
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public DateTime? GetDatumUtaniUgyanolyanNapDatuma(DateTime date, bool mindenhet)
|
|
{
|
|
using (var command = new SDACommand())
|
|
{
|
|
command.Connection = UserContext.Instance.SDAConnection;
|
|
command.Transaction = UserContext.Instance.SDATransaction;
|
|
command.Parameters.Add("pDate", date.Date);
|
|
command.Parameters.Add("pMindenhet", mindenhet);
|
|
command.CommandText = @"
|
|
SELECT
|
|
TOP 1 nnKov.C_NAPDATUMA
|
|
FROM T_NAPTARINAP nnKov
|
|
INNER JOIN T_NAPTARINAP nnAkt ON
|
|
nnAkt.C_HETNAPJA=nnKov.C_HETNAPJA
|
|
AND (:pMindenhet=1 OR nnKov.C_HETIREND=nnAkt.C_HETIREND)
|
|
AND nnAkt.C_NAPDATUMA=:pDate
|
|
AND nnKov.C_NAPDATUMA>nnAkt.C_NAPDATUMA
|
|
ORDER BY nnKov.C_NAPDATUMA";
|
|
var result = command.ExecuteScalar();
|
|
if (result != null)
|
|
{
|
|
return Convert.ToDateTime(result);
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public List<int> GetNaptariNapIdsIntervallumonBelul(DateTime kezd, DateTime veg)
|
|
{
|
|
var pList = new List<CommandParameter>();
|
|
pList.Add(new CommandParameter("pKezd", kezd));
|
|
pList.Add(new CommandParameter("pVeg", veg));
|
|
|
|
const string command = @"select
|
|
ID
|
|
from T_NAPTARINAP
|
|
where
|
|
T_NAPTARINAP.TOROLT = 'F' and
|
|
T_NAPTARINAP.C_NAPDATUMA BETWEEN :pKezd and :pVeg";
|
|
|
|
var ds = this.GetData(command, pList);
|
|
|
|
return ds.Tables[0].AsEnumerable().Select(x => x.Field<int>("ID")).ToList();
|
|
}
|
|
|
|
/// INFO @DevKornel: Mobil használja
|
|
public int? GetNaptariNapId(DateTime datum)
|
|
{
|
|
int? ret = null;
|
|
|
|
using (var command = new SDACommand())
|
|
{
|
|
command.Connection = UserContext.Instance.SDAConnection;
|
|
command.Transaction = UserContext.Instance.SDATransaction;
|
|
|
|
command.Parameters.Add("pDatum", datum);
|
|
|
|
command.CommandText = @"
|
|
SELECT
|
|
ID
|
|
FROM
|
|
T_NAPTARINAP_OSSZES
|
|
WHERE
|
|
T_NAPTARINAP_OSSZES.C_NAPDATUMA = :pDatum
|
|
";
|
|
|
|
var result = command.ExecuteScalar();
|
|
|
|
if (result != null && result != DBNull.Value)
|
|
{
|
|
ret = Convert.ToInt32(result);
|
|
}
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
public INaptariNap Get()
|
|
{
|
|
return NaptariNap.GiveAnInstance();
|
|
}
|
|
|
|
public INaptariNap Get(int id)
|
|
{
|
|
var entity = NaptariNap.GiveAnInstance();
|
|
entity.LoadByID(id);
|
|
return entity;
|
|
}
|
|
|
|
public void FullUpdate(INaptariNap dto)
|
|
{
|
|
var entity = dto as NaptariNap;
|
|
entity.FullUpdate();
|
|
|
|
DalHelper.Commit();
|
|
}
|
|
|
|
public void Update(INaptariNap dto)
|
|
{
|
|
var entity = dto as NaptariNap;
|
|
entity.Update();
|
|
|
|
DalHelper.Commit();
|
|
}
|
|
|
|
public void Insert(INaptariNap dto)
|
|
{
|
|
var entity = dto as NaptariNap;
|
|
entity.Insert();
|
|
|
|
dto.ID = entity.ID;
|
|
DalHelper.Commit();
|
|
}
|
|
|
|
public void Delete(int id)
|
|
{
|
|
var entity = NaptariNap.GiveAnInstance();
|
|
entity.LoadByID(id);
|
|
entity.Delete();
|
|
|
|
DalHelper.Commit();
|
|
}
|
|
|
|
public void UpdateNaptariNapokForOsszefuggoSzakGyak(DateTime newSzakGyakKezdoDatum, DateTime newSzakGyakVegDatum, int tanevId)
|
|
{
|
|
UpdateAlapOrarendiNap(newSzakGyakKezdoDatum, newSzakGyakVegDatum, tanevId);
|
|
UpdateOrarendiNap(newSzakGyakKezdoDatum, newSzakGyakVegDatum, tanevId);
|
|
|
|
SetBackAlapOrarendiNap(newSzakGyakKezdoDatum, newSzakGyakVegDatum, tanevId);
|
|
SetBackOrarendiNap(newSzakGyakKezdoDatum, newSzakGyakVegDatum, tanevId);
|
|
}
|
|
|
|
private void SetBackOrarendiNap(DateTime newSzakGyakKezdoDatum, DateTime newSzakGyakVegDatum, int tanevId)
|
|
{
|
|
using (var command = new SDACommand())
|
|
{
|
|
command.Connection = UserContext.Instance.SDAConnection;
|
|
command.Transaction = UserContext.Instance.SDATransaction;
|
|
|
|
command.Parameters.Add(nameof(newSzakGyakKezdoDatum), newSzakGyakKezdoDatum);
|
|
command.Parameters.Add(nameof(newSzakGyakVegDatum), newSzakGyakVegDatum);
|
|
|
|
command.Parameters.Add(nameof(HetNapjaTipusEnum.Hetfo), (int)HetNapjaTipusEnum.Hetfo);
|
|
command.Parameters.Add(nameof(HetNapjaTipusEnum.Kedd), (int)HetNapjaTipusEnum.Kedd);
|
|
command.Parameters.Add(nameof(HetNapjaTipusEnum.Szerda), (int)HetNapjaTipusEnum.Szerda);
|
|
command.Parameters.Add(nameof(HetNapjaTipusEnum.Csutortok), (int)HetNapjaTipusEnum.Csutortok);
|
|
command.Parameters.Add(nameof(HetNapjaTipusEnum.Pentek), (int)HetNapjaTipusEnum.Pentek);
|
|
command.Parameters.Add(nameof(tanevId), tanevId);
|
|
|
|
command.CommandText = $@"
|
|
UPDATE n
|
|
SET n.C_ORARENDINAP = 'F'
|
|
FROM T_NAPTARINAP_OSSZES n
|
|
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = n.C_NAPDATUMA AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND tr.TOROLT = 'F' AND tr.C_TANEVID = n.C_TANEVID
|
|
INNER JOIN T_TANEV_OSSZES t ON t.id = n.C_TANEVID AND t.TOROLT = 'F'
|
|
WHERE (n.C_ALAPHETNAPJA = @{nameof(HetNapjaTipusEnum.Hetfo)} OR n.C_ALAPHETNAPJA = @{nameof(HetNapjaTipusEnum.Kedd)} OR n.C_ALAPHETNAPJA = @{nameof(HetNapjaTipusEnum.Szerda)} OR n.C_ALAPHETNAPJA = @{nameof(HetNapjaTipusEnum.Csutortok)} OR n.C_ALAPHETNAPJA = @{nameof(HetNapjaTipusEnum.Pentek)})
|
|
AND C_NAPDATUMA > t.C_UTOLSOTANITASINAP
|
|
AND (C_NAPDATUMA < @{nameof(newSzakGyakKezdoDatum)} OR C_NAPDATUMA > @{nameof(newSzakGyakVegDatum)})
|
|
AND tr.ID IS NULL
|
|
AND n.TOROLT = 'F'
|
|
AND n.C_TANEVID = @{nameof(tanevId)}
|
|
";
|
|
|
|
var result = command.ExecuteNonQuery();
|
|
}
|
|
}
|
|
|
|
private void SetBackAlapOrarendiNap(DateTime newSzakGyakKezdoDatum, DateTime newSzakGyakVegDatum, int tanevId)
|
|
{
|
|
using (var command = new SDACommand())
|
|
{
|
|
command.Connection = UserContext.Instance.SDAConnection;
|
|
command.Transaction = UserContext.Instance.SDATransaction;
|
|
|
|
command.Parameters.Add(nameof(newSzakGyakKezdoDatum), newSzakGyakKezdoDatum);
|
|
command.Parameters.Add(nameof(newSzakGyakVegDatum), newSzakGyakVegDatum);
|
|
|
|
command.Parameters.Add(nameof(HetNapjaTipusEnum.Hetfo), (int)HetNapjaTipusEnum.Hetfo);
|
|
command.Parameters.Add(nameof(HetNapjaTipusEnum.Kedd), (int)HetNapjaTipusEnum.Kedd);
|
|
command.Parameters.Add(nameof(HetNapjaTipusEnum.Szerda), (int)HetNapjaTipusEnum.Szerda);
|
|
command.Parameters.Add(nameof(HetNapjaTipusEnum.Csutortok), (int)HetNapjaTipusEnum.Csutortok);
|
|
command.Parameters.Add(nameof(HetNapjaTipusEnum.Pentek), (int)HetNapjaTipusEnum.Pentek);
|
|
command.Parameters.Add(nameof(tanevId), tanevId);
|
|
|
|
command.CommandText = $@"
|
|
UPDATE n
|
|
SET n.C_ALAPORARENDINAP = 'F'
|
|
FROM T_NAPTARINAP_OSSZES n
|
|
INNER JOIN T_TANEV_OSSZES t ON t.id = n.C_TANEVID AND t.TOROLT = 'F'
|
|
WHERE (n.C_ALAPHETNAPJA = @{nameof(HetNapjaTipusEnum.Hetfo)} OR n.C_ALAPHETNAPJA = @{nameof(HetNapjaTipusEnum.Kedd)} OR n.C_ALAPHETNAPJA = @{nameof(HetNapjaTipusEnum.Szerda)} OR n.C_ALAPHETNAPJA = @{nameof(HetNapjaTipusEnum.Csutortok)} OR n.C_ALAPHETNAPJA = @{nameof(HetNapjaTipusEnum.Pentek)})
|
|
AND C_NAPDATUMA > t.C_UTOLSOTANITASINAP
|
|
AND (C_NAPDATUMA < @{nameof(newSzakGyakKezdoDatum)} OR C_NAPDATUMA > @{nameof(newSzakGyakVegDatum)})
|
|
AND n.TOROLT = 'F'
|
|
AND n.C_TANEVID = @{nameof(tanevId)}
|
|
";
|
|
|
|
var result = command.ExecuteNonQuery();
|
|
}
|
|
}
|
|
|
|
private void UpdateAlapOrarendiNap(DateTime newSzakGyakKezdoDatum, DateTime newSzakGyakVegDatum, int tanevId)
|
|
{
|
|
using (var command = new SDACommand())
|
|
{
|
|
command.Connection = UserContext.Instance.SDAConnection;
|
|
command.Transaction = UserContext.Instance.SDATransaction;
|
|
|
|
command.Parameters.Add(nameof(newSzakGyakKezdoDatum), newSzakGyakKezdoDatum);
|
|
command.Parameters.Add(nameof(newSzakGyakVegDatum), newSzakGyakVegDatum);
|
|
|
|
command.Parameters.Add(nameof(HetNapjaTipusEnum.Hetfo), (int)HetNapjaTipusEnum.Hetfo);
|
|
command.Parameters.Add(nameof(HetNapjaTipusEnum.Kedd), (int)HetNapjaTipusEnum.Kedd);
|
|
command.Parameters.Add(nameof(HetNapjaTipusEnum.Szerda), (int)HetNapjaTipusEnum.Szerda);
|
|
command.Parameters.Add(nameof(HetNapjaTipusEnum.Csutortok), (int)HetNapjaTipusEnum.Csutortok);
|
|
command.Parameters.Add(nameof(HetNapjaTipusEnum.Pentek), (int)HetNapjaTipusEnum.Pentek);
|
|
command.Parameters.Add(nameof(tanevId), tanevId);
|
|
|
|
command.CommandText = $@"
|
|
UPDATE n
|
|
SET n.C_ALAPORARENDINAP = 'T'
|
|
FROM T_NAPTARINAP_OSSZES n
|
|
WHERE (n.C_ALAPHETNAPJA = @{nameof(HetNapjaTipusEnum.Hetfo)} OR n.C_ALAPHETNAPJA = @{nameof(HetNapjaTipusEnum.Kedd)} OR n.C_ALAPHETNAPJA = @{nameof(HetNapjaTipusEnum.Szerda)} OR n.C_ALAPHETNAPJA = @{nameof(HetNapjaTipusEnum.Csutortok)} OR n.C_ALAPHETNAPJA = @{nameof(HetNapjaTipusEnum.Pentek)})
|
|
AND C_NAPDATUMA >= @{nameof(newSzakGyakKezdoDatum)}
|
|
AND C_NAPDATUMA <= @{nameof(newSzakGyakVegDatum)}
|
|
AND n.TOROLT = 'F'
|
|
AND n.C_TANEVID = @{nameof(tanevId)}
|
|
";
|
|
|
|
var result = command.ExecuteNonQuery();
|
|
}
|
|
}
|
|
|
|
private void UpdateOrarendiNap(DateTime newSzakGyakKezdoDatum, DateTime newSzakGyakVegDatum, int tanevId)
|
|
{
|
|
using (var command = new SDACommand())
|
|
{
|
|
command.Connection = UserContext.Instance.SDAConnection;
|
|
command.Transaction = UserContext.Instance.SDATransaction;
|
|
|
|
command.Parameters.Add(nameof(newSzakGyakKezdoDatum), newSzakGyakKezdoDatum);
|
|
command.Parameters.Add(nameof(newSzakGyakVegDatum), newSzakGyakVegDatum);
|
|
|
|
command.Parameters.Add(nameof(HetNapjaTipusEnum.Hetfo), (int)HetNapjaTipusEnum.Hetfo);
|
|
command.Parameters.Add(nameof(HetNapjaTipusEnum.Kedd), (int)HetNapjaTipusEnum.Kedd);
|
|
command.Parameters.Add(nameof(HetNapjaTipusEnum.Szerda), (int)HetNapjaTipusEnum.Szerda);
|
|
command.Parameters.Add(nameof(HetNapjaTipusEnum.Csutortok), (int)HetNapjaTipusEnum.Csutortok);
|
|
command.Parameters.Add(nameof(HetNapjaTipusEnum.Pentek), (int)HetNapjaTipusEnum.Pentek);
|
|
command.Parameters.Add(nameof(tanevId), tanevId);
|
|
|
|
command.CommandText = $@"
|
|
UPDATE n
|
|
SET n.C_ORARENDINAP = 'T'
|
|
FROM T_NAPTARINAP_OSSZES n
|
|
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = n.C_NAPDATUMA AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND tr.TOROLT = 'F' AND tr.C_TANEVID = n.C_TANEVID
|
|
WHERE (n.C_ALAPHETNAPJA = @{nameof(HetNapjaTipusEnum.Hetfo)} OR n.C_ALAPHETNAPJA = @{nameof(HetNapjaTipusEnum.Kedd)} OR n.C_ALAPHETNAPJA = @{nameof(HetNapjaTipusEnum.Szerda)} OR n.C_ALAPHETNAPJA = @{nameof(HetNapjaTipusEnum.Csutortok)} OR n.C_ALAPHETNAPJA = @{nameof(HetNapjaTipusEnum.Pentek)})
|
|
AND n.C_NAPDATUMA >= @{nameof(newSzakGyakKezdoDatum)}
|
|
AND n.C_NAPDATUMA <= @{nameof(newSzakGyakVegDatum)}
|
|
AND n.TOROLT = 'F'
|
|
AND tr.ID IS NULL
|
|
AND n.C_TANEVID = @{nameof(tanevId)}
|
|
";
|
|
|
|
var result = command.ExecuteNonQuery();
|
|
}
|
|
}
|
|
|
|
public DataSet GetNaptariNapData(DateTime datum, int tanevId)
|
|
{
|
|
const string commandText = @"
|
|
SELECT
|
|
nn.ID
|
|
,nn.C_HETIREND as Hetirend
|
|
,nn.C_HETNAPJA as Hetnapja
|
|
,nn.C_ALAPHETIREND as AlapHetirend
|
|
,nn.C_ALAPHETNAPJA as AlapHetnapja
|
|
FROM T_NAPTARINAP_OSSZES nn
|
|
WHERE
|
|
nn.C_NAPDATUMA = :pDatum
|
|
AND nn.C_TANEVID = :pTanevId
|
|
";
|
|
|
|
var paramList = new List<CommandParameter> {
|
|
new CommandParameter("pDatum", datum),
|
|
new CommandParameter("pTanevId", tanevId)
|
|
};
|
|
|
|
var ds = GetData(commandText, parameters: paramList);
|
|
return ds;
|
|
}
|
|
|
|
public bool GetIsEgyediNapByDate(DateTime datum, int tanevId)
|
|
{
|
|
using (var command = UserContext.Instance.SDAConnection.CreateCommand())
|
|
{
|
|
command.Transaction = UserContext.Instance.SDATransaction;
|
|
command.CommandText = @"
|
|
SELECT
|
|
tr.C_EGYEDINAP
|
|
FROM T_TANEVRENDJE tr
|
|
WHERE
|
|
tr.C_DATUM = :pDatum
|
|
AND tr.C_TANEVID = :pTanevId
|
|
AND tr.TOROLT = 'F'
|
|
";
|
|
|
|
command.Parameters.Add("pDatum", datum);
|
|
command.Parameters.Add("pTanevId", tanevId);
|
|
var result = command.ExecuteScalar();
|
|
|
|
return result != null && result.ToString() == "T";
|
|
}
|
|
}
|
|
|
|
public bool GetIsEgyediNapByDateAndOsztalyCsoportId(DateTime datum, int tanevId, int osztalyCsoportId)
|
|
{
|
|
using (SDACommand sdaCommand = UserContext.Instance.SDAConnection.CreateCommand())
|
|
{
|
|
sdaCommand.Transaction = UserContext.Instance.SDATransaction;
|
|
sdaCommand.CommandText = @"
|
|
SELECT TOP (1) C_EGYEDINAP
|
|
FROM (
|
|
SELECT 1 AS rn, tr.C_EGYEDINAP
|
|
FROM T_TANEVRENDJE_OSSZES tr
|
|
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON ocstr.C_TANEVRENDJEID = tr.ID
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.C_TANEVID = tr.C_TANEVID AND ocs.TOROLT = 'F' AND ocs.ID = ocstr.C_OSZTALYCSOPORTID
|
|
WHERE tr.C_TANEVID = :pTanevId
|
|
AND tr.TOROLT = 'F'
|
|
AND tr.C_DATUM = :pDatum
|
|
AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'F'
|
|
AND ocs.ID = :pOsztalyCsoportId
|
|
|
|
UNION ALL
|
|
|
|
SELECT 2 AS rn, tr.C_EGYEDINAP
|
|
FROM T_TANEVRENDJE_OSSZES tr
|
|
WHERE tr.C_TANEVID = :pTanevId
|
|
AND tr.TOROLT = 'F'
|
|
AND tr.C_DATUM = :pDatum
|
|
AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T'
|
|
|
|
UNION ALL
|
|
|
|
SELECT 3 AS rn, 'F'
|
|
) x
|
|
ORDER BY rn
|
|
";
|
|
|
|
sdaCommand.Parameters.Add("pTanevId", tanevId);
|
|
sdaCommand.Parameters.Add("pDatum", datum);
|
|
sdaCommand.Parameters.Add("pOsztalyCsoportId", osztalyCsoportId);
|
|
|
|
var result = sdaCommand.ExecuteScalar();
|
|
|
|
return result != null && result.ToString() == "T";
|
|
}
|
|
}
|
|
|
|
public DataSet GetIsEgyediNapByDateAndOsztalyCsoportNev(DateTime datum, int tanevId, string osztalyCsoportNev)
|
|
{
|
|
using (SDACommand sdaCommand = UserContext.Instance.SDAConnection.CreateCommand())
|
|
{
|
|
sdaCommand.Transaction = UserContext.Instance.SDATransaction;
|
|
sdaCommand.CommandText = $@"
|
|
SELECT TOP (1) IsEgyediNap, HetNapjaTipusId
|
|
FROM (
|
|
SELECT 1 AS rn, tr.C_EGYEDINAP AS IsEgyediNap, C_HETNAPJA AS HetNapjaTipusId
|
|
FROM T_TANEVRENDJE_OSSZES tr
|
|
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON ocstr.C_TANEVRENDJEID = tr.ID
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.C_TANEVID = tr.C_TANEVID AND ocs.TOROLT = 'F' AND ocs.ID = ocstr.C_OSZTALYCSOPORTID
|
|
WHERE tr.C_TANEVID = :pTanevId
|
|
AND tr.TOROLT = 'F'
|
|
AND tr.C_DATUM = :pDatum
|
|
AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'F'
|
|
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
|
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
|
AND REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ocs.C_NEV),CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)) = LOWER(:pOsztalyCsoportNev)
|
|
|
|
UNION ALL
|
|
|
|
SELECT 2 AS rn, tr.C_EGYEDINAP AS IsEgyediNap, C_HETNAPJA AS HetNapjaTipusId
|
|
FROM T_TANEVRENDJE_OSSZES tr
|
|
WHERE tr.C_TANEVID = :pTanevId
|
|
AND tr.TOROLT = 'F'
|
|
AND tr.C_DATUM = :pDatum
|
|
AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T'
|
|
|
|
UNION ALL
|
|
|
|
SELECT 3 AS rn, 'F', NULL
|
|
) x
|
|
ORDER BY rn
|
|
";
|
|
|
|
sdaCommand.Parameters.Add("pTanevId", tanevId);
|
|
sdaCommand.Parameters.Add("pDatum", datum);
|
|
sdaCommand.Parameters.Add("pOsztalyCsoportNev", osztalyCsoportNev);
|
|
|
|
var dataSet = new DataSet();
|
|
using (var adapter = new SDADataAdapter())
|
|
{
|
|
adapter.SelectCommand = sdaCommand;
|
|
adapter.Fill(dataSet);
|
|
}
|
|
|
|
return dataSet;
|
|
}
|
|
}
|
|
|
|
public DataSet GetNapTipusData(int naptipus, int tanevId)
|
|
{
|
|
const string commandText = @"
|
|
SELECT
|
|
C_ISTANORAI as IsTanorai
|
|
,C_ISTANORANKIVULI as IsTanorankivuli
|
|
FROM T_NAPTIPUS_OSSZES
|
|
WHERE
|
|
ID = :pNaptipus
|
|
AND C_ALTANEVID = :pTanevId
|
|
";
|
|
|
|
var paramList = new List<CommandParameter> {
|
|
new CommandParameter("pNaptipus", naptipus),
|
|
new CommandParameter("pTanevId", tanevId)
|
|
};
|
|
|
|
var ds = GetData(commandText, parameters: paramList, booleanColumns: "IsTanorai,IsTanorankivuli");
|
|
return ds;
|
|
}
|
|
}
|
|
}
|