diff --git a/ReportImp/DiakonieKKKleve/DiakonieKKKleve.csproj b/ReportImp/DiakonieKKKleve/DiakonieKKKleve.csproj index 1069454e5..06961fe38 100644 --- a/ReportImp/DiakonieKKKleve/DiakonieKKKleve.csproj +++ b/ReportImp/DiakonieKKKleve/DiakonieKKKleve.csproj @@ -155,6 +155,7 @@ FinanzauswertungVP.cs + Component diff --git a/ReportImp/DiakonieKKKleve/Invoicing/DiakoneKKKleveInvoiceFactory.cs b/ReportImp/DiakonieKKKleve/Invoicing/DiakoneKKKleveInvoiceFactory.cs index 1924af9c6..ab232b6e8 100644 --- a/ReportImp/DiakonieKKKleve/Invoicing/DiakoneKKKleveInvoiceFactory.cs +++ b/ReportImp/DiakonieKKKleve/Invoicing/DiakoneKKKleveInvoiceFactory.cs @@ -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; diff --git a/ReportImp/ZukunftLeben/Invoicing/SoziotherapieInvoiceCreation.cs b/ReportImp/ZukunftLeben/Invoicing/SoziotherapieInvoiceCreation.cs index 661b4d345..daaf75586 100644 --- a/ReportImp/ZukunftLeben/Invoicing/SoziotherapieInvoiceCreation.cs +++ b/ReportImp/ZukunftLeben/Invoicing/SoziotherapieInvoiceCreation.cs @@ -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 serviceRecords) - { - var invoice = new ServiceInvoice(); - - var supportConceptList = new List { 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 CreateInvoiceItems(List 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 serviceRecords) + { + var invoice = new ServiceInvoice(); + + var supportConceptList = new List { 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 CreateInvoiceItems(List 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 CreateHausbesuchspauschale(List serviceRecordsInPeriod, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap) - { - IList items = new List(); - decimal hausbesuchspauschale = 8.53m; + return ii; + } + + public virtual IList CreateHausbesuchspauschale(List serviceRecordsInPeriod, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap) + { + IList items = new List(); + 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 CreateSummaryInvoiceItems(IList 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 CreateSummaryInvoiceItems(IList 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; + } + } +} diff --git a/Service/Invoicing/SoziotherapieInvoiceCreation.cs b/Service/Invoicing/SoziotherapieInvoiceCreation.cs index ef3fc311c..5e3fae828 100644 --- a/Service/Invoicing/SoziotherapieInvoiceCreation.cs +++ b/Service/Invoicing/SoziotherapieInvoiceCreation.cs @@ -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 CreateSummaryInvoiceItems(IList itemList, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap, BS.Shared.Services.Calculations calc, bool summaryPerMonth, bool addRateFactorToUnitCount) { var newlist = new List();