PsychosozialeProjekteSaarpfalz/Invoicing/CustomInvoiceCreation.cs - Funktion zum Rechnungssplitt

This commit is contained in:
2024-09-16 15:37:51 +02:00
parent c123ced7bb
commit baf2f1bf43
2 changed files with 6 additions and 47 deletions

View File

@@ -38,51 +38,7 @@ namespace PsychosozialeProjekteSaarpfalz.Invoicing
public override List<ServiceInvoiceDC> GenerateServiceInvoices(long costBearerOid, DateTimeSpan invoicePeriod,
Dictionary<CompactSupportConceptDC, List<ServiceRecordDC>> supportConcepts2ServiceRecords)
{
var costBearer = DAOFactory.GenericDAO.LoadByID<CostBearer>(costBearerOid);
var invoiceList = new List<ServiceInvoice>();
var invoiceCounter = 0;
ServiceInvoice invoice;
if (costBearer.IsSingleInvoicePerCustomer)
{
invoice = CreateCollectiveBilling(costBearer, invoicePeriod, supportConcepts2ServiceRecords);
if (invoice != null)
{
invoiceList.Add(invoice);
}
}
else
{
foreach (var iSupportConcept2ServiceRecords in supportConcepts2ServiceRecords)
{
invoice = CreateSingleInvoice(invoiceCounter, costBearer, invoicePeriod, iSupportConcept2ServiceRecords.Key, iSupportConcept2ServiceRecords.Value);
if (invoice != null)
{
//if (costBearer.RechnungProBewilligung) !!! NOCH VERGEBEN mit CB sprechen
if (invoice.ServiceInvoicePeriodList.Count > 1 && !invoice.ServiceInvoicePeriodList.Any(s => s.Start == invoicePeriod.StartDate && s.End == invoicePeriod.EndDate))
{
foreach (var sip in invoice.ServiceInvoicePeriodList)
{
DateTimeSpan invPeriod = invoicePeriod;
invPeriod.StartDate = sip.Start.Value;
invPeriod.EndDate = sip.End.Value;
var partInvoice = CreateSingleInvoice(invoiceCounter, costBearer, invPeriod, iSupportConcept2ServiceRecords.Key, iSupportConcept2ServiceRecords.Value);
partInvoice.ServiceInvoicePeriodList.Add(sip);
invoiceList.Add(partInvoice);
invoiceCounter++;
}
}
else
{
invoiceList.Add(invoice);
invoiceCounter++;
}
}
}
}
var result = invoiceList.Select(item => MapperFactory.ServiceInvoiceDC_ServiceInvoice.MapToNewDC(item)).ToList();
return result.Count > 1 ? result.OrderBy(i => i.InvoiceBase.CustomerLastName).ToList() : result;
return GenerateServiceInvoices(costBearerOid, invoicePeriod, supportConcepts2ServiceRecords, true);
}
public override void SetSenderInformation(ServiceInvoice serviceInvoice)

View File

@@ -38,8 +38,11 @@ namespace PsychosozialeProjekteSaarpfalz
{
sumPauschale += Convert.ToDecimal(ii.UnitDescription);
}
sumMin += ii.ServiceRecord.RoundedDuration;
ii.RateFactor = String.Format("{0:N0}", ii.ServiceRecord.RoundedDuration);
if (ii.ServiceRecord != null)
{
sumMin += ii.ServiceRecord.RoundedDuration;
ii.RateFactor = String.Format("{0:N0}", ii.ServiceRecord.RoundedDuration);
}
}
}
lblSumPausch.Text = String.Format("{0:0.00 €}", sumPauschale);