init
This commit is contained in:
@@ -0,0 +1,520 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user