89 lines
3.4 KiB
C#
89 lines
3.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using BeWo.Report;
|
|
using BeWo.Report.ReportObjects;
|
|
|
|
|
|
namespace AufEigenenFuessenStehen
|
|
{
|
|
public partial class Stundenzettel : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<ServicesOverviewRO>
|
|
{
|
|
public Stundenzettel()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
public void SetReportDataSource(ServicesOverviewRO pRO)
|
|
{
|
|
// Claude: Der CustomReportCreator baut das RO über CopyFromRO neu auf und verteilt dabei nur die Services
|
|
// auf die beiden Kopien (Soziotherapie / Rest). ServicesDouble wird nur in ServicesOverviewRO.Create()
|
|
// gefüllt und bleibt in den Kopien leer, wodurch der an ServicesDouble gebundene DetailReport nichts
|
|
// ausgibt. Deshalb hier aus den aktuellen Services neu aufbauen.
|
|
CreateServicesDouble(pRO);
|
|
|
|
bindingSource1.DataSource = pRO;
|
|
}
|
|
|
|
// Claude: Erzeugt die zweispaltige Darstellung (ServicesDouble) aus den Services des ROs.
|
|
// Logik entspricht dem Aufbau in ServicesOverviewRO.Create().
|
|
private static void CreateServicesDouble(ServicesOverviewRO pRO)
|
|
{
|
|
var servicesDouble = new List<ServicesOverviewRO.ServiceDoubleDetail>();
|
|
|
|
if (pRO.Services != null)
|
|
{
|
|
int i = 0;
|
|
|
|
foreach (ServicesOverviewRO.ServiceDetail s in pRO.Services)
|
|
{
|
|
var sdd = new ServicesOverviewRO.ServiceDoubleDetail();
|
|
sdd.CostBearer = s.CostBearer;
|
|
sdd.EmployeeName = s.EmployeeAbbr;
|
|
sdd.Minutes = s.MinutesQualified + s.MinutesUnqualified;
|
|
sdd.CustomerCount = s.CustomerCount;
|
|
sdd.FLS = sdd.Minutes / 60;
|
|
|
|
sdd.FLSString = String.Format("{0:0.##}", sdd.FLS);
|
|
sdd.FLSString = sdd.FLSString.Replace(".", ",");
|
|
|
|
sdd.ServiceCategoryAbbr = s.ServiceCategoryAbbr;
|
|
sdd.ServiceCategory = s.ServiceCategory;
|
|
sdd.ServiceDescription = s.ServiceDescription;
|
|
|
|
sdd.StartDate = s.StartDate;
|
|
|
|
sdd.IsBillable = s.IsBillable;
|
|
|
|
if (i < (pRO.Services.Count / (float)2))
|
|
{
|
|
servicesDouble.Add(sdd);
|
|
}
|
|
else
|
|
{
|
|
sdd = servicesDouble[i - servicesDouble.Count];
|
|
sdd.CostBearer2 = s.CostBearer;
|
|
sdd.EmployeeName2 = s.EmployeeAbbr;
|
|
sdd.Minutes2 = s.MinutesQualified + s.MinutesUnqualified;
|
|
sdd.CustomerCount2 = s.CustomerCount;
|
|
sdd.FLS2 = sdd.Minutes2 / 60;
|
|
sdd.FLSString2 = String.Format("{0:0.##}", sdd.FLS2);
|
|
sdd.FLSString2 = sdd.FLSString2.Replace(".", ",");
|
|
|
|
sdd.ServiceCategoryAbbr2 = s.ServiceCategoryAbbr;
|
|
sdd.ServiceCategory2 = s.ServiceCategory;
|
|
sdd.ServiceDescription2 = s.ServiceDescription;
|
|
|
|
sdd.StartDate2 = s.StartDate;
|
|
|
|
sdd.IsBillable2 = s.IsBillable;
|
|
}
|
|
|
|
i++;
|
|
}
|
|
}
|
|
|
|
pRO.ServicesDouble = servicesDouble;
|
|
}
|
|
}
|
|
}
|