SBBMainzReports/SBBMainzReportCreator - Finish für TS aus ergänzenden Diensten

SupportOID=164917
This commit is contained in:
2026-06-10 13:55:44 +02:00
parent 40a24a67e8
commit 0ea2e55751
3 changed files with 8 additions and 17 deletions

View File

@@ -35,12 +35,10 @@ namespace SBBMainzReports.Invoicing
List<ServiceRecordDC> serviceRecordsInPeriod = serviceRecords.Where(
i =>
{
bool valid = i.Start.Value.InBetween(serviceInvoicePeriod.Start.Value,
serviceInvoicePeriod.End.Value, true);
bool valid = i.Start.Value.InBetween(serviceInvoicePeriod.Start.Value, serviceInvoicePeriod.End.Value, true);
if (valid && serviceInvoicePeriod.SupportConceptApprovalPeriod != null && serviceInvoicePeriod.SupportConceptApprovalPeriod.ServiceCategory != null)
valid = serviceInvoicePeriod.SupportConceptApprovalPeriod.ServiceCategory.Oid ==
i.ServiceDescription.Category.ServiceCategoryOid;
valid = serviceInvoicePeriod.SupportConceptApprovalPeriod.ServiceCategory.Oid == i.ServiceDescription.Category.ServiceCategoryOid;
return valid;
}).ToList();
if (cb2sc.CustomerReferenceNumber != null && cb2sc.CustomerReferenceNumber.Trim().ToLower().EndsWith("b") || (cb2sc.AuswahlBezeichnung != null && cb2sc.AuswahlBezeichnung.Trim().ToLower().Contains("bienen")))
@@ -83,7 +81,6 @@ namespace SBBMainzReports.Invoicing
true, true);
}
var itemList = CreateInvoiceItems(serviceRecordsInPeriod, invoicePeriod, serviceInvoicePeriod.SupportConceptApprovalPeriod, calc);
serviceInvoicePeriod.InvoiceItemList.AddRange(itemList);
}

View File

@@ -26,25 +26,20 @@ namespace SBBMainzReports
int tage;
if (pRO.StartDate >= new DateTime(2026, 4, 1))
{
var additionalServices = DAOFactory.SearchDAO.GetAdditionalServiceBookingsForCustomer(
pRO.CustomerOid, pRO.StartDate, pRO.EndDate);
additionalServices = additionalServices
.Where(s => s.Datum.HasValue && s.AdditionalServiceRegion != null
&& s.AdditionalServiceRegion.AdditionalService != null
&& s.AdditionalServiceRegion.AdditionalService.Name != null
var additionalServices = DAOFactory.SearchDAO.GetAdditionalServiceBookingsForCustomer(pRO.CustomerOid, pRO.StartDate, pRO.EndDate);
additionalServices = additionalServices.Where(s => s.Datum.HasValue && s.AdditionalServiceRegion != null
&& s.AdditionalServiceRegion.AdditionalService != null && s.AdditionalServiceRegion.AdditionalService.Name != null
&& s.AdditionalServiceRegion.AdditionalService.Name == "Tagessttruktur")
.GroupBy(s => new { Date = s.Datum.Value.Date, Name = s.AdditionalServiceRegion.AdditionalService.Name })
.Select(g => g.Select(s => new
{
Service = s,
Booking = s.Customer2AddServiceBookings?.Where(c2a => c2a != null && c2a.CustomerOid == pRO.CustomerOid)
Service = s, Booking = s.Customer2AddServiceBookings?.Where(c2a => c2a != null && c2a.CustomerOid == pRO.CustomerOid)
.OrderByDescending(c2a => c2a.Oid).FirstOrDefault()
}).Where(x => x.Booking != null)
.OrderByDescending(x => x.Booking.Oid).FirstOrDefault()?.Service)
.Where(s => s != null).ToList();
tage = additionalServices.Count(s => s.Customer2AddServiceBookings != null
&& s.Customer2AddServiceBookings.Any(c2a => c2a.CustomerOid == pRO.CustomerOid && c2a.Participated));
tage = additionalServices.Count(s => s.Customer2AddServiceBookings != null && s.Customer2AddServiceBookings.Any(c2a => c2a.CustomerOid == pRO.CustomerOid && c2a.Participated));
}
else
{

View File

@@ -105,7 +105,7 @@ namespace SBBMainzReports
}
if (ro.StartDate >= new DateTime(2026, 5, 1))
{
// Ab April 2026: AdditionalServices statt ServiceRecords prüfen ob TS-Kunde
// Ab Mai 2026: AdditionalServices statt ServiceRecords prüfen ob TS-Kunde
var additionalServices = DAOFactory.SearchDAO.GetAdditionalServiceBookingsForCustomer(ro.CustomerOid, ro.StartDate, ro.EndDate);
bool isTsKunde = tsRo.Services.Count > 0 || additionalServices.Any(a => a.AdditionalServiceRegion?.AdditionalService?.Name == "Tagessttruktur");
if (isTsKunde)
@@ -155,7 +155,6 @@ namespace SBBMainzReports
{
report = new T();
((T)report).SetReportDataSource(ro);
}
else
{