2025-02-27 15:10:21 +01:00
|
|
|
|
using BeWo.Data.Entities;
|
|
|
|
|
|
using NHibernate.Criterion;
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
using BS.Shared.Interface;
|
|
|
|
|
|
using BeWo.Data.Entities.Light;
|
|
|
|
|
|
using BS.Shared;
|
|
|
|
|
|
|
|
|
|
|
|
namespace BeWo.Data.Access
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
///
|
|
|
|
|
|
/// Ggf Gkv in eigene DAO auslagern
|
|
|
|
|
|
///
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class FinanceDAO : AbstractBaseDAO
|
|
|
|
|
|
{
|
|
|
|
|
|
public bool HaveIKDatenannahmestelleChanged(IGkvAbrechnung gkvAbrechnung, string ikdatenannahmestelle)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (gkvAbrechnung.TransferProtokolle is IEnumerable<IGkvTransferProtokoll> list && list.Any())
|
|
|
|
|
|
{
|
|
|
|
|
|
var last_prot_w_daten = list.Select(x => x.IKDatenannahmestelle).Where((x) => !string.IsNullOrEmpty(x)).LastOrDefault();
|
|
|
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(last_prot_w_daten) && last_prot_w_daten != ikdatenannahmestelle)
|
|
|
|
|
|
{
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-11-24 10:28:48 +01:00
|
|
|
|
public IEnumerable<GkvAbrechnungLight> GetGkvAbrechnungen(DateTime? startDate, DateTime? endDate, bool useInvoiceCreationDate = true)
|
2025-02-27 15:10:21 +01:00
|
|
|
|
{
|
|
|
|
|
|
if (endDate.HasValue)
|
|
|
|
|
|
endDate = endDate.Value.Date.AddDays(1).AddMilliseconds(-1);
|
|
|
|
|
|
|
|
|
|
|
|
var lCriteria = CreateCriteriaIsActive<GkvAbrechnungLight>();
|
2025-11-24 10:28:48 +01:00
|
|
|
|
if (useInvoiceCreationDate)
|
2025-02-27 15:10:21 +01:00
|
|
|
|
{
|
|
|
|
|
|
if (startDate.HasValue)
|
|
|
|
|
|
lCriteria.Add(Restrictions.Ge(nameof(GkvAbrechnungLight.ErstelltAm), startDate));
|
|
|
|
|
|
if (endDate.HasValue)
|
|
|
|
|
|
lCriteria.Add(Restrictions.Le(nameof(GkvAbrechnungLight.ErstelltAm), endDate));
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (startDate.HasValue)
|
|
|
|
|
|
lCriteria.Add(Restrictions.Ge(nameof(GkvAbrechnungLight.AbrechnungsZeitraumEnde), startDate));
|
|
|
|
|
|
if (endDate.HasValue)
|
|
|
|
|
|
lCriteria.Add(Restrictions.Le(nameof(GkvAbrechnungLight.AbrechnungsZeitraumStart), endDate));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return lCriteria.List<GkvAbrechnungLight>();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public IEnumerable<GkvTransferProtokoll> GetGkvTransferProtokollByDateRange(DateTime? start, DateTime? end)
|
|
|
|
|
|
{
|
|
|
|
|
|
var lCriteria = CreateCriteria<GkvTransferProtokoll>();
|
|
|
|
|
|
|
|
|
|
|
|
if (start.HasValue)
|
|
|
|
|
|
lCriteria.Add(Restrictions.Ge(nameof(GkvTransferProtokoll.ErstelltAm), start));
|
|
|
|
|
|
if (end.HasValue)
|
|
|
|
|
|
lCriteria.Add(Restrictions.Le(nameof(GkvTransferProtokoll.ErstelltAm), end));
|
|
|
|
|
|
|
|
|
|
|
|
return lCriteria.List<GkvTransferProtokoll>();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public long GetGkvParentByProtokollOid(long oid)
|
|
|
|
|
|
{
|
|
|
|
|
|
return oid;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public string GetGkvRawData(long oid, GkvRawDataType gkvRawData)
|
|
|
|
|
|
{
|
|
|
|
|
|
var criteria = CreateCriteria<GkvTransferProtokoll>()
|
|
|
|
|
|
.Add(Restrictions.Where<GkvTransferProtokoll>(x => x.Oid == oid));
|
|
|
|
|
|
|
|
|
|
|
|
if (gkvRawData == GkvRawDataType.Auftragsdatei)
|
|
|
|
|
|
{
|
|
|
|
|
|
criteria = criteria.SetProjection(Projections.Property(nameof(GkvTransferProtokoll.Auftragsdatei)));
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (gkvRawData == GkvRawDataType.Nutzdatendatei)
|
|
|
|
|
|
{
|
|
|
|
|
|
criteria = criteria.SetProjection(Projections.Property(nameof(GkvTransferProtokoll.Nutzdatendatei)));
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
throw new ArgumentOutOfRangeException(nameof(gkvRawData), $"GkvRawDataType \'{gkvRawData}\' unbekannt.");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var t = criteria.List<string>().SingleOrDefault();
|
|
|
|
|
|
|
|
|
|
|
|
return t;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|