68 lines
1.7 KiB
C#
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;
|
|
}
|
|
|
|
}
|
|
}
|