Zentrale Soziotherapie umgestellt, DiakonieKKKleve speziell
This commit is contained in:
@@ -155,6 +155,7 @@
|
||||
<DependentUpon>FinanzauswertungVP.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="CustomMitarbeiterstundenkontoBerechnungMonate.cs" />
|
||||
<Compile Include="Invoicing\DiakonieKKKleveSoziotherapieInvoiceCreation.cs" />
|
||||
<Compile Include="Mitarbeiterauslastung.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
|
||||
@@ -49,7 +49,7 @@ namespace DiakonieKKKleve.Invoicing
|
||||
}
|
||||
if (!String.IsNullOrEmpty(sd.Name) && sd.Name.Contains("Therapie"))
|
||||
{
|
||||
var ic = new SoziotherapieInvoiceCreation();
|
||||
var ic = new DiakonieKKKleveSoziotherapieInvoiceCreation();
|
||||
if (specificId == "FinanzauswertungOhnePauschale")
|
||||
{
|
||||
ic.ErstelleHausbesuchspauschale = false;
|
||||
|
||||
@@ -1,132 +1,132 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using BeWo.Data.Entities;
|
||||
using BeWo.Service.Invoicing;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using BS.Shared.Extensions;
|
||||
using BS.Shared.Services;
|
||||
|
||||
namespace ZukunftLeben.Invoicing
|
||||
{
|
||||
public class SoziotherapieInvoiceCreation : InvoiceCreation
|
||||
{
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using BeWo.Data.Entities;
|
||||
using BeWo.Service.Invoicing;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using BS.Shared.Extensions;
|
||||
using BS.Shared.Services;
|
||||
|
||||
namespace ZukunftLeben.Invoicing
|
||||
{
|
||||
public class SoziotherapieInvoiceCreation : InvoiceCreation
|
||||
{
|
||||
public override void SetInvoiceId(ServiceInvoice invoice)
|
||||
{
|
||||
invoice.InvoiceBase.InvoiceId = "RechnungSoziotherapie";
|
||||
invoice.InvoiceBase.InvoiceTypeText = "Soziotherapie";
|
||||
}
|
||||
|
||||
public override ServiceInvoice CreateSingleInvoice(int invoiceCounter, CostBearer costBearer, DateTimeSpan invoicePeriod, CompactSupportConceptDC supportConcept, List<ServiceRecordDC> serviceRecords)
|
||||
{
|
||||
var invoice = new ServiceInvoice();
|
||||
|
||||
var supportConceptList = new List<CompactSupportConceptDC> { supportConcept };
|
||||
|
||||
SetSenderInformation(invoice);
|
||||
SetInvoiceBaseData(invoiceCounter, invoice, costBearer, invoicePeriod, supportConceptList);
|
||||
SetSingleInvoiceBaseData(invoiceCounter, invoice, costBearer, invoicePeriod, supportConcept);
|
||||
|
||||
SetRecipientInformation(invoice, costBearer);
|
||||
|
||||
SetServiceInvoicePeriods(invoice, invoice.InvoiceBase.CostBearer2SupportConcept, invoicePeriod, serviceRecords);
|
||||
|
||||
SetServiceInvoicePeriodAmounts(invoice);
|
||||
|
||||
if (invoicePeriod == null)
|
||||
{
|
||||
SetAmountAdvancePayments(invoice);
|
||||
SetAmountEquityContribution(invoice);
|
||||
}
|
||||
|
||||
base.CreateSingleInvoice(invoiceCounter, costBearer, invoicePeriod, supportConcept, serviceRecords);
|
||||
return invoice;
|
||||
}
|
||||
|
||||
public override IList<InvoiceItem> CreateInvoiceItems(List<ServiceRecordDC> serviceRecordsInPeriod, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap, Calculations calc)
|
||||
{
|
||||
var list = base.CreateInvoiceItems(serviceRecordsInPeriod, invoicePeriod, scap, calc);
|
||||
var ii = CreateHausbesuchspauschale(serviceRecordsInPeriod, invoicePeriod, scap);
|
||||
list.AddRange(ii);
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
public override InvoiceItem CreateInvoiceItem(ServiceRecordDC iServiceRecord, SupportConceptApprovalPeriod scap, Calculations calc)
|
||||
{
|
||||
var ii = base.CreateInvoiceItem(iServiceRecord, scap, calc);
|
||||
ii.ItemDescription = iServiceRecord.ServiceDescription.Name;
|
||||
|
||||
if (ii.ItemDescription.ToLower().Contains("gruppe"))
|
||||
}
|
||||
|
||||
public override ServiceInvoice CreateSingleInvoice(int invoiceCounter, CostBearer costBearer, DateTimeSpan invoicePeriod, CompactSupportConceptDC supportConcept, List<ServiceRecordDC> serviceRecords)
|
||||
{
|
||||
var invoice = new ServiceInvoice();
|
||||
|
||||
var supportConceptList = new List<CompactSupportConceptDC> { supportConcept };
|
||||
|
||||
SetSenderInformation(invoice);
|
||||
SetInvoiceBaseData(invoiceCounter, invoice, costBearer, invoicePeriod, supportConceptList);
|
||||
SetSingleInvoiceBaseData(invoiceCounter, invoice, costBearer, invoicePeriod, supportConcept);
|
||||
|
||||
SetRecipientInformation(invoice, costBearer);
|
||||
|
||||
SetServiceInvoicePeriods(invoice, invoice.InvoiceBase.CostBearer2SupportConcept, invoicePeriod, serviceRecords);
|
||||
|
||||
SetServiceInvoicePeriodAmounts(invoice);
|
||||
|
||||
if (invoicePeriod == null)
|
||||
{
|
||||
SetAmountAdvancePayments(invoice);
|
||||
SetAmountEquityContribution(invoice);
|
||||
}
|
||||
|
||||
base.CreateSingleInvoice(invoiceCounter, costBearer, invoicePeriod, supportConcept, serviceRecords);
|
||||
return invoice;
|
||||
}
|
||||
|
||||
public override IList<InvoiceItem> CreateInvoiceItems(List<ServiceRecordDC> serviceRecordsInPeriod, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap, Calculations calc)
|
||||
{
|
||||
var list = base.CreateInvoiceItems(serviceRecordsInPeriod, invoicePeriod, scap, calc);
|
||||
var ii = CreateHausbesuchspauschale(serviceRecordsInPeriod, invoicePeriod, scap);
|
||||
list.AddRange(ii);
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
public override InvoiceItem CreateInvoiceItem(ServiceRecordDC iServiceRecord, SupportConceptApprovalPeriod scap, Calculations calc)
|
||||
{
|
||||
var ii = base.CreateInvoiceItem(iServiceRecord, scap, calc);
|
||||
ii.ItemDescription = iServiceRecord.ServiceDescription.Name;
|
||||
|
||||
if (ii.ItemDescription.ToLower().Contains("gruppe"))
|
||||
{
|
||||
// nur zur Info: Gruppen werden lt. Frau Klix zunächst noch nicht verwendet
|
||||
if (iServiceRecord.RoundedDuration <= 45)
|
||||
if (iServiceRecord.RoundedDuration <= 45)
|
||||
ii.UnitDescription = "GPos: 2002678";
|
||||
else if (iServiceRecord.RoundedDuration <= 60)
|
||||
else if (iServiceRecord.RoundedDuration <= 60)
|
||||
ii.UnitDescription = "GPos: 2002677";
|
||||
else
|
||||
else
|
||||
ii.UnitDescription = "GPos: 2002672"; // 90 min, 2-5 Personen
|
||||
ii.AmountPerUnit = GetGruppenPreis(scap.CostBearer2SupportConcept, iServiceRecord.Start.Value);
|
||||
ii.AmountTotal = ii.AmountPerUnit * ii.UnitCount;
|
||||
ii.GrossAmountTotal = ii.AmountTotal;
|
||||
}
|
||||
else
|
||||
{
|
||||
ii.AmountPerUnit = GetEinzelPreis(scap.CostBearer2SupportConcept, iServiceRecord.Start.Value);
|
||||
ii.AmountTotal = ii.AmountPerUnit * ii.UnitCount;
|
||||
ii.GrossAmountTotal = ii.AmountTotal;
|
||||
|
||||
if (ii.ItemDescription.ToLower().Contains("video"))
|
||||
{
|
||||
if (iServiceRecord.RoundedDuration <= 30)
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001616";
|
||||
}
|
||||
else
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001615";
|
||||
}
|
||||
}
|
||||
else if (ii.ItemDescription.ToLower().Contains("telefonat"))
|
||||
{
|
||||
if (iServiceRecord.RoundedDuration <= 30)
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001618";
|
||||
}
|
||||
else
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001617";
|
||||
}
|
||||
}
|
||||
else if (ii.ItemDescription.ToLower().Contains("aufsuchende einheit"))
|
||||
{
|
||||
if (iServiceRecord.RoundedDuration <= 10)
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001613 / 2009690";
|
||||
}
|
||||
else if (iServiceRecord.RoundedDuration <= 30)
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001612 / 2009690";
|
||||
}
|
||||
else if (iServiceRecord.RoundedDuration <= 45)
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001611 / 2009690";
|
||||
}
|
||||
else
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001610 / 2009690";
|
||||
}
|
||||
}
|
||||
else if (ii.ItemDescription.ToLower().Contains("aufsuchende probatorik"))
|
||||
{
|
||||
ii.AmountTotal = ii.AmountPerUnit * ii.UnitCount;
|
||||
ii.GrossAmountTotal = ii.AmountTotal;
|
||||
}
|
||||
else
|
||||
{
|
||||
ii.AmountPerUnit = GetEinzelPreis(scap.CostBearer2SupportConcept, iServiceRecord.Start.Value);
|
||||
ii.AmountTotal = ii.AmountPerUnit * ii.UnitCount;
|
||||
ii.GrossAmountTotal = ii.AmountTotal;
|
||||
|
||||
if (ii.ItemDescription.ToLower().Contains("video"))
|
||||
{
|
||||
if (iServiceRecord.RoundedDuration <= 30)
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001616";
|
||||
}
|
||||
else
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001615";
|
||||
}
|
||||
}
|
||||
else if (ii.ItemDescription.ToLower().Contains("telefonat"))
|
||||
{
|
||||
if (iServiceRecord.RoundedDuration <= 30)
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001618";
|
||||
}
|
||||
else
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001617";
|
||||
}
|
||||
}
|
||||
else if (ii.ItemDescription.ToLower().Contains("aufsuchende einheit"))
|
||||
{
|
||||
if (iServiceRecord.RoundedDuration <= 10)
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001613 / 2009690";
|
||||
}
|
||||
else if (iServiceRecord.RoundedDuration <= 30)
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001612 / 2009690";
|
||||
}
|
||||
else if (iServiceRecord.RoundedDuration <= 45)
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001611 / 2009690";
|
||||
}
|
||||
else
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001610 / 2009690";
|
||||
}
|
||||
}
|
||||
else if (ii.ItemDescription.ToLower().Contains("aufsuchende probatorik"))
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001607 / 2009690";
|
||||
}
|
||||
}
|
||||
else if (ii.ItemDescription.ToLower().Contains("büroprobatorik"))
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001607";
|
||||
}
|
||||
else if (ii.ItemDescription.ToLower().Contains("büroeinheit"))
|
||||
}
|
||||
else if (ii.ItemDescription.ToLower().Contains("büroeinheit"))
|
||||
{
|
||||
if (iServiceRecord.RoundedDuration <= 10)
|
||||
{
|
||||
@@ -147,111 +147,111 @@ namespace ZukunftLeben.Invoicing
|
||||
}
|
||||
}
|
||||
|
||||
return ii;
|
||||
}
|
||||
|
||||
public virtual IList<InvoiceItem> CreateHausbesuchspauschale(List<ServiceRecordDC> serviceRecordsInPeriod, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap)
|
||||
{
|
||||
IList<InvoiceItem> items = new List<InvoiceItem>();
|
||||
decimal hausbesuchspauschale = 8.53m;
|
||||
return ii;
|
||||
}
|
||||
|
||||
public virtual IList<InvoiceItem> CreateHausbesuchspauschale(List<ServiceRecordDC> serviceRecordsInPeriod, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap)
|
||||
{
|
||||
IList<InvoiceItem> items = new List<InvoiceItem>();
|
||||
decimal hausbesuchspauschale = 8.53m;
|
||||
if (scap != null && invoicePeriod != null)
|
||||
{
|
||||
hausbesuchspauschale = GetHausbesuchspauschale(scap.CostBearer2SupportConcept, invoicePeriod.StartDate);
|
||||
}
|
||||
int countHausbesuch = 0;
|
||||
foreach (var sr in serviceRecordsInPeriod)
|
||||
{
|
||||
if (sr.ServiceDescription != null && sr.ServiceDescription.Name != null && sr.ServiceDescription.Name.ToLower().Contains("aufsuchend"))
|
||||
{
|
||||
countHausbesuch++;
|
||||
}
|
||||
}
|
||||
|
||||
if (countHausbesuch > 0)
|
||||
{
|
||||
var invoiceItem = new InvoiceItem();
|
||||
|
||||
decimal anzahlHausbesuche = countHausbesuch;
|
||||
|
||||
invoiceItem.AmountPerUnit = hausbesuchspauschale;
|
||||
invoiceItem.UnitCount = anzahlHausbesuche;
|
||||
invoiceItem.AmountTotal = anzahlHausbesuche * hausbesuchspauschale;
|
||||
hausbesuchspauschale = GetHausbesuchspauschale(scap.CostBearer2SupportConcept, invoicePeriod.StartDate);
|
||||
}
|
||||
int countHausbesuch = 0;
|
||||
foreach (var sr in serviceRecordsInPeriod)
|
||||
{
|
||||
if (sr.ServiceDescription != null && sr.ServiceDescription.Name != null && sr.ServiceDescription.Name.ToLower().Contains("aufsuchend"))
|
||||
{
|
||||
countHausbesuch++;
|
||||
}
|
||||
}
|
||||
|
||||
if (countHausbesuch > 0)
|
||||
{
|
||||
var invoiceItem = new InvoiceItem();
|
||||
|
||||
decimal anzahlHausbesuche = countHausbesuch;
|
||||
|
||||
invoiceItem.AmountPerUnit = hausbesuchspauschale;
|
||||
invoiceItem.UnitCount = anzahlHausbesuche;
|
||||
invoiceItem.AmountTotal = anzahlHausbesuche * hausbesuchspauschale;
|
||||
if (invoicePeriod != null)
|
||||
{
|
||||
invoiceItem.ItemPeriodStart = invoicePeriod.StartDate;
|
||||
invoiceItem.ItemPeriodStart = invoicePeriod.StartDate;
|
||||
invoiceItem.ItemPeriodEnd = invoicePeriod.EndDate;
|
||||
}
|
||||
invoiceItem.RateFactor = null;
|
||||
invoiceItem.GrossAmountTotal = invoiceItem.AmountTotal;
|
||||
invoiceItem.ItemDescription = "Hausbesuchspauschale";
|
||||
invoiceItem.UnitDescription = "GPos: 2009690";
|
||||
if (scap != null)
|
||||
invoiceItem.SupportConceptApprovalPeriodOid = scap.Oid;
|
||||
|
||||
items.Add(invoiceItem);
|
||||
}
|
||||
return items;
|
||||
}
|
||||
|
||||
private decimal GetHausbesuchspauschale(CostBearer2SupportConcept c2s, DateTime dt)
|
||||
{
|
||||
String preisName = "Hausbesuchspauschale Primärkasse";
|
||||
|
||||
if (c2s.CostBearer.Organisation.Function != null)
|
||||
{
|
||||
if (c2s.CostBearer.Organisation.Function.Value.Contains("Ersatzkasse"))
|
||||
{
|
||||
preisName = "Hausbesuchspauschale Ersatzkasse";
|
||||
}
|
||||
}
|
||||
|
||||
return base.GetPreis(preisName, dt);
|
||||
}
|
||||
|
||||
private decimal GetGruppenPreis(CostBearer2SupportConcept c2s, DateTime dt)
|
||||
{
|
||||
String preisName = "Gruppenstunde Primärkasse";
|
||||
|
||||
if (c2s.CostBearer.Organisation.Function != null)
|
||||
{
|
||||
if (c2s.CostBearer.Organisation.Function.Value.Contains("Ersatzkasse"))
|
||||
{
|
||||
preisName = "Gruppenstunde Ersatzkasse";
|
||||
}
|
||||
}
|
||||
|
||||
return base.GetPreis(preisName, dt);
|
||||
}
|
||||
|
||||
private decimal GetEinzelPreis(CostBearer2SupportConcept c2s, DateTime dt)
|
||||
{
|
||||
String preisName = "Einzelstunde Primärkasse";
|
||||
|
||||
if (c2s.CostBearer.Organisation.Function != null)
|
||||
{
|
||||
if (c2s.CostBearer.Organisation.Function.Value.Contains("Ersatzkasse"))
|
||||
{
|
||||
preisName = "Einzelstunde Ersatzkasse";
|
||||
}
|
||||
}
|
||||
|
||||
return base.GetPreis(preisName, dt);
|
||||
}
|
||||
|
||||
public override IList<InvoiceItem> CreateSummaryInvoiceItems(IList<InvoiceItem> itemList, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap, Calculations calc, bool summaryPerMonth, bool addRateFactorToUnitCount)
|
||||
{
|
||||
return base.CreateSummaryInvoiceItems(itemList, invoicePeriod, scap, calc, true, true);
|
||||
}
|
||||
|
||||
public override string GetSummaryItemKey(SupportConceptApprovalPeriod scap, InvoiceItem iitem, bool summaryPerMonth)
|
||||
{
|
||||
String key = String.Format("{0}_{1}_{2}", iitem.AmountPerUnit, iitem.RateFactor, iitem.ItemDescription);
|
||||
if (summaryPerMonth)
|
||||
{
|
||||
key = String.Format("{0}_{1}_{2:yyyyMM}_{3}", iitem.AmountPerUnit, iitem.RateFactor, iitem.ItemPeriodStart, iitem.ItemDescription);
|
||||
}
|
||||
|
||||
return key;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
invoiceItem.RateFactor = null;
|
||||
invoiceItem.GrossAmountTotal = invoiceItem.AmountTotal;
|
||||
invoiceItem.ItemDescription = "Hausbesuchspauschale";
|
||||
invoiceItem.UnitDescription = "GPos: 2009690";
|
||||
if (scap != null)
|
||||
invoiceItem.SupportConceptApprovalPeriodOid = scap.Oid;
|
||||
|
||||
items.Add(invoiceItem);
|
||||
}
|
||||
return items;
|
||||
}
|
||||
|
||||
private decimal GetHausbesuchspauschale(CostBearer2SupportConcept c2s, DateTime dt)
|
||||
{
|
||||
String preisName = "Hausbesuchspauschale Primärkasse";
|
||||
|
||||
if (c2s.CostBearer.Organisation.Function != null)
|
||||
{
|
||||
if (c2s.CostBearer.Organisation.Function.Value.Contains("Ersatzkasse"))
|
||||
{
|
||||
preisName = "Hausbesuchspauschale Ersatzkasse";
|
||||
}
|
||||
}
|
||||
|
||||
return base.GetPreis(preisName, dt);
|
||||
}
|
||||
|
||||
private decimal GetGruppenPreis(CostBearer2SupportConcept c2s, DateTime dt)
|
||||
{
|
||||
String preisName = "Gruppenstunde Primärkasse";
|
||||
|
||||
if (c2s.CostBearer.Organisation.Function != null)
|
||||
{
|
||||
if (c2s.CostBearer.Organisation.Function.Value.Contains("Ersatzkasse"))
|
||||
{
|
||||
preisName = "Gruppenstunde Ersatzkasse";
|
||||
}
|
||||
}
|
||||
|
||||
return base.GetPreis(preisName, dt);
|
||||
}
|
||||
|
||||
private decimal GetEinzelPreis(CostBearer2SupportConcept c2s, DateTime dt)
|
||||
{
|
||||
String preisName = "Einzelstunde Primärkasse";
|
||||
|
||||
if (c2s.CostBearer.Organisation.Function != null)
|
||||
{
|
||||
if (c2s.CostBearer.Organisation.Function.Value.Contains("Ersatzkasse"))
|
||||
{
|
||||
preisName = "Einzelstunde Ersatzkasse";
|
||||
}
|
||||
}
|
||||
|
||||
return base.GetPreis(preisName, dt);
|
||||
}
|
||||
|
||||
public override IList<InvoiceItem> CreateSummaryInvoiceItems(IList<InvoiceItem> itemList, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap, Calculations calc, bool summaryPerMonth, bool addRateFactorToUnitCount)
|
||||
{
|
||||
return base.CreateSummaryInvoiceItems(itemList, invoicePeriod, scap, calc, true, true);
|
||||
}
|
||||
|
||||
public override string GetSummaryItemKey(SupportConceptApprovalPeriod scap, InvoiceItem iitem, bool summaryPerMonth)
|
||||
{
|
||||
String key = String.Format("{0}_{1}_{2}", iitem.AmountPerUnit, iitem.RateFactor, iitem.ItemDescription);
|
||||
if (summaryPerMonth)
|
||||
{
|
||||
key = String.Format("{0}_{1}_{2:yyyyMM}_{3}", iitem.AmountPerUnit, iitem.RateFactor, iitem.ItemPeriodStart, iitem.ItemDescription);
|
||||
}
|
||||
|
||||
return key;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,51 +76,93 @@ namespace BeWo.Service.Invoicing
|
||||
public override InvoiceItem CreateInvoiceItem(ServiceRecordDC iServiceRecord, SupportConceptApprovalPeriod scap, BS.Shared.Services.Calculations calc)
|
||||
{
|
||||
var ii = base.CreateInvoiceItem(iServiceRecord, scap, calc);
|
||||
ii.ItemDescription = iServiceRecord.ServiceDescription.Name;
|
||||
|
||||
if (ii.ItemDescription.ToLower().Contains("probe"))
|
||||
if (ii.ItemDescription.ToLower().Contains("gruppe"))
|
||||
{
|
||||
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;
|
||||
ii.UnitCount = 1;
|
||||
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";
|
||||
}
|
||||
if (iServiceRecord.RoundedDuration <= 45)
|
||||
ii.UnitDescription = "GPos: 2002678";
|
||||
else if (iServiceRecord.RoundedDuration <= 60)
|
||||
ii.UnitDescription = "GPos: 2002677";
|
||||
else
|
||||
ii.UnitDescription = "GPos: 2002672"; // 90 min, 2-5 Personen
|
||||
ii.AmountPerUnit = GetGruppenPreis(scap.CostBearer2SupportConcept, iServiceRecord.Start.Value);
|
||||
ii.AmountTotal = ii.AmountPerUnit * ii.UnitCount;
|
||||
ii.GrossAmountTotal = ii.AmountTotal;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (iServiceRecord.RoundedDuration <= 30)
|
||||
ii.AmountPerUnit = GetEinzelPreis(scap.CostBearer2SupportConcept, iServiceRecord.Start.Value);
|
||||
ii.AmountTotal = ii.AmountPerUnit * ii.UnitCount;
|
||||
ii.GrossAmountTotal = ii.AmountTotal;
|
||||
|
||||
if (ii.ItemDescription.ToLower().Contains("video"))
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001612";
|
||||
if (iServiceRecord.RoundedDuration <= 30)
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001616";
|
||||
}
|
||||
else
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001615";
|
||||
}
|
||||
}
|
||||
else if (iServiceRecord.RoundedDuration > 30)
|
||||
else if (ii.ItemDescription.ToLower().Contains("telefonat"))
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001610";
|
||||
if (iServiceRecord.RoundedDuration <= 30)
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001618";
|
||||
}
|
||||
else
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001617";
|
||||
}
|
||||
}
|
||||
else if (ii.ItemDescription.ToLower().Contains("aufsuchende einheit"))
|
||||
{
|
||||
if (iServiceRecord.RoundedDuration <= 10)
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001613";
|
||||
}
|
||||
else if (iServiceRecord.RoundedDuration <= 30)
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001612";
|
||||
}
|
||||
else if (iServiceRecord.RoundedDuration <= 45)
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001611";
|
||||
}
|
||||
else
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001610";
|
||||
}
|
||||
}
|
||||
else if (ii.ItemDescription.ToLower().Contains("aufsuchende probatorik"))
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001607";
|
||||
}
|
||||
else if (ii.ItemDescription.ToLower().Contains("büroprobatorik"))
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001607";
|
||||
}
|
||||
else if (ii.ItemDescription.ToLower().Contains("büroeinheit"))
|
||||
{
|
||||
if (iServiceRecord.RoundedDuration <= 10)
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001613";
|
||||
}
|
||||
else if (iServiceRecord.RoundedDuration <= 30)
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001612";
|
||||
}
|
||||
else if (iServiceRecord.RoundedDuration <= 45)
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001611";
|
||||
}
|
||||
else
|
||||
{
|
||||
ii.UnitDescription = "GPos: 2001610";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -160,7 +202,7 @@ namespace BeWo.Service.Invoicing
|
||||
|
||||
foreach (var sr in serviceRecordsInPeriod)
|
||||
{
|
||||
if (!sr.ServiceDescription.Name.ToLower().Contains("telefon") && !sr.ServiceDescription.Name.ToLower().Contains("gruppe") && !sr.ServiceDescription.Name.ToLower().Contains("praxis"))
|
||||
if (sr.ServiceDescription.Name.ToLower().Contains("aufsuchende"))
|
||||
{
|
||||
var date = sr.Start.Value.Date;
|
||||
|
||||
@@ -234,6 +276,21 @@ namespace BeWo.Service.Invoicing
|
||||
return base.GetPreis(preisName, dt);
|
||||
}
|
||||
|
||||
private decimal GetEinzelPreis(CostBearer2SupportConcept c2s, DateTime dt)
|
||||
{
|
||||
String preisName = "Einzelstunde Primärkasse";
|
||||
|
||||
if (c2s.CostBearer.Organisation.Function != null)
|
||||
{
|
||||
if (c2s.CostBearer.Organisation.Function.Value.Contains("Ersatzkasse"))
|
||||
{
|
||||
preisName = "Einzelstunde Ersatzkasse";
|
||||
}
|
||||
}
|
||||
|
||||
return base.GetPreis(preisName, dt);
|
||||
}
|
||||
|
||||
public override IList<InvoiceItem> CreateSummaryInvoiceItems(IList<InvoiceItem> itemList, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap, BS.Shared.Services.Calculations calc, bool summaryPerMonth, bool addRateFactorToUnitCount)
|
||||
{
|
||||
var newlist = new List<InvoiceItem>();
|
||||
|
||||
Reference in New Issue
Block a user