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

378 lines
14 KiB
C#

using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Xml.Serialization;
using Kreta.DataAccess.Interfaces;
using Kreta.DataAccessManual.Interfaces;
using Kreta.DataAccessManual.Model;
using Kreta.DataAccessManual.Util;
using Kreta.Framework;
using Kreta.Framework.Util;
using SDA.DataProvider;
using SDA.Kreta.Entities;
namespace Kreta.DataAccessManual
{
internal class CsengetesiRendOrakDal : DataAccessBase, ICsengetesiRendOrakDal
{
public CsengetesiRendOrakDal(DalHandler handler, GridParameters parameters) : base(handler, parameters)
{
}
public CsengetesiRendOrakDal(DalHandler handler) : base(handler)
{
}
public void UpdateCsengetesiRend(int? newCsengetesiRendId, int? oldCsengetesiRendId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandText = "uspUpdateCsengetesiRend";
command.Parameters.Add("newCsengetesiRendId", newCsengetesiRendId);
command.Parameters.Add("oldCsengetesiRendId", oldCsengetesiRendId);
command.CommandType = CommandType.StoredProcedure;
command.ExecuteNonQuery();
DalHelper.Commit();
}
}
public DataSet GetCsengetesiiRendKapcsolodoOra(int csengetesiRendId, int tanevId, int intezmenyId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetCsengetesiiRendKapcsolodoOra";
command.Parameters.Add("pCsengetesiRendId", csengetesiRendId);
command.Parameters.Add("pTanevId", tanevId);
command.Parameters.Add("pIntezmenyId", intezmenyId);
var dataSet = new DataSet();
using (var sdaDataAdapter = new SDADataAdapter())
{
sdaDataAdapter.SelectCommand = command;
sdaDataAdapter.Fill(dataSet);
}
return dataSet;
}
}
public DataSet GetCsengetesiiRendKapcsolodoOraKezdeteVege(int csengetesiRendId, int tanevId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetCsengetesiiRendKapcsolodoOraKezdeteVege";
command.Parameters.Add("pTanevId", tanevId);
command.Parameters.Add("pCsengetesiRendId", csengetesiRendId);
var dataSet = new DataSet();
using (var sdaDataAdapter = new SDADataAdapter())
{
sdaDataAdapter.SelectCommand = command;
sdaDataAdapter.Fill(dataSet);
}
return dataSet;
}
}
public DataSet GetCsengetesiRendOraiForGrid(int csengetesiRendId, bool onlyReal)
{
var parameters = new List<CommandParameter>() { new CommandParameter("pCsengetesiRendID", csengetesiRendId) };
var commandText = @"
SELECT
Oraszam AS ID,
ID AS CsengetesiRendOraId,
Kezdete,
Vege,
Oraszam,
CsengrendId,
CASE
WHEN ID is null
THEN 'F'
ELSE 'T'
END AS IsReal
FROM (( SELECT DISTINCT number AS Oraszam
FROM master..[spt_values]
WHERE number BETWEEN 0 AND 49 ) AS mask
LEFT JOIN (SELECT
[ID] ID
,left(cast(C_KEZDETE as time),5) Kezdete
,left(cast(c_VEGE as time),5) Vege
,[C_ORASZAM] RealOraszam
,[C_CSENGETESIRENDID] CsengrendId
FROM [T_CSENGETESIRENDORA_OSSZES]
WHERE [TOROLT] ='F'
AND [C_CSENGETESIRENDID] = :pCsengetesiRendID ) data ON mask.Oraszam = data.RealOraszam)
";
if (onlyReal)
{
commandText += "WHERE ID IS NOT NULL";
}
DataSet ds = GetData(commandText, parameters, booleanColumns: "IsReal");
return ds;
}
public DataSet GetCsengetesiOrakKezdVeg(int tanevId, int intezmenyId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetCsengetesiOrakKezdVeg";
command.Parameters.Add("pTanevId", tanevId);
command.Parameters.Add("pIntezmenyId", intezmenyId);
var dataSet = new DataSet();
using (var sdaDataAdapter = new SDADataAdapter())
{
sdaDataAdapter.SelectCommand = command;
sdaDataAdapter.Fill(dataSet);
}
return dataSet;
}
}
public DataSet GetCsengetesirendOrakNaptarhoz(int tanevId, int? csengetesiRendId)
{
var parameters = new List<CommandParameter>();
string whereClause = "";
parameters.Add(new CommandParameter("pTanevId", tanevId));
if (csengetesiRendId.HasValue)
{
parameters.Add(new CommandParameter("pCsengetesiRendId", csengetesiRendId));
whereClause += " AND T_CSENGETESIREND_OSSZES.ID = :pCsengetesiRendId";
}
else
{
whereClause += " AND T_CSENGETESIREND_OSSZES.C_AKTIV = 'T'";
}
var commandText = @"
SELECT
T_CSENGETESIRENDORA_OSSZES.ID
,T_CSENGETESIRENDORA_OSSZES.C_KEZDETE
,T_CSENGETESIRENDORA_OSSZES.C_VEGE
,T_CSENGETESIRENDORA_OSSZES.C_ORASZAM
FROM
T_CSENGETESIRENDORA_OSSZES
INNER JOIN
T_CSENGETESIREND_OSSZES ON
T_CSENGETESIREND_OSSZES.ID = T_CSENGETESIRENDORA_OSSZES.C_CSENGETESIRENDID
WHERE
T_CSENGETESIRENDORA_OSSZES.TOROLT = 'F'
AND T_CSENGETESIRENDORA_OSSZES.C_TANEVID = :pTanevId"
+ whereClause;
DataSet ds = GetData(commandText, parameters);
return ds;
}
public int CsengetesiRendOrakTorles(List<int> torlendok, int tanevId)
{
var torlendokXml = new CsengetesiRendOraTorlesXml();
foreach (var id in torlendok)
{
torlendokXml.Ids.Add(id);
}
string xml;
var serializer = new XmlSerializer(typeof(CsengetesiRendOraTorlesXml));
using (var stream = new StringWriter())
{
serializer.Serialize(stream, torlendokXml);
xml = stream.ToString();
}
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("xml", xml);
command.Parameters.Add("TanevId", tanevId);
command.CommandText = @"sp_CsengetesiRendOrakTorles";
var result = command.ExecuteScalar();
int id;
DalHelper.Commit();
if (result != null && int.TryParse(result.ToString(), out id))
{
return id;
}
return 0;
}
}
public int Delete(int id)
{
var entity = CsengetesiRendOra.GiveAnInstance();
entity.LoadByID(id);
entity.Delete(true);
DalHelper.Commit();
return entity.CsengetesiRendId;
}
public ICsengetesiRendOra Get()
{
return CsengetesiRendOra.GiveAnInstance();
}
public ICsengetesiRendOra Get(int id)
{
var entity = CsengetesiRendOra.GiveAnInstance();
entity.LoadByID(id);
return entity;
}
public void Insert(ICsengetesiRendOra dto)
{
var entity = dto as CsengetesiRendOra;
entity.Insert();
dto.ID = entity.ID;
DalHelper.Commit();
}
public void Update(ICsengetesiRendOra dto)
{
var entity = dto as CsengetesiRendOra;
entity.Update();
DalHelper.Commit();
}
public void UpdateOrarendiOraVisszamenolegesen(int csengetesiRendOraId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandText = "sp_UpdateOrarendiOraVisszamenolegesen";
command.Parameters.Add("csengetesiRendOraId", csengetesiRendOraId);
command.CommandType = CommandType.StoredProcedure;
command.ExecuteNonQuery();
DalHelper.Commit();
}
}
public int? GetCsengetesiRendOraIdByIdAndOraszam(int csengRendId, int oraszam, int tanevId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetCsengetesiRendOraIdByIdAndOraszam";
command.Parameters.Add("pcsengRendId", csengRendId);
command.Parameters.Add("poraszam", oraszam);
command.Parameters.Add("pTanevId", tanevId);
var result = command.ExecuteScalar();
if (result != null)
{
if (int.TryParse(result.ToString(), out var intres))
{
return intres;
}
}
return null;
}
}
public DataSet CheckOrarendiOraOraszamIdopont(int intezmenyId, int tanevId, int csengetesiRendId, int oraszam)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspCheckOrarendiOraOraszamIdopont";
command.Parameters.Add("pIntezmenyId", intezmenyId);
command.Parameters.Add("pTanevId", tanevId);
command.Parameters.Add("pCsengetesiRendId", csengetesiRendId);
command.Parameters.Add("pOraszam", oraszam);
var dataSet = new DataSet();
using (var sdaDataAdapter = new SDADataAdapter())
{
sdaDataAdapter.SelectCommand = command;
sdaDataAdapter.Fill(dataSet);
}
return dataSet;
}
}
public DataSet ReferencesCount(int csengetesiRendOraId, int tanevId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspReferencesCount";
command.Parameters.Add("pTanevId", tanevId);
command.Parameters.Add("pCsengetesiRendOraId", csengetesiRendOraId);
var dataSet = new DataSet();
using (var sdaDataAdapter = new SDADataAdapter())
{
sdaDataAdapter.SelectCommand = command;
sdaDataAdapter.Fill(dataSet);
}
return dataSet;
}
}
public void FollowUpCsengetesiRendOra(int intezmenyId, int aktTanevId, int kovetkezoTanevId, int csnegetesiRendOraId, int csengetesiRendId, bool isVisszamenoleges)
{
using (SDACommand command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandText = "uspFollowUpcsengetesiRendOra";
command.Parameters.Add("intezmenyId", intezmenyId);
command.Parameters.Add("aktTanevId", aktTanevId);
command.Parameters.Add("kovetkezoTanevId", kovetkezoTanevId);
command.Parameters.Add("csengetesiRendOraId", csnegetesiRendOraId);
command.Parameters.Add("csengetesiRendId", csengetesiRendId);
command.Parameters.Add("isVisszamenoleges", isVisszamenoleges);
command.CommandType = CommandType.StoredProcedure;
command.ExecuteNonQuery();
DalHelper.Commit();
}
}
}
}