Files
BeWoPlaner/ReportImp/BetreuwoWesel/Mitarbeiterstundenkonto.cs

68 lines
1.7 KiB
C#

using System;
using BeWo.Report;
using BeWo.Report.ReportObjects;
using BS.Shared.Core;
namespace BetreuWoWesel
{
[IDSpecificClass(Identifier = "Mitarbeiterstundenkonto")]
public partial class Mitarbeiterstundenkonto : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<MitarbeiterstundenkontoRO>
{
public Mitarbeiterstundenkonto()
{
InitializeComponent();
}
public void SetReportDataSource(MitarbeiterstundenkontoRO pRO)
{
var msb = new CustomMitarbeiterstundenkontoBerechnung();
msb.CreateReport(pRO);
foreach (var ed in pRO.EmployeeDetailList)
{
int kommenAusFrei = 0;
if (ed.Days != null)
{
ed.Custom1 = 0m;
ed.Custom2 = 0m;
ed.Custom3 = 0m;
ed.Custom4 = 0m;
foreach (var dayDetail in ed.Days)
{
if (dayDetail.ServiceRecords != null && dayDetail.ServiceRecords.Count > 0)
{
foreach (var sr in dayDetail.ServiceRecords)
{
// Es muss gezählt werden, wie oft die Leistung "Kommen aus frei" eingetragen wurde und am Ende mit 25 EUR multipliziert werden (Feld Regelarbeitszeit)
if (sr.ServiceDescription.Name.ToLower().Contains("kommen aus frei"))
kommenAusFrei++;
}
if (dayDetail.HoursSunday > 0)
ed.Custom1 += dayDetail.HoursSunday;
if (dayDetail.HoursSaturday > 0)
ed.Custom2 += dayDetail.HoursSaturday;
if (dayDetail.SpecialHours > 0)
ed.Custom3 += dayDetail.SpecialHours;
if (dayDetail.HoursHoliday > 0)
ed.Custom4 += dayDetail.HoursHoliday;
}
}
}
ed.Regelarbeitszeit = string.Format("{0:0} ({1:c})", kommenAusFrei, kommenAusFrei * 25);
}
this.bindingSource1.DataSource = pRO;
}
}
}