113 lines
4.2 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|