diff --git a/ReportImp/LyvieKupfer/Invoicing/CustomInvoiceCreation.cs b/ReportImp/LyvieKupfer/Invoicing/CustomInvoiceCreation.cs index 83e02e429..eba7debb4 100644 --- a/ReportImp/LyvieKupfer/Invoicing/CustomInvoiceCreation.cs +++ b/ReportImp/LyvieKupfer/Invoicing/CustomInvoiceCreation.cs @@ -1,5 +1,8 @@ using BeWo.Data.Entities; using BeWo.Service.Invoicing; +using BS.Shared; +using BS.Shared.DataContracts; +using BS.Shared.Extensions; using System; using System.Collections.Generic; using System.Linq; @@ -10,6 +13,23 @@ namespace LyvieKupfer.Invoicing { public class CustomInvoiceCreation : InvoiceCreation { + public override InvoiceItem CreateInvoiceItem(ServiceRecordDC iServiceRecord, SupportConceptApprovalPeriod scap, BS.Shared.Services.Calculations calc) + { + var ii = base.CreateInvoiceItem(iServiceRecord, scap, calc); + + if (!ii.RateFactor.HasValue) + { + var rateFactor = iServiceRecord.CostBearer.CostRatePeriods.GetCostRatePeriodForDate(CostRatePeriodType.RateFactor, iServiceRecord.Start.Value); + if (rateFactor != null && rateFactor.CostRateValue.HasValue + && !(iServiceRecord.ServiceDescription.Name.ToLower().Contains("fehlkontakt") || (iServiceRecord.ServiceDescription.ProzentAbrechnung.HasValue && iServiceRecord.ServiceDescription.ProzentAbrechnung.Value < 100))) + { + ii.RateFactor = rateFactor.CostRateValue; + //ii.UnitCount = ii.UnitCount.Value * ((100 + ii.RateFactor.Value) / 100); + //ii.GrossAmountTotal = ii.UnitCount * (ii.AmountPerUnit ?? 0); + } + } + return ii; + } public override string GetSummaryItemKey(SupportConceptApprovalPeriod scap, InvoiceItem iitem, bool summaryPerMonth) { String key = String.Format("{0:0.0000}_{1}_{2}", iitem.AmountPerUnit, iitem.RateFactor, iitem.ItemDescription);