DiakonieKKKleve: Soziotherapie-Rechnungserstellung auf zentrale Einzelstundenpreise umgestellt + halbstündige Einheiten anders abrechnen

This commit is contained in:
2026-02-10 18:17:06 +01:00
parent 185f9a8d71
commit 85de6721ff
3 changed files with 721 additions and 703 deletions

View File

@@ -7,8 +7,6 @@ using BS.Shared.Services;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DiakonieKKKleve.Invoicing
{
@@ -36,16 +34,9 @@ namespace DiakonieKKKleve.Invoicing
ii.GrossAmountTotal = ii.AmountTotal;
}
if (ii.ItemDescription.ToLower().Contains("probe"))
{
ii.UnitDescription = "GPos: 2001607";
}
else if (ii.ItemDescription.ToLower().Contains("gruppentherapie") || (iServiceRecord != null && iServiceRecord.GroupPersonCount.HasValue && iServiceRecord.GroupPersonCount.Value > 1))
{
//Setze Pauschale für Gruppentherapie
var preisGruppe = GetGruppenPreis(scap.CostBearer2SupportConcept, iServiceRecord.Start.Value);
ii.AmountPerUnit = preisGruppe;
ii.AmountTotal = preisGruppe;
if (ii.ItemDescription.ToLower().Contains("gruppentherapie") || (iServiceRecord != null && iServiceRecord.GroupPersonCount.HasValue && iServiceRecord.GroupPersonCount.Value > 1))
{
AktualisierePreis(ii, GetGruppenPreis(scap.CostBearer2SupportConcept, iServiceRecord.Start.Value));
ii.UnitCount = 1;
if (iServiceRecord.RoundedDuration <= 45)
ii.UnitDescription = "GPos: 2002678";
@@ -54,38 +45,50 @@ namespace DiakonieKKKleve.Invoicing
else
ii.UnitDescription = "GPos: 2002672";
}
else if (ii.ItemDescription.ToLower().Contains("video"))
{
if (iServiceRecord.RoundedDuration <= 30 || ii.ItemDescription.ToLower().Contains("30"))
{
ii.UnitDescription = "GPos: 2001616";
}
else if (iServiceRecord.RoundedDuration > 30 || ii.ItemDescription.ToLower().Contains("60"))
{
ii.UnitDescription = "GPos: 2001615";
}
}
else if (ii.ItemDescription.ToLower().Contains("telefon"))
{
if (iServiceRecord.RoundedDuration <= 30)
{
ii.UnitDescription = "GPos: 2001618";
}
else if (iServiceRecord.RoundedDuration > 30)
{
ii.UnitDescription = "GPos: 2001617";
}
}
else
{
if (iServiceRecord.RoundedDuration <= 30)
{
ii.UnitDescription = "GPos: 2001612";
{
AktualisierePreis(ii, GetEinzelPreis(scap.CostBearer2SupportConcept, iServiceRecord.Start.Value));
if (ii.ItemDescription.ToLower().Contains("probe"))
{
ii.UnitDescription = "GPos: 2001607";
}
else if (iServiceRecord.RoundedDuration > 30)
else if (ii.ItemDescription.ToLower().Contains("video"))
{
ii.UnitDescription = "GPos: 2001610";
if (iServiceRecord.RoundedDuration <= 30 || ii.ItemDescription.ToLower().Contains("30"))
{
ii.UnitDescription = "GPos: 2001616";
WandleInHalbstundenEinheit(ii);
}
else if (iServiceRecord.RoundedDuration > 30 || ii.ItemDescription.ToLower().Contains("60"))
{
ii.UnitDescription = "GPos: 2001615";
}
}
else if (ii.ItemDescription.ToLower().Contains("telefon"))
{
if (iServiceRecord.RoundedDuration <= 30)
{
ii.UnitDescription = "GPos: 2001618";
WandleInHalbstundenEinheit(ii);
}
else if (iServiceRecord.RoundedDuration > 30)
{
ii.UnitDescription = "GPos: 2001617";
}
}
else
{
if (iServiceRecord.RoundedDuration <= 30)
{
ii.UnitDescription = "GPos: 2001612";
WandleInHalbstundenEinheit(ii);
}
else if (iServiceRecord.RoundedDuration > 30)
{
ii.UnitDescription = "GPos: 2001610";
}
}
}
return ii;
@@ -145,6 +148,21 @@ namespace DiakonieKKKleve.Invoicing
return items;
}
protected new decimal GetEinzelPreis(CostBearer2SupportConcept c2s, DateTime dt)
{
String preisName = "Einzelstunde Primärkassen";
if (c2s.CostBearer.Organisation.Function != null)
{
if (c2s.CostBearer.Organisation.Function.Value.Contains("Ersatzkasse"))
{
preisName = "Einzelstunde Ersatzkassen";
}
}
return base.GetPreis(preisName, dt);
}
protected new decimal GetGruppenPreis(CostBearer2SupportConcept c2s, DateTime dt)
{
String preisName = "Gruppentherapie Primärkassen";

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long