ChristianWilke/Invoicing/CustomInvoiceCreation - Wegzeitenpauschale
This commit is contained in:
@@ -5,6 +5,7 @@ using BeWo.Data.Entities;
|
||||
using BeWo.Service.DCEntityMapper;
|
||||
using BeWo.Service.Invoicing;
|
||||
using BeWo.Service.Plugins;
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
@@ -38,5 +39,94 @@ namespace ChristianWilke.Invoicing
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override IList<InvoiceItem> CreateInvoiceItems(List<ServiceRecordDC> serviceRecordsInPeriod, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap,
|
||||
Calculations calc)
|
||||
{
|
||||
var list = base.CreateInvoiceItems(serviceRecordsInPeriod, invoicePeriod, scap, calc);
|
||||
var ii = CreateWegezeitenPauschale(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);
|
||||
if (ii.ItemDescription != null && ii.ItemDescription.Contains("- ohne Wegzeiten Pauschale"))
|
||||
{
|
||||
ii.ItemDescription = ii.ItemDescription.Replace("- ohne Wegzeiten Pauschale", "");
|
||||
}
|
||||
else if (ii.ItemDescription != null && ii.ItemDescription.Contains("- mit Wegzeiten Pauschale"))
|
||||
{
|
||||
ii.ItemDescription = ii.ItemDescription.Replace("- mit Wegzeiten Pauschale", "");
|
||||
}
|
||||
|
||||
return ii;
|
||||
}
|
||||
|
||||
|
||||
public virtual IList<InvoiceItem> CreateWegezeitenPauschale(List<ServiceRecordDC> serviceRecordsInPeriod, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap)
|
||||
{
|
||||
IList<InvoiceItem> items = new List<InvoiceItem>();
|
||||
decimal preisKA = 8.70m;
|
||||
preisKA = base.GetPreis("Wegezeiten-Pauschale kompensatorische Assistenz", invoicePeriod.StartDate);
|
||||
decimal preisQA = 15.76m;
|
||||
preisKA = base.GetPreis("Wegezeiten-Pauschale qualifizierte Assistenz", invoicePeriod.StartDate);
|
||||
|
||||
int countKA = 0;
|
||||
int countQA = 0;
|
||||
|
||||
foreach (var sr in serviceRecordsInPeriod)
|
||||
{
|
||||
if (sr.ServiceDescription.Name.ToLower().Contains("mit wegzeiten"))
|
||||
{
|
||||
if (sr.ServiceDescription.CategoryName.ToLower().Contains("qualifiziert"))
|
||||
{
|
||||
countQA++;
|
||||
}
|
||||
else
|
||||
{
|
||||
countKA++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (countQA > 0)
|
||||
{
|
||||
var invoiceItem = new InvoiceItem();
|
||||
|
||||
invoiceItem.AmountPerUnit = preisQA;
|
||||
invoiceItem.UnitCount = countQA;
|
||||
invoiceItem.AmountTotal = countQA * preisQA;
|
||||
invoiceItem.ItemPeriodStart = invoicePeriod.StartDate;
|
||||
invoiceItem.ItemPeriodEnd = invoicePeriod.EndDate;
|
||||
invoiceItem.RateFactor = null;
|
||||
invoiceItem.GrossAmountTotal = invoiceItem.AmountTotal;
|
||||
invoiceItem.ItemDescription = "Wegezeiten Pauschale - Qualifizierte Assistenz";
|
||||
if (scap != null)
|
||||
invoiceItem.SupportConceptApprovalPeriodOid = scap.Oid;
|
||||
|
||||
items.Add(invoiceItem);
|
||||
}
|
||||
if (countKA > 0)
|
||||
{
|
||||
var invoiceItem = new InvoiceItem();
|
||||
|
||||
invoiceItem.AmountPerUnit = preisKA;
|
||||
invoiceItem.UnitCount = countKA;
|
||||
invoiceItem.AmountTotal = countKA * preisKA;
|
||||
invoiceItem.ItemPeriodStart = invoicePeriod.StartDate;
|
||||
invoiceItem.ItemPeriodEnd = invoicePeriod.EndDate;
|
||||
invoiceItem.RateFactor = null;
|
||||
invoiceItem.GrossAmountTotal = invoiceItem.AmountTotal;
|
||||
invoiceItem.ItemDescription = "Wegezeiten Pauschale - Kompensatorische Assistenz";
|
||||
if (scap != null)
|
||||
invoiceItem.SupportConceptApprovalPeriodOid = scap.Oid;
|
||||
|
||||
items.Add(invoiceItem);
|
||||
}
|
||||
return items;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user