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

113 lines
4.2 KiB
C#

using System.Collections.Generic;
using System.Data;
using System.Linq;
using Kreta.DataAccess.Interfaces;
using Kreta.DataAccessManual.Interfaces;
using Kreta.DataAccessManual.Util;
using Kreta.Framework.Util;
using SDA.Kreta.Entities;
namespace Kreta.DataAccessManual
{
internal class KirKontenerDAL : DataAccessBase, IKirKontenerDAL
{
public KirKontenerDAL(DalHandler handler, GridParameters parameters) : base(handler, parameters) { }
public KirKontenerDAL(DalHandler handler) : base(handler) { }
public IKIRKontener Get()
{
return KIRKontener.GiveAnInstance();
}
public IKIRKontener Get(int id)
{
var entity = KIRKontener.GiveAnInstance();
entity.LoadByID(id);
return entity;
}
public IKIRKontener GetByFelhasznalo(int felhasznaloId, string intezmenyAzonosito, string kontenerId)
{
var felhasznaloEntity = Felhasznalo.GiveAnInstance();
felhasznaloEntity.LoadByID(felhasznaloId);
KIRKontener kirKontenerEntityElement = felhasznaloEntity.KIRKontener
.FirstOrDefault(x => x.IntezmenyAzonosito == intezmenyAzonosito && x.KontenerId == kontenerId && !x.Torolt);
return kirKontenerEntityElement;
}
public void FullUpdate(IKIRKontener dto)
{
var entity = dto as KIRKontener;
entity.FullUpdate(true);
DalHelper.Commit();
}
public void Update(IKIRKontener dto)
{
var entity = dto as KIRKontener;
entity.FullUpdate();
DalHelper.Commit();
}
public void Insert(IKIRKontener dto)
{
var entity = dto as KIRKontener;
entity.Insert(true);
dto.ID = entity.ID;
DalHelper.Commit();
}
public void Delete(int id)
{
var entity = KIRKontener.GiveAnInstance();
entity.LoadByID(id);
entity.KIRKontenerElem.RemoveAll();
entity.KIRKontenerStatusz.RemoveAll();
entity.Delete();
DalHelper.Commit();
}
public List<string> GetFelhasznaloAktivKontenerId(int felhasznaloId, int intezmenyId, int tanevId)
{
var parameters = new List<CommandParameter>
{
new CommandParameter("pFelhasznaloId", felhasznaloId),
new CommandParameter("pIntezmenyId", intezmenyId),
new CommandParameter("pTanevId", tanevId)
};
var query = @"SELECT
KirKontener.C_KONTENERID
,MAX(KirKontenerStatusz.CREATED)
FROM T_KIRKONTENER KirKontener
LEFT JOIN T_KIRKONTENERSTATUSZ KirKontenerStatusz ON KirKontener.ID = KirKontenerStatusz.C_KIRKONTENERID
AND KirKontenerStatusz.C_INTEZMENYID = KirKontener.C_INTEZMENYID
AND KirKontenerStatusz.C_TANEVID = KirKontener.C_TANEVID
AND KirKontenerStatusz.TOROLT = 'F'
WHERE KirKontener.C_FELHASZNALOID = :pFelhasznaloId
AND KirKontener.C_INTEZMENYID = :pIntezmenyId
AND KirKontener.C_TANEVID = :pTanevId
AND KirKontener.TOROLT = 'F'
AND (
(KirKontenerStatusz.C_KOD IS NULL OR KirKontenerStatusz.C_KOD NOT IN ('2200', '2400', '2600', '2800', '3600'))
AND KirKontener.C_VALASZKOD = 'OK')
AND NOT EXISTS (SELECT 1
FROM T_KIRKONTENERELEMSTATUSZ KirKontenerElemStatusz
INNER JOIN T_KIRKONTENERELEM KirKontenerElem ON KirKontenerElem.ID = KirKontenerElemStatusz.C_KIRKONTENERELEMID
WHERE KirKontenerElem.C_KIRKONTENERID = KirKontener.ID)
GROUP BY KirKontener.C_KONTENERID";
var ds = GetData(query, parameters);
return ds.Tables[0]
.AsEnumerable()
.Select(x => x.Field<string>("C_KONTENERID"))
.ToList();
}
}
}