Merge branch 'feature_rene_18_ai' # Conflicts: # BeWo/BeWo.csproj # BeWo/BeWoApp.xaml.cs # BeWo/ServiceProxy/GeneratedCustomerService.cs # BeWo/ServiceProxy/GeneratedEmployeeService.cs # BeWo/ServiceProxy/GeneratedOperationsService.cs # BeWo/View/Detail/Accounting/GkvAbrechnungOverview.xaml.cs # BeWo/View/Detail/EmployeeView.xaml # BeWo/app.config # BeWoAllReports.sln # BeWoPlanerMobil.sln # Data/Access/SearchDAO.cs # Data/Data.csproj # Data/Security/UserRightHelper.cs # Server/Components/AICore/Prompt/SystemPrompts/Examples/TranscriptionService.cs # Service/DCEntityMapper/GkvAbrechnungDC_GkvAbrechnung.cs # Service/ServiceImplementations/EmployeeServiceImp.cs # Shared/BeWoEntityEnums.cs # Shared/Core/EnumTranslations.cs # Shared/Core/GkvValidator.cs # Shared/Core/ValidatorExtended.cs # Shared/Shared.csproj
100 lines
3.0 KiB
C#
100 lines
3.0 KiB
C#
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;
|
|
}
|
|
|
|
public IEnumerable<GkvAbrechnungLight> GetGkvAbrechnungen(DateTime? startDate, DateTime? endDate, bool useInvoiceCreationDate = true)
|
|
{
|
|
if (endDate.HasValue)
|
|
endDate = endDate.Value.Date.AddDays(1).AddMilliseconds(-1);
|
|
|
|
var lCriteria = CreateCriteriaIsActive<GkvAbrechnungLight>();
|
|
if (useInvoiceCreationDate)
|
|
{
|
|
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;
|
|
}
|
|
}
|
|
}
|