MH: CaritasverbandDuerenJuelichEV Auftteilung Belege nach MA

This commit is contained in:
2026-07-22 13:44:31 +02:00
parent c85184ef13
commit 4cb254b0e9

View File

@@ -80,8 +80,8 @@ namespace CaritasverbandDuerenJuelichEV
}
/// Claude: Anhaengen der Quittierungsbelege an Servicerechnungen:
/// Pro unterschiedlicher ServiceCategory der Leistungen im Abrechnungszeitraum wird ein einzelner
/// ServicesOverviewReport erstellt und angehangen (statt einem Beleg ueber alle Kategorien).
/// Pro Employee, der im Abrechnungszeitraum Leistungen erbracht hat, wird ein einzelner
/// ServicesOverviewReport erstellt und angehangen (statt einem Beleg ueber alle Mitarbeiter).
/// Gilt NUR fuer das Anhaengen an Servicerechnungen - sowohl im Sammeldruck (CreateInvoiceListReport)
/// als auch beim Einzeldruck "mit Quittierungsbeleg" (CreateServiceInvoiceReportMitQb der Basisklasse
/// laeuft ueber diese Methode). Der normale Druck der Leistungsnachweise bleibt unveraendert.
@@ -99,7 +99,7 @@ namespace CaritasverbandDuerenJuelichEV
var start = invoiceBase.AccountingPeriodStart.Value;
var end = invoiceBase.AccountingPeriodEnd.Value;
// Claude: Verschiedene ServiceCategories der Leistungen des Klienten im Abrechnungszeitraum ermitteln
// Claude: Verschiedene Employees, die im Abrechnungszeitraum Leistungen erbracht haben, ermitteln
// (gleicher Zeitraum, ueber den auch die einzelnen Belege erstellt werden)
var span = new DateTimeSpan();
span.StartDateTime = start.Date;
@@ -107,30 +107,28 @@ namespace CaritasverbandDuerenJuelichEV
var serviceRecords = DAOFactory.SearchDAO.FindCustomerServiceRecords(customerOid, span, null, null, false);
var categoryOids = new List<long>();
var employeeOids = new List<long>();
foreach (var iSr in serviceRecords)
{
if (iSr.ServiceDescription != null
&& iSr.ServiceDescription.ServiceCategory != null
&& iSr.ServiceDescription.ServiceCategory.Oid.HasValue
&& !categoryOids.Contains(iSr.ServiceDescription.ServiceCategory.Oid.Value))
if (iSr.EmployeeOid.HasValue
&& !employeeOids.Contains(iSr.EmployeeOid.Value))
{
categoryOids.Add(iSr.ServiceDescription.ServiceCategory.Oid.Value);
employeeOids.Add(iSr.EmployeeOid.Value);
}
}
if (categoryOids.Count == 0)
if (employeeOids.Count == 0)
{
return base.CreateBelegeForInvoice(invoiceBase);
}
categoryOids.Sort();
employeeOids.Sort();
// Claude: Pro ServiceCategory einen eigenen Beleg erstellen und zu einem Gesamtreport zusammenfuegen
// Claude: Pro Employee einen eigenen Beleg erstellen und zu einem Gesamtreport zusammenfuegen
XtraReport belege = null;
foreach (var categoryOid in categoryOids)
foreach (var employeeOid in employeeOids)
{
var report = CreateServiceOverviewReportNew(QBFilterEnum.KlientenAuswahl, customerOid, null, null, null, categoryOid, start, end, false);
var report = CreateServiceOverviewReportNew(QBFilterEnum.KlientenAuswahl, customerOid, null, employeeOid, null, null, start, end, false);
if (belege == null)
{